@ecan-bi/datav 1.0.77 → 1.0.79

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 (2172) hide show
  1. package/dist/index.es.js +25 -41
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.umd.js +25 -41
  4. package/dist/index.umd.js.map +1 -1
  5. package/dist/style.css +8 -8
  6. package/package.json +1 -1
  7. package/types/setting/index.d.ts +0 -1
  8. package/es/_utils/constant.js +0 -22
  9. package/es/_utils/constant.js.map +0 -1
  10. package/es/_utils/hooks/useDownloadFile.js +0 -24
  11. package/es/_utils/hooks/useDownloadFile.js.map +0 -1
  12. package/es/_utils/hooks/useEmitEvent.js +0 -31
  13. package/es/_utils/hooks/useEmitEvent.js.map +0 -1
  14. package/es/_utils/hooks/useHrefParamsToGlobalVariables.js +0 -17
  15. package/es/_utils/hooks/useHrefParamsToGlobalVariables.js.map +0 -1
  16. package/es/_utils/hooks/useImagePath.js +0 -20
  17. package/es/_utils/hooks/useImagePath.js.map +0 -1
  18. package/es/_utils/hooks/useIndicatorData.js +0 -206
  19. package/es/_utils/hooks/useIndicatorData.js.map +0 -1
  20. package/es/_utils/hooks/useOnEvent.js +0 -23
  21. package/es/_utils/hooks/useOnEvent.js.map +0 -1
  22. package/es/_utils/hooks/usePageUrl.js +0 -11
  23. package/es/_utils/hooks/usePageUrl.js.map +0 -1
  24. package/es/_utils/hooks/usePickComponentStyle.js +0 -38
  25. package/es/_utils/hooks/usePickComponentStyle.js.map +0 -1
  26. package/es/_utils/hooks/useRequestData.js +0 -89
  27. package/es/_utils/hooks/useRequestData.js.map +0 -1
  28. package/es/_utils/hooks/useRequestDiagramData.js +0 -343
  29. package/es/_utils/hooks/useRequestDiagramData.js.map +0 -1
  30. package/es/_utils/hooks/useTransformChartDataByAttrKey.js +0 -56
  31. package/es/_utils/hooks/useTransformChartDataByAttrKey.js.map +0 -1
  32. package/es/_utils/hooks/useTransformChartDataByAttrValue.js +0 -41
  33. package/es/_utils/hooks/useTransformChartDataByAttrValue.js.map +0 -1
  34. package/es/_utils/hooks/useValueFormatter.js +0 -28
  35. package/es/_utils/hooks/useValueFormatter.js.map +0 -1
  36. package/es/_utils/hooks/useVariablesInText.js +0 -23
  37. package/es/_utils/hooks/useVariablesInText.js.map +0 -1
  38. package/es/_utils/props.js +0 -40
  39. package/es/_utils/props.js.map +0 -1
  40. package/es/_utils/request.js +0 -47
  41. package/es/_utils/request.js.map +0 -1
  42. package/es/_utils/util.js +0 -31
  43. package/es/_utils/util.js.map +0 -1
  44. package/es/_utils/withInstall.js +0 -19
  45. package/es/_utils/withInstall.js.map +0 -1
  46. package/es/_virtual/_commonjsHelpers.js +0 -7
  47. package/es/_virtual/_commonjsHelpers.js.map +0 -1
  48. package/es/_virtual/axios.js +0 -5
  49. package/es/_virtual/axios.js.map +0 -1
  50. package/es/_virtual/index.js +0 -5
  51. package/es/_virtual/index.js.map +0 -1
  52. package/es/_virtual/plugin-vue_export-helper.js +0 -11
  53. package/es/_virtual/plugin-vue_export-helper.js.map +0 -1
  54. package/es/assets/border-title-decoration-left.js +0 -5
  55. package/es/assets/border-title-decoration-left.js.map +0 -1
  56. package/es/assets/border-title-decoration-right.js +0 -5
  57. package/es/assets/border-title-decoration-right.js.map +0 -1
  58. package/es/assets/go-down.js +0 -5
  59. package/es/assets/go-down.js.map +0 -1
  60. package/es/assets/go-up.js +0 -5
  61. package/es/assets/go-up.js.map +0 -1
  62. package/es/common/Skeleton/Skeleton.js +0 -34
  63. package/es/common/Skeleton/Skeleton.js.map +0 -1
  64. package/es/common/Skeleton/Skeleton2.js +0 -32
  65. package/es/common/Skeleton/Skeleton2.js.map +0 -1
  66. package/es/common/Skeleton/index.js +0 -6
  67. package/es/common/Skeleton/index.js.map +0 -1
  68. package/es/common/echarts/ECharts.js +0 -199
  69. package/es/common/echarts/ECharts.js.map +0 -1
  70. package/es/common/echarts/composables/api.js +0 -43
  71. package/es/common/echarts/composables/api.js.map +0 -1
  72. package/es/common/echarts/composables/autoresize.js +0 -27
  73. package/es/common/echarts/composables/autoresize.js.map +0 -1
  74. package/es/common/echarts/composables/loading.js +0 -30
  75. package/es/common/echarts/composables/loading.js.map +0 -1
  76. package/es/common/echarts/index.js +0 -6
  77. package/es/common/echarts/index.js.map +0 -1
  78. package/es/common/echarts/style.js +0 -5
  79. package/es/common/echarts/style.js.map +0 -1
  80. package/es/common/echarts/utils.js +0 -16
  81. package/es/common/echarts/utils.js.map +0 -1
  82. package/es/common/spin/Spin.js +0 -48
  83. package/es/common/spin/Spin.js.map +0 -1
  84. package/es/common/spin/Spin.vue_vue_type_style_index_0_lang.js +0 -5
  85. package/es/common/spin/Spin.vue_vue_type_style_index_0_lang.js.map +0 -1
  86. package/es/common/spin/index.js +0 -6
  87. package/es/common/spin/index.js.map +0 -1
  88. package/es/components.js +0 -144
  89. package/es/components.js.map +0 -1
  90. package/es/container/border/Border.js +0 -116
  91. package/es/container/border/Border.js.map +0 -1
  92. package/es/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  93. package/es/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  94. package/es/container/border/index.js +0 -12
  95. package/es/container/border/index.js.map +0 -1
  96. package/es/container/border/props.js +0 -30
  97. package/es/container/border/props.js.map +0 -1
  98. package/es/container/modal/Modal.js +0 -167
  99. package/es/container/modal/Modal.js.map +0 -1
  100. package/es/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  101. package/es/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  102. package/es/container/modal/Modal.vue_vue_type_style_index_1_lang.js +0 -5
  103. package/es/container/modal/Modal.vue_vue_type_style_index_1_lang.js.map +0 -1
  104. package/es/container/modal/index.js +0 -12
  105. package/es/container/modal/index.js.map +0 -1
  106. package/es/container/modal/props.js +0 -28
  107. package/es/container/modal/props.js.map +0 -1
  108. package/es/container/tabs/Tabs.js +0 -110
  109. package/es/container/tabs/Tabs.js.map +0 -1
  110. package/es/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  111. package/es/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  112. package/es/container/tabs/index.js +0 -12
  113. package/es/container/tabs/index.js.map +0 -1
  114. package/es/container/tabs/props.js +0 -38
  115. package/es/container/tabs/props.js.map +0 -1
  116. package/es/control/button/Button.js +0 -89
  117. package/es/control/button/Button.js.map +0 -1
  118. package/es/control/button/Button.vue_vue_type_style_index_0_lang.js +0 -5
  119. package/es/control/button/Button.vue_vue_type_style_index_0_lang.js.map +0 -1
  120. package/es/control/button/Button.vue_vue_type_style_index_0_scoped_true_lang.js +0 -3
  121. package/es/control/button/Button.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  122. package/es/control/button/index.js +0 -12
  123. package/es/control/button/index.js.map +0 -1
  124. package/es/control/button/props.js +0 -24
  125. package/es/control/button/props.js.map +0 -1
  126. package/es/control/date-picker/DatePicker.js +0 -80
  127. package/es/control/date-picker/DatePicker.js.map +0 -1
  128. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  129. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  130. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js +0 -5
  131. package/es/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js.map +0 -1
  132. package/es/control/date-picker/index.js +0 -12
  133. package/es/control/date-picker/index.js.map +0 -1
  134. package/es/control/date-picker/props.js +0 -26
  135. package/es/control/date-picker/props.js.map +0 -1
  136. package/es/control/input/Input.js +0 -46
  137. package/es/control/input/Input.js.map +0 -1
  138. package/es/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  139. package/es/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  140. package/es/control/input/index.js +0 -11
  141. package/es/control/input/index.js.map +0 -1
  142. package/es/control/input/props.js +0 -20
  143. package/es/control/input/props.js.map +0 -1
  144. package/es/control/range-picker/RangePicker.js +0 -89
  145. package/es/control/range-picker/RangePicker.js.map +0 -1
  146. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  147. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  148. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js +0 -5
  149. package/es/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js.map +0 -1
  150. package/es/control/range-picker/index.js +0 -12
  151. package/es/control/range-picker/index.js.map +0 -1
  152. package/es/control/range-picker/props.js +0 -21
  153. package/es/control/range-picker/props.js.map +0 -1
  154. package/es/control/select/Select.js +0 -92
  155. package/es/control/select/Select.js.map +0 -1
  156. package/es/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  157. package/es/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  158. package/es/control/select/Select.vue_vue_type_style_index_1_lang.js +0 -5
  159. package/es/control/select/Select.vue_vue_type_style_index_1_lang.js.map +0 -1
  160. package/es/control/select/index.js +0 -12
  161. package/es/control/select/index.js.map +0 -1
  162. package/es/control/select/props.js +0 -20
  163. package/es/control/select/props.js.map +0 -1
  164. package/es/control/tabs/Tabs.js +0 -88
  165. package/es/control/tabs/Tabs.js.map +0 -1
  166. package/es/control/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js +0 -3
  167. package/es/control/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  168. package/es/control/tabs/index.js +0 -6
  169. package/es/control/tabs/index.js.map +0 -1
  170. package/es/control/tabs/props.js +0 -49
  171. package/es/control/tabs/props.js.map +0 -1
  172. package/es/graph/bar/Bar.js +0 -341
  173. package/es/graph/bar/Bar.js.map +0 -1
  174. package/es/graph/bar/Bar.vue_vue_type_style_index_0_lang.js +0 -5
  175. package/es/graph/bar/Bar.vue_vue_type_style_index_0_lang.js.map +0 -1
  176. package/es/graph/bar/index.js +0 -12
  177. package/es/graph/bar/index.js.map +0 -1
  178. package/es/graph/bar/props.js +0 -85
  179. package/es/graph/bar/props.js.map +0 -1
  180. package/es/graph/combo-graph/ComboGraph.js +0 -352
  181. package/es/graph/combo-graph/ComboGraph.js.map +0 -1
  182. package/es/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js +0 -5
  183. package/es/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js.map +0 -1
  184. package/es/graph/combo-graph/index.js +0 -12
  185. package/es/graph/combo-graph/index.js.map +0 -1
  186. package/es/graph/combo-graph/props.js +0 -107
  187. package/es/graph/combo-graph/props.js.map +0 -1
  188. package/es/graph/custom-graph/CustomGraph.js +0 -56
  189. package/es/graph/custom-graph/CustomGraph.js.map +0 -1
  190. package/es/graph/custom-graph/index.js +0 -11
  191. package/es/graph/custom-graph/index.js.map +0 -1
  192. package/es/graph/custom-graph/props.js +0 -18
  193. package/es/graph/custom-graph/props.js.map +0 -1
  194. package/es/graph/line/Line.js +0 -334
  195. package/es/graph/line/Line.js.map +0 -1
  196. package/es/graph/line/Line.vue_vue_type_style_index_0_lang.js +0 -5
  197. package/es/graph/line/Line.vue_vue_type_style_index_0_lang.js.map +0 -1
  198. package/es/graph/line/index.js +0 -12
  199. package/es/graph/line/index.js.map +0 -1
  200. package/es/graph/line/props.js +0 -68
  201. package/es/graph/line/props.js.map +0 -1
  202. package/es/graph/pie/Pie.js +0 -302
  203. package/es/graph/pie/Pie.js.map +0 -1
  204. package/es/graph/pie/Pie.vue_vue_type_style_index_0_lang.js +0 -5
  205. package/es/graph/pie/Pie.vue_vue_type_style_index_0_lang.js.map +0 -1
  206. package/es/graph/pie/index.js +0 -12
  207. package/es/graph/pie/index.js.map +0 -1
  208. package/es/graph/pie/props.js +0 -71
  209. package/es/graph/pie/props.js.map +0 -1
  210. package/es/graph/scatter/Scatter.js +0 -270
  211. package/es/graph/scatter/Scatter.js.map +0 -1
  212. package/es/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js +0 -5
  213. package/es/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js.map +0 -1
  214. package/es/graph/scatter/index.js +0 -12
  215. package/es/graph/scatter/index.js.map +0 -1
  216. package/es/graph/scatter/props.js +0 -63
  217. package/es/graph/scatter/props.js.map +0 -1
  218. package/es/index.js +0 -155
  219. package/es/index.js.map +0 -1
  220. package/es/map/map/Map.js +0 -185
  221. package/es/map/map/Map.js.map +0 -1
  222. package/es/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  223. package/es/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  224. package/es/map/map/index.js +0 -11
  225. package/es/map/map/index.js.map +0 -1
  226. package/es/map/map/props.js +0 -49
  227. package/es/map/map/props.js.map +0 -1
  228. package/es/media/image/Image.js +0 -67
  229. package/es/media/image/Image.js.map +0 -1
  230. package/es/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  231. package/es/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  232. package/es/media/image/index.js +0 -11
  233. package/es/media/image/index.js.map +0 -1
  234. package/es/media/image/props.js +0 -19
  235. package/es/media/image/props.js.map +0 -1
  236. package/es/node_modules/@ant-design/colors/dist/index.esm.js +0 -176
  237. package/es/node_modules/@ant-design/colors/dist/index.esm.js.map +0 -1
  238. package/es/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js +0 -6
  239. package/es/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js.map +0 -1
  240. package/es/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js +0 -166
  241. package/es/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js.map +0 -1
  242. package/es/node_modules/@ant-design/icons-vue/es/components/IconBase.js +0 -114
  243. package/es/node_modules/@ant-design/icons-vue/es/components/IconBase.js.map +0 -1
  244. package/es/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js +0 -80
  245. package/es/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js.map +0 -1
  246. package/es/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js +0 -39
  247. package/es/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js.map +0 -1
  248. package/es/node_modules/@ant-design/icons-vue/es/insert-css.js +0 -45
  249. package/es/node_modules/@ant-design/icons-vue/es/insert-css.js.map +0 -1
  250. package/es/node_modules/@ant-design/icons-vue/es/utils.js +0 -86
  251. package/es/node_modules/@ant-design/icons-vue/es/utils.js.map +0 -1
  252. package/es/node_modules/@babel/runtime/helpers/esm/extends.js +0 -18
  253. package/es/node_modules/@babel/runtime/helpers/esm/extends.js.map +0 -1
  254. package/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js +0 -116
  255. package/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js.map +0 -1
  256. package/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +0 -154
  257. package/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js.map +0 -1
  258. package/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js +0 -149
  259. package/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js.map +0 -1
  260. package/es/node_modules/@ctrl/tinycolor/dist/module/util.js +0 -50
  261. package/es/node_modules/@ctrl/tinycolor/dist/module/util.js.map +0 -1
  262. package/es/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -3
  263. package/es/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  264. package/es/node_modules/ant-design-vue/es/button/style/index.js +0 -5
  265. package/es/node_modules/ant-design-vue/es/button/style/index.js.map +0 -1
  266. package/es/node_modules/ant-design-vue/es/checkbox/style/index.js +0 -5
  267. package/es/node_modules/ant-design-vue/es/checkbox/style/index.js.map +0 -1
  268. package/es/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js +0 -24
  269. package/es/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js.map +0 -1
  270. package/es/node_modules/ant-design-vue/es/date-picker/style/index.js +0 -5
  271. package/es/node_modules/ant-design-vue/es/date-picker/style/index.js.map +0 -1
  272. package/es/node_modules/ant-design-vue/es/dropdown/style/index.js +0 -5
  273. package/es/node_modules/ant-design-vue/es/dropdown/style/index.js.map +0 -1
  274. package/es/node_modules/ant-design-vue/es/empty/style/index.js +0 -5
  275. package/es/node_modules/ant-design-vue/es/empty/style/index.js.map +0 -1
  276. package/es/node_modules/ant-design-vue/es/input/style/index.js +0 -5
  277. package/es/node_modules/ant-design-vue/es/input/style/index.js.map +0 -1
  278. package/es/node_modules/ant-design-vue/es/modal/style/index.js +0 -5
  279. package/es/node_modules/ant-design-vue/es/modal/style/index.js.map +0 -1
  280. package/es/node_modules/ant-design-vue/es/pagination/style/index.js +0 -5
  281. package/es/node_modules/ant-design-vue/es/pagination/style/index.js.map +0 -1
  282. package/es/node_modules/ant-design-vue/es/progress/style/index.js +0 -5
  283. package/es/node_modules/ant-design-vue/es/progress/style/index.js.map +0 -1
  284. package/es/node_modules/ant-design-vue/es/radio/style/index.js +0 -5
  285. package/es/node_modules/ant-design-vue/es/radio/style/index.js.map +0 -1
  286. package/es/node_modules/ant-design-vue/es/select/style/index.js +0 -5
  287. package/es/node_modules/ant-design-vue/es/select/style/index.js.map +0 -1
  288. package/es/node_modules/ant-design-vue/es/skeleton/style/index.js +0 -5
  289. package/es/node_modules/ant-design-vue/es/skeleton/style/index.js.map +0 -1
  290. package/es/node_modules/ant-design-vue/es/spin/style/index.js +0 -5
  291. package/es/node_modules/ant-design-vue/es/spin/style/index.js.map +0 -1
  292. package/es/node_modules/ant-design-vue/es/style/default.js +0 -5
  293. package/es/node_modules/ant-design-vue/es/style/default.js.map +0 -1
  294. package/es/node_modules/ant-design-vue/es/table/style/index.js +0 -5
  295. package/es/node_modules/ant-design-vue/es/table/style/index.js.map +0 -1
  296. package/es/node_modules/ant-design-vue/es/tag/style/index.js +0 -5
  297. package/es/node_modules/ant-design-vue/es/tag/style/index.js.map +0 -1
  298. package/es/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js +0 -9
  299. package/es/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js.map +0 -1
  300. package/es/node_modules/ant-design-vue/es/tooltip/style/index.js +0 -5
  301. package/es/node_modules/ant-design-vue/es/tooltip/style/index.js.map +0 -1
  302. package/es/node_modules/ant-design-vue/es/tree/style/index.js +0 -5
  303. package/es/node_modules/ant-design-vue/es/tree/style/index.js.map +0 -1
  304. package/es/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js +0 -33
  305. package/es/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js.map +0 -1
  306. package/es/node_modules/axios/index.js +0 -12
  307. package/es/node_modules/axios/index.js.map +0 -1
  308. package/es/node_modules/axios/lib/adapters/xhr.js +0 -166
  309. package/es/node_modules/axios/lib/adapters/xhr.js.map +0 -1
  310. package/es/node_modules/axios/lib/axios.js +0 -45
  311. package/es/node_modules/axios/lib/axios.js.map +0 -1
  312. package/es/node_modules/axios/lib/cancel/Cancel.js +0 -20
  313. package/es/node_modules/axios/lib/cancel/Cancel.js.map +0 -1
  314. package/es/node_modules/axios/lib/cancel/CancelToken.js +0 -88
  315. package/es/node_modules/axios/lib/cancel/CancelToken.js.map +0 -1
  316. package/es/node_modules/axios/lib/cancel/isCancel.js +0 -15
  317. package/es/node_modules/axios/lib/cancel/isCancel.js.map +0 -1
  318. package/es/node_modules/axios/lib/core/Axios.js +0 -121
  319. package/es/node_modules/axios/lib/core/Axios.js.map +0 -1
  320. package/es/node_modules/axios/lib/core/InterceptorManager.js +0 -31
  321. package/es/node_modules/axios/lib/core/InterceptorManager.js.map +0 -1
  322. package/es/node_modules/axios/lib/core/buildFullPath.js +0 -22
  323. package/es/node_modules/axios/lib/core/buildFullPath.js.map +0 -1
  324. package/es/node_modules/axios/lib/core/createError.js +0 -18
  325. package/es/node_modules/axios/lib/core/createError.js.map +0 -1
  326. package/es/node_modules/axios/lib/core/dispatchRequest.js +0 -67
  327. package/es/node_modules/axios/lib/core/dispatchRequest.js.map +0 -1
  328. package/es/node_modules/axios/lib/core/enhanceError.js +0 -29
  329. package/es/node_modules/axios/lib/core/enhanceError.js.map +0 -1
  330. package/es/node_modules/axios/lib/core/mergeConfig.js +0 -80
  331. package/es/node_modules/axios/lib/core/mergeConfig.js.map +0 -1
  332. package/es/node_modules/axios/lib/core/settle.js +0 -28
  333. package/es/node_modules/axios/lib/core/settle.js.map +0 -1
  334. package/es/node_modules/axios/lib/core/transformData.js +0 -15
  335. package/es/node_modules/axios/lib/core/transformData.js.map +0 -1
  336. package/es/node_modules/axios/lib/defaults.js +0 -115
  337. package/es/node_modules/axios/lib/defaults.js.map +0 -1
  338. package/es/node_modules/axios/lib/env/data.js +0 -15
  339. package/es/node_modules/axios/lib/env/data.js.map +0 -1
  340. package/es/node_modules/axios/lib/helpers/bind.js +0 -13
  341. package/es/node_modules/axios/lib/helpers/bind.js.map +0 -1
  342. package/es/node_modules/axios/lib/helpers/buildURL.js +0 -49
  343. package/es/node_modules/axios/lib/helpers/buildURL.js.map +0 -1
  344. package/es/node_modules/axios/lib/helpers/combineURLs.js +0 -15
  345. package/es/node_modules/axios/lib/helpers/combineURLs.js.map +0 -1
  346. package/es/node_modules/axios/lib/helpers/cookies.js +0 -52
  347. package/es/node_modules/axios/lib/helpers/cookies.js.map +0 -1
  348. package/es/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -15
  349. package/es/node_modules/axios/lib/helpers/isAbsoluteURL.js.map +0 -1
  350. package/es/node_modules/axios/lib/helpers/isAxiosError.js +0 -17
  351. package/es/node_modules/axios/lib/helpers/isAxiosError.js.map +0 -1
  352. package/es/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -46
  353. package/es/node_modules/axios/lib/helpers/isURLSameOrigin.js.map +0 -1
  354. package/es/node_modules/axios/lib/helpers/normalizeHeaderName.js +0 -14
  355. package/es/node_modules/axios/lib/helpers/normalizeHeaderName.js.map +0 -1
  356. package/es/node_modules/axios/lib/helpers/parseHeaders.js +0 -58
  357. package/es/node_modules/axios/lib/helpers/parseHeaders.js.map +0 -1
  358. package/es/node_modules/axios/lib/helpers/spread.js +0 -17
  359. package/es/node_modules/axios/lib/helpers/spread.js.map +0 -1
  360. package/es/node_modules/axios/lib/helpers/validator.js +0 -59
  361. package/es/node_modules/axios/lib/helpers/validator.js.map +0 -1
  362. package/es/node_modules/axios/lib/utils.js +0 -151
  363. package/es/node_modules/axios/lib/utils.js.map +0 -1
  364. package/es/node_modules/echarts/lib/action/roamHelper.js +0 -38
  365. package/es/node_modules/echarts/lib/action/roamHelper.js.map +0 -1
  366. package/es/node_modules/echarts/lib/animation/basicTrasition.js +0 -147
  367. package/es/node_modules/echarts/lib/animation/basicTrasition.js.map +0 -1
  368. package/es/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js +0 -92
  369. package/es/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js.map +0 -1
  370. package/es/node_modules/echarts/lib/animation/customGraphicTransition.js +0 -388
  371. package/es/node_modules/echarts/lib/animation/customGraphicTransition.js.map +0 -1
  372. package/es/node_modules/echarts/lib/chart/bar/BarSeries.js +0 -63
  373. package/es/node_modules/echarts/lib/chart/bar/BarSeries.js.map +0 -1
  374. package/es/node_modules/echarts/lib/chart/bar/BarView.js +0 -770
  375. package/es/node_modules/echarts/lib/chart/bar/BarView.js.map +0 -1
  376. package/es/node_modules/echarts/lib/chart/bar/BaseBarSeries.js +0 -48
  377. package/es/node_modules/echarts/lib/chart/bar/BaseBarSeries.js.map +0 -1
  378. package/es/node_modules/echarts/lib/chart/bar/install.js +0 -31
  379. package/es/node_modules/echarts/lib/chart/bar/install.js.map +0 -1
  380. package/es/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js +0 -245
  381. package/es/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js.map +0 -1
  382. package/es/node_modules/echarts/lib/chart/helper/Symbol.js +0 -247
  383. package/es/node_modules/echarts/lib/chart/helper/Symbol.js.map +0 -1
  384. package/es/node_modules/echarts/lib/chart/helper/SymbolDraw.js +0 -155
  385. package/es/node_modules/echarts/lib/chart/helper/SymbolDraw.js.map +0 -1
  386. package/es/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js +0 -102
  387. package/es/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js.map +0 -1
  388. package/es/node_modules/echarts/lib/chart/helper/createRenderPlanner.js +0 -17
  389. package/es/node_modules/echarts/lib/chart/helper/createRenderPlanner.js.map +0 -1
  390. package/es/node_modules/echarts/lib/chart/helper/createSeriesData.js +0 -117
  391. package/es/node_modules/echarts/lib/chart/helper/createSeriesData.js.map +0 -1
  392. package/es/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js +0 -19
  393. package/es/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js.map +0 -1
  394. package/es/node_modules/echarts/lib/chart/helper/labelHelper.js +0 -35
  395. package/es/node_modules/echarts/lib/chart/helper/labelHelper.js.map +0 -1
  396. package/es/node_modules/echarts/lib/chart/helper/pieHelper.js +0 -23
  397. package/es/node_modules/echarts/lib/chart/helper/pieHelper.js.map +0 -1
  398. package/es/node_modules/echarts/lib/chart/line/LineSeries.js +0 -94
  399. package/es/node_modules/echarts/lib/chart/line/LineSeries.js.map +0 -1
  400. package/es/node_modules/echarts/lib/chart/line/LineView.js +0 -968
  401. package/es/node_modules/echarts/lib/chart/line/LineView.js.map +0 -1
  402. package/es/node_modules/echarts/lib/chart/line/helper.js +0 -79
  403. package/es/node_modules/echarts/lib/chart/line/helper.js.map +0 -1
  404. package/es/node_modules/echarts/lib/chart/line/install.js +0 -25
  405. package/es/node_modules/echarts/lib/chart/line/install.js.map +0 -1
  406. package/es/node_modules/echarts/lib/chart/line/lineAnimationDiff.js +0 -113
  407. package/es/node_modules/echarts/lib/chart/line/lineAnimationDiff.js.map +0 -1
  408. package/es/node_modules/echarts/lib/chart/line/poly.js +0 -292
  409. package/es/node_modules/echarts/lib/chart/line/poly.js.map +0 -1
  410. package/es/node_modules/echarts/lib/chart/map/MapSeries.js +0 -153
  411. package/es/node_modules/echarts/lib/chart/map/MapSeries.js.map +0 -1
  412. package/es/node_modules/echarts/lib/chart/map/MapView.js +0 -111
  413. package/es/node_modules/echarts/lib/chart/map/MapView.js.map +0 -1
  414. package/es/node_modules/echarts/lib/chart/map/install.js +0 -19
  415. package/es/node_modules/echarts/lib/chart/map/install.js.map +0 -1
  416. package/es/node_modules/echarts/lib/chart/map/mapDataStatistic.js +0 -62
  417. package/es/node_modules/echarts/lib/chart/map/mapDataStatistic.js.map +0 -1
  418. package/es/node_modules/echarts/lib/chart/map/mapSymbolLayout.js +0 -43
  419. package/es/node_modules/echarts/lib/chart/map/mapSymbolLayout.js.map +0 -1
  420. package/es/node_modules/echarts/lib/chart/pie/PieSeries.js +0 -118
  421. package/es/node_modules/echarts/lib/chart/pie/PieSeries.js.map +0 -1
  422. package/es/node_modules/echarts/lib/chart/pie/PieView.js +0 -223
  423. package/es/node_modules/echarts/lib/chart/pie/PieView.js.map +0 -1
  424. package/es/node_modules/echarts/lib/chart/pie/install.js +0 -19
  425. package/es/node_modules/echarts/lib/chart/pie/install.js.map +0 -1
  426. package/es/node_modules/echarts/lib/chart/pie/labelLayout.js +0 -383
  427. package/es/node_modules/echarts/lib/chart/pie/labelLayout.js.map +0 -1
  428. package/es/node_modules/echarts/lib/chart/pie/pieLayout.js +0 -133
  429. package/es/node_modules/echarts/lib/chart/pie/pieLayout.js.map +0 -1
  430. package/es/node_modules/echarts/lib/chart/scatter/ScatterSeries.js +0 -68
  431. package/es/node_modules/echarts/lib/chart/scatter/ScatterSeries.js.map +0 -1
  432. package/es/node_modules/echarts/lib/chart/scatter/ScatterView.js +0 -86
  433. package/es/node_modules/echarts/lib/chart/scatter/ScatterView.js.map +0 -1
  434. package/es/node_modules/echarts/lib/chart/scatter/install.js +0 -15
  435. package/es/node_modules/echarts/lib/chart/scatter/install.js.map +0 -1
  436. package/es/node_modules/echarts/lib/component/axis/AxisBuilder.js +0 -477
  437. package/es/node_modules/echarts/lib/component/axis/AxisBuilder.js.map +0 -1
  438. package/es/node_modules/echarts/lib/component/axis/AxisView.js +0 -58
  439. package/es/node_modules/echarts/lib/component/axis/AxisView.js.map +0 -1
  440. package/es/node_modules/echarts/lib/component/axis/CartesianAxisView.js +0 -184
  441. package/es/node_modules/echarts/lib/component/axis/CartesianAxisView.js.map +0 -1
  442. package/es/node_modules/echarts/lib/component/axis/axisSplitHelper.js +0 -83
  443. package/es/node_modules/echarts/lib/component/axis/axisSplitHelper.js.map +0 -1
  444. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js +0 -61
  445. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js.map +0 -1
  446. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js +0 -38
  447. package/es/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js.map +0 -1
  448. package/es/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js +0 -281
  449. package/es/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js.map +0 -1
  450. package/es/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js +0 -103
  451. package/es/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js.map +0 -1
  452. package/es/node_modules/echarts/lib/component/axisPointer/axisTrigger.js +0 -282
  453. package/es/node_modules/echarts/lib/component/axisPointer/axisTrigger.js.map +0 -1
  454. package/es/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js +0 -53
  455. package/es/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js.map +0 -1
  456. package/es/node_modules/echarts/lib/component/axisPointer/globalListener.js +0 -87
  457. package/es/node_modules/echarts/lib/component/axisPointer/globalListener.js.map +0 -1
  458. package/es/node_modules/echarts/lib/component/axisPointer/install.js +0 -33
  459. package/es/node_modules/echarts/lib/component/axisPointer/install.js.map +0 -1
  460. package/es/node_modules/echarts/lib/component/axisPointer/modelHelper.js +0 -184
  461. package/es/node_modules/echarts/lib/component/axisPointer/modelHelper.js.map +0 -1
  462. package/es/node_modules/echarts/lib/component/axisPointer/viewHelper.js +0 -140
  463. package/es/node_modules/echarts/lib/component/axisPointer/viewHelper.js.map +0 -1
  464. package/es/node_modules/echarts/lib/component/dataZoom/AxisProxy.js +0 -208
  465. package/es/node_modules/echarts/lib/component/dataZoom/AxisProxy.js.map +0 -1
  466. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js +0 -294
  467. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js.map +0 -1
  468. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomView.js +0 -22
  469. package/es/node_modules/echarts/lib/component/dataZoom/DataZoomView.js.map +0 -1
  470. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js +0 -17
  471. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js.map +0 -1
  472. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js +0 -17
  473. package/es/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js.map +0 -1
  474. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js +0 -19
  475. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js.map +0 -1
  476. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js +0 -60
  477. package/es/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js.map +0 -1
  478. package/es/node_modules/echarts/lib/component/dataZoom/helper.js +0 -65
  479. package/es/node_modules/echarts/lib/component/dataZoom/helper.js.map +0 -1
  480. package/es/node_modules/echarts/lib/component/dataZoom/history.js +0 -68
  481. package/es/node_modules/echarts/lib/component/dataZoom/history.js.map +0 -1
  482. package/es/node_modules/echarts/lib/component/dataZoom/installCommon.js +0 -18
  483. package/es/node_modules/echarts/lib/component/dataZoom/installCommon.js.map +0 -1
  484. package/es/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js +0 -12
  485. package/es/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js.map +0 -1
  486. package/es/node_modules/echarts/lib/component/dataset/install.js +0 -52
  487. package/es/node_modules/echarts/lib/component/dataset/install.js.map +0 -1
  488. package/es/node_modules/echarts/lib/component/geo/GeoView.js +0 -70
  489. package/es/node_modules/echarts/lib/component/geo/GeoView.js.map +0 -1
  490. package/es/node_modules/echarts/lib/component/geo/install.js +0 -89
  491. package/es/node_modules/echarts/lib/component/geo/install.js.map +0 -1
  492. package/es/node_modules/echarts/lib/component/graphic/GraphicModel.js +0 -163
  493. package/es/node_modules/echarts/lib/component/graphic/GraphicModel.js.map +0 -1
  494. package/es/node_modules/echarts/lib/component/graphic/GraphicView.js +0 -309
  495. package/es/node_modules/echarts/lib/component/graphic/GraphicView.js.map +0 -1
  496. package/es/node_modules/echarts/lib/component/graphic/install.js +0 -27
  497. package/es/node_modules/echarts/lib/component/graphic/install.js.map +0 -1
  498. package/es/node_modules/echarts/lib/component/grid/installSimple.js +0 -54
  499. package/es/node_modules/echarts/lib/component/grid/installSimple.js.map +0 -1
  500. package/es/node_modules/echarts/lib/component/helper/BrushController.js +0 -651
  501. package/es/node_modules/echarts/lib/component/helper/BrushController.js.map +0 -1
  502. package/es/node_modules/echarts/lib/component/helper/BrushTargetManager.js +0 -264
  503. package/es/node_modules/echarts/lib/component/helper/BrushTargetManager.js.map +0 -1
  504. package/es/node_modules/echarts/lib/component/helper/MapDraw.js +0 -511
  505. package/es/node_modules/echarts/lib/component/helper/MapDraw.js.map +0 -1
  506. package/es/node_modules/echarts/lib/component/helper/RoamController.js +0 -161
  507. package/es/node_modules/echarts/lib/component/helper/RoamController.js.map +0 -1
  508. package/es/node_modules/echarts/lib/component/helper/brushHelper.js +0 -33
  509. package/es/node_modules/echarts/lib/component/helper/brushHelper.js.map +0 -1
  510. package/es/node_modules/echarts/lib/component/helper/cursorHelper.js +0 -14
  511. package/es/node_modules/echarts/lib/component/helper/cursorHelper.js.map +0 -1
  512. package/es/node_modules/echarts/lib/component/helper/interactionMutex.js +0 -31
  513. package/es/node_modules/echarts/lib/component/helper/interactionMutex.js.map +0 -1
  514. package/es/node_modules/echarts/lib/component/helper/listComponent.js +0 -37
  515. package/es/node_modules/echarts/lib/component/helper/listComponent.js.map +0 -1
  516. package/es/node_modules/echarts/lib/component/helper/roamHelper.js +0 -29
  517. package/es/node_modules/echarts/lib/component/helper/roamHelper.js.map +0 -1
  518. package/es/node_modules/echarts/lib/component/helper/sliderMove.js +0 -48
  519. package/es/node_modules/echarts/lib/component/helper/sliderMove.js.map +0 -1
  520. package/es/node_modules/echarts/lib/component/legend/LegendModel.js +0 -243
  521. package/es/node_modules/echarts/lib/component/legend/LegendModel.js.map +0 -1
  522. package/es/node_modules/echarts/lib/component/legend/LegendView.js +0 -398
  523. package/es/node_modules/echarts/lib/component/legend/LegendView.js.map +0 -1
  524. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js +0 -58
  525. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js.map +0 -1
  526. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendView.js +0 -298
  527. package/es/node_modules/echarts/lib/component/legend/ScrollableLegendView.js.map +0 -1
  528. package/es/node_modules/echarts/lib/component/legend/install.js +0 -11
  529. package/es/node_modules/echarts/lib/component/legend/install.js.map +0 -1
  530. package/es/node_modules/echarts/lib/component/legend/installLegendPlain.js +0 -17
  531. package/es/node_modules/echarts/lib/component/legend/installLegendPlain.js.map +0 -1
  532. package/es/node_modules/echarts/lib/component/legend/installLegendScroll.js +0 -15
  533. package/es/node_modules/echarts/lib/component/legend/installLegendScroll.js.map +0 -1
  534. package/es/node_modules/echarts/lib/component/legend/legendAction.js +0 -46
  535. package/es/node_modules/echarts/lib/component/legend/legendAction.js.map +0 -1
  536. package/es/node_modules/echarts/lib/component/legend/legendFilter.js +0 -19
  537. package/es/node_modules/echarts/lib/component/legend/legendFilter.js.map +0 -1
  538. package/es/node_modules/echarts/lib/component/legend/scrollableLegendAction.js +0 -16
  539. package/es/node_modules/echarts/lib/component/legend/scrollableLegendAction.js.map +0 -1
  540. package/es/node_modules/echarts/lib/component/title/install.js +0 -177
  541. package/es/node_modules/echarts/lib/component/title/install.js.map +0 -1
  542. package/es/node_modules/echarts/lib/component/toolbox/ToolboxModel.js +0 -64
  543. package/es/node_modules/echarts/lib/component/toolbox/ToolboxModel.js.map +0 -1
  544. package/es/node_modules/echarts/lib/component/toolbox/ToolboxView.js +0 -221
  545. package/es/node_modules/echarts/lib/component/toolbox/ToolboxView.js.map +0 -1
  546. package/es/node_modules/echarts/lib/component/toolbox/feature/DataView.js +0 -364
  547. package/es/node_modules/echarts/lib/component/toolbox/feature/DataView.js.map +0 -1
  548. package/es/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js +0 -199
  549. package/es/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js.map +0 -1
  550. package/es/node_modules/echarts/lib/component/toolbox/feature/MagicType.js +0 -154
  551. package/es/node_modules/echarts/lib/component/toolbox/feature/MagicType.js.map +0 -1
  552. package/es/node_modules/echarts/lib/component/toolbox/feature/Restore.js +0 -38
  553. package/es/node_modules/echarts/lib/component/toolbox/feature/Restore.js.map +0 -1
  554. package/es/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js +0 -89
  555. package/es/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js.map +0 -1
  556. package/es/node_modules/echarts/lib/component/toolbox/featureManager.js +0 -18
  557. package/es/node_modules/echarts/lib/component/toolbox/featureManager.js.map +0 -1
  558. package/es/node_modules/echarts/lib/component/toolbox/install.js +0 -24
  559. package/es/node_modules/echarts/lib/component/toolbox/install.js.map +0 -1
  560. package/es/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js +0 -288
  561. package/es/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js.map +0 -1
  562. package/es/node_modules/echarts/lib/component/tooltip/TooltipModel.js +0 -59
  563. package/es/node_modules/echarts/lib/component/tooltip/TooltipModel.js.map +0 -1
  564. package/es/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js +0 -150
  565. package/es/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js.map +0 -1
  566. package/es/node_modules/echarts/lib/component/tooltip/TooltipView.js +0 -676
  567. package/es/node_modules/echarts/lib/component/tooltip/TooltipView.js.map +0 -1
  568. package/es/node_modules/echarts/lib/component/tooltip/helper.js +0 -40
  569. package/es/node_modules/echarts/lib/component/tooltip/helper.js.map +0 -1
  570. package/es/node_modules/echarts/lib/component/tooltip/install.js +0 -24
  571. package/es/node_modules/echarts/lib/component/tooltip/install.js.map +0 -1
  572. package/es/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js +0 -89
  573. package/es/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js.map +0 -1
  574. package/es/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js +0 -238
  575. package/es/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js.map +0 -1
  576. package/es/node_modules/echarts/lib/component/visualMap/ContinuousModel.js +0 -167
  577. package/es/node_modules/echarts/lib/component/visualMap/ContinuousModel.js.map +0 -1
  578. package/es/node_modules/echarts/lib/component/visualMap/ContinuousView.js +0 -583
  579. package/es/node_modules/echarts/lib/component/visualMap/ContinuousView.js.map +0 -1
  580. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js +0 -331
  581. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js.map +0 -1
  582. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseView.js +0 -167
  583. package/es/node_modules/echarts/lib/component/visualMap/PiecewiseView.js.map +0 -1
  584. package/es/node_modules/echarts/lib/component/visualMap/VisualMapModel.js +0 -263
  585. package/es/node_modules/echarts/lib/component/visualMap/VisualMapModel.js.map +0 -1
  586. package/es/node_modules/echarts/lib/component/visualMap/VisualMapView.js +0 -100
  587. package/es/node_modules/echarts/lib/component/visualMap/VisualMapView.js.map +0 -1
  588. package/es/node_modules/echarts/lib/component/visualMap/helper.js +0 -40
  589. package/es/node_modules/echarts/lib/component/visualMap/helper.js.map +0 -1
  590. package/es/node_modules/echarts/lib/component/visualMap/install.js +0 -11
  591. package/es/node_modules/echarts/lib/component/visualMap/install.js.map +0 -1
  592. package/es/node_modules/echarts/lib/component/visualMap/installCommon.js +0 -23
  593. package/es/node_modules/echarts/lib/component/visualMap/installCommon.js.map +0 -1
  594. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js +0 -12
  595. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js.map +0 -1
  596. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js +0 -12
  597. package/es/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js.map +0 -1
  598. package/es/node_modules/echarts/lib/component/visualMap/preprocessor.js +0 -37
  599. package/es/node_modules/echarts/lib/component/visualMap/preprocessor.js.map +0 -1
  600. package/es/node_modules/echarts/lib/component/visualMap/visualEncoding.js +0 -64
  601. package/es/node_modules/echarts/lib/component/visualMap/visualEncoding.js.map +0 -1
  602. package/es/node_modules/echarts/lib/component/visualMap/visualMapAction.js +0 -18
  603. package/es/node_modules/echarts/lib/component/visualMap/visualMapAction.js.map +0 -1
  604. package/es/node_modules/echarts/lib/coord/Axis.js +0 -173
  605. package/es/node_modules/echarts/lib/coord/Axis.js.map +0 -1
  606. package/es/node_modules/echarts/lib/coord/CoordinateSystem.js +0 -7
  607. package/es/node_modules/echarts/lib/coord/CoordinateSystem.js.map +0 -1
  608. package/es/node_modules/echarts/lib/coord/View.js +0 -163
  609. package/es/node_modules/echarts/lib/coord/View.js.map +0 -1
  610. package/es/node_modules/echarts/lib/coord/axisAlignTicks.js +0 -86
  611. package/es/node_modules/echarts/lib/coord/axisAlignTicks.js.map +0 -1
  612. package/es/node_modules/echarts/lib/coord/axisCommonTypes.js +0 -10
  613. package/es/node_modules/echarts/lib/coord/axisCommonTypes.js.map +0 -1
  614. package/es/node_modules/echarts/lib/coord/axisDefault.js +0 -130
  615. package/es/node_modules/echarts/lib/coord/axisDefault.js.map +0 -1
  616. package/es/node_modules/echarts/lib/coord/axisHelper.js +0 -231
  617. package/es/node_modules/echarts/lib/coord/axisHelper.js.map +0 -1
  618. package/es/node_modules/echarts/lib/coord/axisModelCommonMixin.js +0 -16
  619. package/es/node_modules/echarts/lib/coord/axisModelCommonMixin.js.map +0 -1
  620. package/es/node_modules/echarts/lib/coord/axisModelCreator.js +0 -60
  621. package/es/node_modules/echarts/lib/coord/axisModelCreator.js.map +0 -1
  622. package/es/node_modules/echarts/lib/coord/axisTickLabelBuilder.js +0 -225
  623. package/es/node_modules/echarts/lib/coord/axisTickLabelBuilder.js.map +0 -1
  624. package/es/node_modules/echarts/lib/coord/cartesian/Axis2D.js +0 -39
  625. package/es/node_modules/echarts/lib/coord/cartesian/Axis2D.js.map +0 -1
  626. package/es/node_modules/echarts/lib/coord/cartesian/AxisModel.js +0 -22
  627. package/es/node_modules/echarts/lib/coord/cartesian/AxisModel.js.map +0 -1
  628. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian.js +0 -34
  629. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian.js.map +0 -1
  630. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js +0 -113
  631. package/es/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js.map +0 -1
  632. package/es/node_modules/echarts/lib/coord/cartesian/Grid.js +0 -380
  633. package/es/node_modules/echarts/lib/coord/cartesian/Grid.js.map +0 -1
  634. package/es/node_modules/echarts/lib/coord/cartesian/GridModel.js +0 -29
  635. package/es/node_modules/echarts/lib/coord/cartesian/GridModel.js.map +0 -1
  636. package/es/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js +0 -73
  637. package/es/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js.map +0 -1
  638. package/es/node_modules/echarts/lib/coord/geo/Geo.js +0 -148
  639. package/es/node_modules/echarts/lib/coord/geo/Geo.js.map +0 -1
  640. package/es/node_modules/echarts/lib/coord/geo/GeoJSONResource.js +0 -87
  641. package/es/node_modules/echarts/lib/coord/geo/GeoJSONResource.js.map +0 -1
  642. package/es/node_modules/echarts/lib/coord/geo/GeoModel.js +0 -140
  643. package/es/node_modules/echarts/lib/coord/geo/GeoModel.js.map +0 -1
  644. package/es/node_modules/echarts/lib/coord/geo/GeoSVGResource.js +0 -165
  645. package/es/node_modules/echarts/lib/coord/geo/GeoSVGResource.js.map +0 -1
  646. package/es/node_modules/echarts/lib/coord/geo/Region.js +0 -222
  647. package/es/node_modules/echarts/lib/coord/geo/Region.js.map +0 -1
  648. package/es/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js +0 -13
  649. package/es/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js.map +0 -1
  650. package/es/node_modules/echarts/lib/coord/geo/fix/nanhai.js +0 -32
  651. package/es/node_modules/echarts/lib/coord/geo/fix/nanhai.js.map +0 -1
  652. package/es/node_modules/echarts/lib/coord/geo/fix/textCoord.js +0 -22
  653. package/es/node_modules/echarts/lib/coord/geo/fix/textCoord.js.map +0 -1
  654. package/es/node_modules/echarts/lib/coord/geo/geoCreator.js +0 -174
  655. package/es/node_modules/echarts/lib/coord/geo/geoCreator.js.map +0 -1
  656. package/es/node_modules/echarts/lib/coord/geo/geoSourceManager.js +0 -42
  657. package/es/node_modules/echarts/lib/coord/geo/geoSourceManager.js.map +0 -1
  658. package/es/node_modules/echarts/lib/coord/geo/parseGeoJson.js +0 -95
  659. package/es/node_modules/echarts/lib/coord/geo/parseGeoJson.js.map +0 -1
  660. package/es/node_modules/echarts/lib/coord/scaleRawExtentInfo.js +0 -137
  661. package/es/node_modules/echarts/lib/coord/scaleRawExtentInfo.js.map +0 -1
  662. package/es/node_modules/echarts/lib/core/CoordinateSystem.js +0 -35
  663. package/es/node_modules/echarts/lib/core/CoordinateSystem.js.map +0 -1
  664. package/es/node_modules/echarts/lib/core/ExtensionAPI.js +0 -31
  665. package/es/node_modules/echarts/lib/core/ExtensionAPI.js.map +0 -1
  666. package/es/node_modules/echarts/lib/core/Scheduler.js +0 -350
  667. package/es/node_modules/echarts/lib/core/Scheduler.js.map +0 -1
  668. package/es/node_modules/echarts/lib/core/echarts.js +0 -1757
  669. package/es/node_modules/echarts/lib/core/echarts.js.map +0 -1
  670. package/es/node_modules/echarts/lib/core/impl.js +0 -23
  671. package/es/node_modules/echarts/lib/core/impl.js.map +0 -1
  672. package/es/node_modules/echarts/lib/core/lifecycle.js +0 -7
  673. package/es/node_modules/echarts/lib/core/lifecycle.js.map +0 -1
  674. package/es/node_modules/echarts/lib/core/locale.js +0 -47
  675. package/es/node_modules/echarts/lib/core/locale.js.map +0 -1
  676. package/es/node_modules/echarts/lib/core/task.js +0 -181
  677. package/es/node_modules/echarts/lib/core/task.js.map +0 -1
  678. package/es/node_modules/echarts/lib/data/DataDiffer.js +0 -152
  679. package/es/node_modules/echarts/lib/data/DataDiffer.js.map +0 -1
  680. package/es/node_modules/echarts/lib/data/DataStore.js +0 -783
  681. package/es/node_modules/echarts/lib/data/DataStore.js.map +0 -1
  682. package/es/node_modules/echarts/lib/data/OrdinalMeta.js +0 -63
  683. package/es/node_modules/echarts/lib/data/OrdinalMeta.js.map +0 -1
  684. package/es/node_modules/echarts/lib/data/SeriesData.js +0 -663
  685. package/es/node_modules/echarts/lib/data/SeriesData.js.map +0 -1
  686. package/es/node_modules/echarts/lib/data/SeriesDimensionDefine.js +0 -15
  687. package/es/node_modules/echarts/lib/data/SeriesDimensionDefine.js.map +0 -1
  688. package/es/node_modules/echarts/lib/data/Source.js +0 -217
  689. package/es/node_modules/echarts/lib/data/Source.js.map +0 -1
  690. package/es/node_modules/echarts/lib/data/helper/SeriesDataSchema.js +0 -142
  691. package/es/node_modules/echarts/lib/data/helper/SeriesDataSchema.js.map +0 -1
  692. package/es/node_modules/echarts/lib/data/helper/createDimensions.js +0 -213
  693. package/es/node_modules/echarts/lib/data/helper/createDimensions.js.map +0 -1
  694. package/es/node_modules/echarts/lib/data/helper/dataProvider.js +0 -253
  695. package/es/node_modules/echarts/lib/data/helper/dataProvider.js.map +0 -1
  696. package/es/node_modules/echarts/lib/data/helper/dataStackHelper.js +0 -106
  697. package/es/node_modules/echarts/lib/data/helper/dataStackHelper.js.map +0 -1
  698. package/es/node_modules/echarts/lib/data/helper/dataValueHelper.js +0 -62
  699. package/es/node_modules/echarts/lib/data/helper/dataValueHelper.js.map +0 -1
  700. package/es/node_modules/echarts/lib/data/helper/dimensionHelper.js +0 -100
  701. package/es/node_modules/echarts/lib/data/helper/dimensionHelper.js.map +0 -1
  702. package/es/node_modules/echarts/lib/data/helper/sourceHelper.js +0 -242
  703. package/es/node_modules/echarts/lib/data/helper/sourceHelper.js.map +0 -1
  704. package/es/node_modules/echarts/lib/data/helper/sourceManager.js +0 -231
  705. package/es/node_modules/echarts/lib/data/helper/sourceManager.js.map +0 -1
  706. package/es/node_modules/echarts/lib/data/helper/transform.js +0 -293
  707. package/es/node_modules/echarts/lib/data/helper/transform.js.map +0 -1
  708. package/es/node_modules/echarts/lib/extension.js +0 -69
  709. package/es/node_modules/echarts/lib/extension.js.map +0 -1
  710. package/es/node_modules/echarts/lib/i18n/langEN.js +0 -113
  711. package/es/node_modules/echarts/lib/i18n/langEN.js.map +0 -1
  712. package/es/node_modules/echarts/lib/i18n/langZH.js +0 -113
  713. package/es/node_modules/echarts/lib/i18n/langZH.js.map +0 -1
  714. package/es/node_modules/echarts/lib/label/labelGuideHelper.js +0 -218
  715. package/es/node_modules/echarts/lib/label/labelGuideHelper.js.map +0 -1
  716. package/es/node_modules/echarts/lib/label/labelLayoutHelper.js +0 -222
  717. package/es/node_modules/echarts/lib/label/labelLayoutHelper.js.map +0 -1
  718. package/es/node_modules/echarts/lib/label/labelStyle.js +0 -351
  719. package/es/node_modules/echarts/lib/label/labelStyle.js.map +0 -1
  720. package/es/node_modules/echarts/lib/label/sectorLabel.js +0 -153
  721. package/es/node_modules/echarts/lib/label/sectorLabel.js.map +0 -1
  722. package/es/node_modules/echarts/lib/layout/barGrid.js +0 -366
  723. package/es/node_modules/echarts/lib/layout/barGrid.js.map +0 -1
  724. package/es/node_modules/echarts/lib/layout/points.js +0 -63
  725. package/es/node_modules/echarts/lib/layout/points.js.map +0 -1
  726. package/es/node_modules/echarts/lib/legacy/dataSelectAction.js +0 -76
  727. package/es/node_modules/echarts/lib/legacy/dataSelectAction.js.map +0 -1
  728. package/es/node_modules/echarts/lib/loading/default.js +0 -109
  729. package/es/node_modules/echarts/lib/loading/default.js.map +0 -1
  730. package/es/node_modules/echarts/lib/model/Component.js +0 -117
  731. package/es/node_modules/echarts/lib/model/Component.js.map +0 -1
  732. package/es/node_modules/echarts/lib/model/Global.js +0 -561
  733. package/es/node_modules/echarts/lib/model/Global.js.map +0 -1
  734. package/es/node_modules/echarts/lib/model/Model.js +0 -101
  735. package/es/node_modules/echarts/lib/model/Model.js.map +0 -1
  736. package/es/node_modules/echarts/lib/model/OptionManager.js +0 -186
  737. package/es/node_modules/echarts/lib/model/OptionManager.js.map +0 -1
  738. package/es/node_modules/echarts/lib/model/Series.js +0 -377
  739. package/es/node_modules/echarts/lib/model/Series.js.map +0 -1
  740. package/es/node_modules/echarts/lib/model/globalDefault.js +0 -73
  741. package/es/node_modules/echarts/lib/model/globalDefault.js.map +0 -1
  742. package/es/node_modules/echarts/lib/model/internalComponentCreator.js +0 -28
  743. package/es/node_modules/echarts/lib/model/internalComponentCreator.js.map +0 -1
  744. package/es/node_modules/echarts/lib/model/mixin/areaStyle.js +0 -23
  745. package/es/node_modules/echarts/lib/model/mixin/areaStyle.js.map +0 -1
  746. package/es/node_modules/echarts/lib/model/mixin/dataFormat.js +0 -114
  747. package/es/node_modules/echarts/lib/model/mixin/dataFormat.js.map +0 -1
  748. package/es/node_modules/echarts/lib/model/mixin/itemStyle.js +0 -30
  749. package/es/node_modules/echarts/lib/model/mixin/itemStyle.js.map +0 -1
  750. package/es/node_modules/echarts/lib/model/mixin/lineStyle.js +0 -29
  751. package/es/node_modules/echarts/lib/model/mixin/lineStyle.js.map +0 -1
  752. package/es/node_modules/echarts/lib/model/mixin/makeStyleMapper.js +0 -27
  753. package/es/node_modules/echarts/lib/model/mixin/makeStyleMapper.js.map +0 -1
  754. package/es/node_modules/echarts/lib/model/mixin/palette.js +0 -53
  755. package/es/node_modules/echarts/lib/model/mixin/palette.js.map +0 -1
  756. package/es/node_modules/echarts/lib/model/mixin/textStyle.js +0 -39
  757. package/es/node_modules/echarts/lib/model/mixin/textStyle.js.map +0 -1
  758. package/es/node_modules/echarts/lib/model/referHelper.js +0 -109
  759. package/es/node_modules/echarts/lib/model/referHelper.js.map +0 -1
  760. package/es/node_modules/echarts/lib/preprocessor/backwardCompat.js +0 -213
  761. package/es/node_modules/echarts/lib/preprocessor/backwardCompat.js.map +0 -1
  762. package/es/node_modules/echarts/lib/preprocessor/helper/compatStyle.js +0 -269
  763. package/es/node_modules/echarts/lib/preprocessor/helper/compatStyle.js.map +0 -1
  764. package/es/node_modules/echarts/lib/processor/dataFilter.js +0 -27
  765. package/es/node_modules/echarts/lib/processor/dataFilter.js.map +0 -1
  766. package/es/node_modules/echarts/lib/processor/dataSample.js +0 -78
  767. package/es/node_modules/echarts/lib/processor/dataSample.js.map +0 -1
  768. package/es/node_modules/echarts/lib/processor/dataStack.js +0 -72
  769. package/es/node_modules/echarts/lib/processor/dataStack.js.map +0 -1
  770. package/es/node_modules/echarts/lib/processor/negativeDataFilter.js +0 -21
  771. package/es/node_modules/echarts/lib/processor/negativeDataFilter.js.map +0 -1
  772. package/es/node_modules/echarts/lib/renderer/installCanvasRenderer.js +0 -8
  773. package/es/node_modules/echarts/lib/renderer/installCanvasRenderer.js.map +0 -1
  774. package/es/node_modules/echarts/lib/scale/Interval.js +0 -190
  775. package/es/node_modules/echarts/lib/scale/Interval.js.map +0 -1
  776. package/es/node_modules/echarts/lib/scale/Log.js +0 -119
  777. package/es/node_modules/echarts/lib/scale/Log.js.map +0 -1
  778. package/es/node_modules/echarts/lib/scale/Ordinal.js +0 -123
  779. package/es/node_modules/echarts/lib/scale/Ordinal.js.map +0 -1
  780. package/es/node_modules/echarts/lib/scale/Scale.js +0 -46
  781. package/es/node_modules/echarts/lib/scale/Scale.js.map +0 -1
  782. package/es/node_modules/echarts/lib/scale/Time.js +0 -374
  783. package/es/node_modules/echarts/lib/scale/Time.js.map +0 -1
  784. package/es/node_modules/echarts/lib/scale/helper.js +0 -77
  785. package/es/node_modules/echarts/lib/scale/helper.js.map +0 -1
  786. package/es/node_modules/echarts/lib/theme/dark.js +0 -180
  787. package/es/node_modules/echarts/lib/theme/dark.js.map +0 -1
  788. package/es/node_modules/echarts/lib/theme/light.js +0 -9
  789. package/es/node_modules/echarts/lib/theme/light.js.map +0 -1
  790. package/es/node_modules/echarts/lib/util/ECEventProcessor.js +0 -77
  791. package/es/node_modules/echarts/lib/util/ECEventProcessor.js.map +0 -1
  792. package/es/node_modules/echarts/lib/util/clazz.js +0 -164
  793. package/es/node_modules/echarts/lib/util/clazz.js.map +0 -1
  794. package/es/node_modules/echarts/lib/util/component.js +0 -117
  795. package/es/node_modules/echarts/lib/util/component.js.map +0 -1
  796. package/es/node_modules/echarts/lib/util/decal.js +0 -292
  797. package/es/node_modules/echarts/lib/util/decal.js.map +0 -1
  798. package/es/node_modules/echarts/lib/util/event.js +0 -17
  799. package/es/node_modules/echarts/lib/util/event.js.map +0 -1
  800. package/es/node_modules/echarts/lib/util/format.js +0 -140
  801. package/es/node_modules/echarts/lib/util/format.js.map +0 -1
  802. package/es/node_modules/echarts/lib/util/graphic.js +0 -388
  803. package/es/node_modules/echarts/lib/util/graphic.js.map +0 -1
  804. package/es/node_modules/echarts/lib/util/innerStore.js +0 -23
  805. package/es/node_modules/echarts/lib/util/innerStore.js.map +0 -1
  806. package/es/node_modules/echarts/lib/util/layout.js +0 -249
  807. package/es/node_modules/echarts/lib/util/layout.js.map +0 -1
  808. package/es/node_modules/echarts/lib/util/log.js +0 -81
  809. package/es/node_modules/echarts/lib/util/log.js.map +0 -1
  810. package/es/node_modules/echarts/lib/util/model.js +0 -457
  811. package/es/node_modules/echarts/lib/util/model.js.map +0 -1
  812. package/es/node_modules/echarts/lib/util/number.js +0 -306
  813. package/es/node_modules/echarts/lib/util/number.js.map +0 -1
  814. package/es/node_modules/echarts/lib/util/shape/sausage.js +0 -63
  815. package/es/node_modules/echarts/lib/util/shape/sausage.js.map +0 -1
  816. package/es/node_modules/echarts/lib/util/states.js +0 -596
  817. package/es/node_modules/echarts/lib/util/states.js.map +0 -1
  818. package/es/node_modules/echarts/lib/util/styleCompat.js +0 -73
  819. package/es/node_modules/echarts/lib/util/styleCompat.js.map +0 -1
  820. package/es/node_modules/echarts/lib/util/symbol.js +0 -266
  821. package/es/node_modules/echarts/lib/util/symbol.js.map +0 -1
  822. package/es/node_modules/echarts/lib/util/throttle.js +0 -85
  823. package/es/node_modules/echarts/lib/util/throttle.js.map +0 -1
  824. package/es/node_modules/echarts/lib/util/time.js +0 -253
  825. package/es/node_modules/echarts/lib/util/time.js.map +0 -1
  826. package/es/node_modules/echarts/lib/util/types.js +0 -22
  827. package/es/node_modules/echarts/lib/util/types.js.map +0 -1
  828. package/es/node_modules/echarts/lib/util/vendor.js +0 -13
  829. package/es/node_modules/echarts/lib/util/vendor.js.map +0 -1
  830. package/es/node_modules/echarts/lib/view/Chart.js +0 -132
  831. package/es/node_modules/echarts/lib/view/Chart.js.map +0 -1
  832. package/es/node_modules/echarts/lib/view/Component.js +0 -37
  833. package/es/node_modules/echarts/lib/view/Component.js.map +0 -1
  834. package/es/node_modules/echarts/lib/visual/LegendVisualProvider.js +0 -28
  835. package/es/node_modules/echarts/lib/visual/LegendVisualProvider.js.map +0 -1
  836. package/es/node_modules/echarts/lib/visual/VisualMapping.js +0 -366
  837. package/es/node_modules/echarts/lib/visual/VisualMapping.js.map +0 -1
  838. package/es/node_modules/echarts/lib/visual/decal.js +0 -27
  839. package/es/node_modules/echarts/lib/visual/decal.js.map +0 -1
  840. package/es/node_modules/echarts/lib/visual/helper.js +0 -61
  841. package/es/node_modules/echarts/lib/visual/helper.js.map +0 -1
  842. package/es/node_modules/echarts/lib/visual/style.js +0 -159
  843. package/es/node_modules/echarts/lib/visual/style.js.map +0 -1
  844. package/es/node_modules/echarts/lib/visual/symbol.js +0 -80
  845. package/es/node_modules/echarts/lib/visual/symbol.js.map +0 -1
  846. package/es/node_modules/echarts/lib/visual/visualDefault.js +0 -46
  847. package/es/node_modules/echarts/lib/visual/visualDefault.js.map +0 -1
  848. package/es/node_modules/echarts/lib/visual/visualSolution.js +0 -101
  849. package/es/node_modules/echarts/lib/visual/visualSolution.js.map +0 -1
  850. package/es/node_modules/echarts/node_modules/tslib/tslib.es6.js +0 -37
  851. package/es/node_modules/echarts/node_modules/tslib/tslib.es6.js.map +0 -1
  852. package/es/node_modules/resize-detector/esm/index.js +0 -259
  853. package/es/node_modules/resize-detector/esm/index.js.map +0 -1
  854. package/es/node_modules/zrender/lib/Element.js +0 -994
  855. package/es/node_modules/zrender/lib/Element.js.map +0 -1
  856. package/es/node_modules/zrender/lib/Handler.js +0 -257
  857. package/es/node_modules/zrender/lib/Handler.js.map +0 -1
  858. package/es/node_modules/zrender/lib/Storage.js +0 -158
  859. package/es/node_modules/zrender/lib/Storage.js.map +0 -1
  860. package/es/node_modules/zrender/lib/animation/Animation.js +0 -148
  861. package/es/node_modules/zrender/lib/animation/Animation.js.map +0 -1
  862. package/es/node_modules/zrender/lib/animation/Animator.js +0 -702
  863. package/es/node_modules/zrender/lib/animation/Animator.js.map +0 -1
  864. package/es/node_modules/zrender/lib/animation/Clip.js +0 -65
  865. package/es/node_modules/zrender/lib/animation/Clip.js.map +0 -1
  866. package/es/node_modules/zrender/lib/animation/cubicEasing.js +0 -24
  867. package/es/node_modules/zrender/lib/animation/cubicEasing.js.map +0 -1
  868. package/es/node_modules/zrender/lib/animation/easing.js +0 -189
  869. package/es/node_modules/zrender/lib/animation/easing.js.map +0 -1
  870. package/es/node_modules/zrender/lib/animation/requestAnimationFrame.js +0 -10
  871. package/es/node_modules/zrender/lib/animation/requestAnimationFrame.js.map +0 -1
  872. package/es/node_modules/zrender/lib/canvas/Layer.js +0 -283
  873. package/es/node_modules/zrender/lib/canvas/Layer.js.map +0 -1
  874. package/es/node_modules/zrender/lib/canvas/Painter.js +0 -618
  875. package/es/node_modules/zrender/lib/canvas/Painter.js.map +0 -1
  876. package/es/node_modules/zrender/lib/canvas/dashStyle.js +0 -27
  877. package/es/node_modules/zrender/lib/canvas/dashStyle.js.map +0 -1
  878. package/es/node_modules/zrender/lib/canvas/graphic.js +0 -522
  879. package/es/node_modules/zrender/lib/canvas/graphic.js.map +0 -1
  880. package/es/node_modules/zrender/lib/canvas/helper.js +0 -83
  881. package/es/node_modules/zrender/lib/canvas/helper.js.map +0 -1
  882. package/es/node_modules/zrender/lib/config.js +0 -18
  883. package/es/node_modules/zrender/lib/config.js.map +0 -1
  884. package/es/node_modules/zrender/lib/contain/arc.js +0 -37
  885. package/es/node_modules/zrender/lib/contain/arc.js.map +0 -1
  886. package/es/node_modules/zrender/lib/contain/cubic.js +0 -16
  887. package/es/node_modules/zrender/lib/contain/cubic.js.map +0 -1
  888. package/es/node_modules/zrender/lib/contain/line.js +0 -24
  889. package/es/node_modules/zrender/lib/contain/line.js.map +0 -1
  890. package/es/node_modules/zrender/lib/contain/path.js +0 -290
  891. package/es/node_modules/zrender/lib/contain/path.js.map +0 -1
  892. package/es/node_modules/zrender/lib/contain/polygon.js +0 -26
  893. package/es/node_modules/zrender/lib/contain/polygon.js.map +0 -1
  894. package/es/node_modules/zrender/lib/contain/quadratic.js +0 -16
  895. package/es/node_modules/zrender/lib/contain/quadratic.js.map +0 -1
  896. package/es/node_modules/zrender/lib/contain/text.js +0 -174
  897. package/es/node_modules/zrender/lib/contain/text.js.map +0 -1
  898. package/es/node_modules/zrender/lib/contain/util.js +0 -12
  899. package/es/node_modules/zrender/lib/contain/util.js.map +0 -1
  900. package/es/node_modules/zrender/lib/contain/windingLine.js +0 -19
  901. package/es/node_modules/zrender/lib/contain/windingLine.js.map +0 -1
  902. package/es/node_modules/zrender/lib/core/BoundingRect.js +0 -205
  903. package/es/node_modules/zrender/lib/core/BoundingRect.js.map +0 -1
  904. package/es/node_modules/zrender/lib/core/Eventful.js +0 -155
  905. package/es/node_modules/zrender/lib/core/Eventful.js.map +0 -1
  906. package/es/node_modules/zrender/lib/core/GestureMgr.js +0 -82
  907. package/es/node_modules/zrender/lib/core/GestureMgr.js.map +0 -1
  908. package/es/node_modules/zrender/lib/core/LRU.js +0 -110
  909. package/es/node_modules/zrender/lib/core/LRU.js.map +0 -1
  910. package/es/node_modules/zrender/lib/core/OrientedBoundingRect.js +0 -121
  911. package/es/node_modules/zrender/lib/core/OrientedBoundingRect.js.map +0 -1
  912. package/es/node_modules/zrender/lib/core/PathProxy.js +0 -697
  913. package/es/node_modules/zrender/lib/core/PathProxy.js.map +0 -1
  914. package/es/node_modules/zrender/lib/core/Point.js +0 -133
  915. package/es/node_modules/zrender/lib/core/Point.js.map +0 -1
  916. package/es/node_modules/zrender/lib/core/Transformable.js +0 -233
  917. package/es/node_modules/zrender/lib/core/Transformable.js.map +0 -1
  918. package/es/node_modules/zrender/lib/core/WeakMap.js +0 -45
  919. package/es/node_modules/zrender/lib/core/WeakMap.js.map +0 -1
  920. package/es/node_modules/zrender/lib/core/bbox.js +0 -109
  921. package/es/node_modules/zrender/lib/core/bbox.js.map +0 -1
  922. package/es/node_modules/zrender/lib/core/curve.js +0 -345
  923. package/es/node_modules/zrender/lib/core/curve.js.map +0 -1
  924. package/es/node_modules/zrender/lib/core/dom.js +0 -79
  925. package/es/node_modules/zrender/lib/core/dom.js.map +0 -1
  926. package/es/node_modules/zrender/lib/core/env.js +0 -73
  927. package/es/node_modules/zrender/lib/core/env.js.map +0 -1
  928. package/es/node_modules/zrender/lib/core/event.js +0 -101
  929. package/es/node_modules/zrender/lib/core/event.js.map +0 -1
  930. package/es/node_modules/zrender/lib/core/fourPointsTransform.js +0 -60
  931. package/es/node_modules/zrender/lib/core/fourPointsTransform.js.map +0 -1
  932. package/es/node_modules/zrender/lib/core/matrix.js +0 -104
  933. package/es/node_modules/zrender/lib/core/matrix.js.map +0 -1
  934. package/es/node_modules/zrender/lib/core/platform.js +0 -70
  935. package/es/node_modules/zrender/lib/core/platform.js.map +0 -1
  936. package/es/node_modules/zrender/lib/core/timsort.js +0 -512
  937. package/es/node_modules/zrender/lib/core/timsort.js.map +0 -1
  938. package/es/node_modules/zrender/lib/core/util.js +0 -508
  939. package/es/node_modules/zrender/lib/core/util.js.map +0 -1
  940. package/es/node_modules/zrender/lib/core/vector.js +0 -99
  941. package/es/node_modules/zrender/lib/core/vector.js.map +0 -1
  942. package/es/node_modules/zrender/lib/dom/HandlerProxy.js +0 -302
  943. package/es/node_modules/zrender/lib/dom/HandlerProxy.js.map +0 -1
  944. package/es/node_modules/zrender/lib/graphic/CompoundPath.js +0 -53
  945. package/es/node_modules/zrender/lib/graphic/CompoundPath.js.map +0 -1
  946. package/es/node_modules/zrender/lib/graphic/Displayable.js +0 -316
  947. package/es/node_modules/zrender/lib/graphic/Displayable.js.map +0 -1
  948. package/es/node_modules/zrender/lib/graphic/Gradient.js +0 -17
  949. package/es/node_modules/zrender/lib/graphic/Gradient.js.map +0 -1
  950. package/es/node_modules/zrender/lib/graphic/Group.js +0 -181
  951. package/es/node_modules/zrender/lib/graphic/Group.js.map +0 -1
  952. package/es/node_modules/zrender/lib/graphic/Image.js +0 -75
  953. package/es/node_modules/zrender/lib/graphic/Image.js.map +0 -1
  954. package/es/node_modules/zrender/lib/graphic/IncrementalDisplayable.js +0 -115
  955. package/es/node_modules/zrender/lib/graphic/IncrementalDisplayable.js.map +0 -1
  956. package/es/node_modules/zrender/lib/graphic/LinearGradient.js +0 -21
  957. package/es/node_modules/zrender/lib/graphic/LinearGradient.js.map +0 -1
  958. package/es/node_modules/zrender/lib/graphic/Path.js +0 -395
  959. package/es/node_modules/zrender/lib/graphic/Path.js.map +0 -1
  960. package/es/node_modules/zrender/lib/graphic/RadialGradient.js +0 -20
  961. package/es/node_modules/zrender/lib/graphic/RadialGradient.js.map +0 -1
  962. package/es/node_modules/zrender/lib/graphic/TSpan.js +0 -68
  963. package/es/node_modules/zrender/lib/graphic/TSpan.js.map +0 -1
  964. package/es/node_modules/zrender/lib/graphic/Text.js +0 -506
  965. package/es/node_modules/zrender/lib/graphic/Text.js.map +0 -1
  966. package/es/node_modules/zrender/lib/graphic/constants.js +0 -9
  967. package/es/node_modules/zrender/lib/graphic/constants.js.map +0 -1
  968. package/es/node_modules/zrender/lib/graphic/helper/image.js +0 -56
  969. package/es/node_modules/zrender/lib/graphic/helper/image.js.map +0 -1
  970. package/es/node_modules/zrender/lib/graphic/helper/parseText.js +0 -447
  971. package/es/node_modules/zrender/lib/graphic/helper/parseText.js.map +0 -1
  972. package/es/node_modules/zrender/lib/graphic/helper/poly.js +0 -28
  973. package/es/node_modules/zrender/lib/graphic/helper/poly.js.map +0 -1
  974. package/es/node_modules/zrender/lib/graphic/helper/roundRect.js +0 -74
  975. package/es/node_modules/zrender/lib/graphic/helper/roundRect.js.map +0 -1
  976. package/es/node_modules/zrender/lib/graphic/helper/roundSector.js +0 -219
  977. package/es/node_modules/zrender/lib/graphic/helper/roundSector.js.map +0 -1
  978. package/es/node_modules/zrender/lib/graphic/helper/smoothBezier.js +0 -65
  979. package/es/node_modules/zrender/lib/graphic/helper/smoothBezier.js.map +0 -1
  980. package/es/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js +0 -60
  981. package/es/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js.map +0 -1
  982. package/es/node_modules/zrender/lib/graphic/shape/Arc.js +0 -48
  983. package/es/node_modules/zrender/lib/graphic/shape/Arc.js.map +0 -1
  984. package/es/node_modules/zrender/lib/graphic/shape/BezierCurve.js +0 -100
  985. package/es/node_modules/zrender/lib/graphic/shape/BezierCurve.js.map +0 -1
  986. package/es/node_modules/zrender/lib/graphic/shape/Circle.js +0 -31
  987. package/es/node_modules/zrender/lib/graphic/shape/Circle.js.map +0 -1
  988. package/es/node_modules/zrender/lib/graphic/shape/Ellipse.js +0 -43
  989. package/es/node_modules/zrender/lib/graphic/shape/Ellipse.js.map +0 -1
  990. package/es/node_modules/zrender/lib/graphic/shape/Line.js +0 -72
  991. package/es/node_modules/zrender/lib/graphic/shape/Line.js.map +0 -1
  992. package/es/node_modules/zrender/lib/graphic/shape/Polygon.js +0 -31
  993. package/es/node_modules/zrender/lib/graphic/shape/Polygon.js.map +0 -1
  994. package/es/node_modules/zrender/lib/graphic/shape/Polyline.js +0 -38
  995. package/es/node_modules/zrender/lib/graphic/shape/Polyline.js.map +0 -1
  996. package/es/node_modules/zrender/lib/graphic/shape/Rect.js +0 -59
  997. package/es/node_modules/zrender/lib/graphic/shape/Rect.js.map +0 -1
  998. package/es/node_modules/zrender/lib/graphic/shape/Ring.js +0 -37
  999. package/es/node_modules/zrender/lib/graphic/shape/Ring.js.map +0 -1
  1000. package/es/node_modules/zrender/lib/graphic/shape/Sector.js +0 -39
  1001. package/es/node_modules/zrender/lib/graphic/shape/Sector.js.map +0 -1
  1002. package/es/node_modules/zrender/lib/mixin/Draggable.js +0 -70
  1003. package/es/node_modules/zrender/lib/mixin/Draggable.js.map +0 -1
  1004. package/es/node_modules/zrender/lib/svg/helper.js +0 -31
  1005. package/es/node_modules/zrender/lib/svg/helper.js.map +0 -1
  1006. package/es/node_modules/zrender/lib/tool/color.js +0 -459
  1007. package/es/node_modules/zrender/lib/tool/color.js.map +0 -1
  1008. package/es/node_modules/zrender/lib/tool/parseSVG.js +0 -634
  1009. package/es/node_modules/zrender/lib/tool/parseSVG.js.map +0 -1
  1010. package/es/node_modules/zrender/lib/tool/parseXML.js +0 -19
  1011. package/es/node_modules/zrender/lib/tool/parseXML.js.map +0 -1
  1012. package/es/node_modules/zrender/lib/tool/path.js +0 -339
  1013. package/es/node_modules/zrender/lib/tool/path.js.map +0 -1
  1014. package/es/node_modules/zrender/lib/tool/transformPath.js +0 -85
  1015. package/es/node_modules/zrender/lib/tool/transformPath.js.map +0 -1
  1016. package/es/node_modules/zrender/lib/zrender.js +0 -238
  1017. package/es/node_modules/zrender/lib/zrender.js.map +0 -1
  1018. package/es/node_modules/zrender/node_modules/tslib/tslib.es6.js +0 -37
  1019. package/es/node_modules/zrender/node_modules/tslib/tslib.es6.js.map +0 -1
  1020. package/es/setting/page-config/PageConfig.js +0 -127
  1021. package/es/setting/page-config/PageConfig.js.map +0 -1
  1022. package/es/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1023. package/es/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1024. package/es/setting/page-config/index.js +0 -11
  1025. package/es/setting/page-config/index.js.map +0 -1
  1026. package/es/setting/page-config/props.js +0 -16
  1027. package/es/setting/page-config/props.js.map +0 -1
  1028. package/es/setting/provider-config/ProviderConfig.js +0 -164
  1029. package/es/setting/provider-config/ProviderConfig.js.map +0 -1
  1030. package/es/setting/provider-config/index.js +0 -11
  1031. package/es/setting/provider-config/index.js.map +0 -1
  1032. package/es/setting/provider-config/props.js +0 -13
  1033. package/es/setting/provider-config/props.js.map +0 -1
  1034. package/es/setting/renderer/Renderer.js +0 -19
  1035. package/es/setting/renderer/Renderer.js.map +0 -1
  1036. package/es/setting/renderer/index.js +0 -11
  1037. package/es/setting/renderer/index.js.map +0 -1
  1038. package/es/setting/renderer/props.js +0 -10
  1039. package/es/setting/renderer/props.js.map +0 -1
  1040. package/es/table/table/Table.js +0 -436
  1041. package/es/table/table/Table.js.map +0 -1
  1042. package/es/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1043. package/es/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1044. package/es/table/table/Table.vue_vue_type_style_index_1_lang.js +0 -5
  1045. package/es/table/table/Table.vue_vue_type_style_index_1_lang.js.map +0 -1
  1046. package/es/table/table/index.js +0 -12
  1047. package/es/table/table/index.js.map +0 -1
  1048. package/es/table/table/props.js +0 -71
  1049. package/es/table/table/props.js.map +0 -1
  1050. package/es/text/list/List.js +0 -207
  1051. package/es/text/list/List.js.map +0 -1
  1052. package/es/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1053. package/es/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1054. package/es/text/list/List.vue_vue_type_style_index_1_lang.js +0 -5
  1055. package/es/text/list/List.vue_vue_type_style_index_1_lang.js.map +0 -1
  1056. package/es/text/list/index.js +0 -12
  1057. package/es/text/list/index.js.map +0 -1
  1058. package/es/text/list/props.js +0 -43
  1059. package/es/text/list/props.js.map +0 -1
  1060. package/es/text/proportion/Proportion.js +0 -171
  1061. package/es/text/proportion/Proportion.js.map +0 -1
  1062. package/es/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1063. package/es/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1064. package/es/text/proportion/index.js +0 -12
  1065. package/es/text/proportion/index.js.map +0 -1
  1066. package/es/text/proportion/props.js +0 -33
  1067. package/es/text/proportion/props.js.map +0 -1
  1068. package/es/text/scroll-text/ScrollText.js +0 -21
  1069. package/es/text/scroll-text/ScrollText.js.map +0 -1
  1070. package/es/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1071. package/es/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1072. package/es/text/scroll-text/index.js +0 -8
  1073. package/es/text/scroll-text/index.js.map +0 -1
  1074. package/es/text/text/Text.js +0 -138
  1075. package/es/text/text/Text.js.map +0 -1
  1076. package/es/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1077. package/es/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1078. package/es/text/text/index.js +0 -12
  1079. package/es/text/text/index.js.map +0 -1
  1080. package/es/text/text/props.js +0 -30
  1081. package/es/text/text/props.js.map +0 -1
  1082. package/es/text/time-display/TimeDisplay.js +0 -55
  1083. package/es/text/time-display/TimeDisplay.js.map +0 -1
  1084. package/es/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1085. package/es/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1086. package/es/text/time-display/index.js +0 -11
  1087. package/es/text/time-display/index.js.map +0 -1
  1088. package/es/text/time-display/props.js +0 -23
  1089. package/es/text/time-display/props.js.map +0 -1
  1090. package/lib/_utils/constant.js +0 -22
  1091. package/lib/_utils/constant.js.map +0 -1
  1092. package/lib/_utils/hooks/useDownloadFile.js +0 -24
  1093. package/lib/_utils/hooks/useDownloadFile.js.map +0 -1
  1094. package/lib/_utils/hooks/useEmitEvent.js +0 -31
  1095. package/lib/_utils/hooks/useEmitEvent.js.map +0 -1
  1096. package/lib/_utils/hooks/useHrefParamsToGlobalVariables.js +0 -17
  1097. package/lib/_utils/hooks/useHrefParamsToGlobalVariables.js.map +0 -1
  1098. package/lib/_utils/hooks/useImagePath.js +0 -20
  1099. package/lib/_utils/hooks/useImagePath.js.map +0 -1
  1100. package/lib/_utils/hooks/useIndicatorData.js +0 -206
  1101. package/lib/_utils/hooks/useIndicatorData.js.map +0 -1
  1102. package/lib/_utils/hooks/useOnEvent.js +0 -23
  1103. package/lib/_utils/hooks/useOnEvent.js.map +0 -1
  1104. package/lib/_utils/hooks/usePageUrl.js +0 -11
  1105. package/lib/_utils/hooks/usePageUrl.js.map +0 -1
  1106. package/lib/_utils/hooks/usePickComponentStyle.js +0 -38
  1107. package/lib/_utils/hooks/usePickComponentStyle.js.map +0 -1
  1108. package/lib/_utils/hooks/useRequestData.js +0 -89
  1109. package/lib/_utils/hooks/useRequestData.js.map +0 -1
  1110. package/lib/_utils/hooks/useRequestDiagramData.js +0 -343
  1111. package/lib/_utils/hooks/useRequestDiagramData.js.map +0 -1
  1112. package/lib/_utils/hooks/useTransformChartDataByAttrKey.js +0 -56
  1113. package/lib/_utils/hooks/useTransformChartDataByAttrKey.js.map +0 -1
  1114. package/lib/_utils/hooks/useTransformChartDataByAttrValue.js +0 -41
  1115. package/lib/_utils/hooks/useTransformChartDataByAttrValue.js.map +0 -1
  1116. package/lib/_utils/hooks/useValueFormatter.js +0 -28
  1117. package/lib/_utils/hooks/useValueFormatter.js.map +0 -1
  1118. package/lib/_utils/hooks/useVariablesInText.js +0 -23
  1119. package/lib/_utils/hooks/useVariablesInText.js.map +0 -1
  1120. package/lib/_utils/props.js +0 -40
  1121. package/lib/_utils/props.js.map +0 -1
  1122. package/lib/_utils/request.js +0 -47
  1123. package/lib/_utils/request.js.map +0 -1
  1124. package/lib/_utils/util.js +0 -31
  1125. package/lib/_utils/util.js.map +0 -1
  1126. package/lib/_utils/withInstall.js +0 -19
  1127. package/lib/_utils/withInstall.js.map +0 -1
  1128. package/lib/_virtual/_commonjsHelpers.js +0 -7
  1129. package/lib/_virtual/_commonjsHelpers.js.map +0 -1
  1130. package/lib/_virtual/axios.js +0 -5
  1131. package/lib/_virtual/axios.js.map +0 -1
  1132. package/lib/_virtual/index.js +0 -5
  1133. package/lib/_virtual/index.js.map +0 -1
  1134. package/lib/_virtual/plugin-vue_export-helper.js +0 -11
  1135. package/lib/_virtual/plugin-vue_export-helper.js.map +0 -1
  1136. package/lib/assets/border-title-decoration-left.js +0 -5
  1137. package/lib/assets/border-title-decoration-left.js.map +0 -1
  1138. package/lib/assets/border-title-decoration-right.js +0 -5
  1139. package/lib/assets/border-title-decoration-right.js.map +0 -1
  1140. package/lib/assets/go-down.js +0 -5
  1141. package/lib/assets/go-down.js.map +0 -1
  1142. package/lib/assets/go-up.js +0 -5
  1143. package/lib/assets/go-up.js.map +0 -1
  1144. package/lib/common/Skeleton/Skeleton.js +0 -34
  1145. package/lib/common/Skeleton/Skeleton.js.map +0 -1
  1146. package/lib/common/Skeleton/Skeleton2.js +0 -34
  1147. package/lib/common/Skeleton/Skeleton2.js.map +0 -1
  1148. package/lib/common/Skeleton/index.js +0 -5
  1149. package/lib/common/Skeleton/index.js.map +0 -1
  1150. package/lib/common/echarts/ECharts.js +0 -198
  1151. package/lib/common/echarts/ECharts.js.map +0 -1
  1152. package/lib/common/echarts/composables/api.js +0 -43
  1153. package/lib/common/echarts/composables/api.js.map +0 -1
  1154. package/lib/common/echarts/composables/autoresize.js +0 -27
  1155. package/lib/common/echarts/composables/autoresize.js.map +0 -1
  1156. package/lib/common/echarts/composables/loading.js +0 -30
  1157. package/lib/common/echarts/composables/loading.js.map +0 -1
  1158. package/lib/common/echarts/index.js +0 -5
  1159. package/lib/common/echarts/index.js.map +0 -1
  1160. package/lib/common/echarts/style.js +0 -5
  1161. package/lib/common/echarts/style.js.map +0 -1
  1162. package/lib/common/echarts/utils.js +0 -16
  1163. package/lib/common/echarts/utils.js.map +0 -1
  1164. package/lib/common/spin/Spin.js +0 -48
  1165. package/lib/common/spin/Spin.js.map +0 -1
  1166. package/lib/common/spin/Spin.vue_vue_type_style_index_0_lang.js +0 -5
  1167. package/lib/common/spin/Spin.vue_vue_type_style_index_0_lang.js.map +0 -1
  1168. package/lib/common/spin/index.js +0 -5
  1169. package/lib/common/spin/index.js.map +0 -1
  1170. package/lib/components.js +0 -144
  1171. package/lib/components.js.map +0 -1
  1172. package/lib/container/border/Border.js +0 -116
  1173. package/lib/container/border/Border.js.map +0 -1
  1174. package/lib/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1175. package/lib/container/border/Border.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1176. package/lib/container/border/index.js +0 -12
  1177. package/lib/container/border/index.js.map +0 -1
  1178. package/lib/container/border/props.js +0 -30
  1179. package/lib/container/border/props.js.map +0 -1
  1180. package/lib/container/modal/Modal.js +0 -167
  1181. package/lib/container/modal/Modal.js.map +0 -1
  1182. package/lib/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1183. package/lib/container/modal/Modal.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1184. package/lib/container/modal/Modal.vue_vue_type_style_index_1_lang.js +0 -5
  1185. package/lib/container/modal/Modal.vue_vue_type_style_index_1_lang.js.map +0 -1
  1186. package/lib/container/modal/index.js +0 -12
  1187. package/lib/container/modal/index.js.map +0 -1
  1188. package/lib/container/modal/props.js +0 -28
  1189. package/lib/container/modal/props.js.map +0 -1
  1190. package/lib/container/tabs/Tabs.js +0 -110
  1191. package/lib/container/tabs/Tabs.js.map +0 -1
  1192. package/lib/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1193. package/lib/container/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1194. package/lib/container/tabs/index.js +0 -12
  1195. package/lib/container/tabs/index.js.map +0 -1
  1196. package/lib/container/tabs/props.js +0 -38
  1197. package/lib/container/tabs/props.js.map +0 -1
  1198. package/lib/control/button/Button.js +0 -89
  1199. package/lib/control/button/Button.js.map +0 -1
  1200. package/lib/control/button/Button.vue_vue_type_style_index_0_lang.js +0 -5
  1201. package/lib/control/button/Button.vue_vue_type_style_index_0_lang.js.map +0 -1
  1202. package/lib/control/button/Button.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1203. package/lib/control/button/Button.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1204. package/lib/control/button/index.js +0 -12
  1205. package/lib/control/button/index.js.map +0 -1
  1206. package/lib/control/button/props.js +0 -24
  1207. package/lib/control/button/props.js.map +0 -1
  1208. package/lib/control/date-picker/DatePicker.js +0 -82
  1209. package/lib/control/date-picker/DatePicker.js.map +0 -1
  1210. package/lib/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1211. package/lib/control/date-picker/DatePicker.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1212. package/lib/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js +0 -5
  1213. package/lib/control/date-picker/DatePicker.vue_vue_type_style_index_1_lang.js.map +0 -1
  1214. package/lib/control/date-picker/index.js +0 -12
  1215. package/lib/control/date-picker/index.js.map +0 -1
  1216. package/lib/control/date-picker/props.js +0 -28
  1217. package/lib/control/date-picker/props.js.map +0 -1
  1218. package/lib/control/input/Input.js +0 -46
  1219. package/lib/control/input/Input.js.map +0 -1
  1220. package/lib/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1221. package/lib/control/input/Input.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1222. package/lib/control/input/index.js +0 -11
  1223. package/lib/control/input/index.js.map +0 -1
  1224. package/lib/control/input/props.js +0 -20
  1225. package/lib/control/input/props.js.map +0 -1
  1226. package/lib/control/range-picker/RangePicker.js +0 -91
  1227. package/lib/control/range-picker/RangePicker.js.map +0 -1
  1228. package/lib/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1229. package/lib/control/range-picker/RangePicker.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1230. package/lib/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js +0 -5
  1231. package/lib/control/range-picker/RangePicker.vue_vue_type_style_index_1_lang.js.map +0 -1
  1232. package/lib/control/range-picker/index.js +0 -12
  1233. package/lib/control/range-picker/index.js.map +0 -1
  1234. package/lib/control/range-picker/props.js +0 -21
  1235. package/lib/control/range-picker/props.js.map +0 -1
  1236. package/lib/control/select/Select.js +0 -92
  1237. package/lib/control/select/Select.js.map +0 -1
  1238. package/lib/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1239. package/lib/control/select/Select.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1240. package/lib/control/select/Select.vue_vue_type_style_index_1_lang.js +0 -5
  1241. package/lib/control/select/Select.vue_vue_type_style_index_1_lang.js.map +0 -1
  1242. package/lib/control/select/index.js +0 -12
  1243. package/lib/control/select/index.js.map +0 -1
  1244. package/lib/control/select/props.js +0 -20
  1245. package/lib/control/select/props.js.map +0 -1
  1246. package/lib/control/tabs/Tabs.js +0 -90
  1247. package/lib/control/tabs/Tabs.js.map +0 -1
  1248. package/lib/control/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1249. package/lib/control/tabs/Tabs.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1250. package/lib/control/tabs/index.js +0 -12
  1251. package/lib/control/tabs/index.js.map +0 -1
  1252. package/lib/control/tabs/props.js +0 -53
  1253. package/lib/control/tabs/props.js.map +0 -1
  1254. package/lib/graph/bar/Bar.js +0 -341
  1255. package/lib/graph/bar/Bar.js.map +0 -1
  1256. package/lib/graph/bar/Bar.vue_vue_type_style_index_0_lang.js +0 -5
  1257. package/lib/graph/bar/Bar.vue_vue_type_style_index_0_lang.js.map +0 -1
  1258. package/lib/graph/bar/index.js +0 -12
  1259. package/lib/graph/bar/index.js.map +0 -1
  1260. package/lib/graph/bar/props.js +0 -85
  1261. package/lib/graph/bar/props.js.map +0 -1
  1262. package/lib/graph/combo-graph/ComboGraph.js +0 -352
  1263. package/lib/graph/combo-graph/ComboGraph.js.map +0 -1
  1264. package/lib/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js +0 -5
  1265. package/lib/graph/combo-graph/ComboGraph.vue_vue_type_style_index_0_lang.js.map +0 -1
  1266. package/lib/graph/combo-graph/index.js +0 -12
  1267. package/lib/graph/combo-graph/index.js.map +0 -1
  1268. package/lib/graph/combo-graph/props.js +0 -107
  1269. package/lib/graph/combo-graph/props.js.map +0 -1
  1270. package/lib/graph/custom-graph/CustomGraph.js +0 -75
  1271. package/lib/graph/custom-graph/CustomGraph.js.map +0 -1
  1272. package/lib/graph/custom-graph/index.js +0 -11
  1273. package/lib/graph/custom-graph/index.js.map +0 -1
  1274. package/lib/graph/custom-graph/props.js +0 -18
  1275. package/lib/graph/custom-graph/props.js.map +0 -1
  1276. package/lib/graph/line/Line.js +0 -334
  1277. package/lib/graph/line/Line.js.map +0 -1
  1278. package/lib/graph/line/Line.vue_vue_type_style_index_0_lang.js +0 -5
  1279. package/lib/graph/line/Line.vue_vue_type_style_index_0_lang.js.map +0 -1
  1280. package/lib/graph/line/index.js +0 -12
  1281. package/lib/graph/line/index.js.map +0 -1
  1282. package/lib/graph/line/props.js +0 -68
  1283. package/lib/graph/line/props.js.map +0 -1
  1284. package/lib/graph/pie/Pie.js +0 -302
  1285. package/lib/graph/pie/Pie.js.map +0 -1
  1286. package/lib/graph/pie/Pie.vue_vue_type_style_index_0_lang.js +0 -5
  1287. package/lib/graph/pie/Pie.vue_vue_type_style_index_0_lang.js.map +0 -1
  1288. package/lib/graph/pie/index.js +0 -12
  1289. package/lib/graph/pie/index.js.map +0 -1
  1290. package/lib/graph/pie/props.js +0 -71
  1291. package/lib/graph/pie/props.js.map +0 -1
  1292. package/lib/graph/scatter/Scatter.js +0 -270
  1293. package/lib/graph/scatter/Scatter.js.map +0 -1
  1294. package/lib/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js +0 -5
  1295. package/lib/graph/scatter/Scatter.vue_vue_type_style_index_0_lang.js.map +0 -1
  1296. package/lib/graph/scatter/index.js +0 -12
  1297. package/lib/graph/scatter/index.js.map +0 -1
  1298. package/lib/graph/scatter/props.js +0 -63
  1299. package/lib/graph/scatter/props.js.map +0 -1
  1300. package/lib/index.js +0 -155
  1301. package/lib/index.js.map +0 -1
  1302. package/lib/map/map/Map.js +0 -185
  1303. package/lib/map/map/Map.js.map +0 -1
  1304. package/lib/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1305. package/lib/map/map/Map.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1306. package/lib/map/map/index.js +0 -11
  1307. package/lib/map/map/index.js.map +0 -1
  1308. package/lib/map/map/props.js +0 -49
  1309. package/lib/map/map/props.js.map +0 -1
  1310. package/lib/media/image/Image.js +0 -67
  1311. package/lib/media/image/Image.js.map +0 -1
  1312. package/lib/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  1313. package/lib/media/image/Image.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  1314. package/lib/media/image/index.js +0 -11
  1315. package/lib/media/image/index.js.map +0 -1
  1316. package/lib/media/image/props.js +0 -19
  1317. package/lib/media/image/props.js.map +0 -1
  1318. package/lib/node_modules/@ant-design/colors/dist/index.esm.js +0 -176
  1319. package/lib/node_modules/@ant-design/colors/dist/index.esm.js.map +0 -1
  1320. package/lib/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js +0 -6
  1321. package/lib/node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js.map +0 -1
  1322. package/lib/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js +0 -166
  1323. package/lib/node_modules/@ant-design/icons-vue/es/components/AntdIcon.js.map +0 -1
  1324. package/lib/node_modules/@ant-design/icons-vue/es/components/IconBase.js +0 -114
  1325. package/lib/node_modules/@ant-design/icons-vue/es/components/IconBase.js.map +0 -1
  1326. package/lib/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js +0 -80
  1327. package/lib/node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js.map +0 -1
  1328. package/lib/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js +0 -39
  1329. package/lib/node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js.map +0 -1
  1330. package/lib/node_modules/@ant-design/icons-vue/es/insert-css.js +0 -45
  1331. package/lib/node_modules/@ant-design/icons-vue/es/insert-css.js.map +0 -1
  1332. package/lib/node_modules/@ant-design/icons-vue/es/utils.js +0 -86
  1333. package/lib/node_modules/@ant-design/icons-vue/es/utils.js.map +0 -1
  1334. package/lib/node_modules/@babel/runtime/helpers/esm/extends.js +0 -18
  1335. package/lib/node_modules/@babel/runtime/helpers/esm/extends.js.map +0 -1
  1336. package/lib/node_modules/@ctrl/tinycolor/dist/module/conversion.js +0 -116
  1337. package/lib/node_modules/@ctrl/tinycolor/dist/module/conversion.js.map +0 -1
  1338. package/lib/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +0 -154
  1339. package/lib/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js.map +0 -1
  1340. package/lib/node_modules/@ctrl/tinycolor/dist/module/format-input.js +0 -149
  1341. package/lib/node_modules/@ctrl/tinycolor/dist/module/format-input.js.map +0 -1
  1342. package/lib/node_modules/@ctrl/tinycolor/dist/module/util.js +0 -50
  1343. package/lib/node_modules/@ctrl/tinycolor/dist/module/util.js.map +0 -1
  1344. package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -4
  1345. package/lib/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  1346. package/lib/node_modules/ant-design-vue/es/button/style/index.js +0 -5
  1347. package/lib/node_modules/ant-design-vue/es/button/style/index.js.map +0 -1
  1348. package/lib/node_modules/ant-design-vue/es/checkbox/style/index.js +0 -5
  1349. package/lib/node_modules/ant-design-vue/es/checkbox/style/index.js.map +0 -1
  1350. package/lib/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js +0 -24
  1351. package/lib/node_modules/ant-design-vue/es/date-picker/locale/zh_CN.js.map +0 -1
  1352. package/lib/node_modules/ant-design-vue/es/date-picker/style/index.js +0 -5
  1353. package/lib/node_modules/ant-design-vue/es/date-picker/style/index.js.map +0 -1
  1354. package/lib/node_modules/ant-design-vue/es/dropdown/style/index.js +0 -5
  1355. package/lib/node_modules/ant-design-vue/es/dropdown/style/index.js.map +0 -1
  1356. package/lib/node_modules/ant-design-vue/es/empty/style/index.js +0 -5
  1357. package/lib/node_modules/ant-design-vue/es/empty/style/index.js.map +0 -1
  1358. package/lib/node_modules/ant-design-vue/es/input/style/index.js +0 -5
  1359. package/lib/node_modules/ant-design-vue/es/input/style/index.js.map +0 -1
  1360. package/lib/node_modules/ant-design-vue/es/modal/style/index.js +0 -5
  1361. package/lib/node_modules/ant-design-vue/es/modal/style/index.js.map +0 -1
  1362. package/lib/node_modules/ant-design-vue/es/pagination/style/index.js +0 -5
  1363. package/lib/node_modules/ant-design-vue/es/pagination/style/index.js.map +0 -1
  1364. package/lib/node_modules/ant-design-vue/es/progress/style/index.js +0 -5
  1365. package/lib/node_modules/ant-design-vue/es/progress/style/index.js.map +0 -1
  1366. package/lib/node_modules/ant-design-vue/es/radio/style/index.js +0 -5
  1367. package/lib/node_modules/ant-design-vue/es/radio/style/index.js.map +0 -1
  1368. package/lib/node_modules/ant-design-vue/es/select/style/index.js +0 -5
  1369. package/lib/node_modules/ant-design-vue/es/select/style/index.js.map +0 -1
  1370. package/lib/node_modules/ant-design-vue/es/skeleton/style/index.js +0 -5
  1371. package/lib/node_modules/ant-design-vue/es/skeleton/style/index.js.map +0 -1
  1372. package/lib/node_modules/ant-design-vue/es/spin/style/index.js +0 -5
  1373. package/lib/node_modules/ant-design-vue/es/spin/style/index.js.map +0 -1
  1374. package/lib/node_modules/ant-design-vue/es/style/default.js +0 -5
  1375. package/lib/node_modules/ant-design-vue/es/style/default.js.map +0 -1
  1376. package/lib/node_modules/ant-design-vue/es/table/style/index.js +0 -5
  1377. package/lib/node_modules/ant-design-vue/es/table/style/index.js.map +0 -1
  1378. package/lib/node_modules/ant-design-vue/es/tag/style/index.js +0 -5
  1379. package/lib/node_modules/ant-design-vue/es/tag/style/index.js.map +0 -1
  1380. package/lib/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js +0 -9
  1381. package/lib/node_modules/ant-design-vue/es/time-picker/locale/zh_CN.js.map +0 -1
  1382. package/lib/node_modules/ant-design-vue/es/tooltip/style/index.js +0 -5
  1383. package/lib/node_modules/ant-design-vue/es/tooltip/style/index.js.map +0 -1
  1384. package/lib/node_modules/ant-design-vue/es/tree/style/index.js +0 -5
  1385. package/lib/node_modules/ant-design-vue/es/tree/style/index.js.map +0 -1
  1386. package/lib/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js +0 -33
  1387. package/lib/node_modules/ant-design-vue/es/vc-picker/locale/zh_CN.js.map +0 -1
  1388. package/lib/node_modules/axios/index.js +0 -12
  1389. package/lib/node_modules/axios/index.js.map +0 -1
  1390. package/lib/node_modules/axios/lib/adapters/xhr.js +0 -166
  1391. package/lib/node_modules/axios/lib/adapters/xhr.js.map +0 -1
  1392. package/lib/node_modules/axios/lib/axios.js +0 -44
  1393. package/lib/node_modules/axios/lib/axios.js.map +0 -1
  1394. package/lib/node_modules/axios/lib/cancel/Cancel.js +0 -20
  1395. package/lib/node_modules/axios/lib/cancel/Cancel.js.map +0 -1
  1396. package/lib/node_modules/axios/lib/cancel/CancelToken.js +0 -88
  1397. package/lib/node_modules/axios/lib/cancel/CancelToken.js.map +0 -1
  1398. package/lib/node_modules/axios/lib/cancel/isCancel.js +0 -15
  1399. package/lib/node_modules/axios/lib/cancel/isCancel.js.map +0 -1
  1400. package/lib/node_modules/axios/lib/core/Axios.js +0 -121
  1401. package/lib/node_modules/axios/lib/core/Axios.js.map +0 -1
  1402. package/lib/node_modules/axios/lib/core/InterceptorManager.js +0 -31
  1403. package/lib/node_modules/axios/lib/core/InterceptorManager.js.map +0 -1
  1404. package/lib/node_modules/axios/lib/core/buildFullPath.js +0 -22
  1405. package/lib/node_modules/axios/lib/core/buildFullPath.js.map +0 -1
  1406. package/lib/node_modules/axios/lib/core/createError.js +0 -18
  1407. package/lib/node_modules/axios/lib/core/createError.js.map +0 -1
  1408. package/lib/node_modules/axios/lib/core/dispatchRequest.js +0 -67
  1409. package/lib/node_modules/axios/lib/core/dispatchRequest.js.map +0 -1
  1410. package/lib/node_modules/axios/lib/core/enhanceError.js +0 -29
  1411. package/lib/node_modules/axios/lib/core/enhanceError.js.map +0 -1
  1412. package/lib/node_modules/axios/lib/core/mergeConfig.js +0 -80
  1413. package/lib/node_modules/axios/lib/core/mergeConfig.js.map +0 -1
  1414. package/lib/node_modules/axios/lib/core/settle.js +0 -28
  1415. package/lib/node_modules/axios/lib/core/settle.js.map +0 -1
  1416. package/lib/node_modules/axios/lib/core/transformData.js +0 -15
  1417. package/lib/node_modules/axios/lib/core/transformData.js.map +0 -1
  1418. package/lib/node_modules/axios/lib/defaults.js +0 -115
  1419. package/lib/node_modules/axios/lib/defaults.js.map +0 -1
  1420. package/lib/node_modules/axios/lib/env/data.js +0 -15
  1421. package/lib/node_modules/axios/lib/env/data.js.map +0 -1
  1422. package/lib/node_modules/axios/lib/helpers/bind.js +0 -13
  1423. package/lib/node_modules/axios/lib/helpers/bind.js.map +0 -1
  1424. package/lib/node_modules/axios/lib/helpers/buildURL.js +0 -49
  1425. package/lib/node_modules/axios/lib/helpers/buildURL.js.map +0 -1
  1426. package/lib/node_modules/axios/lib/helpers/combineURLs.js +0 -15
  1427. package/lib/node_modules/axios/lib/helpers/combineURLs.js.map +0 -1
  1428. package/lib/node_modules/axios/lib/helpers/cookies.js +0 -52
  1429. package/lib/node_modules/axios/lib/helpers/cookies.js.map +0 -1
  1430. package/lib/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -15
  1431. package/lib/node_modules/axios/lib/helpers/isAbsoluteURL.js.map +0 -1
  1432. package/lib/node_modules/axios/lib/helpers/isAxiosError.js +0 -17
  1433. package/lib/node_modules/axios/lib/helpers/isAxiosError.js.map +0 -1
  1434. package/lib/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -46
  1435. package/lib/node_modules/axios/lib/helpers/isURLSameOrigin.js.map +0 -1
  1436. package/lib/node_modules/axios/lib/helpers/normalizeHeaderName.js +0 -14
  1437. package/lib/node_modules/axios/lib/helpers/normalizeHeaderName.js.map +0 -1
  1438. package/lib/node_modules/axios/lib/helpers/parseHeaders.js +0 -58
  1439. package/lib/node_modules/axios/lib/helpers/parseHeaders.js.map +0 -1
  1440. package/lib/node_modules/axios/lib/helpers/spread.js +0 -17
  1441. package/lib/node_modules/axios/lib/helpers/spread.js.map +0 -1
  1442. package/lib/node_modules/axios/lib/helpers/validator.js +0 -59
  1443. package/lib/node_modules/axios/lib/helpers/validator.js.map +0 -1
  1444. package/lib/node_modules/axios/lib/utils.js +0 -151
  1445. package/lib/node_modules/axios/lib/utils.js.map +0 -1
  1446. package/lib/node_modules/echarts/lib/action/roamHelper.js +0 -38
  1447. package/lib/node_modules/echarts/lib/action/roamHelper.js.map +0 -1
  1448. package/lib/node_modules/echarts/lib/animation/basicTrasition.js +0 -147
  1449. package/lib/node_modules/echarts/lib/animation/basicTrasition.js.map +0 -1
  1450. package/lib/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js +0 -92
  1451. package/lib/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js.map +0 -1
  1452. package/lib/node_modules/echarts/lib/animation/customGraphicTransition.js +0 -388
  1453. package/lib/node_modules/echarts/lib/animation/customGraphicTransition.js.map +0 -1
  1454. package/lib/node_modules/echarts/lib/chart/bar/BarSeries.js +0 -63
  1455. package/lib/node_modules/echarts/lib/chart/bar/BarSeries.js.map +0 -1
  1456. package/lib/node_modules/echarts/lib/chart/bar/BarView.js +0 -770
  1457. package/lib/node_modules/echarts/lib/chart/bar/BarView.js.map +0 -1
  1458. package/lib/node_modules/echarts/lib/chart/bar/BaseBarSeries.js +0 -48
  1459. package/lib/node_modules/echarts/lib/chart/bar/BaseBarSeries.js.map +0 -1
  1460. package/lib/node_modules/echarts/lib/chart/bar/install.js +0 -31
  1461. package/lib/node_modules/echarts/lib/chart/bar/install.js.map +0 -1
  1462. package/lib/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js +0 -245
  1463. package/lib/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js.map +0 -1
  1464. package/lib/node_modules/echarts/lib/chart/helper/Symbol.js +0 -247
  1465. package/lib/node_modules/echarts/lib/chart/helper/Symbol.js.map +0 -1
  1466. package/lib/node_modules/echarts/lib/chart/helper/SymbolDraw.js +0 -155
  1467. package/lib/node_modules/echarts/lib/chart/helper/SymbolDraw.js.map +0 -1
  1468. package/lib/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js +0 -102
  1469. package/lib/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js.map +0 -1
  1470. package/lib/node_modules/echarts/lib/chart/helper/createRenderPlanner.js +0 -17
  1471. package/lib/node_modules/echarts/lib/chart/helper/createRenderPlanner.js.map +0 -1
  1472. package/lib/node_modules/echarts/lib/chart/helper/createSeriesData.js +0 -117
  1473. package/lib/node_modules/echarts/lib/chart/helper/createSeriesData.js.map +0 -1
  1474. package/lib/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js +0 -19
  1475. package/lib/node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js.map +0 -1
  1476. package/lib/node_modules/echarts/lib/chart/helper/labelHelper.js +0 -35
  1477. package/lib/node_modules/echarts/lib/chart/helper/labelHelper.js.map +0 -1
  1478. package/lib/node_modules/echarts/lib/chart/helper/pieHelper.js +0 -23
  1479. package/lib/node_modules/echarts/lib/chart/helper/pieHelper.js.map +0 -1
  1480. package/lib/node_modules/echarts/lib/chart/line/LineSeries.js +0 -94
  1481. package/lib/node_modules/echarts/lib/chart/line/LineSeries.js.map +0 -1
  1482. package/lib/node_modules/echarts/lib/chart/line/LineView.js +0 -968
  1483. package/lib/node_modules/echarts/lib/chart/line/LineView.js.map +0 -1
  1484. package/lib/node_modules/echarts/lib/chart/line/helper.js +0 -79
  1485. package/lib/node_modules/echarts/lib/chart/line/helper.js.map +0 -1
  1486. package/lib/node_modules/echarts/lib/chart/line/install.js +0 -25
  1487. package/lib/node_modules/echarts/lib/chart/line/install.js.map +0 -1
  1488. package/lib/node_modules/echarts/lib/chart/line/lineAnimationDiff.js +0 -113
  1489. package/lib/node_modules/echarts/lib/chart/line/lineAnimationDiff.js.map +0 -1
  1490. package/lib/node_modules/echarts/lib/chart/line/poly.js +0 -292
  1491. package/lib/node_modules/echarts/lib/chart/line/poly.js.map +0 -1
  1492. package/lib/node_modules/echarts/lib/chart/map/MapSeries.js +0 -153
  1493. package/lib/node_modules/echarts/lib/chart/map/MapSeries.js.map +0 -1
  1494. package/lib/node_modules/echarts/lib/chart/map/MapView.js +0 -111
  1495. package/lib/node_modules/echarts/lib/chart/map/MapView.js.map +0 -1
  1496. package/lib/node_modules/echarts/lib/chart/map/install.js +0 -19
  1497. package/lib/node_modules/echarts/lib/chart/map/install.js.map +0 -1
  1498. package/lib/node_modules/echarts/lib/chart/map/mapDataStatistic.js +0 -62
  1499. package/lib/node_modules/echarts/lib/chart/map/mapDataStatistic.js.map +0 -1
  1500. package/lib/node_modules/echarts/lib/chart/map/mapSymbolLayout.js +0 -43
  1501. package/lib/node_modules/echarts/lib/chart/map/mapSymbolLayout.js.map +0 -1
  1502. package/lib/node_modules/echarts/lib/chart/pie/PieSeries.js +0 -118
  1503. package/lib/node_modules/echarts/lib/chart/pie/PieSeries.js.map +0 -1
  1504. package/lib/node_modules/echarts/lib/chart/pie/PieView.js +0 -223
  1505. package/lib/node_modules/echarts/lib/chart/pie/PieView.js.map +0 -1
  1506. package/lib/node_modules/echarts/lib/chart/pie/install.js +0 -19
  1507. package/lib/node_modules/echarts/lib/chart/pie/install.js.map +0 -1
  1508. package/lib/node_modules/echarts/lib/chart/pie/labelLayout.js +0 -383
  1509. package/lib/node_modules/echarts/lib/chart/pie/labelLayout.js.map +0 -1
  1510. package/lib/node_modules/echarts/lib/chart/pie/pieLayout.js +0 -133
  1511. package/lib/node_modules/echarts/lib/chart/pie/pieLayout.js.map +0 -1
  1512. package/lib/node_modules/echarts/lib/chart/scatter/ScatterSeries.js +0 -68
  1513. package/lib/node_modules/echarts/lib/chart/scatter/ScatterSeries.js.map +0 -1
  1514. package/lib/node_modules/echarts/lib/chart/scatter/ScatterView.js +0 -86
  1515. package/lib/node_modules/echarts/lib/chart/scatter/ScatterView.js.map +0 -1
  1516. package/lib/node_modules/echarts/lib/chart/scatter/install.js +0 -15
  1517. package/lib/node_modules/echarts/lib/chart/scatter/install.js.map +0 -1
  1518. package/lib/node_modules/echarts/lib/component/axis/AxisBuilder.js +0 -477
  1519. package/lib/node_modules/echarts/lib/component/axis/AxisBuilder.js.map +0 -1
  1520. package/lib/node_modules/echarts/lib/component/axis/AxisView.js +0 -58
  1521. package/lib/node_modules/echarts/lib/component/axis/AxisView.js.map +0 -1
  1522. package/lib/node_modules/echarts/lib/component/axis/CartesianAxisView.js +0 -184
  1523. package/lib/node_modules/echarts/lib/component/axis/CartesianAxisView.js.map +0 -1
  1524. package/lib/node_modules/echarts/lib/component/axis/axisSplitHelper.js +0 -83
  1525. package/lib/node_modules/echarts/lib/component/axis/axisSplitHelper.js.map +0 -1
  1526. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js +0 -61
  1527. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js.map +0 -1
  1528. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js +0 -38
  1529. package/lib/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js.map +0 -1
  1530. package/lib/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js +0 -280
  1531. package/lib/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js.map +0 -1
  1532. package/lib/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js +0 -103
  1533. package/lib/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js.map +0 -1
  1534. package/lib/node_modules/echarts/lib/component/axisPointer/axisTrigger.js +0 -282
  1535. package/lib/node_modules/echarts/lib/component/axisPointer/axisTrigger.js.map +0 -1
  1536. package/lib/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js +0 -53
  1537. package/lib/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js.map +0 -1
  1538. package/lib/node_modules/echarts/lib/component/axisPointer/globalListener.js +0 -87
  1539. package/lib/node_modules/echarts/lib/component/axisPointer/globalListener.js.map +0 -1
  1540. package/lib/node_modules/echarts/lib/component/axisPointer/install.js +0 -33
  1541. package/lib/node_modules/echarts/lib/component/axisPointer/install.js.map +0 -1
  1542. package/lib/node_modules/echarts/lib/component/axisPointer/modelHelper.js +0 -184
  1543. package/lib/node_modules/echarts/lib/component/axisPointer/modelHelper.js.map +0 -1
  1544. package/lib/node_modules/echarts/lib/component/axisPointer/viewHelper.js +0 -140
  1545. package/lib/node_modules/echarts/lib/component/axisPointer/viewHelper.js.map +0 -1
  1546. package/lib/node_modules/echarts/lib/component/dataZoom/AxisProxy.js +0 -208
  1547. package/lib/node_modules/echarts/lib/component/dataZoom/AxisProxy.js.map +0 -1
  1548. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js +0 -294
  1549. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js.map +0 -1
  1550. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomView.js +0 -22
  1551. package/lib/node_modules/echarts/lib/component/dataZoom/DataZoomView.js.map +0 -1
  1552. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js +0 -17
  1553. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js.map +0 -1
  1554. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js +0 -17
  1555. package/lib/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js.map +0 -1
  1556. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js +0 -19
  1557. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js.map +0 -1
  1558. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js +0 -60
  1559. package/lib/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js.map +0 -1
  1560. package/lib/node_modules/echarts/lib/component/dataZoom/helper.js +0 -65
  1561. package/lib/node_modules/echarts/lib/component/dataZoom/helper.js.map +0 -1
  1562. package/lib/node_modules/echarts/lib/component/dataZoom/history.js +0 -68
  1563. package/lib/node_modules/echarts/lib/component/dataZoom/history.js.map +0 -1
  1564. package/lib/node_modules/echarts/lib/component/dataZoom/installCommon.js +0 -18
  1565. package/lib/node_modules/echarts/lib/component/dataZoom/installCommon.js.map +0 -1
  1566. package/lib/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js +0 -12
  1567. package/lib/node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js.map +0 -1
  1568. package/lib/node_modules/echarts/lib/component/dataset/install.js +0 -52
  1569. package/lib/node_modules/echarts/lib/component/dataset/install.js.map +0 -1
  1570. package/lib/node_modules/echarts/lib/component/geo/GeoView.js +0 -70
  1571. package/lib/node_modules/echarts/lib/component/geo/GeoView.js.map +0 -1
  1572. package/lib/node_modules/echarts/lib/component/geo/install.js +0 -89
  1573. package/lib/node_modules/echarts/lib/component/geo/install.js.map +0 -1
  1574. package/lib/node_modules/echarts/lib/component/graphic/GraphicModel.js +0 -163
  1575. package/lib/node_modules/echarts/lib/component/graphic/GraphicModel.js.map +0 -1
  1576. package/lib/node_modules/echarts/lib/component/graphic/GraphicView.js +0 -309
  1577. package/lib/node_modules/echarts/lib/component/graphic/GraphicView.js.map +0 -1
  1578. package/lib/node_modules/echarts/lib/component/graphic/install.js +0 -27
  1579. package/lib/node_modules/echarts/lib/component/graphic/install.js.map +0 -1
  1580. package/lib/node_modules/echarts/lib/component/grid/installSimple.js +0 -54
  1581. package/lib/node_modules/echarts/lib/component/grid/installSimple.js.map +0 -1
  1582. package/lib/node_modules/echarts/lib/component/helper/BrushController.js +0 -651
  1583. package/lib/node_modules/echarts/lib/component/helper/BrushController.js.map +0 -1
  1584. package/lib/node_modules/echarts/lib/component/helper/BrushTargetManager.js +0 -264
  1585. package/lib/node_modules/echarts/lib/component/helper/BrushTargetManager.js.map +0 -1
  1586. package/lib/node_modules/echarts/lib/component/helper/MapDraw.js +0 -511
  1587. package/lib/node_modules/echarts/lib/component/helper/MapDraw.js.map +0 -1
  1588. package/lib/node_modules/echarts/lib/component/helper/RoamController.js +0 -161
  1589. package/lib/node_modules/echarts/lib/component/helper/RoamController.js.map +0 -1
  1590. package/lib/node_modules/echarts/lib/component/helper/brushHelper.js +0 -33
  1591. package/lib/node_modules/echarts/lib/component/helper/brushHelper.js.map +0 -1
  1592. package/lib/node_modules/echarts/lib/component/helper/cursorHelper.js +0 -14
  1593. package/lib/node_modules/echarts/lib/component/helper/cursorHelper.js.map +0 -1
  1594. package/lib/node_modules/echarts/lib/component/helper/interactionMutex.js +0 -31
  1595. package/lib/node_modules/echarts/lib/component/helper/interactionMutex.js.map +0 -1
  1596. package/lib/node_modules/echarts/lib/component/helper/listComponent.js +0 -37
  1597. package/lib/node_modules/echarts/lib/component/helper/listComponent.js.map +0 -1
  1598. package/lib/node_modules/echarts/lib/component/helper/roamHelper.js +0 -29
  1599. package/lib/node_modules/echarts/lib/component/helper/roamHelper.js.map +0 -1
  1600. package/lib/node_modules/echarts/lib/component/helper/sliderMove.js +0 -48
  1601. package/lib/node_modules/echarts/lib/component/helper/sliderMove.js.map +0 -1
  1602. package/lib/node_modules/echarts/lib/component/legend/LegendModel.js +0 -243
  1603. package/lib/node_modules/echarts/lib/component/legend/LegendModel.js.map +0 -1
  1604. package/lib/node_modules/echarts/lib/component/legend/LegendView.js +0 -398
  1605. package/lib/node_modules/echarts/lib/component/legend/LegendView.js.map +0 -1
  1606. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js +0 -58
  1607. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js.map +0 -1
  1608. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendView.js +0 -298
  1609. package/lib/node_modules/echarts/lib/component/legend/ScrollableLegendView.js.map +0 -1
  1610. package/lib/node_modules/echarts/lib/component/legend/install.js +0 -11
  1611. package/lib/node_modules/echarts/lib/component/legend/install.js.map +0 -1
  1612. package/lib/node_modules/echarts/lib/component/legend/installLegendPlain.js +0 -17
  1613. package/lib/node_modules/echarts/lib/component/legend/installLegendPlain.js.map +0 -1
  1614. package/lib/node_modules/echarts/lib/component/legend/installLegendScroll.js +0 -15
  1615. package/lib/node_modules/echarts/lib/component/legend/installLegendScroll.js.map +0 -1
  1616. package/lib/node_modules/echarts/lib/component/legend/legendAction.js +0 -46
  1617. package/lib/node_modules/echarts/lib/component/legend/legendAction.js.map +0 -1
  1618. package/lib/node_modules/echarts/lib/component/legend/legendFilter.js +0 -19
  1619. package/lib/node_modules/echarts/lib/component/legend/legendFilter.js.map +0 -1
  1620. package/lib/node_modules/echarts/lib/component/legend/scrollableLegendAction.js +0 -16
  1621. package/lib/node_modules/echarts/lib/component/legend/scrollableLegendAction.js.map +0 -1
  1622. package/lib/node_modules/echarts/lib/component/title/install.js +0 -177
  1623. package/lib/node_modules/echarts/lib/component/title/install.js.map +0 -1
  1624. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxModel.js +0 -64
  1625. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxModel.js.map +0 -1
  1626. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxView.js +0 -221
  1627. package/lib/node_modules/echarts/lib/component/toolbox/ToolboxView.js.map +0 -1
  1628. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataView.js +0 -364
  1629. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataView.js.map +0 -1
  1630. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js +0 -199
  1631. package/lib/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js.map +0 -1
  1632. package/lib/node_modules/echarts/lib/component/toolbox/feature/MagicType.js +0 -154
  1633. package/lib/node_modules/echarts/lib/component/toolbox/feature/MagicType.js.map +0 -1
  1634. package/lib/node_modules/echarts/lib/component/toolbox/feature/Restore.js +0 -38
  1635. package/lib/node_modules/echarts/lib/component/toolbox/feature/Restore.js.map +0 -1
  1636. package/lib/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js +0 -89
  1637. package/lib/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js.map +0 -1
  1638. package/lib/node_modules/echarts/lib/component/toolbox/featureManager.js +0 -18
  1639. package/lib/node_modules/echarts/lib/component/toolbox/featureManager.js.map +0 -1
  1640. package/lib/node_modules/echarts/lib/component/toolbox/install.js +0 -24
  1641. package/lib/node_modules/echarts/lib/component/toolbox/install.js.map +0 -1
  1642. package/lib/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js +0 -288
  1643. package/lib/node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js.map +0 -1
  1644. package/lib/node_modules/echarts/lib/component/tooltip/TooltipModel.js +0 -59
  1645. package/lib/node_modules/echarts/lib/component/tooltip/TooltipModel.js.map +0 -1
  1646. package/lib/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js +0 -150
  1647. package/lib/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js.map +0 -1
  1648. package/lib/node_modules/echarts/lib/component/tooltip/TooltipView.js +0 -676
  1649. package/lib/node_modules/echarts/lib/component/tooltip/TooltipView.js.map +0 -1
  1650. package/lib/node_modules/echarts/lib/component/tooltip/helper.js +0 -40
  1651. package/lib/node_modules/echarts/lib/component/tooltip/helper.js.map +0 -1
  1652. package/lib/node_modules/echarts/lib/component/tooltip/install.js +0 -24
  1653. package/lib/node_modules/echarts/lib/component/tooltip/install.js.map +0 -1
  1654. package/lib/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js +0 -89
  1655. package/lib/node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js.map +0 -1
  1656. package/lib/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js +0 -238
  1657. package/lib/node_modules/echarts/lib/component/tooltip/tooltipMarkup.js.map +0 -1
  1658. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousModel.js +0 -167
  1659. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousModel.js.map +0 -1
  1660. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousView.js +0 -583
  1661. package/lib/node_modules/echarts/lib/component/visualMap/ContinuousView.js.map +0 -1
  1662. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js +0 -331
  1663. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js.map +0 -1
  1664. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseView.js +0 -167
  1665. package/lib/node_modules/echarts/lib/component/visualMap/PiecewiseView.js.map +0 -1
  1666. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapModel.js +0 -263
  1667. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapModel.js.map +0 -1
  1668. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapView.js +0 -100
  1669. package/lib/node_modules/echarts/lib/component/visualMap/VisualMapView.js.map +0 -1
  1670. package/lib/node_modules/echarts/lib/component/visualMap/helper.js +0 -40
  1671. package/lib/node_modules/echarts/lib/component/visualMap/helper.js.map +0 -1
  1672. package/lib/node_modules/echarts/lib/component/visualMap/install.js +0 -11
  1673. package/lib/node_modules/echarts/lib/component/visualMap/install.js.map +0 -1
  1674. package/lib/node_modules/echarts/lib/component/visualMap/installCommon.js +0 -23
  1675. package/lib/node_modules/echarts/lib/component/visualMap/installCommon.js.map +0 -1
  1676. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js +0 -12
  1677. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js.map +0 -1
  1678. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js +0 -12
  1679. package/lib/node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js.map +0 -1
  1680. package/lib/node_modules/echarts/lib/component/visualMap/preprocessor.js +0 -37
  1681. package/lib/node_modules/echarts/lib/component/visualMap/preprocessor.js.map +0 -1
  1682. package/lib/node_modules/echarts/lib/component/visualMap/visualEncoding.js +0 -64
  1683. package/lib/node_modules/echarts/lib/component/visualMap/visualEncoding.js.map +0 -1
  1684. package/lib/node_modules/echarts/lib/component/visualMap/visualMapAction.js +0 -18
  1685. package/lib/node_modules/echarts/lib/component/visualMap/visualMapAction.js.map +0 -1
  1686. package/lib/node_modules/echarts/lib/coord/Axis.js +0 -173
  1687. package/lib/node_modules/echarts/lib/coord/Axis.js.map +0 -1
  1688. package/lib/node_modules/echarts/lib/coord/CoordinateSystem.js +0 -7
  1689. package/lib/node_modules/echarts/lib/coord/CoordinateSystem.js.map +0 -1
  1690. package/lib/node_modules/echarts/lib/coord/View.js +0 -163
  1691. package/lib/node_modules/echarts/lib/coord/View.js.map +0 -1
  1692. package/lib/node_modules/echarts/lib/coord/axisAlignTicks.js +0 -86
  1693. package/lib/node_modules/echarts/lib/coord/axisAlignTicks.js.map +0 -1
  1694. package/lib/node_modules/echarts/lib/coord/axisCommonTypes.js +0 -10
  1695. package/lib/node_modules/echarts/lib/coord/axisCommonTypes.js.map +0 -1
  1696. package/lib/node_modules/echarts/lib/coord/axisDefault.js +0 -130
  1697. package/lib/node_modules/echarts/lib/coord/axisDefault.js.map +0 -1
  1698. package/lib/node_modules/echarts/lib/coord/axisHelper.js +0 -231
  1699. package/lib/node_modules/echarts/lib/coord/axisHelper.js.map +0 -1
  1700. package/lib/node_modules/echarts/lib/coord/axisModelCommonMixin.js +0 -16
  1701. package/lib/node_modules/echarts/lib/coord/axisModelCommonMixin.js.map +0 -1
  1702. package/lib/node_modules/echarts/lib/coord/axisModelCreator.js +0 -60
  1703. package/lib/node_modules/echarts/lib/coord/axisModelCreator.js.map +0 -1
  1704. package/lib/node_modules/echarts/lib/coord/axisTickLabelBuilder.js +0 -225
  1705. package/lib/node_modules/echarts/lib/coord/axisTickLabelBuilder.js.map +0 -1
  1706. package/lib/node_modules/echarts/lib/coord/cartesian/Axis2D.js +0 -39
  1707. package/lib/node_modules/echarts/lib/coord/cartesian/Axis2D.js.map +0 -1
  1708. package/lib/node_modules/echarts/lib/coord/cartesian/AxisModel.js +0 -22
  1709. package/lib/node_modules/echarts/lib/coord/cartesian/AxisModel.js.map +0 -1
  1710. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian.js +0 -34
  1711. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian.js.map +0 -1
  1712. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js +0 -113
  1713. package/lib/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js.map +0 -1
  1714. package/lib/node_modules/echarts/lib/coord/cartesian/Grid.js +0 -380
  1715. package/lib/node_modules/echarts/lib/coord/cartesian/Grid.js.map +0 -1
  1716. package/lib/node_modules/echarts/lib/coord/cartesian/GridModel.js +0 -29
  1717. package/lib/node_modules/echarts/lib/coord/cartesian/GridModel.js.map +0 -1
  1718. package/lib/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js +0 -73
  1719. package/lib/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js.map +0 -1
  1720. package/lib/node_modules/echarts/lib/coord/geo/Geo.js +0 -148
  1721. package/lib/node_modules/echarts/lib/coord/geo/Geo.js.map +0 -1
  1722. package/lib/node_modules/echarts/lib/coord/geo/GeoJSONResource.js +0 -87
  1723. package/lib/node_modules/echarts/lib/coord/geo/GeoJSONResource.js.map +0 -1
  1724. package/lib/node_modules/echarts/lib/coord/geo/GeoModel.js +0 -140
  1725. package/lib/node_modules/echarts/lib/coord/geo/GeoModel.js.map +0 -1
  1726. package/lib/node_modules/echarts/lib/coord/geo/GeoSVGResource.js +0 -165
  1727. package/lib/node_modules/echarts/lib/coord/geo/GeoSVGResource.js.map +0 -1
  1728. package/lib/node_modules/echarts/lib/coord/geo/Region.js +0 -222
  1729. package/lib/node_modules/echarts/lib/coord/geo/Region.js.map +0 -1
  1730. package/lib/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js +0 -13
  1731. package/lib/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js.map +0 -1
  1732. package/lib/node_modules/echarts/lib/coord/geo/fix/nanhai.js +0 -32
  1733. package/lib/node_modules/echarts/lib/coord/geo/fix/nanhai.js.map +0 -1
  1734. package/lib/node_modules/echarts/lib/coord/geo/fix/textCoord.js +0 -22
  1735. package/lib/node_modules/echarts/lib/coord/geo/fix/textCoord.js.map +0 -1
  1736. package/lib/node_modules/echarts/lib/coord/geo/geoCreator.js +0 -174
  1737. package/lib/node_modules/echarts/lib/coord/geo/geoCreator.js.map +0 -1
  1738. package/lib/node_modules/echarts/lib/coord/geo/geoSourceManager.js +0 -42
  1739. package/lib/node_modules/echarts/lib/coord/geo/geoSourceManager.js.map +0 -1
  1740. package/lib/node_modules/echarts/lib/coord/geo/parseGeoJson.js +0 -95
  1741. package/lib/node_modules/echarts/lib/coord/geo/parseGeoJson.js.map +0 -1
  1742. package/lib/node_modules/echarts/lib/coord/scaleRawExtentInfo.js +0 -137
  1743. package/lib/node_modules/echarts/lib/coord/scaleRawExtentInfo.js.map +0 -1
  1744. package/lib/node_modules/echarts/lib/core/CoordinateSystem.js +0 -35
  1745. package/lib/node_modules/echarts/lib/core/CoordinateSystem.js.map +0 -1
  1746. package/lib/node_modules/echarts/lib/core/ExtensionAPI.js +0 -31
  1747. package/lib/node_modules/echarts/lib/core/ExtensionAPI.js.map +0 -1
  1748. package/lib/node_modules/echarts/lib/core/Scheduler.js +0 -350
  1749. package/lib/node_modules/echarts/lib/core/Scheduler.js.map +0 -1
  1750. package/lib/node_modules/echarts/lib/core/echarts.js +0 -1756
  1751. package/lib/node_modules/echarts/lib/core/echarts.js.map +0 -1
  1752. package/lib/node_modules/echarts/lib/core/impl.js +0 -23
  1753. package/lib/node_modules/echarts/lib/core/impl.js.map +0 -1
  1754. package/lib/node_modules/echarts/lib/core/lifecycle.js +0 -7
  1755. package/lib/node_modules/echarts/lib/core/lifecycle.js.map +0 -1
  1756. package/lib/node_modules/echarts/lib/core/locale.js +0 -47
  1757. package/lib/node_modules/echarts/lib/core/locale.js.map +0 -1
  1758. package/lib/node_modules/echarts/lib/core/task.js +0 -181
  1759. package/lib/node_modules/echarts/lib/core/task.js.map +0 -1
  1760. package/lib/node_modules/echarts/lib/data/DataDiffer.js +0 -152
  1761. package/lib/node_modules/echarts/lib/data/DataDiffer.js.map +0 -1
  1762. package/lib/node_modules/echarts/lib/data/DataStore.js +0 -783
  1763. package/lib/node_modules/echarts/lib/data/DataStore.js.map +0 -1
  1764. package/lib/node_modules/echarts/lib/data/OrdinalMeta.js +0 -63
  1765. package/lib/node_modules/echarts/lib/data/OrdinalMeta.js.map +0 -1
  1766. package/lib/node_modules/echarts/lib/data/SeriesData.js +0 -663
  1767. package/lib/node_modules/echarts/lib/data/SeriesData.js.map +0 -1
  1768. package/lib/node_modules/echarts/lib/data/SeriesDimensionDefine.js +0 -15
  1769. package/lib/node_modules/echarts/lib/data/SeriesDimensionDefine.js.map +0 -1
  1770. package/lib/node_modules/echarts/lib/data/Source.js +0 -217
  1771. package/lib/node_modules/echarts/lib/data/Source.js.map +0 -1
  1772. package/lib/node_modules/echarts/lib/data/helper/SeriesDataSchema.js +0 -142
  1773. package/lib/node_modules/echarts/lib/data/helper/SeriesDataSchema.js.map +0 -1
  1774. package/lib/node_modules/echarts/lib/data/helper/createDimensions.js +0 -213
  1775. package/lib/node_modules/echarts/lib/data/helper/createDimensions.js.map +0 -1
  1776. package/lib/node_modules/echarts/lib/data/helper/dataProvider.js +0 -253
  1777. package/lib/node_modules/echarts/lib/data/helper/dataProvider.js.map +0 -1
  1778. package/lib/node_modules/echarts/lib/data/helper/dataStackHelper.js +0 -106
  1779. package/lib/node_modules/echarts/lib/data/helper/dataStackHelper.js.map +0 -1
  1780. package/lib/node_modules/echarts/lib/data/helper/dataValueHelper.js +0 -62
  1781. package/lib/node_modules/echarts/lib/data/helper/dataValueHelper.js.map +0 -1
  1782. package/lib/node_modules/echarts/lib/data/helper/dimensionHelper.js +0 -100
  1783. package/lib/node_modules/echarts/lib/data/helper/dimensionHelper.js.map +0 -1
  1784. package/lib/node_modules/echarts/lib/data/helper/sourceHelper.js +0 -242
  1785. package/lib/node_modules/echarts/lib/data/helper/sourceHelper.js.map +0 -1
  1786. package/lib/node_modules/echarts/lib/data/helper/sourceManager.js +0 -231
  1787. package/lib/node_modules/echarts/lib/data/helper/sourceManager.js.map +0 -1
  1788. package/lib/node_modules/echarts/lib/data/helper/transform.js +0 -293
  1789. package/lib/node_modules/echarts/lib/data/helper/transform.js.map +0 -1
  1790. package/lib/node_modules/echarts/lib/extension.js +0 -69
  1791. package/lib/node_modules/echarts/lib/extension.js.map +0 -1
  1792. package/lib/node_modules/echarts/lib/i18n/langEN.js +0 -113
  1793. package/lib/node_modules/echarts/lib/i18n/langEN.js.map +0 -1
  1794. package/lib/node_modules/echarts/lib/i18n/langZH.js +0 -113
  1795. package/lib/node_modules/echarts/lib/i18n/langZH.js.map +0 -1
  1796. package/lib/node_modules/echarts/lib/label/labelGuideHelper.js +0 -218
  1797. package/lib/node_modules/echarts/lib/label/labelGuideHelper.js.map +0 -1
  1798. package/lib/node_modules/echarts/lib/label/labelLayoutHelper.js +0 -222
  1799. package/lib/node_modules/echarts/lib/label/labelLayoutHelper.js.map +0 -1
  1800. package/lib/node_modules/echarts/lib/label/labelStyle.js +0 -351
  1801. package/lib/node_modules/echarts/lib/label/labelStyle.js.map +0 -1
  1802. package/lib/node_modules/echarts/lib/label/sectorLabel.js +0 -153
  1803. package/lib/node_modules/echarts/lib/label/sectorLabel.js.map +0 -1
  1804. package/lib/node_modules/echarts/lib/layout/barGrid.js +0 -366
  1805. package/lib/node_modules/echarts/lib/layout/barGrid.js.map +0 -1
  1806. package/lib/node_modules/echarts/lib/layout/points.js +0 -63
  1807. package/lib/node_modules/echarts/lib/layout/points.js.map +0 -1
  1808. package/lib/node_modules/echarts/lib/legacy/dataSelectAction.js +0 -76
  1809. package/lib/node_modules/echarts/lib/legacy/dataSelectAction.js.map +0 -1
  1810. package/lib/node_modules/echarts/lib/loading/default.js +0 -109
  1811. package/lib/node_modules/echarts/lib/loading/default.js.map +0 -1
  1812. package/lib/node_modules/echarts/lib/model/Component.js +0 -117
  1813. package/lib/node_modules/echarts/lib/model/Component.js.map +0 -1
  1814. package/lib/node_modules/echarts/lib/model/Global.js +0 -561
  1815. package/lib/node_modules/echarts/lib/model/Global.js.map +0 -1
  1816. package/lib/node_modules/echarts/lib/model/Model.js +0 -101
  1817. package/lib/node_modules/echarts/lib/model/Model.js.map +0 -1
  1818. package/lib/node_modules/echarts/lib/model/OptionManager.js +0 -186
  1819. package/lib/node_modules/echarts/lib/model/OptionManager.js.map +0 -1
  1820. package/lib/node_modules/echarts/lib/model/Series.js +0 -377
  1821. package/lib/node_modules/echarts/lib/model/Series.js.map +0 -1
  1822. package/lib/node_modules/echarts/lib/model/globalDefault.js +0 -73
  1823. package/lib/node_modules/echarts/lib/model/globalDefault.js.map +0 -1
  1824. package/lib/node_modules/echarts/lib/model/internalComponentCreator.js +0 -28
  1825. package/lib/node_modules/echarts/lib/model/internalComponentCreator.js.map +0 -1
  1826. package/lib/node_modules/echarts/lib/model/mixin/areaStyle.js +0 -23
  1827. package/lib/node_modules/echarts/lib/model/mixin/areaStyle.js.map +0 -1
  1828. package/lib/node_modules/echarts/lib/model/mixin/dataFormat.js +0 -114
  1829. package/lib/node_modules/echarts/lib/model/mixin/dataFormat.js.map +0 -1
  1830. package/lib/node_modules/echarts/lib/model/mixin/itemStyle.js +0 -30
  1831. package/lib/node_modules/echarts/lib/model/mixin/itemStyle.js.map +0 -1
  1832. package/lib/node_modules/echarts/lib/model/mixin/lineStyle.js +0 -29
  1833. package/lib/node_modules/echarts/lib/model/mixin/lineStyle.js.map +0 -1
  1834. package/lib/node_modules/echarts/lib/model/mixin/makeStyleMapper.js +0 -27
  1835. package/lib/node_modules/echarts/lib/model/mixin/makeStyleMapper.js.map +0 -1
  1836. package/lib/node_modules/echarts/lib/model/mixin/palette.js +0 -53
  1837. package/lib/node_modules/echarts/lib/model/mixin/palette.js.map +0 -1
  1838. package/lib/node_modules/echarts/lib/model/mixin/textStyle.js +0 -39
  1839. package/lib/node_modules/echarts/lib/model/mixin/textStyle.js.map +0 -1
  1840. package/lib/node_modules/echarts/lib/model/referHelper.js +0 -109
  1841. package/lib/node_modules/echarts/lib/model/referHelper.js.map +0 -1
  1842. package/lib/node_modules/echarts/lib/preprocessor/backwardCompat.js +0 -213
  1843. package/lib/node_modules/echarts/lib/preprocessor/backwardCompat.js.map +0 -1
  1844. package/lib/node_modules/echarts/lib/preprocessor/helper/compatStyle.js +0 -269
  1845. package/lib/node_modules/echarts/lib/preprocessor/helper/compatStyle.js.map +0 -1
  1846. package/lib/node_modules/echarts/lib/processor/dataFilter.js +0 -27
  1847. package/lib/node_modules/echarts/lib/processor/dataFilter.js.map +0 -1
  1848. package/lib/node_modules/echarts/lib/processor/dataSample.js +0 -78
  1849. package/lib/node_modules/echarts/lib/processor/dataSample.js.map +0 -1
  1850. package/lib/node_modules/echarts/lib/processor/dataStack.js +0 -72
  1851. package/lib/node_modules/echarts/lib/processor/dataStack.js.map +0 -1
  1852. package/lib/node_modules/echarts/lib/processor/negativeDataFilter.js +0 -21
  1853. package/lib/node_modules/echarts/lib/processor/negativeDataFilter.js.map +0 -1
  1854. package/lib/node_modules/echarts/lib/renderer/installCanvasRenderer.js +0 -8
  1855. package/lib/node_modules/echarts/lib/renderer/installCanvasRenderer.js.map +0 -1
  1856. package/lib/node_modules/echarts/lib/scale/Interval.js +0 -190
  1857. package/lib/node_modules/echarts/lib/scale/Interval.js.map +0 -1
  1858. package/lib/node_modules/echarts/lib/scale/Log.js +0 -119
  1859. package/lib/node_modules/echarts/lib/scale/Log.js.map +0 -1
  1860. package/lib/node_modules/echarts/lib/scale/Ordinal.js +0 -123
  1861. package/lib/node_modules/echarts/lib/scale/Ordinal.js.map +0 -1
  1862. package/lib/node_modules/echarts/lib/scale/Scale.js +0 -46
  1863. package/lib/node_modules/echarts/lib/scale/Scale.js.map +0 -1
  1864. package/lib/node_modules/echarts/lib/scale/Time.js +0 -374
  1865. package/lib/node_modules/echarts/lib/scale/Time.js.map +0 -1
  1866. package/lib/node_modules/echarts/lib/scale/helper.js +0 -77
  1867. package/lib/node_modules/echarts/lib/scale/helper.js.map +0 -1
  1868. package/lib/node_modules/echarts/lib/theme/dark.js +0 -180
  1869. package/lib/node_modules/echarts/lib/theme/dark.js.map +0 -1
  1870. package/lib/node_modules/echarts/lib/theme/light.js +0 -9
  1871. package/lib/node_modules/echarts/lib/theme/light.js.map +0 -1
  1872. package/lib/node_modules/echarts/lib/util/ECEventProcessor.js +0 -77
  1873. package/lib/node_modules/echarts/lib/util/ECEventProcessor.js.map +0 -1
  1874. package/lib/node_modules/echarts/lib/util/clazz.js +0 -164
  1875. package/lib/node_modules/echarts/lib/util/clazz.js.map +0 -1
  1876. package/lib/node_modules/echarts/lib/util/component.js +0 -117
  1877. package/lib/node_modules/echarts/lib/util/component.js.map +0 -1
  1878. package/lib/node_modules/echarts/lib/util/decal.js +0 -292
  1879. package/lib/node_modules/echarts/lib/util/decal.js.map +0 -1
  1880. package/lib/node_modules/echarts/lib/util/event.js +0 -17
  1881. package/lib/node_modules/echarts/lib/util/event.js.map +0 -1
  1882. package/lib/node_modules/echarts/lib/util/format.js +0 -140
  1883. package/lib/node_modules/echarts/lib/util/format.js.map +0 -1
  1884. package/lib/node_modules/echarts/lib/util/graphic.js +0 -375
  1885. package/lib/node_modules/echarts/lib/util/graphic.js.map +0 -1
  1886. package/lib/node_modules/echarts/lib/util/innerStore.js +0 -23
  1887. package/lib/node_modules/echarts/lib/util/innerStore.js.map +0 -1
  1888. package/lib/node_modules/echarts/lib/util/layout.js +0 -249
  1889. package/lib/node_modules/echarts/lib/util/layout.js.map +0 -1
  1890. package/lib/node_modules/echarts/lib/util/log.js +0 -81
  1891. package/lib/node_modules/echarts/lib/util/log.js.map +0 -1
  1892. package/lib/node_modules/echarts/lib/util/model.js +0 -457
  1893. package/lib/node_modules/echarts/lib/util/model.js.map +0 -1
  1894. package/lib/node_modules/echarts/lib/util/number.js +0 -306
  1895. package/lib/node_modules/echarts/lib/util/number.js.map +0 -1
  1896. package/lib/node_modules/echarts/lib/util/shape/sausage.js +0 -63
  1897. package/lib/node_modules/echarts/lib/util/shape/sausage.js.map +0 -1
  1898. package/lib/node_modules/echarts/lib/util/states.js +0 -596
  1899. package/lib/node_modules/echarts/lib/util/states.js.map +0 -1
  1900. package/lib/node_modules/echarts/lib/util/styleCompat.js +0 -73
  1901. package/lib/node_modules/echarts/lib/util/styleCompat.js.map +0 -1
  1902. package/lib/node_modules/echarts/lib/util/symbol.js +0 -266
  1903. package/lib/node_modules/echarts/lib/util/symbol.js.map +0 -1
  1904. package/lib/node_modules/echarts/lib/util/throttle.js +0 -85
  1905. package/lib/node_modules/echarts/lib/util/throttle.js.map +0 -1
  1906. package/lib/node_modules/echarts/lib/util/time.js +0 -253
  1907. package/lib/node_modules/echarts/lib/util/time.js.map +0 -1
  1908. package/lib/node_modules/echarts/lib/util/types.js +0 -22
  1909. package/lib/node_modules/echarts/lib/util/types.js.map +0 -1
  1910. package/lib/node_modules/echarts/lib/util/vendor.js +0 -13
  1911. package/lib/node_modules/echarts/lib/util/vendor.js.map +0 -1
  1912. package/lib/node_modules/echarts/lib/view/Chart.js +0 -132
  1913. package/lib/node_modules/echarts/lib/view/Chart.js.map +0 -1
  1914. package/lib/node_modules/echarts/lib/view/Component.js +0 -37
  1915. package/lib/node_modules/echarts/lib/view/Component.js.map +0 -1
  1916. package/lib/node_modules/echarts/lib/visual/LegendVisualProvider.js +0 -28
  1917. package/lib/node_modules/echarts/lib/visual/LegendVisualProvider.js.map +0 -1
  1918. package/lib/node_modules/echarts/lib/visual/VisualMapping.js +0 -366
  1919. package/lib/node_modules/echarts/lib/visual/VisualMapping.js.map +0 -1
  1920. package/lib/node_modules/echarts/lib/visual/decal.js +0 -27
  1921. package/lib/node_modules/echarts/lib/visual/decal.js.map +0 -1
  1922. package/lib/node_modules/echarts/lib/visual/helper.js +0 -61
  1923. package/lib/node_modules/echarts/lib/visual/helper.js.map +0 -1
  1924. package/lib/node_modules/echarts/lib/visual/style.js +0 -159
  1925. package/lib/node_modules/echarts/lib/visual/style.js.map +0 -1
  1926. package/lib/node_modules/echarts/lib/visual/symbol.js +0 -80
  1927. package/lib/node_modules/echarts/lib/visual/symbol.js.map +0 -1
  1928. package/lib/node_modules/echarts/lib/visual/visualDefault.js +0 -46
  1929. package/lib/node_modules/echarts/lib/visual/visualDefault.js.map +0 -1
  1930. package/lib/node_modules/echarts/lib/visual/visualSolution.js +0 -101
  1931. package/lib/node_modules/echarts/lib/visual/visualSolution.js.map +0 -1
  1932. package/lib/node_modules/echarts/node_modules/tslib/tslib.es6.js +0 -37
  1933. package/lib/node_modules/echarts/node_modules/tslib/tslib.es6.js.map +0 -1
  1934. package/lib/node_modules/resize-detector/esm/index.js +0 -259
  1935. package/lib/node_modules/resize-detector/esm/index.js.map +0 -1
  1936. package/lib/node_modules/zrender/lib/Element.js +0 -994
  1937. package/lib/node_modules/zrender/lib/Element.js.map +0 -1
  1938. package/lib/node_modules/zrender/lib/Handler.js +0 -257
  1939. package/lib/node_modules/zrender/lib/Handler.js.map +0 -1
  1940. package/lib/node_modules/zrender/lib/Storage.js +0 -158
  1941. package/lib/node_modules/zrender/lib/Storage.js.map +0 -1
  1942. package/lib/node_modules/zrender/lib/animation/Animation.js +0 -148
  1943. package/lib/node_modules/zrender/lib/animation/Animation.js.map +0 -1
  1944. package/lib/node_modules/zrender/lib/animation/Animator.js +0 -702
  1945. package/lib/node_modules/zrender/lib/animation/Animator.js.map +0 -1
  1946. package/lib/node_modules/zrender/lib/animation/Clip.js +0 -65
  1947. package/lib/node_modules/zrender/lib/animation/Clip.js.map +0 -1
  1948. package/lib/node_modules/zrender/lib/animation/cubicEasing.js +0 -24
  1949. package/lib/node_modules/zrender/lib/animation/cubicEasing.js.map +0 -1
  1950. package/lib/node_modules/zrender/lib/animation/easing.js +0 -189
  1951. package/lib/node_modules/zrender/lib/animation/easing.js.map +0 -1
  1952. package/lib/node_modules/zrender/lib/animation/requestAnimationFrame.js +0 -10
  1953. package/lib/node_modules/zrender/lib/animation/requestAnimationFrame.js.map +0 -1
  1954. package/lib/node_modules/zrender/lib/canvas/Layer.js +0 -283
  1955. package/lib/node_modules/zrender/lib/canvas/Layer.js.map +0 -1
  1956. package/lib/node_modules/zrender/lib/canvas/Painter.js +0 -618
  1957. package/lib/node_modules/zrender/lib/canvas/Painter.js.map +0 -1
  1958. package/lib/node_modules/zrender/lib/canvas/dashStyle.js +0 -27
  1959. package/lib/node_modules/zrender/lib/canvas/dashStyle.js.map +0 -1
  1960. package/lib/node_modules/zrender/lib/canvas/graphic.js +0 -522
  1961. package/lib/node_modules/zrender/lib/canvas/graphic.js.map +0 -1
  1962. package/lib/node_modules/zrender/lib/canvas/helper.js +0 -83
  1963. package/lib/node_modules/zrender/lib/canvas/helper.js.map +0 -1
  1964. package/lib/node_modules/zrender/lib/config.js +0 -18
  1965. package/lib/node_modules/zrender/lib/config.js.map +0 -1
  1966. package/lib/node_modules/zrender/lib/contain/arc.js +0 -37
  1967. package/lib/node_modules/zrender/lib/contain/arc.js.map +0 -1
  1968. package/lib/node_modules/zrender/lib/contain/cubic.js +0 -16
  1969. package/lib/node_modules/zrender/lib/contain/cubic.js.map +0 -1
  1970. package/lib/node_modules/zrender/lib/contain/line.js +0 -24
  1971. package/lib/node_modules/zrender/lib/contain/line.js.map +0 -1
  1972. package/lib/node_modules/zrender/lib/contain/path.js +0 -290
  1973. package/lib/node_modules/zrender/lib/contain/path.js.map +0 -1
  1974. package/lib/node_modules/zrender/lib/contain/polygon.js +0 -26
  1975. package/lib/node_modules/zrender/lib/contain/polygon.js.map +0 -1
  1976. package/lib/node_modules/zrender/lib/contain/quadratic.js +0 -16
  1977. package/lib/node_modules/zrender/lib/contain/quadratic.js.map +0 -1
  1978. package/lib/node_modules/zrender/lib/contain/text.js +0 -174
  1979. package/lib/node_modules/zrender/lib/contain/text.js.map +0 -1
  1980. package/lib/node_modules/zrender/lib/contain/util.js +0 -12
  1981. package/lib/node_modules/zrender/lib/contain/util.js.map +0 -1
  1982. package/lib/node_modules/zrender/lib/contain/windingLine.js +0 -19
  1983. package/lib/node_modules/zrender/lib/contain/windingLine.js.map +0 -1
  1984. package/lib/node_modules/zrender/lib/core/BoundingRect.js +0 -205
  1985. package/lib/node_modules/zrender/lib/core/BoundingRect.js.map +0 -1
  1986. package/lib/node_modules/zrender/lib/core/Eventful.js +0 -155
  1987. package/lib/node_modules/zrender/lib/core/Eventful.js.map +0 -1
  1988. package/lib/node_modules/zrender/lib/core/GestureMgr.js +0 -82
  1989. package/lib/node_modules/zrender/lib/core/GestureMgr.js.map +0 -1
  1990. package/lib/node_modules/zrender/lib/core/LRU.js +0 -110
  1991. package/lib/node_modules/zrender/lib/core/LRU.js.map +0 -1
  1992. package/lib/node_modules/zrender/lib/core/OrientedBoundingRect.js +0 -121
  1993. package/lib/node_modules/zrender/lib/core/OrientedBoundingRect.js.map +0 -1
  1994. package/lib/node_modules/zrender/lib/core/PathProxy.js +0 -697
  1995. package/lib/node_modules/zrender/lib/core/PathProxy.js.map +0 -1
  1996. package/lib/node_modules/zrender/lib/core/Point.js +0 -133
  1997. package/lib/node_modules/zrender/lib/core/Point.js.map +0 -1
  1998. package/lib/node_modules/zrender/lib/core/Transformable.js +0 -233
  1999. package/lib/node_modules/zrender/lib/core/Transformable.js.map +0 -1
  2000. package/lib/node_modules/zrender/lib/core/WeakMap.js +0 -45
  2001. package/lib/node_modules/zrender/lib/core/WeakMap.js.map +0 -1
  2002. package/lib/node_modules/zrender/lib/core/bbox.js +0 -109
  2003. package/lib/node_modules/zrender/lib/core/bbox.js.map +0 -1
  2004. package/lib/node_modules/zrender/lib/core/curve.js +0 -345
  2005. package/lib/node_modules/zrender/lib/core/curve.js.map +0 -1
  2006. package/lib/node_modules/zrender/lib/core/dom.js +0 -79
  2007. package/lib/node_modules/zrender/lib/core/dom.js.map +0 -1
  2008. package/lib/node_modules/zrender/lib/core/env.js +0 -73
  2009. package/lib/node_modules/zrender/lib/core/env.js.map +0 -1
  2010. package/lib/node_modules/zrender/lib/core/event.js +0 -101
  2011. package/lib/node_modules/zrender/lib/core/event.js.map +0 -1
  2012. package/lib/node_modules/zrender/lib/core/fourPointsTransform.js +0 -60
  2013. package/lib/node_modules/zrender/lib/core/fourPointsTransform.js.map +0 -1
  2014. package/lib/node_modules/zrender/lib/core/matrix.js +0 -104
  2015. package/lib/node_modules/zrender/lib/core/matrix.js.map +0 -1
  2016. package/lib/node_modules/zrender/lib/core/platform.js +0 -70
  2017. package/lib/node_modules/zrender/lib/core/platform.js.map +0 -1
  2018. package/lib/node_modules/zrender/lib/core/timsort.js +0 -512
  2019. package/lib/node_modules/zrender/lib/core/timsort.js.map +0 -1
  2020. package/lib/node_modules/zrender/lib/core/util.js +0 -508
  2021. package/lib/node_modules/zrender/lib/core/util.js.map +0 -1
  2022. package/lib/node_modules/zrender/lib/core/vector.js +0 -99
  2023. package/lib/node_modules/zrender/lib/core/vector.js.map +0 -1
  2024. package/lib/node_modules/zrender/lib/dom/HandlerProxy.js +0 -302
  2025. package/lib/node_modules/zrender/lib/dom/HandlerProxy.js.map +0 -1
  2026. package/lib/node_modules/zrender/lib/graphic/CompoundPath.js +0 -53
  2027. package/lib/node_modules/zrender/lib/graphic/CompoundPath.js.map +0 -1
  2028. package/lib/node_modules/zrender/lib/graphic/Displayable.js +0 -316
  2029. package/lib/node_modules/zrender/lib/graphic/Displayable.js.map +0 -1
  2030. package/lib/node_modules/zrender/lib/graphic/Gradient.js +0 -17
  2031. package/lib/node_modules/zrender/lib/graphic/Gradient.js.map +0 -1
  2032. package/lib/node_modules/zrender/lib/graphic/Group.js +0 -181
  2033. package/lib/node_modules/zrender/lib/graphic/Group.js.map +0 -1
  2034. package/lib/node_modules/zrender/lib/graphic/Image.js +0 -75
  2035. package/lib/node_modules/zrender/lib/graphic/Image.js.map +0 -1
  2036. package/lib/node_modules/zrender/lib/graphic/IncrementalDisplayable.js +0 -115
  2037. package/lib/node_modules/zrender/lib/graphic/IncrementalDisplayable.js.map +0 -1
  2038. package/lib/node_modules/zrender/lib/graphic/LinearGradient.js +0 -21
  2039. package/lib/node_modules/zrender/lib/graphic/LinearGradient.js.map +0 -1
  2040. package/lib/node_modules/zrender/lib/graphic/Path.js +0 -395
  2041. package/lib/node_modules/zrender/lib/graphic/Path.js.map +0 -1
  2042. package/lib/node_modules/zrender/lib/graphic/RadialGradient.js +0 -20
  2043. package/lib/node_modules/zrender/lib/graphic/RadialGradient.js.map +0 -1
  2044. package/lib/node_modules/zrender/lib/graphic/TSpan.js +0 -68
  2045. package/lib/node_modules/zrender/lib/graphic/TSpan.js.map +0 -1
  2046. package/lib/node_modules/zrender/lib/graphic/Text.js +0 -506
  2047. package/lib/node_modules/zrender/lib/graphic/Text.js.map +0 -1
  2048. package/lib/node_modules/zrender/lib/graphic/constants.js +0 -9
  2049. package/lib/node_modules/zrender/lib/graphic/constants.js.map +0 -1
  2050. package/lib/node_modules/zrender/lib/graphic/helper/image.js +0 -56
  2051. package/lib/node_modules/zrender/lib/graphic/helper/image.js.map +0 -1
  2052. package/lib/node_modules/zrender/lib/graphic/helper/parseText.js +0 -447
  2053. package/lib/node_modules/zrender/lib/graphic/helper/parseText.js.map +0 -1
  2054. package/lib/node_modules/zrender/lib/graphic/helper/poly.js +0 -28
  2055. package/lib/node_modules/zrender/lib/graphic/helper/poly.js.map +0 -1
  2056. package/lib/node_modules/zrender/lib/graphic/helper/roundRect.js +0 -74
  2057. package/lib/node_modules/zrender/lib/graphic/helper/roundRect.js.map +0 -1
  2058. package/lib/node_modules/zrender/lib/graphic/helper/roundSector.js +0 -219
  2059. package/lib/node_modules/zrender/lib/graphic/helper/roundSector.js.map +0 -1
  2060. package/lib/node_modules/zrender/lib/graphic/helper/smoothBezier.js +0 -65
  2061. package/lib/node_modules/zrender/lib/graphic/helper/smoothBezier.js.map +0 -1
  2062. package/lib/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js +0 -60
  2063. package/lib/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js.map +0 -1
  2064. package/lib/node_modules/zrender/lib/graphic/shape/Arc.js +0 -48
  2065. package/lib/node_modules/zrender/lib/graphic/shape/Arc.js.map +0 -1
  2066. package/lib/node_modules/zrender/lib/graphic/shape/BezierCurve.js +0 -100
  2067. package/lib/node_modules/zrender/lib/graphic/shape/BezierCurve.js.map +0 -1
  2068. package/lib/node_modules/zrender/lib/graphic/shape/Circle.js +0 -31
  2069. package/lib/node_modules/zrender/lib/graphic/shape/Circle.js.map +0 -1
  2070. package/lib/node_modules/zrender/lib/graphic/shape/Ellipse.js +0 -43
  2071. package/lib/node_modules/zrender/lib/graphic/shape/Ellipse.js.map +0 -1
  2072. package/lib/node_modules/zrender/lib/graphic/shape/Line.js +0 -72
  2073. package/lib/node_modules/zrender/lib/graphic/shape/Line.js.map +0 -1
  2074. package/lib/node_modules/zrender/lib/graphic/shape/Polygon.js +0 -31
  2075. package/lib/node_modules/zrender/lib/graphic/shape/Polygon.js.map +0 -1
  2076. package/lib/node_modules/zrender/lib/graphic/shape/Polyline.js +0 -38
  2077. package/lib/node_modules/zrender/lib/graphic/shape/Polyline.js.map +0 -1
  2078. package/lib/node_modules/zrender/lib/graphic/shape/Rect.js +0 -59
  2079. package/lib/node_modules/zrender/lib/graphic/shape/Rect.js.map +0 -1
  2080. package/lib/node_modules/zrender/lib/graphic/shape/Ring.js +0 -37
  2081. package/lib/node_modules/zrender/lib/graphic/shape/Ring.js.map +0 -1
  2082. package/lib/node_modules/zrender/lib/graphic/shape/Sector.js +0 -39
  2083. package/lib/node_modules/zrender/lib/graphic/shape/Sector.js.map +0 -1
  2084. package/lib/node_modules/zrender/lib/mixin/Draggable.js +0 -70
  2085. package/lib/node_modules/zrender/lib/mixin/Draggable.js.map +0 -1
  2086. package/lib/node_modules/zrender/lib/svg/helper.js +0 -31
  2087. package/lib/node_modules/zrender/lib/svg/helper.js.map +0 -1
  2088. package/lib/node_modules/zrender/lib/tool/color.js +0 -459
  2089. package/lib/node_modules/zrender/lib/tool/color.js.map +0 -1
  2090. package/lib/node_modules/zrender/lib/tool/parseSVG.js +0 -633
  2091. package/lib/node_modules/zrender/lib/tool/parseSVG.js.map +0 -1
  2092. package/lib/node_modules/zrender/lib/tool/parseXML.js +0 -19
  2093. package/lib/node_modules/zrender/lib/tool/parseXML.js.map +0 -1
  2094. package/lib/node_modules/zrender/lib/tool/path.js +0 -339
  2095. package/lib/node_modules/zrender/lib/tool/path.js.map +0 -1
  2096. package/lib/node_modules/zrender/lib/tool/transformPath.js +0 -85
  2097. package/lib/node_modules/zrender/lib/tool/transformPath.js.map +0 -1
  2098. package/lib/node_modules/zrender/lib/zrender.js +0 -238
  2099. package/lib/node_modules/zrender/lib/zrender.js.map +0 -1
  2100. package/lib/node_modules/zrender/node_modules/tslib/tslib.es6.js +0 -37
  2101. package/lib/node_modules/zrender/node_modules/tslib/tslib.es6.js.map +0 -1
  2102. package/lib/setting/page-config/PageConfig.js +0 -127
  2103. package/lib/setting/page-config/PageConfig.js.map +0 -1
  2104. package/lib/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2105. package/lib/setting/page-config/PageConfig.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2106. package/lib/setting/page-config/index.js +0 -11
  2107. package/lib/setting/page-config/index.js.map +0 -1
  2108. package/lib/setting/page-config/props.js +0 -16
  2109. package/lib/setting/page-config/props.js.map +0 -1
  2110. package/lib/setting/provider-config/ProviderConfig.js +0 -166
  2111. package/lib/setting/provider-config/ProviderConfig.js.map +0 -1
  2112. package/lib/setting/provider-config/index.js +0 -11
  2113. package/lib/setting/provider-config/index.js.map +0 -1
  2114. package/lib/setting/provider-config/props.js +0 -13
  2115. package/lib/setting/provider-config/props.js.map +0 -1
  2116. package/lib/setting/renderer/Renderer.js +0 -19
  2117. package/lib/setting/renderer/Renderer.js.map +0 -1
  2118. package/lib/setting/renderer/index.js +0 -11
  2119. package/lib/setting/renderer/index.js.map +0 -1
  2120. package/lib/setting/renderer/props.js +0 -10
  2121. package/lib/setting/renderer/props.js.map +0 -1
  2122. package/lib/style.css +0 -11125
  2123. package/lib/table/table/Table.js +0 -436
  2124. package/lib/table/table/Table.js.map +0 -1
  2125. package/lib/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2126. package/lib/table/table/Table.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2127. package/lib/table/table/Table.vue_vue_type_style_index_1_lang.js +0 -5
  2128. package/lib/table/table/Table.vue_vue_type_style_index_1_lang.js.map +0 -1
  2129. package/lib/table/table/index.js +0 -12
  2130. package/lib/table/table/index.js.map +0 -1
  2131. package/lib/table/table/props.js +0 -71
  2132. package/lib/table/table/props.js.map +0 -1
  2133. package/lib/text/list/List.js +0 -207
  2134. package/lib/text/list/List.js.map +0 -1
  2135. package/lib/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2136. package/lib/text/list/List.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2137. package/lib/text/list/List.vue_vue_type_style_index_1_lang.js +0 -5
  2138. package/lib/text/list/List.vue_vue_type_style_index_1_lang.js.map +0 -1
  2139. package/lib/text/list/index.js +0 -12
  2140. package/lib/text/list/index.js.map +0 -1
  2141. package/lib/text/list/props.js +0 -43
  2142. package/lib/text/list/props.js.map +0 -1
  2143. package/lib/text/proportion/Proportion.js +0 -171
  2144. package/lib/text/proportion/Proportion.js.map +0 -1
  2145. package/lib/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2146. package/lib/text/proportion/Proportion.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2147. package/lib/text/proportion/index.js +0 -12
  2148. package/lib/text/proportion/index.js.map +0 -1
  2149. package/lib/text/proportion/props.js +0 -33
  2150. package/lib/text/proportion/props.js.map +0 -1
  2151. package/lib/text/scroll-text/ScrollText.js +0 -21
  2152. package/lib/text/scroll-text/ScrollText.js.map +0 -1
  2153. package/lib/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2154. package/lib/text/scroll-text/ScrollText.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2155. package/lib/text/scroll-text/index.js +0 -8
  2156. package/lib/text/scroll-text/index.js.map +0 -1
  2157. package/lib/text/text/Text.js +0 -138
  2158. package/lib/text/text/Text.js.map +0 -1
  2159. package/lib/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2160. package/lib/text/text/Text.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2161. package/lib/text/text/index.js +0 -12
  2162. package/lib/text/text/index.js.map +0 -1
  2163. package/lib/text/text/props.js +0 -30
  2164. package/lib/text/text/props.js.map +0 -1
  2165. package/lib/text/time-display/TimeDisplay.js +0 -57
  2166. package/lib/text/time-display/TimeDisplay.js.map +0 -1
  2167. package/lib/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js +0 -5
  2168. package/lib/text/time-display/TimeDisplay.vue_vue_type_style_index_0_scoped_true_lang.js.map +0 -1
  2169. package/lib/text/time-display/index.js +0 -11
  2170. package/lib/text/time-display/index.js.map +0 -1
  2171. package/lib/text/time-display/props.js +0 -23
  2172. package/lib/text/time-display/props.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/common/echarts/composables/api.ts","../src/common/echarts/composables/autoresize.ts","../src/common/echarts/composables/loading.ts","../src/common/echarts/utils.ts","../src/common/echarts/Echarts.ts","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons-vue/es/insert-css.js","../node_modules/@ant-design/icons-vue/es/utils.js","../node_modules/@ant-design/icons-vue/es/components/IconBase.js","../node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons-vue/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js","../plugin-vue:export-helper","../src/common/spin/Spin.vue","../src/common/skeleton/Skeleton.vue","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../src/_utils/withInstall.ts","../src/_utils/props.ts","../src/setting/page-config/props.ts","../src/_utils/hooks/usePickComponentStyle.ts","../src/_utils/constant.ts","../src/_utils/hooks/useOnEvent.ts","../src/_utils/hooks/useEmitEvent.ts","../src/_utils/hooks/useTransformChartDataByAttrValue.ts","../src/_utils/util.ts","../src/_utils/hooks/useVariablesInText.ts","../src/_utils/hooks/useRequestData.ts","../src/_utils/hooks/useTransformChartDataByAttrKey.ts","../src/_utils/hooks/useImagePath.ts","../src/_utils/hooks/usePageUrl.ts","../src/_utils/request.ts","../src/_utils/hooks/useRequestDiagramData.ts","../src/_utils/hooks/useValueFormatter.ts","../src/_utils/hooks/useIndicatorData.ts","../src/_utils/hooks/useHrefParamsToGlobalVariables.ts","../src/setting/page-config/PageConfig.vue","../src/setting/page-config/index.ts","../src/setting/provider-config/props.ts","../src/setting/provider-config/ProviderConfig.vue","../src/setting/provider-config/index.ts","../src/setting/renderer/props.ts","../src/setting/renderer/Renderer.vue","../src/setting/renderer/index.ts","../src/text/text/props.ts","../src/assets/go-up.png","../src/assets/go-down.png","../src/text/text/Text.vue","../src/text/text/index.ts","../src/text/scroll-text/ScrollText.vue","../src/text/scroll-text/index.ts","../src/text/time-display/props.ts","../src/text/time-display/TimeDisplay.vue","../src/text/time-display/index.ts","../src/text/list/props.ts","../src/text/list/List.vue","../src/text/list/index.ts","../src/text/proportion/props.ts","../src/text/proportion/Proportion.vue","../src/text/proportion/index.ts","../src/control/input/props.ts","../src/control/input/Input.vue","../src/control/input/index.ts","../src/control/date-picker/props.ts","../src/control/date-picker/DatePicker.vue","../src/control/date-picker/index.ts","../src/control/select/props.ts","../src/control/select/Select.vue","../src/control/select/index.ts","../src/control/range-picker/props.ts","../src/control/range-picker/RangePicker.vue","../src/control/range-picker/index.ts","../src/control/button/props.ts","../src/control/button/Button.vue","../src/control/button/index.ts","../src/graph/pie/props.ts","../src/_utils/hooks/useDownloadFile.ts","../src/graph/pie/Pie.vue","../src/graph/pie/index.ts","../src/graph/line/props.ts","../src/graph/line/Line.vue","../src/graph/line/index.ts","../src/graph/bar/props.ts","../src/graph/bar/Bar.vue","../src/graph/bar/index.ts","../src/graph/scatter/props.ts","../src/graph/scatter/Scatter.vue","../src/graph/scatter/index.ts","../src/graph/custom-graph/props.ts","../src/graph/custom-graph/CustomGraph.vue","../src/graph/custom-graph/index.ts","../src/graph/combo-graph/props.ts","../src/graph/combo-graph/ComboGraph.vue","../src/graph/combo-graph/index.ts","../src/container/border/props.ts","../src/assets/border-title-decoration-left.png","../src/assets/border-title-decoration-right.png","../src/container/border/Border.vue","../src/container/border/index.ts","../src/container/modal/props.ts","../src/container/modal/Modal.vue","../src/container/modal/index.ts","../src/container/tabs/props.ts","../src/container/tabs/Tabs.vue","../src/container/tabs/index.ts","../src/media/image/props.ts","../src/media/image/Image.vue","../src/media/image/index.ts","../src/table/table/props.ts","../src/table/table/Table.vue","../src/table/table/index.ts","../src/map/map/props.ts","../src/map/map/Map.vue","../src/map/map/index.ts","../src/index.ts"],"sourcesContent":["import { Ref } from 'vue'\nimport { EChartsType, Option } from '../types'\n\nconst METHOD_NAMES = [\n 'getWidth',\n 'getHeight',\n 'getDom',\n 'getOption',\n 'resize',\n 'dispatchAction',\n 'convertToPixel',\n 'convertFromPixel',\n 'containPixel',\n 'getDataURL',\n 'getConnectedDataURL',\n 'appendData',\n 'clear',\n 'isDisposed',\n 'dispose'\n] as const\ntype MethodName = typeof METHOD_NAMES[number];\n\ntype PublicMethods = Pick<EChartsType, MethodName>;\n\nexport function usePublicAPI (\n chart: Ref<EChartsType | undefined>,\n init: (option?: Option) => void\n): PublicMethods {\n function makePublicMethod<T extends MethodName> (\n name: T\n ): (...args: Parameters<EChartsType[T]>) => ReturnType<EChartsType[T]> {\n return (...args) => {\n if (!chart.value) {\n init()\n }\n\n if (!chart.value) {\n throw new Error('ECharts is not initialized yet.')\n }\n return (chart.value[name] as any).apply(chart.value, args)\n }\n }\n\n function makePublicMethods (): PublicMethods {\n const methods = Object.create(null)\n METHOD_NAMES.forEach(name => {\n methods[name] = makePublicMethod(name)\n })\n\n return methods as PublicMethods\n }\n\n return makePublicMethods()\n}\n","import { Ref, watch } from 'vue'\nimport { throttle } from 'echarts/core'\nimport { addListener, removeListener, ResizeCallback } from 'resize-detector'\nimport { EChartsType } from '../types'\n\nexport function useAutoresize (\n chart: Ref<EChartsType | undefined>,\n autoresize: Ref<boolean>,\n root: Ref<HTMLElement | undefined>\n): void {\n let resizeListener: ResizeCallback | null = null\n\n watch([root, chart, autoresize], ([root, chart, autoresize], _, cleanup) => {\n if (root && chart && autoresize) {\n resizeListener = throttle(() => {\n chart.resize()\n }, 100)\n\n addListener(root, resizeListener)\n }\n\n cleanup(() => {\n if (resizeListener && root) {\n removeListener(root, resizeListener)\n }\n })\n })\n}\n\nexport const autoresizeProps = {\n autoresize: Boolean\n}\n","import { inject, unref, computed, Ref, watchEffect } from 'vue'\nimport { EChartsType } from '../types'\n\nexport const LOADING_OPTIONS_KEY = 'ecLoadingOptions'\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport function useLoading (\n chart: Ref<EChartsType | undefined>,\n loading: Ref<boolean>,\n loadingOptions: Ref<UnknownRecord | undefined>\n): void {\n const defaultLoadingOptions = inject(LOADING_OPTIONS_KEY, {}) as\n | UnknownRecord\n | Ref<UnknownRecord>\n const realLoadingOptions = computed(() => ({\n ...unref(defaultLoadingOptions),\n ...loadingOptions?.value\n }))\n\n watchEffect(() => {\n const instance = chart.value\n if (!instance) {\n return\n }\n\n if (loading.value) {\n instance.showLoading(realLoadingOptions.value)\n } else {\n instance.hideLoading()\n }\n })\n}\n\nexport const loadingProps = {\n loading: Boolean,\n loadingOptions: Object\n}\n","type Attrs = {\n [key: string]: any\n}\n\n// Copied from\n// https://github.com/vuejs/vue-next/blob/5a7a1b8293822219283d6e267496bec02234b0bc/packages/shared/src/index.ts#L40-L41\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string): boolean => onRE.test(key)\n\nexport function omitOn (attrs: Attrs): Attrs {\n const result: Attrs = {}\n for (const key in attrs) {\n if (!isOn(key)) {\n result[key] = attrs[key]\n }\n }\n\n return result\n}\n","// 此组件为 vue-echarts\n// 文档:https://github.com/ecomfe/vue-echarts/blob/main/README.zh-Hans.md\nimport {\n defineComponent,\n unref,\n shallowRef,\n toRefs,\n watch,\n computed,\n inject,\n onMounted,\n onUnmounted,\n h,\n nextTick,\n PropType,\n watchEffect\n} from 'vue'\nimport { init as initChart } from 'echarts/core'\nimport {\n EChartsType,\n Option,\n Theme,\n ThemeInjection,\n InitOptions,\n InitOptionsInjection,\n UpdateOptions,\n UpdateOptionsInjection\n} from './types'\nimport {\n usePublicAPI,\n useAutoresize,\n autoresizeProps,\n useLoading,\n loadingProps\n} from './composables'\nimport './style.css'\nimport { omitOn } from './utils'\n\nconst TAG_NAME = 'x-vue-echarts'\nexport const THEME_KEY = 'ecTheme'\nexport const INIT_OPTIONS_KEY = 'ecInitOptions'\nexport const UPDATE_OPTIONS_KEY = 'ecUpdateOptions'\nexport { LOADING_OPTIONS_KEY } from './composables'\n\n// @ts-ignore\nexport default defineComponent({\n name: 'echarts',\n props: {\n option: Object as PropType<Option>,\n theme: {\n type: [Object, String] as PropType<Theme>\n },\n initOptions: Object as PropType<InitOptions>,\n updateOptions: Object as PropType<UpdateOptions>,\n group: String,\n manualUpdate: Boolean,\n ...autoresizeProps,\n ...loadingProps\n },\n inheritAttrs: false,\n // @ts-expect-error listeners for Vue 2 compatibility\n setup (props, { attrs, listeners }) {\n const root = shallowRef<HTMLElement>()\n const chart = shallowRef<EChartsType>()\n const manualOption = shallowRef<Option>()\n const defaultTheme = inject(THEME_KEY, null) as ThemeInjection\n const defaultInitOptions = inject(\n INIT_OPTIONS_KEY,\n null\n ) as InitOptionsInjection\n const defaultUpdateOptions = inject(\n UPDATE_OPTIONS_KEY,\n null\n ) as UpdateOptionsInjection\n\n const { autoresize, manualUpdate, loading, loadingOptions } = toRefs(props)\n\n const realOption = computed(\n () => manualOption.value || props.option || Object.create(null)\n )\n const realTheme = computed(() => props.theme || unref(defaultTheme) || {})\n const realInitOptions = computed(\n () => props.initOptions || unref(defaultInitOptions) || {}\n )\n const realUpdateOptions = computed(\n () => props.updateOptions || unref(defaultUpdateOptions) || {}\n )\n const nonEventAttrs = computed(() => omitOn(attrs))\n\n function init (option?: Option) {\n if (chart.value || !root.value) {\n return\n }\n\n const instance = (chart.value = initChart(\n root.value,\n realTheme.value,\n realInitOptions.value\n ))\n\n if (props.group) {\n instance.group = props.group\n }\n\n let realListeners = listeners\n if (!realListeners) {\n realListeners = {}\n\n Object.keys(attrs)\n .filter(key => key.indexOf('on') === 0 && key.length > 2)\n .forEach(key => {\n // onClick -> c + lick\n // onZr:click -> z + r:click\n const event = key.charAt(2).toLowerCase() + key.slice(3)\n realListeners[event] = attrs[key]\n })\n }\n\n Object.keys(realListeners).forEach(key => {\n const handler = realListeners[key] as any\n\n if (!handler) {\n return\n }\n\n if (key.indexOf('zr:') === 0) {\n instance.getZr().on(key.slice(3).toLowerCase(), handler)\n } else {\n instance.on(key.toLowerCase(), handler)\n }\n })\n\n function resize () {\n if (instance && !instance.isDisposed()) {\n // temporarily suppress errors caused by https://github.com/apache/echarts/issues/14846\n try {\n instance.resize()\n } catch (e) {\n if (e.message === \"Cannot read property 'get' of undefined\") {\n return\n }\n\n throw e\n }\n }\n }\n\n function commit () {\n instance.setOption(option || realOption.value, realUpdateOptions.value)\n }\n\n if (autoresize.value) {\n // Try to make chart fit to container in case container size\n // is changed synchronously or in already queued microtasks\n nextTick(() => {\n resize()\n commit()\n })\n } else {\n commit()\n }\n }\n\n function setOption (option: Option, updateOptions?: UpdateOptions) {\n if (props.manualUpdate) {\n manualOption.value = option\n }\n\n if (!chart.value) {\n init(option)\n } else {\n chart.value.setOption(option, updateOptions || {})\n }\n }\n\n function cleanup () {\n if (chart.value) {\n chart.value.dispose()\n chart.value = undefined\n }\n }\n\n let unwatchOption: (() => void) | null = null\n watch(\n manualUpdate,\n manualUpdate => {\n if (typeof unwatchOption === 'function') {\n unwatchOption()\n unwatchOption = null\n }\n\n if (!manualUpdate) {\n unwatchOption = watch(\n () => props.option,\n option => {\n if (!option) {\n return\n }\n if (!chart.value) {\n init()\n } else {\n chart.value.setOption(option, realUpdateOptions.value)\n }\n },\n { deep: true }\n )\n }\n },\n {\n immediate: true\n }\n )\n\n watch(\n [realTheme, realInitOptions],\n () => {\n cleanup()\n init()\n },\n {\n deep: true\n }\n )\n\n watchEffect(() => {\n if (props.group && chart.value) {\n chart.value.group = props.group\n }\n })\n\n const publicApi = usePublicAPI(chart, init)\n\n useLoading(chart, loading, loadingOptions)\n\n useAutoresize(chart, autoresize, root)\n\n onMounted(() => {\n if (props.option) {\n init()\n }\n })\n\n onUnmounted(cleanup)\n\n return {\n chart,\n root,\n setOption,\n nonEventAttrs,\n ...publicApi\n }\n },\n render () {\n const attrs = { ...this.nonEventAttrs }\n attrs.ref = 'root'\n attrs.class = attrs.class ? ['echarts'].concat(attrs.class) : 'echarts'\n return h(TAG_NAME, attrs)\n }\n})\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","// https://github.com/substack/insert-css\nvar containers = []; // will store container HTMLElement references\n\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container); // first time we see this container, create the necessary entries\n\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n } // try to get the correponding container + position styleElement, create it otherwise\n\n\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n } // strip potential UTF-8 BOM if css was read from a file\n\n\n if (css.charCodeAt(0) === 0xfeff) {\n css = css.substr(1, css.length);\n } // actually add the stylesheet\n\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css;\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n}\n\nexport default insertCss;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { nextTick, h } from 'vue';\nimport { generate as generateColor } from '@ant-design/colors';\nimport insertCss from './insert-css';\nexport function warn(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons-vue] \".concat(message));\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc[\"class\"];\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return h(node.tag, _objectSpread({\n key: key\n }, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return h(node.tag, _objectSpread({\n key: key\n }, rootProps, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar cssInjectedFlag = false;\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n nextTick(function () {\n if (!cssInjectedFlag) {\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n insertCss(styleStr, {\n prepend: true\n });\n }\n\n cssInjectedFlag = true;\n }\n });\n};","var _excluded = [\"icon\", \"primaryColor\", \"secondaryColor\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props, context) {\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n icon = _props$context$attrs.icon,\n primaryColor = _props$context$attrs.primaryColor,\n secondaryColor = _props$context$attrs.secondaryColor,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({}, restProps, {\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n })); // },\n};\n\nIconBase.props = {\n icon: Object,\n primaryColor: String,\n secondaryColor: String,\n focusable: String\n};\nIconBase.inheritAttrs = false;\nIconBase.displayName = 'IconBase';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport VueIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return VueIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = VueIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","var _excluded = [\"class\", \"icon\", \"spin\", \"rotate\", \"tabindex\", \"twoToneColor\", \"onClick\"];\nimport { createVNode as _createVNode } from \"vue\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport VueIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n\nsetTwoToneColor('#1890ff');\n\nvar Icon = function Icon(props, context) {\n var _classObj;\n\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n cls = _props$context$attrs[\"class\"],\n icon = _props$context$attrs.icon,\n spin = _props$context$attrs.spin,\n rotate = _props$context$attrs.rotate,\n tabindex = _props$context$attrs.tabindex,\n twoToneColor = _props$context$attrs.twoToneColor,\n onClick = _props$context$attrs.onClick,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var classObj = (_classObj = {\n anticon: true\n }, _defineProperty(_classObj, \"anticon-\".concat(icon.name), Boolean(icon.name)), _defineProperty(_classObj, cls, cls), _classObj);\n var svgClassString = spin === '' || !!spin || icon.name === 'loading' ? 'anticon-spin' : '';\n var iconTabIndex = tabindex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n restProps.tabindex = iconTabIndex;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return _createVNode(\"span\", _objectSpread({\n \"role\": \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n \"onClick\": onClick,\n \"class\": classObj\n }), [_createVNode(VueIcon, {\n \"class\": svgClassString,\n \"icon\": icon,\n \"primaryColor\": primaryColor,\n \"secondaryColor\": secondaryColor,\n \"style\": svgStyle\n }, null)]);\n};\n\nIcon.props = {\n spin: Boolean,\n rotate: Number,\n icon: Object,\n twoToneColor: String\n};\nIcon.displayName = 'AntdIcon';\nIcon.inheritAttrs = false;\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LoadingOutlinedSvg\n }), null);\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nLoadingOutlined.inheritAttrs = false;\nexport default LoadingOutlined;","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","<template>\n <div class=\"spin-wrapper\">\n <a-spin\n class=\"spin\"\n :spinning=\"spinning\"\n v-if=\"spinning\"\n :indicator=\"indicator\"\n tip=\"加载中...\"\n >\n </a-spin>\n <slot v-else></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Spin as ASpin } from 'ant-design-vue'\nimport { LoadingOutlined } from '@ant-design/icons-vue'\nimport { defineComponent, h } from 'vue'\nimport 'ant-design-vue/es/spin/style'\nexport default defineComponent({\n props: {\n spinning: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASpin\n },\n setup () {\n const indicator = h(LoadingOutlined, {\n style: {\n fontSize: '24px',\n color: '#1890ff'\n },\n spin: true\n })\n return {\n indicator\n }\n }\n})\n</script>\n\n<style>\n.spin-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.spin {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n</style>\n","<template>\n <a-skeleton active :loading=\"loading\">\n <slot></slot>\n </a-skeleton>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { Skeleton as ASkeleton } from 'ant-design-vue'\nimport 'ant-design-vue/es/skeleton/style'\nexport default defineComponent({\n name: 'Skeleton',\n props: {\n loading: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASkeleton\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n const map = Object.create(null);\r\n const list = str.split(',');\r\n for (let i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\r\n}\n\n/**\r\n * dev only flag -> name mapping\r\n */\r\nconst PatchFlagNames = {\r\n [1 /* TEXT */]: `TEXT`,\r\n [2 /* CLASS */]: `CLASS`,\r\n [4 /* STYLE */]: `STYLE`,\r\n [8 /* PROPS */]: `PROPS`,\r\n [16 /* FULL_PROPS */]: `FULL_PROPS`,\r\n [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\r\n [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\r\n [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\r\n [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\r\n [512 /* NEED_PATCH */]: `NEED_PATCH`,\r\n [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\r\n [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\r\n [-1 /* HOISTED */]: `HOISTED`,\r\n [-2 /* BAIL */]: `BAIL`\r\n};\n\n/**\r\n * Dev only\r\n */\r\nconst slotFlagsText = {\r\n [1 /* STABLE */]: 'STABLE',\r\n [2 /* DYNAMIC */]: 'DYNAMIC',\r\n [3 /* FORWARDED */]: 'FORWARDED'\r\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\r\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\r\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\r\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n // Split the content into individual lines but capture the newline sequence\r\n // that separated each line. This is important because the actual sequence is\r\n // needed to properly take into account the full line length for offset\r\n // comparison\r\n let lines = source.split(/(\\r?\\n)/);\r\n // Separate the lines and newline sequences into separate arrays for easier referencing\r\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n lines = lines.filter((_, idx) => idx % 2 === 0);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count +=\r\n lines[i].length +\r\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\r\n if (count >= start) {\r\n for (let j = i - range; j <= i + range || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - (lineLength + newLineSeqLength));\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + newLineSeqLength;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * On the client we only need to offer special cases for boolean attributes that\r\n * have different names from their corresponding dom properties:\r\n * - itemscope -> N/A\r\n * - allowfullscreen -> allowFullscreen\r\n * - formnovalidate -> formNoValidate\r\n * - ismap -> isMap\r\n * - nomodule -> noModule\r\n * - novalidate -> noValidate\r\n * - readonly -> readOnly\r\n */\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\r\n/**\r\n * The full list is needed during SSR to produce the correct initial markup.\r\n */\r\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\r\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\r\n `loop,open,required,reversed,scoped,seamless,` +\r\n `checked,muted,multiple,selected`);\r\n/**\r\n * Boolean attributes should be included if the value is truthy or ''.\r\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\r\n */\r\nfunction includeBooleanAttr(value) {\r\n return !!value || value === '';\r\n}\r\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\r\nconst attrValidationCache = {};\r\nfunction isSSRSafeAttrName(name) {\r\n if (attrValidationCache.hasOwnProperty(name)) {\r\n return attrValidationCache[name];\r\n }\r\n const isUnsafe = unsafeAttrCharRE.test(name);\r\n if (isUnsafe) {\r\n console.error(`unsafe attribute name: ${name}`);\r\n }\r\n return (attrValidationCache[name] = !isUnsafe);\r\n}\r\nconst propsToAttrMap = {\r\n acceptCharset: 'accept-charset',\r\n className: 'class',\r\n htmlFor: 'for',\r\n httpEquiv: 'http-equiv'\r\n};\r\n/**\r\n * CSS properties that accept plain numbers\r\n */\r\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\r\n `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\r\n `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\r\n `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\r\n `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\r\n `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\r\n // SVG\r\n `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width`);\r\n/**\r\n * Known attributes, this is used for stringification of runtime static nodes\r\n * so that we don't stringify bindings that cannot be set from HTML.\r\n * Don't also forget to allow `data-*` and `aria-*`!\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\r\n */\r\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\r\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\r\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\r\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\r\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\r\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\r\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\r\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\r\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\r\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\r\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\r\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\r\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\r\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\r\n `value,width,wrap`);\r\n/**\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\r\n */\r\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\r\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\r\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\r\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\r\n `color-interpolation-filters,color-profile,color-rendering,` +\r\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\r\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\r\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\r\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\r\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\r\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\r\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\r\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\r\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\r\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\r\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\r\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\r\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\r\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\r\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\r\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\r\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\r\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\r\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\r\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\r\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\r\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\r\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\r\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\r\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\r\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\r\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\r\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\r\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\r\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\r\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\r\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\r\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\r\n if (isArray(value)) {\r\n const res = {};\r\n for (let i = 0; i < value.length; i++) {\r\n const item = value[i];\r\n const normalized = isString(item)\r\n ? parseStringStyle(item)\r\n : normalizeStyle(item);\r\n if (normalized) {\r\n for (const key in normalized) {\r\n res[key] = normalized[key];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n else if (isString(value)) {\r\n return value;\r\n }\r\n else if (isObject(value)) {\r\n return value;\r\n }\r\n}\r\nconst listDelimiterRE = /;(?![^(]*\\))/g;\r\nconst propertyDelimiterRE = /:(.+)/;\r\nfunction parseStringStyle(cssText) {\r\n const ret = {};\r\n cssText.split(listDelimiterRE).forEach(item => {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiterRE);\r\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return ret;\r\n}\r\nfunction stringifyStyle(styles) {\r\n let ret = '';\r\n if (!styles || isString(styles)) {\r\n return ret;\r\n }\r\n for (const key in styles) {\r\n const value = styles[key];\r\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\r\n if (isString(value) ||\r\n (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\r\n // only render valid values\r\n ret += `${normalizedKey}:${value};`;\r\n }\r\n }\r\n return ret;\r\n}\r\nfunction normalizeClass(value) {\r\n let res = '';\r\n if (isString(value)) {\r\n res = value;\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n const normalized = normalizeClass(value[i]);\r\n if (normalized) {\r\n res += normalized + ' ';\r\n }\r\n }\r\n }\r\n else if (isObject(value)) {\r\n for (const name in value) {\r\n if (value[name]) {\r\n res += name + ' ';\r\n }\r\n }\r\n }\r\n return res.trim();\r\n}\r\nfunction normalizeProps(props) {\r\n if (!props)\r\n return null;\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (style) {\r\n props.style = normalizeStyle(style);\r\n }\r\n return props;\r\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\r\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\r\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\r\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\r\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\r\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\r\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\r\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\r\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\r\n 'option,output,progress,select,textarea,details,dialog,menu,' +\r\n 'summary,template,blockquote,iframe,tfoot';\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\r\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\r\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\r\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\r\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\r\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\r\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\r\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\r\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\r\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\r\n 'text,textPath,title,tspan,unknown,use,view';\r\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\r\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\r\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\r\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\r\nfunction escapeHtml(string) {\r\n const str = '' + string;\r\n const match = escapeRE.exec(str);\r\n if (!match) {\r\n return str;\r\n }\r\n let html = '';\r\n let escaped;\r\n let index;\r\n let lastIndex = 0;\r\n for (index = match.index; index < str.length; index++) {\r\n switch (str.charCodeAt(index)) {\r\n case 34: // \"\r\n escaped = '&quot;';\r\n break;\r\n case 38: // &\r\n escaped = '&amp;';\r\n break;\r\n case 39: // '\r\n escaped = '&#39;';\r\n break;\r\n case 60: // <\r\n escaped = '&lt;';\r\n break;\r\n case 62: // >\r\n escaped = '&gt;';\r\n break;\r\n default:\r\n continue;\r\n }\r\n if (lastIndex !== index) {\r\n html += str.slice(lastIndex, index);\r\n }\r\n lastIndex = index + 1;\r\n html += escaped;\r\n }\r\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\r\n}\r\n// https://www.w3.org/TR/html52/syntax.html#comments\r\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\r\nfunction escapeHtmlComment(src) {\r\n return src.replace(commentStripRE, '');\r\n}\n\nfunction looseCompareArrays(a, b) {\r\n if (a.length !== b.length)\r\n return false;\r\n let equal = true;\r\n for (let i = 0; equal && i < a.length; i++) {\r\n equal = looseEqual(a[i], b[i]);\r\n }\r\n return equal;\r\n}\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n let aValidType = isDate(a);\r\n let bValidType = isDate(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\r\n }\r\n aValidType = isArray(a);\r\n bValidType = isArray(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\r\n }\r\n aValidType = isObject(a);\r\n bValidType = isObject(b);\r\n if (aValidType || bValidType) {\r\n /* istanbul ignore if: this if will probably never be called */\r\n if (!aValidType || !bValidType) {\r\n return false;\r\n }\r\n const aKeysCount = Object.keys(a).length;\r\n const bKeysCount = Object.keys(b).length;\r\n if (aKeysCount !== bKeysCount) {\r\n return false;\r\n }\r\n for (const key in a) {\r\n const aHasKey = a.hasOwnProperty(key);\r\n const bHasKey = b.hasOwnProperty(key);\r\n if ((aHasKey && !bHasKey) ||\r\n (!aHasKey && bHasKey) ||\r\n !looseEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return String(a) === String(b);\r\n}\r\nfunction looseIndexOf(arr, val) {\r\n return arr.findIndex(item => looseEqual(item, val));\r\n}\n\n/**\r\n * For converting {{ interpolation }} values to displayed strings.\r\n * @private\r\n */\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) ||\r\n (isObject(val) &&\r\n (val.toString === objectToString || !isFunction(val.toString)))\r\n ? JSON.stringify(val, replacer, 2)\r\n : String(val);\r\n};\r\nconst replacer = (_key, val) => {\r\n // can't use isRef here since @vue/shared has no deps\r\n if (val && val.__v_isRef) {\r\n return replacer(_key, val.value);\r\n }\r\n else if (isMap(val)) {\r\n return {\r\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\r\n entries[`${key} =>`] = val;\r\n return entries;\r\n }, {})\r\n };\r\n }\r\n else if (isSet(val)) {\r\n return {\r\n [`Set(${val.size})`]: [...val.values()]\r\n };\r\n }\r\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\r\n return String(val);\r\n }\r\n return val;\r\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst NOOP = () => { };\r\n/**\r\n * Always return false.\r\n */\r\nconst NO = () => false;\r\nconst onRE = /^on[^a-z]/;\r\nconst isOn = (key) => onRE.test(key);\r\nconst isModelListener = (key) => key.startsWith('onUpdate:');\r\nconst extend = Object.assign;\r\nconst remove = (arr, el) => {\r\n const i = arr.indexOf(el);\r\n if (i > -1) {\r\n arr.splice(i, 1);\r\n }\r\n};\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst isArray = Array.isArray;\r\nconst isMap = (val) => toTypeString(val) === '[object Map]';\r\nconst isSet = (val) => toTypeString(val) === '[object Set]';\r\nconst isDate = (val) => val instanceof Date;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst toRawType = (value) => {\r\n // extract \"RawType\" from strings like \"[object RawType]\"\r\n return toTypeString(value).slice(8, -1);\r\n};\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\nconst isIntegerKey = (key) => isString(key) &&\r\n key !== 'NaN' &&\r\n key[0] !== '-' &&\r\n '' + parseInt(key, 10) === key;\r\nconst isReservedProp = /*#__PURE__*/ makeMap(\r\n// the leading comma is intentional so empty string \"\" is also included\r\n',key,ref,ref_for,ref_key,' +\r\n 'onVnodeBeforeMount,onVnodeMounted,' +\r\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\r\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\r\nconst cacheStringFunction = (fn) => {\r\n const cache = Object.create(null);\r\n return ((str) => {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n });\r\n};\r\nconst camelizeRE = /-(\\w)/g;\r\n/**\r\n * @private\r\n */\r\nconst camelize = cacheStringFunction((str) => {\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n});\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\n/**\r\n * @private\r\n */\r\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\r\n/**\r\n * @private\r\n */\r\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\r\n/**\r\n * @private\r\n */\r\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\r\n// compare whether a value has changed, accounting for NaN.\r\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\r\nconst invokeArrayFns = (fns, arg) => {\r\n for (let i = 0; i < fns.length; i++) {\r\n fns[i](arg);\r\n }\r\n};\r\nconst def = (obj, key, value) => {\r\n Object.defineProperty(obj, key, {\r\n configurable: true,\r\n enumerable: false,\r\n value\r\n });\r\n};\r\nconst toNumber = (val) => {\r\n const n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n};\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { NOOP } from '@vue/shared'\nimport { Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport const withInstall = <T, E extends Record<string, any>>(\n main: T,\n extra?: E\n) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp)\n }\n }\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n (main as any)[key] = comp\n }\n }\n return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n (fn as SFCWithInstall<T>).install = (app) => {\n app.config.globalProperties[name] = fn\n }\n\n return fn as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n (component as SFCWithInstall<T>).install = NOOP\n\n return component as SFCWithInstall<T>\n}\n","import { mapValues } from 'lodash-es'\n\ninterface Event {\n // 当前组件触发什么事件类型后执行\n on: string\n // 被触发的组件id\n target: string\n // 被触发的组件:想要触发事件的类型\n emit: string\n}\n\nexport type Events = Event []\n\nexport type RequestMethod = 'get' | 'post' | 'put' | 'delete' | 'head'\n\nexport interface RequestParam {\n key: string,\n value: { id: string, prop: string } | string\n}\n\nexport type RequestParams = RequestParam []\n\nexport interface Props {\n id: string // 组件Id,使用UUID\n name: string // 组件名称\n keyName: string // 控件\n type: string // 组件类型\n width: string // 组件宽度\n height: string // 组件高度\n position: string // 定位\n top: string // 组件左上定点x轴位置(相对于画布)\n left: string // 组件左上定点y轴位置(相对于画布)\n zIndex: number // 组件层级\n rotate: string // 旋转角度\n isShow: boolean // 是否展示\n isRender: boolean // 是否渲染\n events: Events\n requestUrl: string // 请求地址\n requestMethod: RequestMethod // 请求方式\n requestHeaders: { [key: string]: any } // 请求头部\n isOpenRequestTimer: boolean // 开启请求定时器\n requestInterval: number // 请求间隔\n requestParams: RequestParams // 请求参数\n requestSort: number, // 请求初始化优先级,越大越优先\n dataType: 'static' | 'request' | 'indicator'\n}\n\nexport const props: Props = {\n id: '',\n name: '',\n keyName: '',\n type: '',\n width: '100px',\n height: '40px',\n position: 'absolute',\n top: '0px',\n left: '0px',\n zIndex: 1,\n rotate: '0deg',\n isShow: true,\n isRender: true,\n requestUrl: '',\n requestMethod: 'get',\n requestHeaders: {},\n isOpenRequestTimer: false,\n requestInterval: 1,\n requestSort: 0,\n requestParams: [{ key: '', value: { id: '', prop: '' } }],\n events: [],\n dataType: 'static'\n}\n\nexport const transformToComponentProps = <T extends {}>(props: T) => {\n // mapValues方法: 第一参数是要遍历的对象, 第二个参数是每次迭代时调用的函数\n return mapValues(props, (value) => {\n if (value == null) return {}\n return {\n type: (value as any).constructor,\n default: value\n }\n })\n}\n\nexport interface EventsProp {\n events: Events\n}\n\ninterface DataItem {\n name: string | number\n value: string | number\n type?: string\n}\n\nexport type Data = DataItem []\n\n// 数据转化映射格式\n\nexport interface KeyTypeDataFieldNames {\n name: string\n types: {\n label: string\n value: string\n } []\n}\n\nexport interface ValueTypeDataFieldNames {\n name: string\n value: string\n type: string\n}\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport interface PageConfig{\n width: string\n height: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n contextRequestUrl: string\n mode: 'normal' | 'preview'\n}\n\n// 页面组件默认配置\nexport const pageConfig:PageConfig = {\n width: '1920px',\n height: '1080px',\n backgroundColor: '#ffffff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n contextRequestUrl: '',\n mode: 'normal'\n}\n\n// 转化默认属性\nexport const pageConfigComponentProps = transformToComponentProps(pageConfig)\n","import { computed, HTMLAttributes } from 'vue'\nimport { pick, without } from 'lodash-es'\n// 需要添加组件的 style 属性\nconst styleList = [\n 'width',\n 'height',\n 'color',\n 'position',\n 'top',\n 'left',\n 'rotate',\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'textDecoration',\n 'textAlign',\n 'verticalAlign',\n 'overflow',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundSize',\n 'borderWidth',\n 'borderStyle',\n 'borderRadius',\n 'borderColor',\n 'textShadow',\n 'justifyContent',\n 'alignItems',\n 'zIndex'\n]\n/**\n * 过滤不是 style 属性的组件属性\n * @param props 组件属性\n * @param excludeStyleList 剔除组件的属性\n * @returns style属性\n */\nexport const usePickComponentStyle = <T>(props: Readonly<Partial<T>>, excludeStyleList: string [] = []) => {\n // 再选择需要的组件属性\n const finalStyleList = without(styleList, ...excludeStyleList)\n return computed<HTMLAttributes>(() => pick(props, finalStyleList))\n}\n\nexport default usePickComponentStyle\n","export const EVENT_BUS = 'EVENT_BUS'\nexport const GLOBAL_CONFIG = 'GLOBAL_CONFIG'\nexport const GLOBAL_MODEL = 'GLOBAL_MODEL'\nexport const REQUEST_MODEL = 'REQUEST_MODEL'\nexport const GLOBAL_TOKEN = 'GLOBAL_TOKEN'\nexport const REFRESH_PAGE = 'REFRESH_PAGE'\n// @ts-ignore\nexport const INDICATOR_URL = window?.config?.indicatorURL\n// @ts-ignore\nexport const UPLOAD_PATH = window?.config?.uploadPath || '/api'\n// @ts-ignore\nexport const BASE_URL = window?.config?.routerBaseURL || './'\n","import { watch, inject } from 'vue'\nimport { EVENT_BUS } from '../constant'\nexport const useOnEvent = <T extends { [id: string]: any}>(props: Readonly<Partial<T>>, events: { [key: string]: any }) => {\n watch(() => props.id, (id, oldId) => {\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n onEvent: (i: string, e: { [key: string]: any }) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n offEvent: (i: string) => void 0\n })\n if (oldId != null && oldId !== '') {\n eventBus.offEvent(oldId)\n }\n if (id != null && id !== '') {\n eventBus.onEvent(id, events)\n }\n }, {\n immediate: true\n })\n}\n\nexport default useOnEvent\n","import { inject, ref } from 'vue'\nimport { Events } from '../props'\nimport { EVENT_BUS, GLOBAL_CONFIG } from '../constant'\n/**\n * 触发事件\n * @param props 事件数据\n */\nexport const useEmitEvent = (props: { [key:string]: any }) => {\n const events = props.events as Events\n const id = props.id\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n emitEvent: (id:string, type: string) => void 0\n })\n\n const { touchEventId } = inject(GLOBAL_CONFIG, {\n touchEventId: ref('')\n })\n /**\n * @param on 触发事件\n * @param callback 回调函数\n */\n return (on: string, callback: Function = () => {}) => {\n return function () {\n // 透传\n callback.call(this, ...arguments)\n if (eventBus) {\n const { emitEvent } = eventBus\n events.forEach(event => {\n if (on === event.on) {\n try {\n touchEventId.value = id\n emitEvent(event.target, event.emit)\n } catch (e) {\n console.error(e)\n }\n }\n })\n }\n }\n }\n}\n\nexport default useEmitEvent\n","import { Data, ValueTypeDataFieldNames } from '../props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrValue = (data: Data, dataFieldNames?: ValueTypeDataFieldNames) => {\n let { name = 'name', value = 'value', type = 'type' } = dataFieldNames || {}\n // 处去字符串\n name = name?.trim()\n value = value?.trim()\n type = type?.trim()\n const set = new Set()\n const map = new Map()\n const len = data.length\n for (let i = 0; i < len; i++) {\n const item = data[i]\n // x轴\n const x = item[name] || ''\n // y轴\n const y = item[value] || ''\n // 系列(类型)\n const t = item[type] || ''\n set.add(x)\n if (map.has(t)) {\n const arr = map.get(t)\n arr.push({ name: x, value: y, ...item })\n map.set(t, arr)\n } else {\n map.set(t, [{ name: x, value: y, ...item }])\n }\n }\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\nexport default useTransformChartDataByAttrValue\n","export const handleAxisLabelFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n/**\n * 处理图表format, 目前只做 \\\\n => \\n 转化\n * @param formatter 格式化字符串\n */\nexport const handleFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n\n/**\n * 格式化金额\n * @param value 数值\n * @param decimalPlaces 格式化位数\n */\nexport const formatMoney = (value: string | number, decimalPlaces:number = 2) => {\n const _value = parseFloat(value + '')\n if (isNaN(_value) || _value < 0) return value\n return _value.toFixed(decimalPlaces).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')\n}\n\nexport const formatPercentage = (value: string | number, decimalPlaces:number = 2) => {\n const strValue = value + ''\n if (strValue.includes('%')) return value\n const _value = parseFloat(strValue)\n if (isNaN(_value)) return value\n return `${(_value * 100).toFixed(decimalPlaces)}%`\n}\n\n/**\n * 字符串1 中是否包含 字符串2 (会全部转成小写)\n * @param v1 字符串1\n * @param v2 字符串2\n * @constructor\n */\nexport const lowerCaseIncludes = (v1:any, v2:any): boolean => {\n if (typeof v1 === 'string' && typeof v2 === 'string') {\n return v1.toLocaleLowerCase().includes(v2.toLocaleLowerCase())\n }\n return false\n}\n","export const useVariablesInText = (text: string = '', data: { [key: string]:any } = {}) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (text).match(/\\{\\w*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable.slice(1, variable.length - 1)\n // TODO 设置变量默认值\n const usedVariable = data[v]\n if (usedVariable != null) {\n // 使用的变量\n text = text.replace(variable, usedVariable)\n } else {\n // 过滤未使用的变量\n text = text.replace(variable, '')\n }\n }\n return text\n}\n\nexport default useVariablesInText\n","import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '../constant'\nimport { lowerCaseIncludes } from '../util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl: url,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode, touchEventId } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal',\n touchEventId: ''\n })\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const requestData = async (params: { [key: string]: any } = {}) => {\n if (!url || !method || !headers || unref(pageMode) === 'design') return\n let _params = {} as { [key: string]: any }\n requestParams.forEach((param) => {\n const { key, value } = param\n if ((typeof value === 'object' && value.id)) {\n // 传入数据可能是这样\n // {\n // key: 'record',\n // value: {\n // id: 'T7hid3K4kg7UR9Q-44u1-',\n // prop: 'record',\n // propKey: 'id'\n // }\n // }\n // 获取到组件数据\n let record = {} as { [key:string]: any }\n const { id, prop, propKey } = value\n if (id === 'THIS') {\n // THIS 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n // 如果传入响应式数据优取响应式\n let v = ''\n // 格式化时间\n if (isNeedFormat) {\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n v = unref(p)?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref ,同时不判断 他是不是对象\n v = p != null && typeof p === 'object' ? p[propKey || 'value'] : p\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n // @ts-ignore\n _params = { ...window.requestParams, ..._params, ...params }\n let urlParams = ''\n const keys = Object.keys(_params)\n const last = keys.length - 1\n const keysLen = keys.length\n keys.forEach((key, index) => {\n if (index === 0) {\n if (keysLen !== 1) {\n urlParams += `?${key}=${_params[key]}&`\n } else {\n urlParams += `?${key}=${_params[key]}`\n }\n } else if (index === last) {\n urlParams += `${key}=${_params[key]}`\n } else {\n urlParams += `${key}=${_params[key]}&`\n }\n })\n try {\n const isSetUrlParams = ['get', 'head'].includes(method)\n const res = await axios({\n baseURL: unref(contextRequestUrl),\n url: isSetUrlParams ? url + urlParams : url,\n method,\n headers,\n data: isSetUrlParams ? {} : _params\n })\n callBack(res)\n return res\n } catch (e) {\n console.error(e)\n }\n }\n\n const requestDataTimer = isOpenRequestTimer && setInterval(requestData, requestInterval * 1000)\n\n onUnmounted(() => {\n clearInterval(requestDataTimer)\n })\n\n return requestData\n}\n\nexport default useRequestData\n","import { Data, KeyTypeDataFieldNames } from '../props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrKey = (data: Data = [], dataFieldNames: KeyTypeDataFieldNames) => {\n let { name = 'name', types = [] } = dataFieldNames || {}\n name = name?.trim() || name\n const set = new Set()\n const map = new Map<string, any []>()\n const dataLen = data.length\n const typesLen = types.length\n // 只有一条记录\n if (dataLen === 1) {\n const vs = []\n // data 为一个值取第一个\n for (let i = 0; i < typesLen; i++) {\n const type = types[i]\n const { label, value } = type\n const v = { ...data[0], value: data[0][value] }\n set.add(label)\n // 值列表\n vs.push(v)\n }\n const n = data[0][name] || ''\n map.set(n, vs)\n } else {\n for (let i = 0; i < dataLen; i++) {\n const item = data[i]\n const x = item[name]\n set.add(x)\n for (let j = 0; j < typesLen; j++) {\n const type = types[j]\n const { label, value } = type\n const v = { ...item, value: item[value] }\n if (map.has(label)) {\n const m = map.get(label)\n m.push(v)\n map.set(label, m)\n } else {\n map.set(label, [v])\n }\n }\n }\n }\n\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\n\nexport default useTransformChartDataByAttrKey\n","import { UPLOAD_PATH } from '../constant'\nexport const useImagePath = (path:string, isFormat: boolean = false) => {\n if (!path) return path\n let imagePath: string = ''\n if (path?.includes('://')) {\n imagePath = path\n } else {\n imagePath = UPLOAD_PATH + path\n }\n if (isFormat) {\n imagePath = `url(${imagePath})`\n }\n return imagePath\n}\n\nexport default useImagePath\n","import { BASE_URL } from '../constant'\nexport const usePageUrl = (pageMode: string, pageId: string) => {\n const envPageUrl = `/preview?pageId=${pageId}`\n const proPageUrl = `${BASE_URL}${pageId}`\n return pageMode === 'preview' ? envPageUrl : proPageUrl\n}\n\nexport default usePageUrl\n","import axios from 'axios'\nimport { message } from 'ant-design-vue'\n\nexport const request = axios.create({\n // timeout: 1000 * 15\n})\nrequest.interceptors.request.use((config) => {\n return config\n}, (error) => {\n return Promise.reject(error)\n})\n\nrequest.interceptors.response.use((config) => {\n if (+config?.data?.code === 500) {\n message.error({\n content: config?.data?.msg || config?.data?.message || '服务器异常',\n key: 'SERVER_ERROR'\n })\n }\n return config\n}, (error) => {\n if (error.message.includes('timeout')) {\n message.error({\n content: '网络连接超时,请重试!',\n key: 'TIMEOUT'\n })\n } else {\n const { status } = error.response\n if (status >= 400 && status < 500) {\n message.error({\n content: '请求异常',\n key: 'REQUEST_ERROR'\n })\n }\n\n if (status >= 500) {\n message.error({\n content: '服务器异常',\n key: 'REQUEST_ERROR'\n })\n }\n }\n return Promise.reject(error)\n})\n\nexport default request\n","import { INDICATOR_URL, GLOBAL_MODEL } from '../constant'\r\nimport { inject, unref } from 'vue'\r\nimport request from '../request'\r\nimport { message } from 'ant-design-vue'\r\n\r\n/**\r\n * 请求图表数据接口\r\n * @returns {{requestDiagram: () => Promise<AxiosResponse<any>>}}\r\n */\r\nexport const useRequestDiagramData = (props) => {\r\n // 获取到组件数据\r\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\r\n // @ts-ignore\r\n // eslint-disable-next-line no-void\r\n getGlobalModel: (key: string) => void 0\r\n })\r\n const getIndicatorList = (graphicConfig) => {\r\n const indicatorList = []\r\n // 左值轴、指标\r\n graphicConfig?.leftAxisList.forEach(leftAxis => {\r\n if (leftAxis) {\r\n let show = false\r\n if (graphicConfig.leftAxis.includes(leftAxis.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: leftAxis.name,\r\n columnName: leftAxis.label,\r\n aggregate: leftAxis.calcValue ? leftAxis.calcValue : 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = leftAxis.indexCode\r\n }\r\n indicator = getCalculationAxis(leftAxis, indicator)\r\n indicatorList.push(indicator)\r\n }\r\n })\r\n // 右值轴\r\n graphicConfig.rightAxisList.forEach(it => {\r\n let show = false\r\n if (graphicConfig.rightAxis.includes(it.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: it.name,\r\n columnName: it.label,\r\n aggregate: 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n indicator = getCalculationAxis(it, indicator)\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = it.indexCode\r\n }\r\n indicatorList.push(indicator)\r\n })\r\n\r\n return indicatorList\r\n }\r\n\r\n /**\r\n * 获取计算指标\r\n * @param item\r\n * @param indicator\r\n */\r\n const getCalculationAxis = <T> (item, indicator: T): T => {\r\n const newIndicator: any = { ...indicator }\r\n if (item.calcMethod) { // 来源:新增计算指标\r\n if (item.calcMethod === 'FORMULA') { // 公式\r\n if (item.formulafuc) {\r\n newIndicator.formula = item.formulafuc\r\n }\r\n newIndicator.calcType = 'FORMULA'\r\n } else {\r\n newIndicator.builtInFormula = item.calculmethod\r\n newIndicator.calcType = 'BUILT_IN'\r\n if (item.comeFrom) {\r\n newIndicator.builtInValueSource = item.comeFrom\r\n }\r\n if (item.accessPrinciple) {\r\n newIndicator.builtInCalcWay = item.accessPrinciple\r\n }\r\n }\r\n } else { // 来源:视图拖拽\r\n // @ts-ignore\r\n newIndicator.calcType = 'COLUMN'\r\n }\r\n\r\n return newIndicator\r\n }\r\n\r\n /**\r\n * 获取查询条件\r\n * TODO 检查除日期外的特殊逻辑\r\n * @param relativeList\r\n * @returns {any[]}\r\n */\r\n const getSqlCondition = (relativeList = []) => {\r\n // 关联\r\n const list = []\r\n for (let i = 0; i < relativeList.length; i++) {\r\n const { keyName, searchName, searchType, variateName, id } = relativeList[i]\r\n const item: any = {\r\n alias: keyName,\r\n fieldName: searchName,\r\n rule: searchType || 'NONE',\r\n fieldValue: '',\r\n valueType: '',\r\n variateName\r\n }\r\n const watchItem = getGlobalModel(id) || {}\r\n if (searchName === 'the_date') {\r\n item.valueType = 'DATE'\r\n } else if (['hbdwbh', 'hbdwbh_name'].includes(searchName)) {\r\n item.valueType = 'TEXT'\r\n }\r\n if (watchItem.type === 'ecanDatePicker') {\r\n item.dateFormat = watchItem.format\r\n const formatter = unref(watchItem)?.value.format\r\n if (typeof formatter === 'function') {\r\n item.fieldValue = formatter(watchItem?.format)\r\n }\r\n }\r\n list.push(item)\r\n }\r\n return list\r\n }\r\n\r\n const getSortParams = (classification, list) => {\r\n // 分类项中的排序\r\n const classifyItem = list.find(item => {\r\n return item.name === classification.label\r\n })\r\n if (classifyItem.sort.type) {\r\n if (classifyItem.sort.type !== 'CUSTOM') {\r\n classification.sort = {\r\n label: classifyItem.sort.label,\r\n columnName: classifyItem.sort.columnName,\r\n type: 'NORMAL',\r\n order: classifyItem.sort.type\r\n }\r\n } else {\r\n classification.sort = {\r\n label: classifyItem.label,\r\n columnName: classifyItem.columnName,\r\n type: 'CUSTOM',\r\n customOrderColumns: classifyItem.sort.customOrderColumns\r\n }\r\n }\r\n }\r\n if (classifyItem.customGroup) {\r\n if (classifyItem.customGroup.groupList.length > 1) { // 0或1表示未分组\r\n classification.customGroup = {\r\n groupInfoMap: {},\r\n otherGroupName: ''\r\n }\r\n classifyItem.customGroup.groupList.forEach((row, rowIndex) => {\r\n if (rowIndex !== 0) {\r\n classification.customGroup.groupInfoMap[row.key] = row.value\r\n }\r\n })\r\n classification.customGroup.otherGroupName = classifyItem.customGroup.otherName || ''\r\n }\r\n }\r\n classification.rangeIndexTypeGuid = classifyItem.typeGuid\r\n classification.customFilterSqlPart = classifyItem.filterSql || ''\r\n }\r\n\r\n const handlerFilterParam = (parent, conditions) => {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n if (parent.children[i].children.length > 0) {\r\n let join = ''\r\n if (parent.type === 'and') {\r\n join = '&&'\r\n } else {\r\n join = '||'\r\n }\r\n conditions.push({ conditions: [], join: join })\r\n handlerFilterParam(parent.children[i], conditions[conditions.length - 1].conditions)\r\n } else {\r\n if (parent.children[i].fieldName) {\r\n let fieldValue = ''\r\n const item: any = {\r\n fieldName: parent.children[i].fieldName,\r\n fieldType: parent.children[i].itemType,\r\n rule: parent.children[i].rule,\r\n fieldValue: '',\r\n label: parent.children[i].label,\r\n version: parent.children[i].version ? parent.children[i].version : 100, // 兼容图形化配置时传显示的label,之前的传字段就是100的,label版本为101\r\n targetSource: parent.children[i].targetSource ? parent.children[i].targetSource : ''\r\n }\r\n fieldValue = JSON.parse(JSON.stringify(parent.children[i].fieldValue))\r\n if (parent.children[i].itemType === 'DATE') {\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n if (parent.children[i].selectType === 'time') { // 自定义时间\r\n if (parent.children[i].absoluteBool) { // 相对时间\r\n fieldValue = '#######'\r\n item.calcWays = parent.children[i].calcWays\r\n } else { // 取配置值\r\n // TODO\r\n // fieldValue = moment(fieldValue).format(parent.children[i].format)\r\n }\r\n } else if (parent.children[i].selectType === 'component') { // 关联控件\r\n fieldValue = '${' + parent.children[i].relateCompent + '}'\r\n }\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n } else {\r\n if (Object.prototype.toString.call(fieldValue) === '[object Array]') { // 选中后台查询值\r\n const fieldList: any = []\r\n for (let n = 0; n < fieldValue.length; n++) {\r\n if (fieldValue[n] !== '全选') {\r\n fieldList.push(fieldValue[n])\r\n }\r\n }\r\n fieldValue = fieldList.join(',')\r\n }\r\n }\r\n item.fieldValue = fieldValue\r\n if (parent.children.length > 1 && i !== parent.children.length - 1) {\r\n if (parent.type === 'and') {\r\n item.join = '&&'\r\n } else {\r\n item.join = '||'\r\n }\r\n }\r\n conditions.push(item)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 筛选变量处理\r\n const getFilterParams = (type, list, graphicConfig) => {\r\n if (!type) {\r\n return\r\n }\r\n const classifyItem = graphicConfig[list].find(item => {\r\n return item.name === type.label\r\n })\r\n if (!classifyItem) {\r\n return\r\n }\r\n const conditions = []\r\n const filterList = classifyItem.filterList\r\n if (filterList) {\r\n for (let i = 0; i < filterList.length; i++) {\r\n if (filterList[i].children.length > 0) {\r\n handlerFilterParam(filterList[i], conditions)\r\n }\r\n }\r\n }\r\n return conditions\r\n }\r\n\r\n return async function () {\r\n const componentType = props.type\r\n let graphicConfig = props.graphicConfig\r\n if (!graphicConfig || Object.keys(graphicConfig).length === 0) {\r\n graphicConfig = {\r\n classify: [],\r\n classifyList: [],\r\n series: [],\r\n seriesList: [],\r\n leftAxis: [],\r\n leftAxisList: [],\r\n rightAxis: [],\r\n rightAxisList: [],\r\n relativeList: []\r\n }\r\n }\r\n const xAxisValue = graphicConfig.classify\r\n const yAxisValue = [...graphicConfig.leftAxis, ...graphicConfig.rightAxis]\r\n if (yAxisValue.length === 0) {\r\n message.error('当前y轴无配置信息')\r\n return\r\n }\r\n\r\n // 获取值轴参数\r\n const indicatorList = getIndicatorList(graphicConfig)\r\n // 获取系列值\r\n let series\r\n if (Array.isArray(graphicConfig.series) && graphicConfig.series.length > 0) {\r\n const seriesItem = graphicConfig.seriesList?.find(item => {\r\n const firstSeries = graphicConfig.series[0]\r\n return item.name === firstSeries || item.nameBak === firstSeries\r\n })\r\n if (seriesItem != null) {\r\n series = {\r\n label: seriesItem.name,\r\n columnName: seriesItem.label\r\n }\r\n }\r\n }\r\n // 获取分类\r\n let classification\r\n if (xAxisValue.length > 0) {\r\n classification = {\r\n label: xAxisValue[0],\r\n columnName: xAxisValue[0]\r\n }\r\n const classify = graphicConfig.classifyList?.find(item => {\r\n return item?.name === xAxisValue[0] || item?.nameBak === xAxisValue[0]\r\n }) || {}\r\n classification.columnName = classify.label\r\n // 获取排序信息\r\n getSortParams(classification, graphicConfig.classifyList)\r\n classification.conditions = getFilterParams(classification, 'classifyList', graphicConfig) || []\r\n }\r\n if (series) {\r\n // 获取排序信息\r\n getSortParams(series, graphicConfig.seriesList)\r\n series.conditions = getFilterParams(series, 'seriesList', graphicConfig) || []\r\n }\r\n\r\n for (let t = 0; t < indicatorList.length; t++) {\r\n if (indicatorList[t].location === 'RIGHT') {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'rightAxisList', graphicConfig)\r\n } else {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'leftAxisList', graphicConfig)\r\n }\r\n }\r\n\r\n let sqlConditions\r\n if (graphicConfig?.pageMode === 'design') {\r\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\r\n sqlConditions = graphicConfig.sqlConditions ?? []\r\n } else {\r\n sqlConditions = getSqlCondition(graphicConfig?.relativeList)\r\n }\r\n let source = 'SQL_VIEW'\r\n let fixedDimSql = ''\r\n let dataSourceId = ''\r\n let idxLibMode = ''\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n source = 'INDICATOR_LIB'\r\n fixedDimSql = graphicConfig.fixedDimSql\r\n dataSourceId = graphicConfig.dataSourceId\r\n idxLibMode = graphicConfig.idxLibMode\r\n }\r\n\r\n const map = {\r\n ecanBar: 'bar',\r\n ecanLine: 'line',\r\n ecanPie: 'pie',\r\n ecanScatter: 'scatter'\r\n }\r\n\r\n try {\r\n const res = await request.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\r\n headers: {\r\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\r\n current_context: 'ygt'\r\n }\r\n })\r\n\r\n return request.post(`${INDICATOR_URL}/diagram`, {\r\n dataViewId: graphicConfig.dataViewId,\r\n plugin: '1',\r\n layer: '2',\r\n chartType: map[componentType],\r\n classification,\r\n indicatorList,\r\n series,\r\n sqlConditions,\r\n source,\r\n fixedDimSql,\r\n dataSourceId,\r\n idxLibMode\r\n }, {\r\n headers: { Authentication: res.data.data.token }\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n}\r\n\r\nexport default useRequestDiagramData\r\n","export const useValueFormatter = (formatter: string, value:string) => {\n if (formatter == null) return value\n const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) return value\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n if (variable == null || variable === '') break\n let statement = variable.slice(1, -1)\n statement = statement?.replace(/value/g, value)\n try {\n // 匹配加减乘除\n let result = statement\n if ((/[+\\-*/%]+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n result = eval2(statement)\n }\n formatter = formatter.replace(variable, result)\n } catch (e) {\n console.error(e)\n }\n }\n return formatter\n}\n\nexport default useValueFormatter\n","import { GLOBAL_MODEL, INDICATOR_URL, GLOBAL_TOKEN } from '@/_utils/constant'\nimport { lowerCaseIncludes } from '@/_utils/util'\nimport request from '@/_utils/request'\nimport { inject, unref } from 'vue'\n\nexport const useIndicatorData = (props: { [key:string]: any } = {}) => {\n const { requestToken } = inject(GLOBAL_TOKEN, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n requestToken: () => void 0\n })\n // 指标库模式才会发\n if (props.dataType === 'indicator') {\n // 只要调用,计数 + 1,计数大于0才会请求\n requestToken()\n }\n\n const handleQueryColumn = (queryColumn: { [key:string]: any } = {}) => {\n const { label, name, location, show, indexCode } = queryColumn\n return {\n label,\n columnName: name,\n location,\n show,\n calcType: 'COLUMN',\n hrpIndexCode: indexCode\n }\n }\n\n const handleIndicator = (indicator: { [key:string]: any } = {}) => {\n const {\n label,\n name,\n location,\n show,\n indexCode,\n calcType = 'COLUMN',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n } = indicator\n return {\n label,\n columnName: name,\n location,\n show,\n calcType,\n hrpIndexCode: indexCode,\n aggregate: 'SUM',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n }\n }\n\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const handleSqlConditions = (controlList: { [key:string]: any } [] = []) => {\n const len = controlList.length\n const sqlConditions = [] as { [key:string]: any } []\n for (let i = 0; i < len; i++) {\n const control = controlList[i]\n const {\n id,\n conditionLabel,\n conditionKey,\n conditionValueType\n } = control\n const sqlCondition: { [key:string]: any } = {\n rule: 'NONE',\n label: conditionLabel,\n fieldName: conditionKey,\n fieldValue: '', // 在关联控件中取\n valueType: conditionValueType\n }\n // 获取组件属性\n const model = getGlobalModel(id) || {}\n if (lowerCaseIncludes(model.type, 'date')) {\n const { value, format } = model || {}\n sqlCondition.fieldValue = unref(value)?.format(format)\n sqlCondition.dateFormat = format\n }\n sqlConditions.push(sqlCondition)\n }\n return sqlConditions\n }\n return async () => {\n const { graphicConfig } = props\n const {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classificationList = [],\n seriesList = [],\n leftAxisList = [],\n rightAxisList = [],\n queryColumnList = [],\n indicators = [],\n controlList = [],\n dataSourceId,\n idxLibMode,\n preview = false\n } = graphicConfig || {}\n // console.log('classificationList', classificationList)\n // console.log('seriesList', seriesList)\n // console.log('leftAxisList', leftAxisList)\n // console.log('rightAxisList', rightAxisList)\n // console.log('indicators', indicators)\n // console.log('controlList', controlList)\n // 重点处理 classificationList、seriesList、leftAxisList、rightAxisList、indicators\n // classificationList (取第一项) => classification\n let classification\n if (Array.isArray(classificationList) && classificationList.length > 0) {\n const len = classificationList.length\n for (let i = 0; i < len; i++) {\n const item = classificationList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 classification,停止遍历\n if (show || len === 1) {\n classification = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // seriesList (取第一项) => series\n let series\n if (Array.isArray(seriesList) && seriesList.length > 0) {\n const len = seriesList.length\n for (let i = 0; i < len; i++) {\n const item = seriesList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 seriesList,停止遍历\n if (show || len === 1) {\n series = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // queryColumnList => queryColumns\n const queryColumns = []\n queryColumnList?.forEach((queryColumn: { [key:string]: any }) => {\n queryColumns.push(handleQueryColumn(queryColumn))\n })\n\n // leftAxisList + rightAxisList + indicators => indicatorList\n const indicatorList = []\n leftAxisList?.forEach((leftAxis: { [key:string]: any }) => {\n leftAxis.location = 'LEFT'\n indicatorList.push(handleIndicator(leftAxis))\n })\n rightAxisList?.forEach((rightAxis: { [key:string]: any }) => {\n rightAxis.location = 'RIGHT'\n indicatorList.push(handleIndicator(rightAxis))\n })\n indicators?.forEach((indicator: { [key:string]: any }) => {\n indicator.location = 'LEFT'\n indicatorList.push(handleIndicator(indicator))\n })\n if (layer === '1' && queryColumns.length === 0) {\n return\n } else if (layer === '2' && indicatorList.length === 0) {\n return\n }\n let sqlConditions\n if (graphicConfig?.pageMode === 'design') {\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\n sqlConditions = graphicConfig.sqlConditions ?? []\n } else {\n sqlConditions = handleSqlConditions(controlList)\n }\n try {\n const res = await request.post(`${INDICATOR_URL}/diagram`, {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classification,\n series,\n indicatorList,\n queryColumns,\n pageFlag: true,\n sqlConditions,\n // fixedDimSql: '',\n dataSourceId,\n idxLibMode,\n preview\n },\n {\n headers: {\n // @ts-ignore\n Authentication: window?.config?.indicatorToken,\n operateContext: 'ygt'\n }\n })\n return res\n } catch (e) {\n console.error(e)\n }\n }\n}\n\nexport default useIndicatorData\n","export const useHrefParamsToGlobalVariables = () => {\n const search = window.location.search\n const params = search.slice(1).split('&')\n const len = params.length\n for (let i = 0; i < len; i++) {\n const param = params[i]\n if (param == null || param === '') continue\n const keyAndValue = param.split('=')\n if (Array.isArray(keyAndValue)) {\n const key = keyAndValue[0]\n const value = keyAndValue[1] as string\n (window as any).config[key] = value\n }\n }\n}\n\nexport default useHrefParamsToGlobalVariables\n","<template>\n <div id=\"container\" ref=\"container\">\n <template v-if=\"ready\">\n <div\n class=\"page-config\"\n :style=\"style\"\n >\n <slot></slot>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, nextTick, computed, ref, onMounted, onUnmounted } from 'vue'\nimport { debounce } from 'lodash-es'\nimport { pageConfigComponentProps } from './props'\nimport { useImagePath } from '@/_utils/hooks'\nexport default defineComponent({\n name: 'EcanPageConfig',\n inheritAttrs: false,\n props: {\n ...pageConfigComponentProps\n },\n setup (props) {\n // 大屏设计容器\n const style = computed(() => ({\n width: props.width,\n height: props.height,\n backgroundColor: props.backgroundColor,\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n backgroundSize: props.backgroundSize\n }))\n const width = ref(0)\n const height = ref(0)\n const originalWidth = ref(0)\n const originalHeight = ref(0)\n const ready = ref(false)\n const container = ref()\n let observer: MutationObserver | null\n const initSize = () => {\n return new Promise<void>((resolve) => {\n nextTick(() => {\n // 获取大屏的真实尺寸\n if (props.width && props.height) {\n width.value = parseFloat(props.width)\n height.value = parseFloat(props.height)\n } else {\n width.value = container.value.clientWidth\n height.value = container.value.clientHeight\n }\n // 获取画布尺寸\n if (!originalWidth.value || !originalHeight.value) {\n originalWidth.value = window.screen.width\n originalHeight.value = window.screen.height\n }\n resolve()\n })\n })\n }\n const updateSize = () => {\n if (width.value && height.value) {\n container.value.style.width = `${width.value}px`\n container.value.style.height = `${height.value}px`\n } else {\n container.value.style.width = `${originalWidth.value}px`\n container.value.style.height = `${originalHeight.value}px`\n }\n }\n const updateScale = () => {\n // 获取真实的视口尺寸\n const currentWidth = document.body.clientWidth\n const currentHeight = document.body.clientHeight\n // 获取大屏最终的宽高\n const realWidth = width.value || originalWidth.value\n const realHeight = height.value || originalHeight.value\n const widthScale = currentWidth / realWidth\n const heightScale = currentHeight / realHeight\n container.value && (container.value.style.transform = `scale(${widthScale}, ${heightScale})`)\n }\n const onResize = async () => {\n await initSize()\n updateScale()\n }\n const initMutationObserver = () => {\n const MutationObserver = window.MutationObserver\n observer = new MutationObserver(onResize)\n observer.observe(container.value, {\n attributes: true,\n attributeFilter: ['style'],\n attributeOldValue: true\n })\n }\n const removeMutationObserver = () => {\n if (observer) {\n observer.disconnect()\n observer.takeRecords()\n observer = null\n }\n }\n onMounted(async () => {\n ready.value = false\n await initSize()\n updateSize()\n updateScale()\n window.addEventListener('resize', debounce(onResize, 100))\n initMutationObserver()\n ready.value = true\n })\n onUnmounted(() => {\n window.removeEventListener('resize', onResize)\n removeMutationObserver()\n })\n return {\n style,\n container,\n ready\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n#container {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n.page-config {\n position: relative;\n overflow: hidden;\n background-size: cover;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport PageConfig from './PageConfig.vue'\nexport const EcanPageConfig = withInstall(PageConfig)\nexport default EcanPageConfig\nexport * from './props'\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport interface ProviderConfig {\n contextRequestUrl: string // 请求头\n pageMode: 'normal' | 'preview' | 'design' // 普通、预览、设计模式\n theme: 'light' | 'darkBlue'\n containerMap: { [key:string]: any }\n}\n\nexport const providerConfig: ProviderConfig = {\n contextRequestUrl: '',\n pageMode: 'normal',\n theme: 'light',\n containerMap: {}\n}\n\n// 转化默认属性\nexport const providerConfigComponentProps = transformToComponentProps(providerConfig)\n","<template>\n <!-- 请勿去除属性id -->\n <div id=\"ProviderConfig\" ref=\"providerConfig\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, onUnmounted, ref, onMounted, watch, computed, unref } from 'vue'\nimport mitt from 'mitt'\nimport { EVENT_BUS, GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL, INDICATOR_URL, GLOBAL_TOKEN, REFRESH_PAGE } from '@/_utils/constant'\nimport { providerConfigComponentProps } from './props'\nimport { useVariablesInText, useHrefParamsToGlobalVariables } from '@/_utils/hooks'\nimport axios from 'axios'\n\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\n\n const providerConfig = ref<HTMLElement>()\n const setTheme = () => {\n providerConfig.value.setAttribute('datav-theme', props.theme as string)\n }\n watch(() => props.theme, () => {\n setTheme()\n })\n onMounted(() => {\n setTheme()\n })\n const contextRequestUrl = computed(() => useVariablesInText(props.contextRequestUrl as string))\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n // 当前组件主动触发ID\n const touchEventId = ref<string>('')\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme,\n touchEventId\n })\n\n // 提供全局变量\n const globalModel = new Map()\n const getGlobalModel = (key: string) => {\n return globalModel.get(key)\n }\n const setGlobalModel = (key: string, value: any) => {\n globalModel.set(key, value)\n }\n provide(GLOBAL_MODEL, {\n getGlobalModel,\n setGlobalModel\n })\n\n // 提供事件\n const eventBus = mitt()\n const onEvent = (key: string, events: { [key:string]: any }) => {\n eventBus.on(key, (k: string) => {\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onUnmounted(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key: string, eventName: string) => {\n eventBus.emit(key, eventName)\n }\n provide(EVENT_BUS, {\n onEvent,\n offEvent,\n emitEvent\n })\n\n // 设置是否请求 token\n const tokenNum = ref(0)\n const requestToken = () => {\n tokenNum.value = unref(tokenNum) + 1\n }\n provide(GLOBAL_TOKEN, {\n requestToken\n })\n // 请求排序\n const requestModel = new Map()\n const setRequest = (requestFn: Function = () => {}, sortNum: number = 0) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\n }\n const handleRequestFnList = (requestFnList: Array<Function>) => {\n return new Promise((resolve, reject) => {\n const resultList = requestFnList.map(requestFn => requestFn())\n Promise.all(resultList)\n .then(list => {\n resolve(list)\n })\n .catch(err => {\n reject(err)\n })\n })\n }\n // 指标库模块请求 token\n const queryUserToken = async () => {\n const res = await axios.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\n headers: {\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\n current_context: 'ygt'\n }\n })\n // 设置 token 挂载在 window.config 上\n // @ts-ignore\n // eslint-disable-next-line\n config.indicatorToken = res.data.data?.token\n }\n const touchRequest = async () => {\n const requestModelArr = Array.from(requestModel)\n // 排序\n requestModelArr.sort((a, b) => b[0] - a[0])\n const len = requestModelArr.length\n try {\n // 指标库模块需要 token\n // 页面不为design 请求次数 token 不为0\n if (props.pageMode !== 'design' && unref(tokenNum) > 0) {\n await queryUserToken()\n }\n for (let i = 0; i < len; i++) {\n const requestFnList = requestModelArr[i][1]\n await handleRequestFnList(requestFnList)\n }\n } catch (e) {\n console.error(e)\n } finally {\n // 执行完直接清空\n requestModel.clear()\n }\n }\n\n provide(REQUEST_MODEL, {\n setRequest,\n touchRequest\n })\n\n const emitRefreshPage = () => {\n eventBus.emit(REFRESH_PAGE)\n }\n provide(REFRESH_PAGE, {\n emitRefreshPage\n })\n // const notRenderSet = ref(new Set())\n // const refreshEventBus = mitt()\n const onRefreshPage = (callBack: Function) => {\n eventBus.on(REFRESH_PAGE, () => callBack())\n onMounted(() => {\n eventBus.off(REFRESH_PAGE)\n })\n }\n\n expose({\n touchRequest,\n getGlobalModel,\n onRefreshPage\n })\n\n return {\n providerConfig\n }\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport ProviderConfig from './ProviderConfig.vue'\nexport const EcanProviderConfig = withInstall(ProviderConfig)\nexport default EcanProviderConfig\nexport * from './props'\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport interface Renderer {\n componentList: { [key:string]:any } []\n}\n\nexport const renderer: Renderer = {\n componentList: []\n}\n\n// 转化默认属性\nexport const rendererComponentProps = transformToComponentProps(renderer)\n","<template>\n <div></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { rendererComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanRenderer',\n props: {\n ...rendererComponentProps\n },\n setup () {\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Renderer from './Renderer.vue'\nexport const EcanRenderer = withInstall(Renderer)\nexport default EcanRenderer\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TextProps extends Props {\n text: string // 文本内容\n color: string // 颜色\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n justifyContent: 'flex-start' | 'center' | 'end' // 水平位置\n alignItems: 'flex-start' | 'center' | 'end' // 垂直位置\n textShadow: string // 文字阴影\n data: { [key:string]: any }\n variableColor: string\n variableFontSize: string\n variableDefaultValue: string\n format: '' | 'percentage'\n}\nexport const textProps:TextProps = {\n ...props,\n name: '文本',\n keyName: '文本',\n type: 'ecanText',\n width: '100px',\n height: '40px',\n text: '文字',\n color: '#333',\n variableColor: '#f00',\n fontSize: '14px',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n justifyContent: 'center',\n alignItems: 'center',\n variableFontSize: '14px',\n data: {},\n variableDefaultValue: '0',\n format: ''\n}\n\n// 转化默认属性\nexport const textComponentProps = transformToComponentProps(textProps)\n\nexport const textEvents = ['refreshData', 'click']\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA3LTIyVDA5OjM1OjE5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHN0RXZ0OndoZW49IjIwMjItMDctMjJUMDk6MzU6MTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6VDI+BAAABUUlEQVRIia3WPyhGURgG8B8pi0xisStKMioZLQaLiaQMBoxiVBImCwaLf6MssloUk8Gmb7GgJFKSUvIZ7qe+bvd89+A+03uf989z3nPPPe+tK5fLqtF3tSESzRjFAJ4vemams4IaYqulCq9gEo34QGco+LcCg9hHaxW3jpsiBIZxmMp5kXQTRH1k8S4cZCxoE6//FaiXbEtThm87JjkPI+jN4E9xW4TAQoA/isjNFehCT8B3VoTAUID/xHURAn0B/g5fRQh0B/j7mOJkf2gTaKvY7YG8FsxXPe/hIVbgCTs5C+vAasU+xlooMGuLTrCVI/CDR0zVCgi9gzmUIgQmBbYmT+AdY5LjGMKWpNuaqHWKLrEY8JUkXeYi75iu4DzFfUi6ey9C4AvjeKviliTdRSHmsrvBbMU+lzNg0oidaLvox7LIK+IHdem/iqIROzL/jG+NrT1BRsXKNQAAAABJRU5ErkJggg==\"","<template>\n <div class=\"skeleton-wrapper\" :style=\"style\" v-if=\"loading\">\n <skeleton :loading=\"loading\"/>\n </div>\n <div class=\"ecan-text\" :style=\"style\" v-html=\"myText\" @click=\"click\" v-else/>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { textComponentProps } from './props'\nimport { usePickComponentStyle, useRequestData, useOnEvent, useEmitEvent } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br/>')\n text = text?.replace(/\\s/g, '&nbsp;')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${Math.abs(usedVariable)}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Text from './Text.vue'\nexport const EcanText = withInstall(Text)\nexport default EcanText\nexport * from './props'\n","<template>\n <div class=\"red\">\n {{ text }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue'\nexport default defineComponent({\n name: 'EcanScrollText',\n setup () {\n const text = ref('基础文本')\n return {\n text\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.red {\n color: red;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport ScrollText from './ScrollText.vue'\nexport const EcanScrollText = withInstall(ScrollText)\nexport default EcanScrollText\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TimeDisplayProps extends Props {\n color: string\n format: string\n fontSize: string\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n textShadow: string // 文字阴影\n textAlign: string // 水平\n verticalAlign: string // 垂直\n}\n\nexport const timeDisplayProps: TimeDisplayProps = {\n ...props,\n name: '时间展示',\n keyName: '时间展示',\n type: 'ecanTimeDisplay',\n format: 'YYYY-MM-DD dddd HH:mm:ss',\n fontSize: '16px',\n color: '#333',\n width: '240px',\n height: '40px',\n textAlign: 'center',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n verticalAlign: 'middle'\n}\n\nexport const timeDisplayComponentProps = transformToComponentProps(timeDisplayProps)\n","<template>\n <div class=\"time-display\" :style=\"style\">\n {{ time }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, onMounted, onUnmounted, ref } from 'vue'\nimport { timeDisplayComponentProps } from './props'\nimport dayjs from 'dayjs'\nimport { usePickComponentStyle } from '../../_utils/hooks'\nexport default defineComponent({\n name: 'EcanTimeDisplay',\n props: {\n ...timeDisplayComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const time = ref(dayjs().format(props.format as string))\n let timer = null\n const clearTimer = () => {\n clearInterval(timer)\n timer = null\n }\n const setTimer = () => {\n if (timer) {\n clearTimer()\n }\n timer = setInterval(() => {\n time.value = dayjs().add(1, 's').format(props.format as string)\n }, 1000)\n }\n onMounted(() => {\n setTimer()\n })\n onUnmounted(() => {\n clearTimer()\n })\n return {\n style,\n time\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.time-display {\n overflow: hidden;\n display: table-cell;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport TimeDisplay from './TimeDisplay.vue'\nexport const EcanTimeDisplay = withInstall(TimeDisplay)\nexport default EcanTimeDisplay\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ListProps extends Props {\n data: { [key: string]: any } []\n columns: { [key: string]: any } []\n sliceCount: number,\n backgroundColor: string\n useRanking: boolean\n useTitle: boolean\n columnCount: number\n itemHeight: string\n itemColSpan: string\n itemRowSpan: string\n}\n\nexport const listProps:ListProps = {\n ...props,\n type: 'ecanList',\n name: '列表',\n keyName: '列表',\n width: '330px',\n height: '80px',\n backgroundColor: '#0d215e',\n itemColSpan: '10px',\n itemRowSpan: '10px',\n useRanking: true,\n useTitle: false,\n sliceCount: 6,\n columnCount: 1,\n itemHeight: '32px',\n data: [\n {\n name: 'a',\n age: 12\n },\n {\n name: 'b',\n age: 14\n }\n ],\n columns: [\n {\n key: 'name'\n },\n {\n key: 'age'\n }\n ]\n}\n\nexport const listComponentProps = transformToComponentProps(listProps)\n\nexport interface ListEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const listEvents: Array<keyof ListEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-list\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <div\n class=\"title\"\n v-if=\"useTitle\"\n >\n <div\n class=\"title-inner\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1}/ ${columnCount})`,\n marginRight: count % columnCount !== 0 ? itemColSpan : ''\n }\"\n v-for=\"count in columnCount\"\n :key=\"count\"\n >\n <div class=\"ranking\" v-if=\"useRanking\" />\n <div\n class=\"column\"\n v-for=\"(column, i) in columns\"\n :key=\"column.key || i\"\n :style=\"{\n color: column.titleColor,\n ...columnStyle\n }\"\n >\n {{ column.title }}\n </div>\n </div>\n </div>\n <div class=\"ecan-list-content\" v-if=\"dataSource.length > 0\">\n <div\n class=\"title-placeholder\"\n :style=\"{\n marginBottom: itemRowSpan\n }\"\n v-if=\"useTitle\"\n />\n <div\n class=\"item\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1} / ${columnCount})`,\n marginRight: (i + 1) % columnCount !== 0 ? itemColSpan : '',\n marginBottom: itemRowSpan\n }\"\n v-for=\"(item, i) in dataSource.slice(0, sliceCount)\"\n :key=\"item.id || i\"\n @click=\"click\"\n >\n <div class=\"ranking\" v-if=\"useRanking\">\n <div class=\"icon\"/>\n <div class=\"sort\">\n Top {{ i + 1 }}\n </div>\n </div>\n <div\n :class=\"['column', contrastClass(item[column.key], column.format)]\"\n v-for=\"column in columns\"\n :key=\"column.key\"\n :style=\"{\n fontSize: column.fontSize,\n color: contrastClass(item[column.key], column.format) === '' ? column.color : '',\n fontWeight: column.fontWeight,\n ...columnStyle\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(item[column.key], column.format) }}\n </div>\n </div>\n </div>\n <div class=\"empty\" v-else>\n 暂无数据\n </div>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref } from 'vue'\nimport { listComponentProps, ListEvents } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/_utils/hooks'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton'\nexport default defineComponent({\n name: 'EcanList',\n components: { Skeleton },\n props: {\n ...listComponentProps\n },\n setup (props) {\n const dataSource = ref<{[key:string]: any} []>(props.data as {[key:string]: any} [])\n const style = usePickComponentStyle(props, ['backgroundColor'])\n const columnStyle = computed(() => {\n if (props.useRanking) {\n return {\n textAlign: 'center'\n }\n } else {\n return {\n textAlign: 'left'\n }\n }\n })\n type Format = 'money' | 'percentage' | 'contrast' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n\n try {\n loading.value = true\n const res = await requestData()\n dataSource.value = res?.data?.data.rows || []\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n handleRequestData()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n useOnEvent(props, {\n refreshData\n } as ListEvents)\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\n return {\n style,\n formatFn,\n columnStyle,\n contrastClass,\n dataSource,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n .ecan-list {\n overflow: hidden;\n }\n .ecan-list-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n align-content: flex-start;\n flex-wrap: wrap;\n }\n .title {\n position: absolute;\n z-index: 9;\n display: flex;\n align-items: center;\n height: 32px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .title-inner {\n padding-left: 28px;\n padding-right: 20px;\n flex: 1;\n display: flex;\n height: 100%;\n }\n .title-placeholder {\n width: 100%;\n height: 32px;\n }\n .item {\n display: flex;\n align-items: center;\n height: 32px;\n padding-left: 28px;\n padding-right: 20px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .column {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .ranking {\n flex: 1;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .icon {\n width: 12px;\n height: 8px;\n background: #21BEF7;\n margin-right: 17px;\n opacity: .6;\n }\n .item:nth-child(2) .icon {\n opacity: .8;\n }\n .item:first-child .icon{\n opacity: 1;\n }\n .sort {\n font-weight: 600;\n }\n .goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n\n .goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n .empty {\n text-align: center;\n margin-top: 15%;\n }\n</style>\n\n<style lang=\"less\">\n.ecan-list {\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n *::-webkit-scrollbar-thumb {\n border-radius: 6px;\n -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);\n background-color: #c8c9ca;\n }\n}\n[datav-theme='darkBlue'] {\n .ecan-list {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n *::-webkit-scrollbar-track{\n background-color: #192c70;\n }\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .empty {\n color: #ffffff;\n }\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport List from './List.vue'\nexport const EcanList = withInstall(List)\nexport default EcanList\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ProportionProps extends Props {\n strokeColor: string // 进度条的色彩\n strokeLinecap: 'round' | 'square' // 进度条的样式\n trailColor: string // 未完成的分段的颜色\n strokeType: 'circle' | 'dashboard',\n data: { [key:string]: any }\n text: string\n fontSize: string\n color: string\n strokeWidth: number\n fontWeight: number\n strokeTextWidth: string\n lineHeight: string\n decimalFormat: boolean\n variableDefaultValue: string\n}\n\nexport const proportionProps: ProportionProps = {\n ...props,\n name: '占比图',\n keyName: '占比图',\n type: 'ecanProportion',\n strokeType: 'circle',\n width: '200px',\n height: '200px',\n strokeColor: '#4091f7',\n strokeLinecap: 'round',\n trailColor: '#f5f5f5',\n data: {\n percent: 0.30\n },\n text: '{percent}%',\n fontSize: '26px',\n color: '#4091f7',\n strokeWidth: 6,\n fontWeight: 400,\n strokeTextWidth: '100%',\n lineHeight: '26px',\n decimalFormat: false,\n variableDefaultValue: '0'\n}\n\nexport const proportionComponentProps = transformToComponentProps(proportionProps)\n\nexport const proportionEvents = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-proportion\" :style=\"style\">\n <a-progress\n class=\"progress\"\n :percent=\"myValue\"\n :width=\"myWidth\"\n :type=\"strokeType\"\n :strokeColor=\"strokeColor\"\n :strokeLinecap=\"strokeLinecap\"\n :trailColor=\"trailColor\"\n :strokeWidth=\"strokeWidth\"\n :gapDegree=\"strokeType === 'dashboard' ? 75 : 0\"\n @click=\"click\"\n >\n <template #format>\n <skeleton v-if=\"loading\" :loading=\"loading\"/>\n <div\n v-else\n class=\"format\"\n :style=\"{\n width: strokeTextWidth,\n fontSize,\n color,\n fontWeight,\n lineHeight\n }\">\n {{ text }}\n </div>\n </template>\n </a-progress>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport 'ant-design-vue/es/progress/style'\nimport { Progress as AProgress } from 'ant-design-vue'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/_utils/hooks'\nimport { proportionComponentProps } from './props'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '../../common/skeleton'\nexport default defineComponent({\n name: 'EcanProportion',\n components: {\n AProgress,\n Skeleton\n },\n props: {\n ...proportionComponentProps\n },\n setup (props) {\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const style = usePickComponentStyle(props)\n const myWidth = computed(() => {\n const width = props.width as string\n return parseFloat(width)\n })\n const myData = ref<{ [key:string]: any }>({})\n watch(() => props.data, () => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n myData.value = props.data as { [key:string]: any }\n }\n }, {\n immediate: true,\n deep: true\n })\n const myValue = computed(() => {\n const data = unref(myData)\n const defaultValue = +(props.variableDefaultValue)\n if (data == null) {\n if (!isNaN(defaultValue)) {\n return defaultValue\n } else {\n return 0\n }\n }\n const variables = (props.text as string).match(/\\{.+\\}/g) || []\n let value\n const valueSet = new Set(Object.keys(data))\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const key = variable.slice(1, variable.length - 1)\n if (valueSet.has(key)) {\n value = data[key]\n break\n }\n }\n\n if (typeof value === 'number') {\n value = value * 100\n } else if (typeof value === 'string' && !isNaN(+value)) {\n value = (+value) * 100\n } else if (!isNaN(defaultValue)) {\n value = defaultValue * 100\n } else {\n value = 0\n }\n\n if (props.decimalFormat) {\n value = +value.toFixed(2)\n }\n return value\n })\n const text = computed(() => {\n let text = props.text as string\n if (text === '') return unref(myValue)\n const defaultValue = props.variableDefaultValue as string // 变量默认值\n const data = unref(myData) // { a: 1, b: 2 }\n const variables = (text).match(/\\{.+\\}/g) || []\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, variable.length - 1) // { a - b} => a - b\n const textVariables = statement.match(/.*/g) // a - b => [a,b]\n for (let j = 0; j < textVariables?.length; j++) { // \"1 - 2\"\n const textVariable = textVariables[i]?.trim()\n if (data[textVariable] != null) {\n statement = statement.replace(textVariable, data[textVariable])\n } else {\n statement = statement.replace(textVariable, defaultValue)\n }\n }\n // 匹配加减乘除\n let usedVariable:number | string = statement\n // 运行表达式\n try {\n if ((/\\w+[+\\-*/%]+\\w+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n usedVariable = eval2(statement)\n }\n } catch (e) {\n console.error(e)\n }\n if (typeof usedVariable === 'number' || !isNaN(+usedVariable)) {\n usedVariable = (+usedVariable * 100)\n if (props.decimalFormat) {\n usedVariable = usedVariable.toFixed(2)\n }\n }\n text = text.replace(variable, usedVariable + '')\n }\n return text\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n handleRequestData()\n }\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, props.requestSort as number)\n\n return {\n style,\n myWidth,\n text,\n myValue,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-proportion {\n overflow: hidden;\n}\n\n.progress {\n width: 100%;\n height: 100%;\n}\n\n.format {\n margin: 0 auto;\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Proportion from './Proportion.vue'\nexport const EcanProportion = withInstall(Proportion)\nexport default EcanProportion\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface InputProps extends Props {\n value: string,\n placeholder: string\n}\n\nexport const inputProps: InputProps = {\n ...props,\n width: '200px',\n id: '',\n left: '0px',\n top: '0px',\n name: '输入框',\n keyName: '输入框',\n rotate: '',\n type: 'ecanInput',\n value: '',\n placeholder: '请输入文字'\n}\n\n// 转化默认属性\nexport const inputComponentProps = transformToComponentProps(inputProps)\n","<template>\n <div\n class=\"ecan-input\"\n :style=\"style\"\n >\n <a-input\n class=\"input\"\n :value=\"value\"\n :placeholder=\"placeholder\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { usePickComponentStyle } from '@/_utils/hooks'\nimport { Input as AInput } from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport { inputComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanInput',\n components: {\n AInput\n },\n props: {\n ...inputComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n return {\n style\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.input {\n width: 100%;\n height: 100%;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Input from './Input.vue'\nexport const EcanInput = withInstall(Input)\nexport default EcanInput\nexport * from './props'\n","import {\n Props,\n EventsProp,\n props,\n transformToComponentProps\n} from '@/_utils/props'\nimport dayjs from 'dayjs'\n\nexport interface DatePickerProps extends Props, EventsProp {\n value: string\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n showTime: boolean // 增加时间选择功能\n}\n\nexport const datePickerProps: DatePickerProps = {\n ...props,\n height: '33px',\n width: '130px',\n id: '',\n left: '0px',\n top: '0px',\n name: '日期选择器',\n keyName: '日期选择器',\n rotate: '',\n type: 'ecanDatePicker',\n value: dayjs().format('YYYY-MM-DD'),\n picker: 'date',\n format: 'YYYY-MM-DD',\n showTime: false\n}\nexport const datePickerComponentProps = transformToComponentProps(datePickerProps)\n\nexport const datePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-date-picker\"\n :style=\"style\"\n >\n <!-- 宽度style有效,class无效 -->\n <a-date-picker\n class=\"date-picker\"\n dropdownClassName=\"ecan-date-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :showTime=\"showTime\"\n :locale=\"locale\"\n @change=\"dateChange\"\n :getPopupContainer=\"getPopupContainer\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, computed } from 'vue'\nimport { datePickerComponentProps } from './props'\nimport { DatePicker as ADatePicker } from 'ant-design-vue'\nimport 'ant-design-vue/es/date-picker/style'\nimport { usePickComponentStyle, useOnEvent, useEmitEvent } from '@/_utils/hooks'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { GLOBAL_MODEL } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanDatePicker',\n props: {\n ...datePickerComponentProps\n },\n components: {\n ADatePicker\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = computed<Dayjs | null>(() => props.value ? dayjs(props.value as string) : null)\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {\n })\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n myValue,\n locale,\n dateChange\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.date-picker {\n width: 100%;\n height: 100%\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] .ecan-date-picker {\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner, .ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\n background: #1890ff;\n }\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport DatePicker from './DatePicker.vue'\nexport const EcanDatePicker = withInstall(DatePicker)\nexport default EcanDatePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface SelectOption {\n value: any\n label: string\n disabled?: boolean\n key?: string\n title?: string,\n}\n\nexport type SelectOptions = SelectOption []\n\nexport interface SelectProps extends Props {\n data: SelectOptions // 同 options\n value: string,\n dataFieldNames: { label: string, value: string }\n\n}\n\nexport const selectProps: SelectProps = {\n ...props,\n name: '选择器',\n keyName: '选择器',\n width: '120px',\n height: '33px',\n type: 'ecanSelect',\n data: [],\n value: '',\n dataFieldNames: { label: 'label', value: 'value' }\n}\n\nexport const selectComponentProps = transformToComponentProps(selectProps)\n\nexport const selectEvents = ['selectChange']\n","<template>\n <div\n class=\"ecan-select\"\n :style=\"style\"\n >\n <a-select\n class=\"select\"\n v-model:value=\"myValue\"\n :options=\"options\"\n :getPopupContainer=\"getPopupContainer\"\n :field-names=\"dataFieldNames\"\n @change=\"selectChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref } from 'vue'\nimport { Select as ASelect } from 'ant-design-vue'\nimport 'ant-design-vue/es/select/style'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '../../_utils/hooks'\nimport { selectComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '../../_utils/constant'\nexport default defineComponent({\n name: 'EcanSelect',\n components: {\n ASelect\n },\n props: {\n ...selectComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 挂在在 ProviderConfig 或者 body 下\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const options = ref(props.data as { [key:string]:any } [])\n const myValue = ref(props.value || props.data[0])\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n const res = await requestData()\n options.value = res?.data?.data?.rows || []\n const firstOption = unref(options)[0]\n if (props.value === '' && firstOption != null) {\n myValue.value = firstOption[(props.dataFieldNames as { label: string, value: string }).value]\n }\n }\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const selectChange = emitEvent('selectChange')\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n selectChange\n })\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\n return {\n style,\n getPopupContainer,\n myValue,\n selectChange,\n options\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-select {\n :deep(.ant-select-selector) {\n height: 100% !important;\n }\n}\n\n.select {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #d9d9d9;\n }\n .ant-select-dropdown {\n color: rgba(0, 0, 0, 0.85);\n background: #ffffff;\n box-shadow: 0 2px 8px rgb(0 0 0 / 15%);\n }\n .ant-empty-img-simple-g {\n stroke: #d9d9d9;\n }\n .ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n }\n .ant-empty-img-simple-path {\n fill: #f5f5f5;\n stroke: #d9d9d9;\n }\n .ant-empty-description {\n color: rgba(0, 0, 0, 0.25);\n }\n .anticon-down {\n color: #333;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n }\n .ant-select-dropdown {\n box-shadow: inset 0 0 10px #005efe;\n color: #fff;\n background-color: #05164c;\n }\n .ant-empty-img-simple-g {\n stroke: #69befa;\n }\n .ant-empty-img-simple-ellipse {\n fill-opacity: 0;\n }\n .ant-empty-img-simple-path {\n fill: #69befa;\n stroke: #69befa;\n }\n .ant-empty-description {\n color: #69befa;\n }\n .anticon-down {\n color: #ffffff;\n }\n .ant-select-item {\n color: #ffffff;\n }\n .ant-select-item-option-active {\n background: #1f63a3;\n }\n .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n background: #1f63a3;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Select from './Select.vue'\nexport const EcanSelect = withInstall(Select)\nexport default EcanSelect\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface RangePickerProps extends Props {\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n startTime: string // 开始时间\n endTime: string // 结束时间\n}\n\nexport const rangePickerProps: RangePickerProps = {\n ...props,\n name: '范围选择器',\n keyName: '范围选择器',\n type: 'ecanRangePicker',\n width: '250px',\n height: '35px',\n picker: 'date',\n format: 'YYYY-MM-DD',\n startTime: '',\n endTime: ''\n}\n\nexport const rangePickerComponentProps = transformToComponentProps(rangePickerProps)\n\nexport const rangePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-range-picker\"\n :style=\"style\"\n >\n <a-range-picker\n class=\"range-picker\"\n dropdownClassName=\"ecan-range-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :locale=\"locale\"\n :getPopupContainer=\"getPopupContainer\"\n @change=\"dateChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref, watch, ref } from 'vue'\nimport { rangePickerComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/_utils/hooks'\nimport { RangePicker as ARangePicker } from 'ant-design-vue'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\n// antdv 中 range-picker 组件与 date-picker 共用一个样式\nimport 'ant-design-vue/es/date-picker/style'\nimport { GLOBAL_MODEL } from '@/_utils/constant'\nimport dayjs, { Dayjs } from 'dayjs'\nexport default defineComponent({\n name: 'EcanRangePicker',\n components: {\n ARangePicker\n },\n props: {\n ...rangePickerComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = ref<[Dayjs, Dayjs]>([null, null])\n watch(() => [props.startTime, props.endTime], ([startTime, endTime]) => {\n const _startTime = startTime ? dayjs(startTime as string) : null\n const _endTime = endTime ? dayjs(endTime as string) : null\n myValue.value = [_startTime, _endTime]\n }, {\n immediate: true\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const myStartTime = computed(() => unref(myValue)[0])\n const myEndTime = computed(() => unref(myValue)[1])\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n startTime: myStartTime,\n endTime: myEndTime\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {})\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n locale,\n dateChange,\n myValue\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.range-picker {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] .ecan-range-picker{\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n .ant-picker-separator .anticon {\n color:#333;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-separator .anticon {\n color:#fff;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell-disabled .ant-picker-cell-inner {\n color: #999;\n }\n .ant-picker-cell-disabled::before {\n background: #333;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport RangePicker from './RangePicker.vue'\nexport const EcanRangePicker = withInstall(RangePicker)\nexport default EcanRangePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ButtonProps extends Props {\n text: string\n mode: 'primary' | 'dashed' | 'link' | 'text' | 'default'\n danger: boolean\n shape: 'default' | 'circle' | 'round'\n href: string\n target: 'self' | 'blank' | 'event'\n fontSize: string\n fontWeight: number\n}\n\nexport const buttonProps: ButtonProps = {\n ...props,\n width: '200px',\n name: '按钮',\n keyName: '按钮',\n type: 'ecanButton',\n text: '按钮',\n mode: 'default',\n danger: false,\n shape: 'default',\n href: '',\n target: 'self',\n fontSize: '14px',\n fontWeight: 400\n}\n\n// 转化默认属性\nexport const buttonComponentProps = transformToComponentProps(buttonProps)\n\nexport const buttonEvents = ['click']\n","<template>\n <div\n class=\"ecan-button\"\n :style=\"style\"\n >\n <a-button\n block\n @click=\"click\"\n :type=\"mode\"\n :danger=\"danger\"\n :shape=\"shape\"\n :href=\"myHref\"\n :target=\"myTarget\"\n >\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ myText }}\n </span>\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref } from 'vue'\nimport { usePickComponentStyle, useEmitEvent, useVariablesInText } from '@/_utils/hooks'\nimport { Button as AButton } from 'ant-design-vue'\nimport 'ant-design-vue/es/button/style'\nimport { buttonComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanButton',\n components: {\n AButton\n },\n props: {\n ...buttonComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 拦截触发事件\n const emitEvent = useEmitEvent(props)\n // click 是 event 名称\n const click = emitEvent('click', () => {\n const url = unref(myHref)\n if (props.target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url\n }, '*')\n }\n })\n\n const myText = computed(() => useVariablesInText(props.text as string))\n // 空字符串会刷新页面\n const myHref = computed(() => useVariablesInText(props.href as string) || null)\n const myTarget = computed(() => {\n const target = props.target as 'self' | 'blank' | 'event'\n if (target === 'event' || unref(myHref) == null) {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n })\n return {\n style,\n click,\n myText,\n myHref,\n myTarget\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-button {\n .ant-btn {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Button from './Button.vue'\nexport const EcanButton = withInstall(Button)\nexport default EcanButton\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface PieProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n backgroundColor: string\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n legendShow: boolean\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n legendTextStyleColor: string\n innerRadius: string\n outerRadius: string\n centerLeft: string\n centerTop: string\n labelShow: boolean\n labelFormatter: string\n labelFontSize: number\n labelPosition: 'outside' | 'inside' | 'center'\n labelLineShow: boolean\n labelColor: string\n isUseLabelColors: boolean\n labelLineLength: number\n labelLineLength2: number\n roseType: '' | 'radius' | 'area'\n valueTypeDataFieldNames: ValueTypeDataFieldNames,\n dataFieldConfigType: 'key' | 'value',\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n}\n\nexport const pieProps: PieProps = {\n ...props,\n id: '',\n name: '饼图',\n keyName: '饼图',\n type: 'ecanPie',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n backgroundColor: '',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '{b} : {c} ({d}%)',\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'vertical',\n legendTop: 'top',\n legendLeft: 'left',\n innerRadius: '0%',\n outerRadius: '60%',\n centerLeft: '50%',\n centerTop: '50%',\n labelShow: true,\n labelColor: '#333',\n isUseLabelColors: false,\n labelFontSize: 12,\n labelPosition: 'outside',\n labelFormatter: '{b}\\\\n{d}%',\n labelLineShow: true,\n labelLineLength: 10,\n labelLineLength2: 15,\n roseType: '',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n dataFieldConfigType: 'value',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息'\n}\n// 转化默认属性\nexport const pieComponentProps = transformToComponentProps(pieProps)\n\nexport interface PieEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const pieEvents: Array<keyof PieEvents> = ['click', 'refreshData']\n","import request from '../request'\nexport const useDownloadFile = async (downloadFileUrl: string) => {\n const res = await request.post(downloadFileUrl, {}, {\n responseType: 'blob'\n }) as any\n const { data, headers } = res\n const fileName = headers['content-disposition'].replace(/\\w+;filename=(.*)/, '$1')\n const blob = new Blob([data])\n const dom = document.createElement('a')\n const url = window.URL.createObjectURL(blob)\n dom.href = url\n dom.download = decodeURI(fileName)\n dom.style.display = 'none'\n document.body.appendChild(dom)\n dom.click()\n dom.parentNode?.removeChild(dom)\n window.URL.revokeObjectURL(url)\n}\nexport default useDownloadFile\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, watch, inject, ref, unref } from 'vue'\nimport {\n useEmitEvent,\n usePickComponentStyle,\n useRequestData,\n useTransformChartDataByAttrValue,\n useOnEvent,\n useRequestDiagramData\n} from '@/_utils/hooks'\nimport Echarts from '@/common/echarts'\nimport { pieComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { PieChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { handleFormatter } from '@/_utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { ValueTypeDataFieldNames } from '@/_utils/props'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\n\nuse([\n CanvasRenderer,\n PieChart,\n TitleComponent,\n ToolboxComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanPie',\n props: {\n ...pieComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => {\n let { data = [] } = unref(dataset)[0] || {}\n if (Array.isArray(props.colors)) {\n const isUseLabelColors = props.isUseLabelColors\n const colors = props.colors\n data = data.map((item, index) => ({\n label: isUseLabelColors ? { color: colors[index] } : {},\n ...item\n }))\n }\n return {\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: handleFormatter(props.tooltipFormatter as string),\n // formatter: function (params) {\n // console.log(params)\n // },\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n color: props.colors,\n series: [\n {\n data,\n type: 'pie',\n radius: [props.innerRadius, props.outerRadius],\n center: [props.centerLeft, props.centerTop],\n roseType: props.roseType,\n avoidLabelOverlap: false,\n // data: data.value,\n // data: props.data,\n // dimensions: ['name', 'count'],\n label: {\n show: props.labelPosition !== 'center' && props.labelShow,\n color: props.labelColor,\n fontSize: props.labelFontSize,\n position: props.labelPosition,\n formatter: handleFormatter(props.labelFormatter as string)\n },\n labelLine: {\n show: props.labelLineShow,\n length: props.labelLineLength,\n length2: props.labelLineLength2\n },\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)'\n },\n label: {\n // show: props.labelPosition === 'center'\n }\n }\n }\n ]\n }\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const { dataset: d } = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = d\n }\n\n const handleIndicatorDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = chartData.dataset\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, props.valueTypeDataFieldNames as ValueTypeDataFieldNames)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let newArr = []\n if (res?.data?.data?.columns?.length > 0) {\n const name = res.data.data.columns[0]\n const value = res.data.data.columns[1]\n newArr = res?.data?.data?.rows?.map(item => {\n return {\n name: item[name],\n value: item[value]\n }\n })\n }\n handleIndicatorDataset(newArr)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n return {\n option,\n style,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Pie from './Pie.vue'\nexport const EcanPie = withInstall(Pie)\nexport default EcanPie\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface LineProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n legendShow: boolean,\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal' // 标记点大小\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n areaStyleOpacity: number\n}\n\nexport const lineProps: LineProps = {\n ...props,\n id: '',\n name: '折线图',\n keyName: '折线图',\n type: 'ecanLine',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 },\n { name: '名称四', value: 135 },\n { name: '名称五', value: 1548 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n legendShow: false,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n areaStyleOpacity: 0\n}\n\n// 转化默认属性\nexport const lineComponentProps = transformToComponentProps(lineProps)\n\nexport const lineEvents = ['click', 'refreshData']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useValueFormatter,\n useEmitEvent, useOnEvent,\n usePickComponentStyle,\n useRequestData, useRequestDiagramData,\n useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue\n} from '@/_utils/hooks'\nimport Echarts from '@/common/echarts'\nimport { lineComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { LineChart } from 'echarts/charts'\nimport { TitleComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n LineChart,\n ToolboxComponent,\n TitleComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanLine',\n props: {\n ...lineComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subText: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n tooltip: {\n trigger: 'axis'\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: unref(series)\n }))\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n // const areaStyles = [\n // {\n // opacity: 0.4\n // },\n // {\n // opacity: 0.4\n // }\n // ]\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n // color: {\n // type: 'linear',\n // x: 0,\n // y: 0,\n // x2: 0,\n // y2: 1,\n // colorStops: [{\n // offset: 0, color: props.colors[i] // 0% 处的颜色\n // }, {\n // offset: 1, color: '#fff' // 100% 处的颜色\n // }],\n // global: false // 缺省为 false\n // },\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\n }\n series.value = temp\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.symbolSize, props.smooth, props.lineStyleWidth, props.areaStyleOpacity], ([data]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(data as { [key: string]: any }[])\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n return {\n option,\n style,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Line from './Line.vue'\nexport const EcanLine = withInstall(Line)\nexport default EcanLine\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n KeyTypeDataFieldNames,\n ValueTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface BarProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // x轴名称溢出操作\n xAxisLabelRotate: number // x轴名称旋转\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'bar' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n }\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n}\n\nexport const barProps: BarProps = {\n ...props,\n id: '',\n name: '柱状图',\n keyName: '柱状图',\n type: 'ecanBar',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n yAxisLabelFormatter: '{value}',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 310,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 310,\n type: '类型一'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLabelWidth: undefined,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {\n chartType: 'bar', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n },\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport interface BarEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const barEvents: Array<keyof BarEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-bar\" :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n usePickComponentStyle,\n useOnEvent,\n useTransformChartDataByAttrValue,\n useTransformChartDataByAttrKey,\n useEmitEvent,\n useRequestData,\n useIndicatorData,\n useValueFormatter\n} from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { ValueTypeDataFieldNames, KeyTypeDataFieldNames, Data } from '@/_utils/props'\nimport Echarts from '@/common/echarts'\nimport { barComponentProps, BarEvents } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart } from 'echarts/charts'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport {\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n} from 'echarts/components'\nimport { handleFormatter } from '@/_utils/util'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nuse([\n CanvasRenderer,\n BarChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanBar',\n props: {\n ...barComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const dataSource = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const series = computed(() => {\n const ds = unref(dataSource)\n const len = ds.length\n const series = []\n for (let i = 0; i < len; i++) {\n series.push({\n ...ds[i],\n type: 'bar',\n barWidth: props.barWidth\n })\n }\n return series\n })\n const dimensions = ref<{ [key: string]: any }[]>([])\n const loading = ref(false)\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: handleFormatter(props.tooltipFormatter as string),\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: props.isUseHorizontalAxis ? 'value' : 'category',\n data: props.isUseHorizontalAxis ? null : unref(dimensions),\n inverse: props.isUseHorizontalAxis ? false : props.axisInverse,\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor,\n interval: 0,\n rotate: props.xAxisLabelRotate,\n width: props.xAxisLabelWidth,\n overflow: props.xAxisLabelOverflow\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: props.isUseHorizontalAxis ? 'category' : 'value',\n data: props.isUseHorizontalAxis ? unref(dimensions) : null,\n inverse: props.isUseHorizontalAxis ? props.axisInverse : false,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n if (props.isUseHorizontalAxis) return value\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: Data = [], useDataFieldNames: boolean = false) => {\n let chartData = {} as { [key:string]: any }\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n const { columns = [], rows = [] } = res?.data?.data ?? {}\n let fieldNames\n if (columns.length > 0) {\n fieldNames = {\n name: columns[0],\n types: columns.slice(1).map(column => {\n return {\n label: column,\n value: column\n }\n })\n }\n }\n handleIndicatorDataset(rows, fieldNames, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'indicator':\n handleIndicatorData()\n break\n case 'request':\n handleRequestData()\n break\n }\n }\n\n expose({\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n option,\n style,\n refreshData,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Bar from './Bar.vue'\nexport const EcanBar = withInstall(Bar)\nexport default EcanBar\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data\n} from '@/_utils/props'\n\nexport interface ScatterProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean,\n tooltipShow: boolean,\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipFormatter: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n symbolSize: number // 标记点大小\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n dataFieldNames: { name: string, value: string }\n graphicConfig?: any\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n}\n\nexport const scatterProps: ScatterProps = {\n ...props,\n id: '',\n name: '散点图',\n keyName: '散点图',\n type: 'ecanScatter',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: 233, value: 335 },\n { name: 556, value: 310 },\n { name: 56, value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n tooltipShow: true,\n tooltipTrigger: 'item',\n tooltipFormatter: '{c}',\n legendShow: false,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 10,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n dataFieldNames: { name: 'name', value: 'value' },\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: undefined,\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息'\n}\n\n// 转化默认属性\nexport const scatterComponentProps = transformToComponentProps(scatterProps)\n\nexport const scatterEvents = ['click', 'refreshData']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n useValueFormatter,\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData,\n useVariablesInText\n} from '@/_utils/hooks'\nimport Echarts from '@/common/echarts'\nimport { scatterComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { ScatterChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\nuse([\n CanvasRenderer,\n ScatterChart,\n ToolboxComponent,\n TitleComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanScatter',\n props: {\n ...scatterComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n xAxis: {\n // type: 'value'\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: function (params) {\n const record = params?.data?.record ?? {}\n return useVariablesInText(props.tooltipFormatter as string, record)\n },\n axisPointer: {\n type: 'cross'\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: [\n {\n data: unref(dataset),\n type: 'scatter',\n symbolSize: props.symbolSize\n }\n ]\n }))\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: { name: string, value:string }) => {\n const { name: x = 'name', value: y = 'value' } = dataFieldNames || {}\n dataset.value = data.map(item => ({ value: [item[x], item[y]], record: item }))\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n loading.value = true\n try {\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, props.dataFieldNames as { name: string, value:string })\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const refreshData = () => {\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, props.requestSort as number)\n\n return {\n option,\n style,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Scatter from './Scatter.vue'\nexport const EcanScatter = withInstall(Scatter)\nexport default EcanScatter\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface CustomGraphProps extends Props {\n option: { [key:string]: any }\n optionCode: string\n}\n\nexport const customGraphProps: CustomGraphProps = {\n ...props,\n id: '',\n name: '自定义图表',\n keyName: '自定义图表',\n type: 'ecanCustomGraph',\n width: '400px',\n height: '400px',\n option: {},\n optionCode: ''\n}\n\n// 转化默认属性\nexport const customGraphComponentProps = transformToComponentProps(customGraphProps)\n","<template>\n <div :style=\"style\">\n <echarts\n :option=\"myOption\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, watch, ref } from 'vue'\nimport Echarts from '../../common/echarts'\nimport { customGraphComponentProps } from './props'\nimport { usePickComponentStyle } from '../../_utils/hooks'\nimport * as echarts from 'echarts'\n// import 'echarts/components'\nexport default defineComponent({\n name: 'EcanCustomGraph',\n props: {\n ...customGraphComponentProps\n },\n components: {\n Echarts\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myOption = ref()\n watch(() => props.optionCode, (optionCode: string) => {\n /* // eslint-disable-next-line\n let option = {}\n // eslint-disable-next-line\n eval(props.optionCode as string)\n myOption.value = option */\n try {\n // eslint-disable-next-line\n const evalCopy = eval\n myOption.value = evalCopy(optionCode)\n } catch (e) {\n console.error(e)\n }\n }, {\n immediate: true\n })\n return {\n style,\n myOption,\n echarts\n }\n }\n})\n</script>\n","import { withInstall } from '../../_utils/withInstall'\nimport CustomGraph from './CustomGraph.vue'\nexport const EcanCustomGraph = withInstall(CustomGraph)\nexport default EcanCustomGraph\nexport * from './props'\n","import {\n Data,\n Props,\n props,\n transformToComponentProps,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface ComboGraphProps extends Props {\n data: Data,\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n seriesTypes: { [key: string]: any } []\n dataFieldConfigType: 'key' | 'value',\n yAxis: { [key: string]: any } [],\n graphicConfig?: any\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n areaStyleOpacity: number\n barWidth: string\n}\n\nexport const comboGraphProps: ComboGraphProps = {\n ...props,\n id: '',\n name: '组合图表',\n keyName: '组合图表',\n type: 'ecanComboGraph',\n width: '400px',\n height: '400px',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 410,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 210,\n type: '类型一'\n },\n {\n name: '名称一',\n value: 510,\n type: '类型二'\n },\n {\n name: '名称二',\n value: 731,\n type: '类型二'\n },\n {\n name: '名称三',\n value: 910,\n type: '类型二'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n seriesTypes: [\n {\n type: 'bar',\n axisIndex: 0\n },\n {\n type: 'line',\n axisIndex: 0\n }\n ],\n yAxis: [\n {\n axisLabelFormatter: '{value}'\n },\n {\n axisLabelFormatter: '{value}'\n }\n ],\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n areaStyleOpacity: 0,\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n barWidth: '40%'\n}\n\n// 转化默认属性\nexport const comboGraphComponentProps = transformToComponentProps(comboGraphProps)\n\nexport const comboGraphEvents = ['refreshData', 'click']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData, useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue,\n useValueFormatter,\n useRequestDiagramData\n // useTooltipFormatter\n} from '@/_utils/hooks'\nimport { comboGraphComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport { BarEvents } from '../bar'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart, LineChart } from 'echarts/charts'\nimport { DatasetComponent, LegendComponent, TitleComponent, ToolboxComponent } from 'echarts/components'\nimport Echarts from '@/common/echarts'\nimport Spin from '@/common/spin/'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n BarChart,\n LineChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanComboGraph',\n props: {\n ...comboGraphComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n // formatter: ,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: unref(yAxis),\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n const { type, axisIndex } = seriesType || {}\n let series = {\n type: type,\n yAxisIndex: axisIndex,\n tooltip: {\n valueFormatter (value: string) {\n return useValueFormatter(props?.tooltipFormatter, value)\n }\n },\n ...dataset[i]\n } as { [key:string]: any }\n if (type === 'line') {\n series = {\n ...series,\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n }\n }\n if (type === 'bar') {\n series = {\n ...series,\n barWidth: props.barWidth\n }\n }\n temp.push(series)\n }\n series.value = temp\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n temp.push({\n type: seriesType?.type,\n yAxisIndex: seriesType?.axisIndex,\n ...dataset[i]\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.seriesTypes, props.symbolSize, props.smooth, props.areaStyleOpacity, props.lineStyleWidth, props.barWidth], ([value]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const yAxis = computed(() => {\n const yAxis = props.yAxis as { [key: string]: any } []\n return yAxis?.map((axis) => {\n return {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(axis.axisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n }\n })\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n style,\n option,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport ComboGraph from './ComboGraph.vue'\nexport const EcanComboGraph = withInstall(ComboGraph)\nexport default EcanComboGraph\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface BorderProps extends Props {\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n title: string\n mode: 'top-title' | 'no-title' | 'left-top'\n borderColor: string\n borderRadius: string\n borderStyle: string\n borderWidth: string\n backgroundColor: string\n useBorderModify: boolean\n textShadow: string\n data: { [key:string]: any }\n}\n\nexport const borderProps: BorderProps = {\n ...props,\n name: '边框',\n keyName: '边框',\n type: 'ecanBorder',\n width: '450px',\n height: '450px',\n zIndex: 0,\n fontSize: '16px',\n fontFamily: '',\n fontWeight: 700,\n title: '标题',\n mode: 'no-title',\n borderColor: '#eee',\n borderRadius: '5px',\n borderStyle: 'solid',\n borderWidth: '2px',\n backgroundColor: '',\n useBorderModify: false,\n textShadow: '',\n data: {}\n}\n\nexport const borderComponentProps = transformToComponentProps(borderProps)\n\nexport const borderEvents = ['click']\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAZlBMVEUAAABBltJCldJCldFEk89BltJCltFBldI/lMBKndtmb9pCltNDldFAkclAldNBldJBltM/lM5AltNCldJBldJBlNJBltVBldJBlNJBlNI/lNNBldJBldNAldJBldJBldJBldNBldIiNK7WAAAAInRSTlMAM4BNGmaz5gQGbiAPCV1WQxUpOCY9EmxQSC2jdoacqZK8uPo7tAAAAZ9JREFUSMe90NmOwjAMheGka0J3SulCy/L+Lzk4I+HYhckEKs7dr1x8kQVM5YJMZ7SLiXVHOw817Z72cSns3BmziY7EnGRGjDqUpKt4pEZQKruvyaJt85YmBUebKLJVNUlpq6oOQ1tVVRzbqu6DwFb1NUlsVd3SNL0UDM0jqkaSqoeQqjKmahtQNUzuC1AtU1sF9KHmnmrtrSK6idqBWqE6GFVxFdGvqDGoJ01Qt7rfTEV0e7V6qSK6VjNPtTaqoOq8Ugnqr7aeav+rAuqrTh+qZw3o1urAVcFVQD3U6ZnaYY9MLZk6G5WhDaDFI9UeUPyE7gCNsAdAD9gxoBJ7ARRPUVwALXdu8/h/s3xmjtwUu0/M0M/UJzBjAei3TUTdpmKmcpkBmOHKBNTPzJi59zYJys3DO2aL78YcmNkLgrrM9m9TucwzmoBy08xlju+bgL42G4c5OcxqZSLqbwqXOVNTGXMWFD0ak6KN1ZKaojYmbribndW9MXELNQEFFUyiNqQlmEQ1JqpgErUifUUTUVEIupx1wzpjvWfdsh4FQX8ANe4nnpsb9NEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAaVBMVEUAAABElM9BltJCldJCldFBltJBldJCltFNmrNCmNNFldNAldJBldNBldRBldNBldNBldJCoNFBldJBltNBldJBldJAldJAltJBldJBldJBldNAlNFAldJBlNJAldJBldNBldJBldJBldLfIVowAAAAI3RSTlMAGjJNgGbmswMSCScgDTs/ZAVRK0eYj2s3r3AWveHEhXjeXb5rzlgAAAFqSURBVEjH1dbJVsJAEIXhHjJ05tlEooK8/0NKsbDrFjmHiBD0Lvqcf9PfthRM7xvoZMQuLHZaOejGYLtcdEItzI9oaLg5xIHj5hgcG262oXXcrGzJ23Umg5717C7NKBrAjOMDM8YgCI5ghmEPprUTmMZkrBOtdbJgfpZovho0gwzNOkfTam9k5jSGkKlTMOezWT3VLH5qlg8wQzSbO5jJ28l8Z+YLmZMwuz9lupvNXpjlFTMTZv7vzFSatTDtGnNeYdpNzZTMSJhx5f84m8Y3mSEzJzTVolko3J7Qve+a0J3vntDWffdEaMUQQo1vTWjuuyA0UWvUUarqzuqLUMPt1MD3uKTaTdRwvdrdorpFtfZtH6eyK2F3RS23U3uhlr9VB1TdE1V2h7Vr1O4mdbdera6o+Wq1Vqi2rEktFapGoZopVLVCtVCXag19IBPUiiWpBrojE1QNXZAp1/TYbhKdKVwuWotORKfn9wu/DSc/X9T6qgAAAABJRU5ErkJggg==\"","<template>\n <div class=\"ecan-border\" :style=\"style\" @click=\"click\">\n <div\n class=\"no-title\"\n :style=\"borderStyle\"\n v-if=\"mode === 'no-title'\"\n >\n <template v-if=\"useBorderModify\">\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </template>\n </div>\n <div class=\"top-title\" :style=\"borderStyle\" v-if=\"mode === 'top-title'\">\n <div class=\"title-item-wrapper\">\n <div class=\"title-item\">\n <img\n class=\"title-decoration-left\"\n src=\"../../assets/border-title-decoration-left.png\"\n >\n <div class=\"title\">{{ title }}</div>\n <img\n class=\"title-decoration-right\"\n src=\"../../assets/border-title-decoration-right.png\"\n >\n </div>\n </div>\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </div>\n <div class=\"left-title\" v-if=\"mode === 'left-title'\">\n <div class=\"title\">\n <span>{{ title }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch } from 'vue'\nimport { borderComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanBorder',\n props: {\n ...borderComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['background'])\n const { theme } = inject(GLOBAL_CONFIG, {\n theme: 'light'\n })\n const borderStyle = computed(() => {\n return {\n // borderWidth: props.borderWidth,\n // borderStyle: props.borderStyle,\n // borderRadius: props.borderRadius,\n // borderColor: props.borderColor,\n // backgroundColor: props.backgroundColor,\n width: '100%',\n height: '100%'\n }\n })\n const emitEvent = useEmitEvent(props)\n const click = emitEvent('click', () => {})\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n useOnEvent(props, {\n click\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myData\n })\n return {\n style,\n click,\n borderStyle,\n theme\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.top-title, .no-title {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n .border-item {\n position: absolute;\n z-index: 2;\n border-color: #50FCFC;\n border-style: solid;\n width: 13px;\n height: 11px;\n }\n .top-left {\n top: 0;\n left: 0;\n border-top-width: 1px;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 1px;\n }\n .top-right {\n top: 0;\n right: -2px;\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 0;\n border-left-width: 0;\n }\n .bottom-left {\n bottom: -2px;\n left: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 1px;\n border-left-width: 1px;\n }\n .bottom-right {\n bottom: -2px;\n right: -2px;\n border-top-width: 0;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 0;\n }\n .title-item-wrapper {\n width: 100%;\n padding: 5px 0;\n background-image: url(\"../../assets/border-title-background.png\");\n background-size: cover;\n display: grid;\n place-content: center;\n }\n .title-item {\n display: flex;\n align-items: center;\n }\n .title {\n padding: 0 17px;\n color: #d5fdfd;\n background: linear-gradient(0deg,#01aaff,#00eaff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n .title-decoration-left {\n width: 58px;\n height: 14px;\n }\n .title-decoration-right {\n width: 58px;\n height: 14px;\n }\n}\n\n.left-title {\n position: relative;\n width: 100%;\n height: 100%;\n border: 2px solid #375A8899;\n border-radius: 0;\n .title {\n position: absolute;\n left: -33px;\n top: -14px;\n width: 33px;\n min-height: 194px;\n padding-top: 33px;\n padding-bottom: 31px;\n background-image: url(\"../../assets/border-left-title.png\");\n background-repeat: no-repeat;\n background-size: 100% 100%;\n color: #fff;\n font-weight: 500;\n text-align: center;\n span {\n writing-mode: vertical-lr;\n }\n }\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Border from './Border.vue'\nexport const EcanBorder = withInstall(Border)\nexport default EcanBorder\nexport * from './props'\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport type ModalPosition = 'default' | 'top' | 'center' | 'bottom'\n\nexport interface ModalProps {\n id: string\n type: string\n width: string\n height: string\n title: string\n titleFontSize: string\n titleColor: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n keyName: string\n componentList: { [key: string]: any } []\n fullModal: boolean // 是否充满全屏\n originalWidth: string // 设计稿宽\n originalHeight: string // 设计稿长\n destroyOnClose: boolean\n position: ModalPosition\n}\n\nexport const modalProps: ModalProps = {\n id: '',\n type: 'ecanModal',\n title: '',\n titleFontSize: '14px',\n titleColor: '',\n width: '1000px',\n height: '800px',\n originalWidth: '1920px',\n originalHeight: '1080px',\n backgroundColor: '#fff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n keyName: '弹窗',\n componentList: [],\n fullModal: false,\n destroyOnClose: false,\n position: 'default'\n}\n\nexport const modalComponentProps = transformToComponentProps(modalProps)\n\nexport const modalEvents = ['showModal']\n","<template>\n <!-- centered + style 中的 verticalAlign 调整弹窗位置 -->\n <a-modal\n :getContainer=\"getContainer\"\n :wrapClassName=\"wrapClassName\"\n centered\n :visible=\"visible\"\n :footer=\"null\"\n :width=\"isFullModal || isFullWidth ? '100%' : modalWith\"\n :destroyOnClose=\"destroyOnClose\"\n :style=\"modalStyle\"\n :bodyStyle=\"{\n background: 'red'\n }\"\n @ok=\"onOk\"\n @cancel=\"onCancel\"\n >\n <template #title v-if=\"title\" >\n <div\n :style=\"{\n fontSize: titleFontSize,\n color: titleColor,\n backgroundColor,\n padding: '16px 24px'\n }\"\n >\n {{ title }}\n </div>\n </template>\n <div class=\"contain\" ref=\"contain\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\">\n <component\n v-for=\"(component, index) in componentList\"\n :key=\"(component.id) + index\"\n :is=\"component.type\"\n v-bind=\"component\"\n />\n </div>\n </div>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, nextTick, ref, unref } from 'vue'\nimport { modalComponentProps, ModalPosition } from './props'\nimport { Modal as AModal } from 'ant-design-vue'\nimport 'ant-design-vue/es/modal/style'\nimport { useOnEvent, usePickComponentStyle, useImagePath } from '@/_utils/hooks'\nimport { REQUEST_MODEL } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanModal',\n components: {\n AModal\n },\n props: {\n ...modalComponentProps\n },\n setup (props) {\n const getContainer = () => document.getElementById('ProviderConfig') || document.body\n const modalStyle = computed(() => {\n const position = props.position as ModalPosition\n const map = {\n default: '',\n top: 'top',\n center: 'middle',\n bottom: 'bottom'\n }\n return {\n verticalAlign: map[position]\n }\n })\n const width = props.width as string\n const height = props.height as string\n const originalWidth = props.originalWidth as string\n const originalHeight = props.originalHeight as string\n const scaleWidth = computed(() => parseFloat(width) / parseFloat(originalWidth))\n const scaleHeight = computed(() => parseFloat(height) / parseFloat(originalHeight))\n // 弹窗适配\n const modalWith = computed(() => `${unref(scaleWidth) * 100}%`)\n // const modalHeight = computed(() => `${scaleHeight.value * 100}%`)\n const screenWidth = computed(() => document.body.offsetWidth)\n const screenHeight = computed(() => document.body.offsetHeight)\n const containWidth = computed(() => unref(screenWidth) * unref(scaleWidth))\n const containHeight = computed(() => unref(screenHeight) * unref(scaleHeight))\n const containStyle = computed(() => ({\n width: `${unref(containWidth)}px`,\n height: `${unref(containHeight)}px`\n }))\n const style = usePickComponentStyle(props)\n const contentStyle = computed(() => ({\n ...unref(style),\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n transform: `scale(${unref(containWidth) / parseFloat(width)},${unref(containHeight) / parseFloat(height)})`\n }))\n const isFullWidth = computed(() => unref(scaleWidth) >= 1)\n const isFullModal = computed(() => props.fullModal)\n const wrapClassName = computed(() => {\n let className = 'ecan-modal'\n if (unref(isFullWidth)) className += ' ecan-full-width-modal'\n if (unref(isFullModal)) className += ' ecan-full-modal'\n return className\n })\n const visible = ref(false)\n const contain = ref<HTMLElement>()\n const { touchRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n touchRequest: () => void 0\n })\n const showModal = () => {\n visible.value = true\n nextTick(() => {\n touchRequest()\n })\n }\n const hideModal = () => {\n visible.value = false\n }\n const onOk = () => {\n hideModal()\n }\n const onCancel = () => {\n hideModal()\n }\n // 注册\n useOnEvent(props, {\n showModal\n })\n\n return {\n contain,\n containStyle,\n contentStyle,\n getContainer,\n modalStyle,\n modalWith,\n isFullModal,\n style,\n visible,\n showModal,\n onOk,\n onCancel,\n isFullWidth,\n wrapClassName\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.contain {\n position: relative;\n overflow: hidden;\n}\n.content {\n transform-origin: left top;\n z-index: 999;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-modal {\n .ant-modal-body {\n padding: 0;\n }\n .ant-modal-header {\n padding: 0;\n border-bottom: none;\n background: none;\n }\n}\n\n.ecan-full-width-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n.ecan-full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-modal {\n .anticon-close > svg > path {\n fill: #fff;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Modal from './Modal.vue'\nexport const EcanModal = withInstall(Modal)\nexport default EcanModal\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TabsProps extends Props {\n data: { [key:string]: any } []\n backgroundColor: string\n tabFontSize: string\n tabColor: string\n activeTabColor: string\n tabBackgroundImage: string\n tabBarGutter: string\n activeTabBackgroundImage\n value: string\n activeKey: number\n tabHorizontalPadding: string\n // 包含组件id\n contains: string []\n}\n\nexport const tabsProps: TabsProps = {\n ...props,\n tabHorizontalPadding: '0px',\n type: 'ecanTabs',\n name: '标签页',\n keyName: '标签页',\n width: '500px',\n height: '400px',\n tabFontSize: '14px',\n backgroundColor: '',\n activeTabColor: '#1890ff',\n tabBackgroundImage: '',\n activeTabBackgroundImage: '',\n tabColor: '#333',\n tabBarGutter: '24px',\n value: '',\n activeKey: 0,\n contains: [],\n data: [\n {\n title: '标签1'\n },\n {\n title: '标签2'\n },\n {\n title: '标签3'\n }\n ]\n}\n\nexport const tabsComponentProps = transformToComponentProps(tabsProps)\n\nexport const tabsEvents = ['tabChange']\n","<template>\n <div class=\"ecan-tabs\" :style=\"style\">\n <div\n class=\"tabs-header\"\n :style=\"{\n fontSize: tabFontSize\n }\"\n >\n <div\n class=\"tab\"\n :style=\"{\n padding: `5px ${tabHorizontalPadding}`,\n color: isActive(index) ? activeTabColor : tabColor,\n backgroundImage: isActive(index) ? useImagePath(activeTabBackgroundImage, true) : useImagePath(tabBackgroundImage, true),\n marginRight: tabBarGutter\n }\"\n v-for=\"(tab, index) in myData\"\n :key=\"index\"\n @click.prevent.stop=\"tabChange(tab, index)\"\n >\n <div\n class=\"tab-inner\"\n :style=\"{\n borderBottom: !activeTabBackgroundImage && !tabBackgroundImage ? `1px solid ${isActive(index) ? activeTabColor : 'transparent'}` : ''\n }\"\n >\n {{tab.title}}\n </div>\n </div>\n </div>\n <div class=\"tabs-content\"></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, watch } from 'vue'\nimport { tabsComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useImagePath } from '@/_utils/hooks'\nimport { GLOBAL_MODEL, REFRESH_PAGE } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanTabs',\n props: {\n ...tabsComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const activeKey = ref(0)\n watch(() => props.activeKey, (key) => {\n activeKey.value = key\n }, {\n immediate: true\n })\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n const isActive = (index: number) => activeKey.value === index\n const myValue = ref(props.value || (unref(myData)[0] && unref(myData)[0]?.value) || '')\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n value: myValue,\n activeKey\n })\n\n const { emitRefreshPage } = inject(REFRESH_PAGE, {\n // eslint-disable-next-line no-void\n emitRefreshPage: () => void 0\n })\n\n const tabChange = emitEvent('tabChange', (tab:{ [key:string]:any }, index: number) => {\n if (index !== unref(activeKey)) {\n myValue.value = tab?.value || ''\n activeKey.value = index\n emitRefreshPage()\n }\n })\n useOnEvent(props, {\n tabChange\n })\n return {\n style,\n activeKey,\n isActive,\n tabChange,\n myData,\n useImagePath\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-tabs {\n display: flex;\n flex-direction: column;\n}\n\n.tabs-header {\n width: 100%;\n color: #333333;\n display: flex;\n}\n\n.tab {\n background-size: 100% 100%;\n background-repeat: no-repeat;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.tab:last-child {\n margin-right: 0 !important;\n}\n\n.tabs-content {\n flex:1;\n}\n</style>\n","import Tabs from './Tabs.vue'\nimport { withInstall } from '../../_utils/withInstall'\nexport const EcanTabs = withInstall(Tabs)\nexport default EcanTabs\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ImageProps extends Props {\n imgUrl: string\n href: string\n target: 'self' | 'blank' | 'event' // 打开方式\n linkPage: string // 传入pageId\n}\n\nexport const imageProps: ImageProps = {\n ...props,\n name: '图片',\n keyName: '图片',\n type: 'ecanImage',\n width: '300px',\n height: '300px',\n imgUrl: '',\n target: 'self',\n href: '',\n linkPage: ''\n}\n\nexport const imageComponentProps = transformToComponentProps(imageProps)\n","<template>\n <img\n :style=\"style\"\n :src=\"myImgUrl\"\n v-if=\"myImgUrl !== ''\"\n @click=\"onClick\"\n />\n <div\n class=\"image-placeholder\"\n :style=\"style\"\n v-else\n >\n 请上传图片\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref } from 'vue'\nimport { imageComponentProps } from './props'\nimport { useImagePath, usePickComponentStyle, usePageUrl, useVariablesInText } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanImage',\n props: {\n ...imageComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myImgUrl = computed(() => useImagePath(props.imgUrl as string))\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const onClick = () => {\n // 空链接、空页面直接 return\n if (!props.linkPage && !props.href) return\n const linkPage = (props.linkPage || '') as string\n const pageUrl = usePageUrl(unref(pageMode), linkPage)\n // 优先使用外部链接,再使用url\n const href = props.href as string\n let url = href || pageUrl\n url = useVariablesInText(url)\n const target = props.target\n if (target == null || target === '') return\n if (target !== 'event') {\n window.open(url, '_' + (target as string))\n } else {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n return {\n style,\n myImgUrl,\n onClick\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.image-placeholder {\n display: grid;\n place-content: center;\n border: 1px solid #d9d9d9;\n font-size: 16px;\n color: #333;\n width: 100%;\n overflow: hidden;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Image from './Image.vue'\nexport const EcanImage = withInstall(Image)\nexport default EcanImage\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData']\n","<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"dataColumns.length > 0 ? dataColumns : myColumns\"\n :data-source=\"dataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot:summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject } from 'vue'\nimport {\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/_utils/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = computed(() => {\n // 复制表头数据\n let columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n columns = columns.concat(props.columns as { [key: string]: any } [])\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n const len = columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n return columns\n })\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const dataSource = ref(props.data as { [key: string]: any } [])\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n dataSource.value = data as { [key: string]: any } []\n })\n const orderCondition = ref<string | undefined>(undefined)\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n const res = await requestData({\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n orderCondition: unref(orderCondition)\n })\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n dataSource.value = rows\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const dataColumns = ref([])\n const handleIndicatorDataset = (colmuns: any = [], rows: any = []) => {\n dataColumns.value = colmuns.map((it: string) => {\n return { title: it, dataIndex: it, key: it }\n })\n dataSource.value = rows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(dataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n return {\n x,\n y,\n myColumns,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n dataColumns,\n dataSource,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table {\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface MapProps extends Props {\n mapJson: { name: string, value: string } | null,\n data: { [key:string]: any } []\n backgroundImage: string\n backgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat',\n symbolImage: string // 图标\n symbolWidth: number\n symbolHeight: number\n geoZoom: number\n geoRoam: boolean\n geoCenter: string\n geoBackgroundImage: string\n geoBackgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'\n geoLabelShow: boolean\n geoLabelColor: string\n geoLabelFontSize: number\n geoItemStyleAreaColor: string\n geoItemStyleBorderColor: string\n geoItemStyleBorderWidth: number\n geoItemStyleShadowColor: string\n geoItemStyleShadowOffsetX: number\n geoItemStyleShadowOffsetY: number\n geoItemStyleShadowBlur: number\n geoEmphasisDisabled: boolean\n geoEmphasisLabelColor: string\n geoEmphasisItemStyleAreaColor: string\n geoEmphasisItemStyleBorderColor: string\n itemStyleColor: string\n labelFontSize: number\n labelFormatter: string\n labelShow: boolean\n labelColor: string\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string\n}\n\nexport const mapProps: MapProps = {\n ...props,\n mapJson: null,\n data: [],\n name: '地图',\n keyName: '地图',\n type: 'ecanMap',\n width: '400px',\n height: '400px',\n backgroundImage: '',\n backgroundImageRepeat: 'no-repeat',\n geoBackgroundImage: '',\n geoBackgroundImageRepeat: 'no-repeat',\n symbolImage: '',\n symbolWidth: 10,\n symbolHeight: 10,\n itemStyleColor: '#11BFDA',\n labelFontSize: 14,\n labelShow: true,\n geoLabelShow: true,\n geoLabelColor: '#000',\n geoZoom: 1,\n geoRoam: false,\n geoCenter: '',\n geoLabelFontSize: 12,\n labelColor: '',\n labelFormatter: '{b}',\n geoItemStyleAreaColor: '#eee',\n geoItemStyleBorderColor: '#000',\n geoItemStyleBorderWidth: 1,\n geoItemStyleShadowColor: '',\n geoItemStyleShadowOffsetX: 0,\n geoItemStyleShadowOffsetY: 0,\n geoItemStyleShadowBlur: 0,\n geoEmphasisDisabled: false,\n geoEmphasisLabelColor: '#fff',\n geoEmphasisItemStyleAreaColor: '#f00',\n geoEmphasisItemStyleBorderColor: '#000',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{b}'\n}\n\nexport const mapComponentProps = transformToComponentProps(mapProps)\n","<template>\n <div class=\"ecan-map\" :style=\"style\">\n <echarts\n v-if=\"isLoadedData\"\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n <img\n ref=\"geoBackgroundImageRef\"\n v-show=\"false\"\n :src=\"myGeoBackgroundImage\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, watch, ref, unref } from 'vue'\nimport { mapComponentProps } from './props'\nimport Echarts from '@/common/echarts'\nimport { use, registerMap } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { MapChart, ScatterChart } from 'echarts/charts'\nimport { VisualMapComponent, TooltipComponent, GraphicComponent } from 'echarts/components'\nimport request from '@/_utils/request'\nimport { usePickComponentStyle, useImagePath } from '../../_utils/hooks'\nimport { UPLOAD_PATH } from '@/_utils/constant'\nuse([\n CanvasRenderer,\n MapChart,\n ScatterChart,\n VisualMapComponent,\n TooltipComponent,\n GraphicComponent\n])\nexport default defineComponent({\n name: 'EcanMap',\n components: {\n Echarts\n },\n props: {\n ...mapComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['backgroundImage'])\n const geoBackgroundImageRef = ref()\n const myGeoBackgroundImage = computed(() => useImagePath(props.geoBackgroundImage as string))\n const myBackgroundImage = computed(() => useImagePath(props.backgroundImage as string))\n const areaColor = computed(() => {\n const backgroundImage = props.geoBackgroundImage as string\n if (backgroundImage) {\n return {\n image: unref(geoBackgroundImageRef),\n repeat: props.geoBackgroundImageRepeat\n }\n }\n return props.geoItemStyleAreaColor\n })\n const symbol = computed(() => {\n const symbolImage = props.symbolImage as string\n if (props.symbolImage) {\n return 'image://' + useImagePath(symbolImage)\n }\n return 'circle'\n })\n const geoCenter = computed(() => (props.geoCenter as string)?.split(','))\n const option = computed(() => ({\n // backgroundColor: unref(background),\n tooltip: {\n show: true\n },\n graphic: [\n { // 一个图形元素,类型是 image。\n type: 'image',\n style: {\n width: parseFloat(props.width as string),\n height: parseFloat(props.height as string),\n image: unref(myBackgroundImage)\n },\n top: 'center'\n }\n ],\n geo: {\n zoom: props.geoZoom,\n roam: props.geoRoam,\n center: unref(geoCenter),\n map: 'map',\n tooltip: {\n show: false\n },\n label: { // 地图上显示文字属性\n show: props.geoLabelShow,\n color: props.geoLabelColor,\n fontSize: props.geoLabelFontSize\n },\n itemStyle: { // 地图上板块属性\n areaColor: unref(areaColor),\n borderColor: props.geoItemStyleBorderColor,\n borderWidth: props.geoItemStyleBorderWidth,\n shadowColor: props.geoItemStyleShadowColor,\n shadowBlur: props.geoItemStyleShadowBlur,\n shadowOffsetX: props.geoItemStyleShadowOffsetX,\n shadowOffsetY: props.geoItemStyleShadowOffsetY\n },\n emphasis: { // 当鼠标悬停的时候\n disabled: props.geoEmphasisDisabled,\n label: {\n color: props.geoEmphasisLabelColor\n },\n itemStyle: {\n areaColor: props.geoEmphasisItemStyleAreaColor,\n borderColor: props.geoEmphasisItemStyleBorderColor\n }\n }\n },\n series: [\n {\n type: 'scatter',\n coordinateSystem: 'geo',\n itemStyle: {\n color: props.itemStyleColor\n },\n symbol: unref(symbol),\n symbolSize: [props.symbolWidth, props.symbolHeight],\n label: {\n show: props.labelShow,\n fontSize: props.labelFontSize,\n formatter: props.labelFormatter,\n color: props.labelColor\n },\n tooltip: {\n show: props.tooltipShow,\n formatter: props.tooltipFormatter,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n data: props.data\n }\n ]\n }))\n // const echarts = ref()\n const isLoadedData = ref(false)\n const handleRegisterMap = async () => {\n const mapJson = props.mapJson as { name: string, path: string }\n if (mapJson == null || mapJson.path == null) return\n const res = await request(UPLOAD_PATH + mapJson.path)\n registerMap('map', (res?.data || {}) as any)\n isLoadedData.value = true\n }\n watch(() => props.mapJson, () => {\n handleRegisterMap()\n }, {\n immediate: true\n })\n return {\n option,\n style,\n isLoadedData,\n geoBackgroundImageRef,\n myGeoBackgroundImage\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-map {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Map from './Map.vue'\nexport const EcanMap = withInstall(Map)\nexport default EcanMap\nexport * from './props'\n","import { App } from 'vue'\nimport * as components from './components'\nconst install = (app: App) => {\n Object.keys(components).forEach(key => {\n const component = components[key]\n if (component.install) {\n app.use(component)\n }\n })\n}\n\n// 部分导出\nexport * from './components'\n// 全局安装\nexport default {\n install\n}\n"],"names":["init","root","chart","autoresize","props","initChart","manualUpdate","h","generate","index","_objectSpread","_defineProperty","message","generateColor","useInsertStyles","_excluded","_objectWithoutProperties","_objectWithoutPropertiesLoose","IconBase","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Icon","_createVNode","LoadingOutlined","_sfc_main","ASpin","_hoisted_1","_openBlock","_createElementBlock","_createBlock","_renderSlot","ASkeleton","id","name","data","config","_a","_b","_c","style","_normalizeStyle","_createCommentVNode","providerConfig","_toDisplayString","_createElementVNode","_hoisted_6","_withCtx","_Fragment","_renderList","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_normalizeClass","_hoisted_7","AProgress","text","AInput","ADatePicker","ASelect","ARangePicker","AButton","AModal","series","yAxis","_createSlots","_resolveDynamicComponent","_mergeProps","_withModifiers","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","summaryList","total","Map"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/common/echarts/composables/api.ts","../src/common/echarts/composables/autoresize.ts","../src/common/echarts/composables/loading.ts","../src/common/echarts/utils.ts","../src/common/echarts/Echarts.ts","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons-vue/es/insert-css.js","../node_modules/@ant-design/icons-vue/es/utils.js","../node_modules/@ant-design/icons-vue/es/components/IconBase.js","../node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons-vue/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js","../plugin-vue:export-helper","../src/common/spin/Spin.vue","../src/common/skeleton/Skeleton.vue","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../src/_utils/withInstall.ts","../src/_utils/props.ts","../src/setting/page-config/props.ts","../src/_utils/hooks/usePickComponentStyle.ts","../src/_utils/constant.ts","../src/_utils/hooks/useOnEvent.ts","../src/_utils/hooks/useEmitEvent.ts","../src/_utils/hooks/useTransformChartDataByAttrValue.ts","../src/_utils/util.ts","../src/_utils/hooks/useVariablesInText.ts","../src/_utils/hooks/useRequestData.ts","../src/_utils/hooks/useTransformChartDataByAttrKey.ts","../src/_utils/hooks/useImagePath.ts","../src/_utils/hooks/usePageUrl.ts","../src/_utils/request.ts","../src/_utils/hooks/useRequestDiagramData.ts","../src/_utils/hooks/useValueFormatter.ts","../src/_utils/hooks/useIndicatorData.ts","../src/_utils/hooks/useHrefParamsToGlobalVariables.ts","../src/setting/page-config/PageConfig.vue","../src/setting/page-config/index.ts","../src/setting/provider-config/props.ts","../src/setting/provider-config/ProviderConfig.vue","../src/setting/provider-config/index.ts","../src/text/text/props.ts","../src/assets/go-up.png","../src/assets/go-down.png","../src/text/text/Text.vue","../src/text/text/index.ts","../src/text/scroll-text/ScrollText.vue","../src/text/scroll-text/index.ts","../src/text/time-display/props.ts","../src/text/time-display/TimeDisplay.vue","../src/text/time-display/index.ts","../src/text/list/props.ts","../src/text/list/List.vue","../src/text/list/index.ts","../src/text/proportion/props.ts","../src/text/proportion/Proportion.vue","../src/text/proportion/index.ts","../src/control/input/props.ts","../src/control/input/Input.vue","../src/control/input/index.ts","../src/control/date-picker/props.ts","../src/control/date-picker/DatePicker.vue","../src/control/date-picker/index.ts","../src/control/select/props.ts","../src/control/select/Select.vue","../src/control/select/index.ts","../src/control/range-picker/props.ts","../src/control/range-picker/RangePicker.vue","../src/control/range-picker/index.ts","../src/control/button/props.ts","../src/control/button/Button.vue","../src/control/button/index.ts","../src/graph/pie/props.ts","../src/_utils/hooks/useDownloadFile.ts","../src/graph/pie/Pie.vue","../src/graph/pie/index.ts","../src/graph/line/props.ts","../src/graph/line/Line.vue","../src/graph/line/index.ts","../src/graph/bar/props.ts","../src/graph/bar/Bar.vue","../src/graph/bar/index.ts","../src/graph/scatter/props.ts","../src/graph/scatter/Scatter.vue","../src/graph/scatter/index.ts","../src/graph/custom-graph/props.ts","../src/graph/custom-graph/CustomGraph.vue","../src/graph/custom-graph/index.ts","../src/graph/combo-graph/props.ts","../src/graph/combo-graph/ComboGraph.vue","../src/graph/combo-graph/index.ts","../src/container/border/props.ts","../src/assets/border-title-decoration-left.png","../src/assets/border-title-decoration-right.png","../src/container/border/Border.vue","../src/container/border/index.ts","../src/container/modal/props.ts","../src/container/modal/Modal.vue","../src/container/modal/index.ts","../src/container/tabs/props.ts","../src/container/tabs/Tabs.vue","../src/container/tabs/index.ts","../src/media/image/props.ts","../src/media/image/Image.vue","../src/media/image/index.ts","../src/table/table/props.ts","../src/table/table/Table.vue","../src/table/table/index.ts","../src/map/map/props.ts","../src/map/map/Map.vue","../src/map/map/index.ts","../src/index.ts"],"sourcesContent":["import { Ref } from 'vue'\nimport { EChartsType, Option } from '../types'\n\nconst METHOD_NAMES = [\n 'getWidth',\n 'getHeight',\n 'getDom',\n 'getOption',\n 'resize',\n 'dispatchAction',\n 'convertToPixel',\n 'convertFromPixel',\n 'containPixel',\n 'getDataURL',\n 'getConnectedDataURL',\n 'appendData',\n 'clear',\n 'isDisposed',\n 'dispose'\n] as const\ntype MethodName = typeof METHOD_NAMES[number];\n\ntype PublicMethods = Pick<EChartsType, MethodName>;\n\nexport function usePublicAPI (\n chart: Ref<EChartsType | undefined>,\n init: (option?: Option) => void\n): PublicMethods {\n function makePublicMethod<T extends MethodName> (\n name: T\n ): (...args: Parameters<EChartsType[T]>) => ReturnType<EChartsType[T]> {\n return (...args) => {\n if (!chart.value) {\n init()\n }\n\n if (!chart.value) {\n throw new Error('ECharts is not initialized yet.')\n }\n return (chart.value[name] as any).apply(chart.value, args)\n }\n }\n\n function makePublicMethods (): PublicMethods {\n const methods = Object.create(null)\n METHOD_NAMES.forEach(name => {\n methods[name] = makePublicMethod(name)\n })\n\n return methods as PublicMethods\n }\n\n return makePublicMethods()\n}\n","import { Ref, watch } from 'vue'\nimport { throttle } from 'echarts/core'\nimport { addListener, removeListener, ResizeCallback } from 'resize-detector'\nimport { EChartsType } from '../types'\n\nexport function useAutoresize (\n chart: Ref<EChartsType | undefined>,\n autoresize: Ref<boolean>,\n root: Ref<HTMLElement | undefined>\n): void {\n let resizeListener: ResizeCallback | null = null\n\n watch([root, chart, autoresize], ([root, chart, autoresize], _, cleanup) => {\n if (root && chart && autoresize) {\n resizeListener = throttle(() => {\n chart.resize()\n }, 100)\n\n addListener(root, resizeListener)\n }\n\n cleanup(() => {\n if (resizeListener && root) {\n removeListener(root, resizeListener)\n }\n })\n })\n}\n\nexport const autoresizeProps = {\n autoresize: Boolean\n}\n","import { inject, unref, computed, Ref, watchEffect } from 'vue'\nimport { EChartsType } from '../types'\n\nexport const LOADING_OPTIONS_KEY = 'ecLoadingOptions'\n\ntype UnknownRecord = Record<string, unknown>;\n\nexport function useLoading (\n chart: Ref<EChartsType | undefined>,\n loading: Ref<boolean>,\n loadingOptions: Ref<UnknownRecord | undefined>\n): void {\n const defaultLoadingOptions = inject(LOADING_OPTIONS_KEY, {}) as\n | UnknownRecord\n | Ref<UnknownRecord>\n const realLoadingOptions = computed(() => ({\n ...unref(defaultLoadingOptions),\n ...loadingOptions?.value\n }))\n\n watchEffect(() => {\n const instance = chart.value\n if (!instance) {\n return\n }\n\n if (loading.value) {\n instance.showLoading(realLoadingOptions.value)\n } else {\n instance.hideLoading()\n }\n })\n}\n\nexport const loadingProps = {\n loading: Boolean,\n loadingOptions: Object\n}\n","type Attrs = {\n [key: string]: any\n}\n\n// Copied from\n// https://github.com/vuejs/vue-next/blob/5a7a1b8293822219283d6e267496bec02234b0bc/packages/shared/src/index.ts#L40-L41\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string): boolean => onRE.test(key)\n\nexport function omitOn (attrs: Attrs): Attrs {\n const result: Attrs = {}\n for (const key in attrs) {\n if (!isOn(key)) {\n result[key] = attrs[key]\n }\n }\n\n return result\n}\n","// 此组件为 vue-echarts\n// 文档:https://github.com/ecomfe/vue-echarts/blob/main/README.zh-Hans.md\nimport {\n defineComponent,\n unref,\n shallowRef,\n toRefs,\n watch,\n computed,\n inject,\n onMounted,\n onUnmounted,\n h,\n nextTick,\n PropType,\n watchEffect\n} from 'vue'\nimport { init as initChart } from 'echarts/core'\nimport {\n EChartsType,\n Option,\n Theme,\n ThemeInjection,\n InitOptions,\n InitOptionsInjection,\n UpdateOptions,\n UpdateOptionsInjection\n} from './types'\nimport {\n usePublicAPI,\n useAutoresize,\n autoresizeProps,\n useLoading,\n loadingProps\n} from './composables'\nimport './style.css'\nimport { omitOn } from './utils'\n\nconst TAG_NAME = 'x-vue-echarts'\nexport const THEME_KEY = 'ecTheme'\nexport const INIT_OPTIONS_KEY = 'ecInitOptions'\nexport const UPDATE_OPTIONS_KEY = 'ecUpdateOptions'\nexport { LOADING_OPTIONS_KEY } from './composables'\n\n// @ts-ignore\nexport default defineComponent({\n name: 'echarts',\n props: {\n option: Object as PropType<Option>,\n theme: {\n type: [Object, String] as PropType<Theme>\n },\n initOptions: Object as PropType<InitOptions>,\n updateOptions: Object as PropType<UpdateOptions>,\n group: String,\n manualUpdate: Boolean,\n ...autoresizeProps,\n ...loadingProps\n },\n inheritAttrs: false,\n // @ts-expect-error listeners for Vue 2 compatibility\n setup (props, { attrs, listeners }) {\n const root = shallowRef<HTMLElement>()\n const chart = shallowRef<EChartsType>()\n const manualOption = shallowRef<Option>()\n const defaultTheme = inject(THEME_KEY, null) as ThemeInjection\n const defaultInitOptions = inject(\n INIT_OPTIONS_KEY,\n null\n ) as InitOptionsInjection\n const defaultUpdateOptions = inject(\n UPDATE_OPTIONS_KEY,\n null\n ) as UpdateOptionsInjection\n\n const { autoresize, manualUpdate, loading, loadingOptions } = toRefs(props)\n\n const realOption = computed(\n () => manualOption.value || props.option || Object.create(null)\n )\n const realTheme = computed(() => props.theme || unref(defaultTheme) || {})\n const realInitOptions = computed(\n () => props.initOptions || unref(defaultInitOptions) || {}\n )\n const realUpdateOptions = computed(\n () => props.updateOptions || unref(defaultUpdateOptions) || {}\n )\n const nonEventAttrs = computed(() => omitOn(attrs))\n\n function init (option?: Option) {\n if (chart.value || !root.value) {\n return\n }\n\n const instance = (chart.value = initChart(\n root.value,\n realTheme.value,\n realInitOptions.value\n ))\n\n if (props.group) {\n instance.group = props.group\n }\n\n let realListeners = listeners\n if (!realListeners) {\n realListeners = {}\n\n Object.keys(attrs)\n .filter(key => key.indexOf('on') === 0 && key.length > 2)\n .forEach(key => {\n // onClick -> c + lick\n // onZr:click -> z + r:click\n const event = key.charAt(2).toLowerCase() + key.slice(3)\n realListeners[event] = attrs[key]\n })\n }\n\n Object.keys(realListeners).forEach(key => {\n const handler = realListeners[key] as any\n\n if (!handler) {\n return\n }\n\n if (key.indexOf('zr:') === 0) {\n instance.getZr().on(key.slice(3).toLowerCase(), handler)\n } else {\n instance.on(key.toLowerCase(), handler)\n }\n })\n\n function resize () {\n if (instance && !instance.isDisposed()) {\n // temporarily suppress errors caused by https://github.com/apache/echarts/issues/14846\n try {\n instance.resize()\n } catch (e) {\n if (e.message === \"Cannot read property 'get' of undefined\") {\n return\n }\n\n throw e\n }\n }\n }\n\n function commit () {\n instance.setOption(option || realOption.value, realUpdateOptions.value)\n }\n\n if (autoresize.value) {\n // Try to make chart fit to container in case container size\n // is changed synchronously or in already queued microtasks\n nextTick(() => {\n resize()\n commit()\n })\n } else {\n commit()\n }\n }\n\n function setOption (option: Option, updateOptions?: UpdateOptions) {\n if (props.manualUpdate) {\n manualOption.value = option\n }\n\n if (!chart.value) {\n init(option)\n } else {\n chart.value.setOption(option, updateOptions || {})\n }\n }\n\n function cleanup () {\n if (chart.value) {\n chart.value.dispose()\n chart.value = undefined\n }\n }\n\n let unwatchOption: (() => void) | null = null\n watch(\n manualUpdate,\n manualUpdate => {\n if (typeof unwatchOption === 'function') {\n unwatchOption()\n unwatchOption = null\n }\n\n if (!manualUpdate) {\n unwatchOption = watch(\n () => props.option,\n option => {\n if (!option) {\n return\n }\n if (!chart.value) {\n init()\n } else {\n chart.value.setOption(option, realUpdateOptions.value)\n }\n },\n { deep: true }\n )\n }\n },\n {\n immediate: true\n }\n )\n\n watch(\n [realTheme, realInitOptions],\n () => {\n cleanup()\n init()\n },\n {\n deep: true\n }\n )\n\n watchEffect(() => {\n if (props.group && chart.value) {\n chart.value.group = props.group\n }\n })\n\n const publicApi = usePublicAPI(chart, init)\n\n useLoading(chart, loading, loadingOptions)\n\n useAutoresize(chart, autoresize, root)\n\n onMounted(() => {\n if (props.option) {\n init()\n }\n })\n\n onUnmounted(cleanup)\n\n return {\n chart,\n root,\n setOption,\n nonEventAttrs,\n ...publicApi\n }\n },\n render () {\n const attrs = { ...this.nonEventAttrs }\n attrs.ref = 'root'\n attrs.class = attrs.class ? ['echarts'].concat(attrs.class) : 'echarts'\n return h(TAG_NAME, attrs)\n }\n})\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","// https://github.com/substack/insert-css\nvar containers = []; // will store container HTMLElement references\n\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container); // first time we see this container, create the necessary entries\n\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n } // try to get the correponding container + position styleElement, create it otherwise\n\n\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n } // strip potential UTF-8 BOM if css was read from a file\n\n\n if (css.charCodeAt(0) === 0xfeff) {\n css = css.substr(1, css.length);\n } // actually add the stylesheet\n\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css;\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n}\n\nexport default insertCss;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { nextTick, h } from 'vue';\nimport { generate as generateColor } from '@ant-design/colors';\nimport insertCss from './insert-css';\nexport function warn(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons-vue] \".concat(message));\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc[\"class\"];\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return h(node.tag, _objectSpread({\n key: key\n }, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return h(node.tag, _objectSpread({\n key: key\n }, rootProps, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar cssInjectedFlag = false;\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n nextTick(function () {\n if (!cssInjectedFlag) {\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n insertCss(styleStr, {\n prepend: true\n });\n }\n\n cssInjectedFlag = true;\n }\n });\n};","var _excluded = [\"icon\", \"primaryColor\", \"secondaryColor\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props, context) {\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n icon = _props$context$attrs.icon,\n primaryColor = _props$context$attrs.primaryColor,\n secondaryColor = _props$context$attrs.secondaryColor,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({}, restProps, {\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n })); // },\n};\n\nIconBase.props = {\n icon: Object,\n primaryColor: String,\n secondaryColor: String,\n focusable: String\n};\nIconBase.inheritAttrs = false;\nIconBase.displayName = 'IconBase';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport VueIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return VueIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = VueIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","var _excluded = [\"class\", \"icon\", \"spin\", \"rotate\", \"tabindex\", \"twoToneColor\", \"onClick\"];\nimport { createVNode as _createVNode } from \"vue\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport VueIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n\nsetTwoToneColor('#1890ff');\n\nvar Icon = function Icon(props, context) {\n var _classObj;\n\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n cls = _props$context$attrs[\"class\"],\n icon = _props$context$attrs.icon,\n spin = _props$context$attrs.spin,\n rotate = _props$context$attrs.rotate,\n tabindex = _props$context$attrs.tabindex,\n twoToneColor = _props$context$attrs.twoToneColor,\n onClick = _props$context$attrs.onClick,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var classObj = (_classObj = {\n anticon: true\n }, _defineProperty(_classObj, \"anticon-\".concat(icon.name), Boolean(icon.name)), _defineProperty(_classObj, cls, cls), _classObj);\n var svgClassString = spin === '' || !!spin || icon.name === 'loading' ? 'anticon-spin' : '';\n var iconTabIndex = tabindex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n restProps.tabindex = iconTabIndex;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return _createVNode(\"span\", _objectSpread({\n \"role\": \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n \"onClick\": onClick,\n \"class\": classObj\n }), [_createVNode(VueIcon, {\n \"class\": svgClassString,\n \"icon\": icon,\n \"primaryColor\": primaryColor,\n \"secondaryColor\": secondaryColor,\n \"style\": svgStyle\n }, null)]);\n};\n\nIcon.props = {\n spin: Boolean,\n rotate: Number,\n icon: Object,\n twoToneColor: String\n};\nIcon.displayName = 'AntdIcon';\nIcon.inheritAttrs = false;\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LoadingOutlinedSvg\n }), null);\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nLoadingOutlined.inheritAttrs = false;\nexport default LoadingOutlined;","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","<template>\n <div class=\"spin-wrapper\">\n <a-spin\n class=\"spin\"\n :spinning=\"spinning\"\n v-if=\"spinning\"\n :indicator=\"indicator\"\n tip=\"加载中...\"\n >\n </a-spin>\n <slot v-else></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Spin as ASpin } from 'ant-design-vue'\nimport { LoadingOutlined } from '@ant-design/icons-vue'\nimport { defineComponent, h } from 'vue'\nimport 'ant-design-vue/es/spin/style'\nexport default defineComponent({\n props: {\n spinning: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASpin\n },\n setup () {\n const indicator = h(LoadingOutlined, {\n style: {\n fontSize: '24px',\n color: '#1890ff'\n },\n spin: true\n })\n return {\n indicator\n }\n }\n})\n</script>\n\n<style>\n.spin-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.spin {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n</style>\n","<template>\n <a-skeleton active :loading=\"loading\">\n <slot></slot>\n </a-skeleton>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { Skeleton as ASkeleton } from 'ant-design-vue'\nimport 'ant-design-vue/es/skeleton/style'\nexport default defineComponent({\n name: 'Skeleton',\n props: {\n loading: {\n type: Boolean,\n default: false\n }\n },\n components: {\n ASkeleton\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n const map = Object.create(null);\r\n const list = str.split(',');\r\n for (let i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\r\n}\n\n/**\r\n * dev only flag -> name mapping\r\n */\r\nconst PatchFlagNames = {\r\n [1 /* TEXT */]: `TEXT`,\r\n [2 /* CLASS */]: `CLASS`,\r\n [4 /* STYLE */]: `STYLE`,\r\n [8 /* PROPS */]: `PROPS`,\r\n [16 /* FULL_PROPS */]: `FULL_PROPS`,\r\n [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\r\n [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\r\n [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\r\n [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\r\n [512 /* NEED_PATCH */]: `NEED_PATCH`,\r\n [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\r\n [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\r\n [-1 /* HOISTED */]: `HOISTED`,\r\n [-2 /* BAIL */]: `BAIL`\r\n};\n\n/**\r\n * Dev only\r\n */\r\nconst slotFlagsText = {\r\n [1 /* STABLE */]: 'STABLE',\r\n [2 /* DYNAMIC */]: 'DYNAMIC',\r\n [3 /* FORWARDED */]: 'FORWARDED'\r\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\r\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\r\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\r\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n // Split the content into individual lines but capture the newline sequence\r\n // that separated each line. This is important because the actual sequence is\r\n // needed to properly take into account the full line length for offset\r\n // comparison\r\n let lines = source.split(/(\\r?\\n)/);\r\n // Separate the lines and newline sequences into separate arrays for easier referencing\r\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n lines = lines.filter((_, idx) => idx % 2 === 0);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count +=\r\n lines[i].length +\r\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\r\n if (count >= start) {\r\n for (let j = i - range; j <= i + range || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - (lineLength + newLineSeqLength));\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + newLineSeqLength;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * On the client we only need to offer special cases for boolean attributes that\r\n * have different names from their corresponding dom properties:\r\n * - itemscope -> N/A\r\n * - allowfullscreen -> allowFullscreen\r\n * - formnovalidate -> formNoValidate\r\n * - ismap -> isMap\r\n * - nomodule -> noModule\r\n * - novalidate -> noValidate\r\n * - readonly -> readOnly\r\n */\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\r\n/**\r\n * The full list is needed during SSR to produce the correct initial markup.\r\n */\r\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\r\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\r\n `loop,open,required,reversed,scoped,seamless,` +\r\n `checked,muted,multiple,selected`);\r\n/**\r\n * Boolean attributes should be included if the value is truthy or ''.\r\n * e.g. `<select multiple>` compiles to `{ multiple: '' }`\r\n */\r\nfunction includeBooleanAttr(value) {\r\n return !!value || value === '';\r\n}\r\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\r\nconst attrValidationCache = {};\r\nfunction isSSRSafeAttrName(name) {\r\n if (attrValidationCache.hasOwnProperty(name)) {\r\n return attrValidationCache[name];\r\n }\r\n const isUnsafe = unsafeAttrCharRE.test(name);\r\n if (isUnsafe) {\r\n console.error(`unsafe attribute name: ${name}`);\r\n }\r\n return (attrValidationCache[name] = !isUnsafe);\r\n}\r\nconst propsToAttrMap = {\r\n acceptCharset: 'accept-charset',\r\n className: 'class',\r\n htmlFor: 'for',\r\n httpEquiv: 'http-equiv'\r\n};\r\n/**\r\n * CSS properties that accept plain numbers\r\n */\r\nconst isNoUnitNumericStyleProp = /*#__PURE__*/ makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +\r\n `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +\r\n `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +\r\n `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +\r\n `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +\r\n `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +\r\n // SVG\r\n `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width`);\r\n/**\r\n * Known attributes, this is used for stringification of runtime static nodes\r\n * so that we don't stringify bindings that cannot be set from HTML.\r\n * Don't also forget to allow `data-*` and `aria-*`!\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\r\n */\r\nconst isKnownHtmlAttr = /*#__PURE__*/ makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +\r\n `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +\r\n `border,buffered,capture,challenge,charset,checked,cite,class,code,` +\r\n `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +\r\n `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +\r\n `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +\r\n `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +\r\n `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +\r\n `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +\r\n `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +\r\n `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +\r\n `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +\r\n `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +\r\n `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +\r\n `value,width,wrap`);\r\n/**\r\n * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute\r\n */\r\nconst isKnownSvgAttr = /*#__PURE__*/ makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +\r\n `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +\r\n `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +\r\n `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +\r\n `color-interpolation-filters,color-profile,color-rendering,` +\r\n `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +\r\n `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +\r\n `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +\r\n `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +\r\n `font-family,font-size,font-size-adjust,font-stretch,font-style,` +\r\n `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +\r\n `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +\r\n `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +\r\n `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +\r\n `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +\r\n `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +\r\n `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +\r\n `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +\r\n `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +\r\n `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +\r\n `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +\r\n `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +\r\n `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +\r\n `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +\r\n `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +\r\n `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +\r\n `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +\r\n `strikethrough-position,strikethrough-thickness,string,stroke,` +\r\n `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +\r\n `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +\r\n `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +\r\n `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +\r\n `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +\r\n `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +\r\n `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +\r\n `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +\r\n `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +\r\n `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +\r\n `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`);\n\nfunction normalizeStyle(value) {\r\n if (isArray(value)) {\r\n const res = {};\r\n for (let i = 0; i < value.length; i++) {\r\n const item = value[i];\r\n const normalized = isString(item)\r\n ? parseStringStyle(item)\r\n : normalizeStyle(item);\r\n if (normalized) {\r\n for (const key in normalized) {\r\n res[key] = normalized[key];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n else if (isString(value)) {\r\n return value;\r\n }\r\n else if (isObject(value)) {\r\n return value;\r\n }\r\n}\r\nconst listDelimiterRE = /;(?![^(]*\\))/g;\r\nconst propertyDelimiterRE = /:(.+)/;\r\nfunction parseStringStyle(cssText) {\r\n const ret = {};\r\n cssText.split(listDelimiterRE).forEach(item => {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiterRE);\r\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return ret;\r\n}\r\nfunction stringifyStyle(styles) {\r\n let ret = '';\r\n if (!styles || isString(styles)) {\r\n return ret;\r\n }\r\n for (const key in styles) {\r\n const value = styles[key];\r\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\r\n if (isString(value) ||\r\n (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {\r\n // only render valid values\r\n ret += `${normalizedKey}:${value};`;\r\n }\r\n }\r\n return ret;\r\n}\r\nfunction normalizeClass(value) {\r\n let res = '';\r\n if (isString(value)) {\r\n res = value;\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n const normalized = normalizeClass(value[i]);\r\n if (normalized) {\r\n res += normalized + ' ';\r\n }\r\n }\r\n }\r\n else if (isObject(value)) {\r\n for (const name in value) {\r\n if (value[name]) {\r\n res += name + ' ';\r\n }\r\n }\r\n }\r\n return res.trim();\r\n}\r\nfunction normalizeProps(props) {\r\n if (!props)\r\n return null;\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (style) {\r\n props.style = normalizeStyle(style);\r\n }\r\n return props;\r\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\r\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\r\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\r\n 'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\r\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\r\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\r\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\r\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\r\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\r\n 'option,output,progress,select,textarea,details,dialog,menu,' +\r\n 'summary,template,blockquote,iframe,tfoot';\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\r\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\r\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\r\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\r\n 'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\r\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\r\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\r\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\r\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\r\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\r\n 'text,textPath,title,tspan,unknown,use,view';\r\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\r\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\r\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\r\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\nconst escapeRE = /[\"'&<>]/;\r\nfunction escapeHtml(string) {\r\n const str = '' + string;\r\n const match = escapeRE.exec(str);\r\n if (!match) {\r\n return str;\r\n }\r\n let html = '';\r\n let escaped;\r\n let index;\r\n let lastIndex = 0;\r\n for (index = match.index; index < str.length; index++) {\r\n switch (str.charCodeAt(index)) {\r\n case 34: // \"\r\n escaped = '&quot;';\r\n break;\r\n case 38: // &\r\n escaped = '&amp;';\r\n break;\r\n case 39: // '\r\n escaped = '&#39;';\r\n break;\r\n case 60: // <\r\n escaped = '&lt;';\r\n break;\r\n case 62: // >\r\n escaped = '&gt;';\r\n break;\r\n default:\r\n continue;\r\n }\r\n if (lastIndex !== index) {\r\n html += str.slice(lastIndex, index);\r\n }\r\n lastIndex = index + 1;\r\n html += escaped;\r\n }\r\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\r\n}\r\n// https://www.w3.org/TR/html52/syntax.html#comments\r\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\r\nfunction escapeHtmlComment(src) {\r\n return src.replace(commentStripRE, '');\r\n}\n\nfunction looseCompareArrays(a, b) {\r\n if (a.length !== b.length)\r\n return false;\r\n let equal = true;\r\n for (let i = 0; equal && i < a.length; i++) {\r\n equal = looseEqual(a[i], b[i]);\r\n }\r\n return equal;\r\n}\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n let aValidType = isDate(a);\r\n let bValidType = isDate(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\r\n }\r\n aValidType = isArray(a);\r\n bValidType = isArray(b);\r\n if (aValidType || bValidType) {\r\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\r\n }\r\n aValidType = isObject(a);\r\n bValidType = isObject(b);\r\n if (aValidType || bValidType) {\r\n /* istanbul ignore if: this if will probably never be called */\r\n if (!aValidType || !bValidType) {\r\n return false;\r\n }\r\n const aKeysCount = Object.keys(a).length;\r\n const bKeysCount = Object.keys(b).length;\r\n if (aKeysCount !== bKeysCount) {\r\n return false;\r\n }\r\n for (const key in a) {\r\n const aHasKey = a.hasOwnProperty(key);\r\n const bHasKey = b.hasOwnProperty(key);\r\n if ((aHasKey && !bHasKey) ||\r\n (!aHasKey && bHasKey) ||\r\n !looseEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n }\r\n return String(a) === String(b);\r\n}\r\nfunction looseIndexOf(arr, val) {\r\n return arr.findIndex(item => looseEqual(item, val));\r\n}\n\n/**\r\n * For converting {{ interpolation }} values to displayed strings.\r\n * @private\r\n */\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) ||\r\n (isObject(val) &&\r\n (val.toString === objectToString || !isFunction(val.toString)))\r\n ? JSON.stringify(val, replacer, 2)\r\n : String(val);\r\n};\r\nconst replacer = (_key, val) => {\r\n // can't use isRef here since @vue/shared has no deps\r\n if (val && val.__v_isRef) {\r\n return replacer(_key, val.value);\r\n }\r\n else if (isMap(val)) {\r\n return {\r\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {\r\n entries[`${key} =>`] = val;\r\n return entries;\r\n }, {})\r\n };\r\n }\r\n else if (isSet(val)) {\r\n return {\r\n [`Set(${val.size})`]: [...val.values()]\r\n };\r\n }\r\n else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\r\n return String(val);\r\n }\r\n return val;\r\n};\n\nconst EMPTY_OBJ = (process.env.NODE_ENV !== 'production')\r\n ? Object.freeze({})\r\n : {};\r\nconst EMPTY_ARR = (process.env.NODE_ENV !== 'production') ? Object.freeze([]) : [];\r\nconst NOOP = () => { };\r\n/**\r\n * Always return false.\r\n */\r\nconst NO = () => false;\r\nconst onRE = /^on[^a-z]/;\r\nconst isOn = (key) => onRE.test(key);\r\nconst isModelListener = (key) => key.startsWith('onUpdate:');\r\nconst extend = Object.assign;\r\nconst remove = (arr, el) => {\r\n const i = arr.indexOf(el);\r\n if (i > -1) {\r\n arr.splice(i, 1);\r\n }\r\n};\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst isArray = Array.isArray;\r\nconst isMap = (val) => toTypeString(val) === '[object Map]';\r\nconst isSet = (val) => toTypeString(val) === '[object Set]';\r\nconst isDate = (val) => val instanceof Date;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst toRawType = (value) => {\r\n // extract \"RawType\" from strings like \"[object RawType]\"\r\n return toTypeString(value).slice(8, -1);\r\n};\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\nconst isIntegerKey = (key) => isString(key) &&\r\n key !== 'NaN' &&\r\n key[0] !== '-' &&\r\n '' + parseInt(key, 10) === key;\r\nconst isReservedProp = /*#__PURE__*/ makeMap(\r\n// the leading comma is intentional so empty string \"\" is also included\r\n',key,ref,ref_for,ref_key,' +\r\n 'onVnodeBeforeMount,onVnodeMounted,' +\r\n 'onVnodeBeforeUpdate,onVnodeUpdated,' +\r\n 'onVnodeBeforeUnmount,onVnodeUnmounted');\r\nconst cacheStringFunction = (fn) => {\r\n const cache = Object.create(null);\r\n return ((str) => {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n });\r\n};\r\nconst camelizeRE = /-(\\w)/g;\r\n/**\r\n * @private\r\n */\r\nconst camelize = cacheStringFunction((str) => {\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n});\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\n/**\r\n * @private\r\n */\r\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());\r\n/**\r\n * @private\r\n */\r\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\r\n/**\r\n * @private\r\n */\r\nconst toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\r\n// compare whether a value has changed, accounting for NaN.\r\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\r\nconst invokeArrayFns = (fns, arg) => {\r\n for (let i = 0; i < fns.length; i++) {\r\n fns[i](arg);\r\n }\r\n};\r\nconst def = (obj, key, value) => {\r\n Object.defineProperty(obj, key, {\r\n configurable: true,\r\n enumerable: false,\r\n value\r\n });\r\n};\r\nconst toNumber = (val) => {\r\n const n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n};\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isDate, isFunction, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isModelListener, isNoUnitNumericStyleProp, isObject, isOn, isPlainObject, isPromise, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { NOOP } from '@vue/shared'\nimport { Plugin } from 'vue'\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport const withInstall = <T, E extends Record<string, any>>(\n main: T,\n extra?: E\n) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp)\n }\n }\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n (main as any)[key] = comp\n }\n }\n return main as SFCWithInstall<T> & E\n}\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n (fn as SFCWithInstall<T>).install = (app) => {\n app.config.globalProperties[name] = fn\n }\n\n return fn as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n (component as SFCWithInstall<T>).install = NOOP\n\n return component as SFCWithInstall<T>\n}\n","import { mapValues } from 'lodash-es'\n\ninterface Event {\n // 当前组件触发什么事件类型后执行\n on: string\n // 被触发的组件id\n target: string\n // 被触发的组件:想要触发事件的类型\n emit: string\n}\n\nexport type Events = Event []\n\nexport type RequestMethod = 'get' | 'post' | 'put' | 'delete' | 'head'\n\nexport interface RequestParam {\n key: string,\n value: { id: string, prop: string } | string\n}\n\nexport type RequestParams = RequestParam []\n\nexport interface Props {\n id: string // 组件Id,使用UUID\n name: string // 组件名称\n keyName: string // 控件\n type: string // 组件类型\n width: string // 组件宽度\n height: string // 组件高度\n position: string // 定位\n top: string // 组件左上定点x轴位置(相对于画布)\n left: string // 组件左上定点y轴位置(相对于画布)\n zIndex: number // 组件层级\n rotate: string // 旋转角度\n isShow: boolean // 是否展示\n isRender: boolean // 是否渲染\n events: Events\n requestUrl: string // 请求地址\n requestMethod: RequestMethod // 请求方式\n requestHeaders: { [key: string]: any } // 请求头部\n isOpenRequestTimer: boolean // 开启请求定时器\n requestInterval: number // 请求间隔\n requestParams: RequestParams // 请求参数\n requestSort: number, // 请求初始化优先级,越大越优先\n dataType: 'static' | 'request' | 'indicator'\n}\n\nexport const props: Props = {\n id: '',\n name: '',\n keyName: '',\n type: '',\n width: '100px',\n height: '40px',\n position: 'absolute',\n top: '0px',\n left: '0px',\n zIndex: 1,\n rotate: '0deg',\n isShow: true,\n isRender: true,\n requestUrl: '',\n requestMethod: 'get',\n requestHeaders: {},\n isOpenRequestTimer: false,\n requestInterval: 1,\n requestSort: 0,\n requestParams: [{ key: '', value: { id: '', prop: '' } }],\n events: [],\n dataType: 'static'\n}\n\nexport const transformToComponentProps = <T extends {}>(props: T) => {\n // mapValues方法: 第一参数是要遍历的对象, 第二个参数是每次迭代时调用的函数\n return mapValues(props, (value) => {\n if (value == null) return {}\n return {\n type: (value as any).constructor,\n default: value\n }\n })\n}\n\nexport interface EventsProp {\n events: Events\n}\n\ninterface DataItem {\n name: string | number\n value: string | number\n type?: string\n}\n\nexport type Data = DataItem []\n\n// 数据转化映射格式\n\nexport interface KeyTypeDataFieldNames {\n name: string\n types: {\n label: string\n value: string\n } []\n}\n\nexport interface ValueTypeDataFieldNames {\n name: string\n value: string\n type: string\n}\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport interface PageConfig{\n width: string\n height: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n contextRequestUrl: string\n mode: 'normal' | 'preview'\n}\n\n// 页面组件默认配置\nexport const pageConfig:PageConfig = {\n width: '1920px',\n height: '1080px',\n backgroundColor: '#ffffff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n contextRequestUrl: '',\n mode: 'normal'\n}\n\n// 转化默认属性\nexport const pageConfigComponentProps = transformToComponentProps(pageConfig)\n","import { computed, HTMLAttributes } from 'vue'\nimport { pick, without } from 'lodash-es'\n// 需要添加组件的 style 属性\nconst styleList = [\n 'width',\n 'height',\n 'color',\n 'position',\n 'top',\n 'left',\n 'rotate',\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'textDecoration',\n 'textAlign',\n 'verticalAlign',\n 'overflow',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundSize',\n 'borderWidth',\n 'borderStyle',\n 'borderRadius',\n 'borderColor',\n 'textShadow',\n 'justifyContent',\n 'alignItems',\n 'zIndex'\n]\n/**\n * 过滤不是 style 属性的组件属性\n * @param props 组件属性\n * @param excludeStyleList 剔除组件的属性\n * @returns style属性\n */\nexport const usePickComponentStyle = <T>(props: Readonly<Partial<T>>, excludeStyleList: string [] = []) => {\n // 再选择需要的组件属性\n const finalStyleList = without(styleList, ...excludeStyleList)\n return computed<HTMLAttributes>(() => pick(props, finalStyleList))\n}\n\nexport default usePickComponentStyle\n","export const EVENT_BUS = 'EVENT_BUS'\nexport const GLOBAL_CONFIG = 'GLOBAL_CONFIG'\nexport const GLOBAL_MODEL = 'GLOBAL_MODEL'\nexport const REQUEST_MODEL = 'REQUEST_MODEL'\nexport const GLOBAL_TOKEN = 'GLOBAL_TOKEN'\nexport const REFRESH_PAGE = 'REFRESH_PAGE'\n// @ts-ignore\nexport const INDICATOR_URL = window?.config?.indicatorURL\n// @ts-ignore\nexport const UPLOAD_PATH = window?.config?.uploadPath || '/api'\n// @ts-ignore\nexport const BASE_URL = window?.config?.routerBaseURL || './'\n","import { watch, inject } from 'vue'\nimport { EVENT_BUS } from '../constant'\nexport const useOnEvent = <T extends { [id: string]: any}>(props: Readonly<Partial<T>>, events: { [key: string]: any }) => {\n watch(() => props.id, (id, oldId) => {\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n onEvent: (i: string, e: { [key: string]: any }) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n offEvent: (i: string) => void 0\n })\n if (oldId != null && oldId !== '') {\n eventBus.offEvent(oldId)\n }\n if (id != null && id !== '') {\n eventBus.onEvent(id, events)\n }\n }, {\n immediate: true\n })\n}\n\nexport default useOnEvent\n","import { inject, ref } from 'vue'\nimport { Events } from '../props'\nimport { EVENT_BUS, GLOBAL_CONFIG } from '../constant'\n/**\n * 触发事件\n * @param props 事件数据\n */\nexport const useEmitEvent = (props: { [key:string]: any }) => {\n const events = props.events as Events\n const id = props.id\n const eventBus = inject(EVENT_BUS, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n emitEvent: (id:string, type: string) => void 0\n })\n\n const { touchEventId } = inject(GLOBAL_CONFIG, {\n touchEventId: ref('')\n })\n /**\n * @param on 触发事件\n * @param callback 回调函数\n */\n return (on: string, callback: Function = () => {}) => {\n return function () {\n // 透传\n callback.call(this, ...arguments)\n if (eventBus) {\n const { emitEvent } = eventBus\n events.forEach(event => {\n if (on === event.on) {\n try {\n touchEventId.value = id\n emitEvent(event.target, event.emit)\n } catch (e) {\n console.error(e)\n }\n }\n })\n }\n }\n }\n}\n\nexport default useEmitEvent\n","import { Data, ValueTypeDataFieldNames } from '../props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrValue = (data: Data, dataFieldNames?: ValueTypeDataFieldNames) => {\n let { name = 'name', value = 'value', type = 'type' } = dataFieldNames || {}\n // 处去字符串\n name = name?.trim()\n value = value?.trim()\n type = type?.trim()\n const set = new Set()\n const map = new Map()\n const len = data.length\n for (let i = 0; i < len; i++) {\n const item = data[i]\n // x轴\n const x = item[name] || ''\n // y轴\n const y = item[value] || ''\n // 系列(类型)\n const t = item[type] || ''\n set.add(x)\n if (map.has(t)) {\n const arr = map.get(t)\n arr.push({ name: x, value: y, ...item })\n map.set(t, arr)\n } else {\n map.set(t, [{ name: x, value: y, ...item }])\n }\n }\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\nexport default useTransformChartDataByAttrValue\n","export const handleAxisLabelFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n/**\n * 处理图表format, 目前只做 \\\\n => \\n 转化\n * @param formatter 格式化字符串\n */\nexport const handleFormatter = (formatter: string) => {\n return formatter.replace(/\\\\n/g, '\\n')\n}\n\n/**\n * 格式化金额\n * @param value 数值\n * @param decimalPlaces 格式化位数\n */\nexport const formatMoney = (value: string | number, decimalPlaces:number = 2) => {\n const _value = parseFloat(value + '')\n if (isNaN(_value) || _value < 0) return value\n return _value.toFixed(decimalPlaces).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')\n}\n\nexport const formatPercentage = (value: string | number, decimalPlaces:number = 2) => {\n const strValue = value + ''\n if (strValue.includes('%')) return value\n const _value = parseFloat(strValue)\n if (isNaN(_value)) return value\n return `${(_value * 100).toFixed(decimalPlaces)}%`\n}\n\n/**\n * 字符串1 中是否包含 字符串2 (会全部转成小写)\n * @param v1 字符串1\n * @param v2 字符串2\n * @constructor\n */\nexport const lowerCaseIncludes = (v1:any, v2:any): boolean => {\n if (typeof v1 === 'string' && typeof v2 === 'string') {\n return v1.toLocaleLowerCase().includes(v2.toLocaleLowerCase())\n }\n return false\n}\n","export const useVariablesInText = (text: string = '', data: { [key: string]:any } = {}) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (text).match(/\\{\\w*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable.slice(1, variable.length - 1)\n // TODO 设置变量默认值\n const usedVariable = data[v]\n if (usedVariable != null) {\n // 使用的变量\n text = text.replace(variable, usedVariable)\n } else {\n // 过滤未使用的变量\n text = text.replace(variable, '')\n }\n }\n return text\n}\n\nexport default useVariablesInText\n","import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '../constant'\nimport { lowerCaseIncludes } from '../util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl: url,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode, touchEventId } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal',\n touchEventId: ''\n })\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const requestData = async (params: { [key: string]: any } = {}) => {\n if (!url || !method || !headers || unref(pageMode) === 'design') return\n let _params = {} as { [key: string]: any }\n requestParams.forEach((param) => {\n const { key, value } = param\n if ((typeof value === 'object' && value.id)) {\n // 传入数据可能是这样\n // {\n // key: 'record',\n // value: {\n // id: 'T7hid3K4kg7UR9Q-44u1-',\n // prop: 'record',\n // propKey: 'id'\n // }\n // }\n // 获取到组件数据\n let record = {} as { [key:string]: any }\n const { id, prop, propKey } = value\n if (id === 'THIS') {\n // THIS 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n // 如果传入响应式数据优取响应式\n let v = ''\n // 格式化时间\n if (isNeedFormat) {\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n v = unref(p)?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref ,同时不判断 他是不是对象\n v = p != null && typeof p === 'object' ? p[propKey || 'value'] : p\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n // @ts-ignore\n _params = { ...window.requestParams, ..._params, ...params }\n let urlParams = ''\n const keys = Object.keys(_params)\n const last = keys.length - 1\n const keysLen = keys.length\n keys.forEach((key, index) => {\n if (index === 0) {\n if (keysLen !== 1) {\n urlParams += `?${key}=${_params[key]}&`\n } else {\n urlParams += `?${key}=${_params[key]}`\n }\n } else if (index === last) {\n urlParams += `${key}=${_params[key]}`\n } else {\n urlParams += `${key}=${_params[key]}&`\n }\n })\n try {\n const isSetUrlParams = ['get', 'head'].includes(method)\n const res = await axios({\n baseURL: unref(contextRequestUrl),\n url: isSetUrlParams ? url + urlParams : url,\n method,\n headers,\n data: isSetUrlParams ? {} : _params\n })\n callBack(res)\n return res\n } catch (e) {\n console.error(e)\n }\n }\n\n const requestDataTimer = isOpenRequestTimer && setInterval(requestData, requestInterval * 1000)\n\n onUnmounted(() => {\n clearInterval(requestDataTimer)\n })\n\n return requestData\n}\n\nexport default useRequestData\n","import { Data, KeyTypeDataFieldNames } from '../props'\n\n/**\n * 图形转化数据\n * @param data 数据\n * @param dataFieldNames 字段映射\n */\nexport const useTransformChartDataByAttrKey = (data: Data = [], dataFieldNames: KeyTypeDataFieldNames) => {\n let { name = 'name', types = [] } = dataFieldNames || {}\n name = name?.trim() || name\n const set = new Set()\n const map = new Map<string, any []>()\n const dataLen = data.length\n const typesLen = types.length\n // 只有一条记录\n if (dataLen === 1) {\n const vs = []\n // data 为一个值取第一个\n for (let i = 0; i < typesLen; i++) {\n const type = types[i]\n const { label, value } = type\n const v = { ...data[0], value: data[0][value] }\n set.add(label)\n // 值列表\n vs.push(v)\n }\n const n = data[0][name] || ''\n map.set(n, vs)\n } else {\n for (let i = 0; i < dataLen; i++) {\n const item = data[i]\n const x = item[name]\n set.add(x)\n for (let j = 0; j < typesLen; j++) {\n const type = types[j]\n const { label, value } = type\n const v = { ...item, value: item[value] }\n if (map.has(label)) {\n const m = map.get(label)\n m.push(v)\n map.set(label, m)\n } else {\n map.set(label, [v])\n }\n }\n }\n }\n\n const dimensions = Array.from(set)\n const dataset: { [key:string]:any } [] = []\n for (const [name, data] of map) {\n dataset.push({\n name,\n data\n })\n }\n return {\n dimensions,\n dataset\n }\n}\n\nexport default useTransformChartDataByAttrKey\n","import { UPLOAD_PATH } from '../constant'\nexport const useImagePath = (path:string, isFormat: boolean = false) => {\n if (!path) return path\n let imagePath: string = ''\n if (path?.includes('://')) {\n imagePath = path\n } else {\n imagePath = UPLOAD_PATH + path\n }\n if (isFormat) {\n imagePath = `url(${imagePath})`\n }\n return imagePath\n}\n\nexport default useImagePath\n","import { BASE_URL } from '../constant'\nexport const usePageUrl = (pageMode: string, pageId: string) => {\n const envPageUrl = `/preview?pageId=${pageId}`\n const proPageUrl = `${BASE_URL}${pageId}`\n return pageMode === 'preview' ? envPageUrl : proPageUrl\n}\n\nexport default usePageUrl\n","import axios from 'axios'\nimport { message } from 'ant-design-vue'\n\nexport const request = axios.create({\n // timeout: 1000 * 15\n})\nrequest.interceptors.request.use((config) => {\n return config\n}, (error) => {\n return Promise.reject(error)\n})\n\nrequest.interceptors.response.use((config) => {\n if (+config?.data?.code === 500) {\n message.error({\n content: config?.data?.msg || config?.data?.message || '服务器异常',\n key: 'SERVER_ERROR'\n })\n }\n return config\n}, (error) => {\n if (error.message.includes('timeout')) {\n message.error({\n content: '网络连接超时,请重试!',\n key: 'TIMEOUT'\n })\n } else {\n const { status } = error.response\n if (status >= 400 && status < 500) {\n message.error({\n content: '请求异常',\n key: 'REQUEST_ERROR'\n })\n }\n\n if (status >= 500) {\n message.error({\n content: '服务器异常',\n key: 'REQUEST_ERROR'\n })\n }\n }\n return Promise.reject(error)\n})\n\nexport default request\n","import { INDICATOR_URL, GLOBAL_MODEL } from '../constant'\r\nimport { inject, unref } from 'vue'\r\nimport request from '../request'\r\nimport { message } from 'ant-design-vue'\r\n\r\n/**\r\n * 请求图表数据接口\r\n * @returns {{requestDiagram: () => Promise<AxiosResponse<any>>}}\r\n */\r\nexport const useRequestDiagramData = (props) => {\r\n // 获取到组件数据\r\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\r\n // @ts-ignore\r\n // eslint-disable-next-line no-void\r\n getGlobalModel: (key: string) => void 0\r\n })\r\n const getIndicatorList = (graphicConfig) => {\r\n const indicatorList = []\r\n // 左值轴、指标\r\n graphicConfig?.leftAxisList.forEach(leftAxis => {\r\n if (leftAxis) {\r\n let show = false\r\n if (graphicConfig.leftAxis.includes(leftAxis.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: leftAxis.name,\r\n columnName: leftAxis.label,\r\n aggregate: leftAxis.calcValue ? leftAxis.calcValue : 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = leftAxis.indexCode\r\n }\r\n indicator = getCalculationAxis(leftAxis, indicator)\r\n indicatorList.push(indicator)\r\n }\r\n })\r\n // 右值轴\r\n graphicConfig.rightAxisList.forEach(it => {\r\n let show = false\r\n if (graphicConfig.rightAxis.includes(it.name)) {\r\n show = true\r\n }\r\n let indicator: any = {\r\n label: it.name,\r\n columnName: it.label,\r\n aggregate: 'SUM',\r\n order: null,\r\n location: 'LEFT',\r\n show: show\r\n }\r\n indicator = getCalculationAxis(it, indicator)\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n indicator.hrpIndexCode = it.indexCode\r\n }\r\n indicatorList.push(indicator)\r\n })\r\n\r\n return indicatorList\r\n }\r\n\r\n /**\r\n * 获取计算指标\r\n * @param item\r\n * @param indicator\r\n */\r\n const getCalculationAxis = <T> (item, indicator: T): T => {\r\n const newIndicator: any = { ...indicator }\r\n if (item.calcMethod) { // 来源:新增计算指标\r\n if (item.calcMethod === 'FORMULA') { // 公式\r\n if (item.formulafuc) {\r\n newIndicator.formula = item.formulafuc\r\n }\r\n newIndicator.calcType = 'FORMULA'\r\n } else {\r\n newIndicator.builtInFormula = item.calculmethod\r\n newIndicator.calcType = 'BUILT_IN'\r\n if (item.comeFrom) {\r\n newIndicator.builtInValueSource = item.comeFrom\r\n }\r\n if (item.accessPrinciple) {\r\n newIndicator.builtInCalcWay = item.accessPrinciple\r\n }\r\n }\r\n } else { // 来源:视图拖拽\r\n // @ts-ignore\r\n newIndicator.calcType = 'COLUMN'\r\n }\r\n\r\n return newIndicator\r\n }\r\n\r\n /**\r\n * 获取查询条件\r\n * TODO 检查除日期外的特殊逻辑\r\n * @param relativeList\r\n * @returns {any[]}\r\n */\r\n const getSqlCondition = (relativeList = []) => {\r\n // 关联\r\n const list = []\r\n for (let i = 0; i < relativeList.length; i++) {\r\n const { keyName, searchName, searchType, variateName, id } = relativeList[i]\r\n const item: any = {\r\n alias: keyName,\r\n fieldName: searchName,\r\n rule: searchType || 'NONE',\r\n fieldValue: '',\r\n valueType: '',\r\n variateName\r\n }\r\n const watchItem = getGlobalModel(id) || {}\r\n if (searchName === 'the_date') {\r\n item.valueType = 'DATE'\r\n } else if (['hbdwbh', 'hbdwbh_name'].includes(searchName)) {\r\n item.valueType = 'TEXT'\r\n }\r\n if (watchItem.type === 'ecanDatePicker') {\r\n item.dateFormat = watchItem.format\r\n const formatter = unref(watchItem)?.value.format\r\n if (typeof formatter === 'function') {\r\n item.fieldValue = formatter(watchItem?.format)\r\n }\r\n }\r\n list.push(item)\r\n }\r\n return list\r\n }\r\n\r\n const getSortParams = (classification, list) => {\r\n // 分类项中的排序\r\n const classifyItem = list.find(item => {\r\n return item.name === classification.label\r\n })\r\n if (classifyItem.sort.type) {\r\n if (classifyItem.sort.type !== 'CUSTOM') {\r\n classification.sort = {\r\n label: classifyItem.sort.label,\r\n columnName: classifyItem.sort.columnName,\r\n type: 'NORMAL',\r\n order: classifyItem.sort.type\r\n }\r\n } else {\r\n classification.sort = {\r\n label: classifyItem.label,\r\n columnName: classifyItem.columnName,\r\n type: 'CUSTOM',\r\n customOrderColumns: classifyItem.sort.customOrderColumns\r\n }\r\n }\r\n }\r\n if (classifyItem.customGroup) {\r\n if (classifyItem.customGroup.groupList.length > 1) { // 0或1表示未分组\r\n classification.customGroup = {\r\n groupInfoMap: {},\r\n otherGroupName: ''\r\n }\r\n classifyItem.customGroup.groupList.forEach((row, rowIndex) => {\r\n if (rowIndex !== 0) {\r\n classification.customGroup.groupInfoMap[row.key] = row.value\r\n }\r\n })\r\n classification.customGroup.otherGroupName = classifyItem.customGroup.otherName || ''\r\n }\r\n }\r\n classification.rangeIndexTypeGuid = classifyItem.typeGuid\r\n classification.customFilterSqlPart = classifyItem.filterSql || ''\r\n }\r\n\r\n const handlerFilterParam = (parent, conditions) => {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n if (parent.children[i].children.length > 0) {\r\n let join = ''\r\n if (parent.type === 'and') {\r\n join = '&&'\r\n } else {\r\n join = '||'\r\n }\r\n conditions.push({ conditions: [], join: join })\r\n handlerFilterParam(parent.children[i], conditions[conditions.length - 1].conditions)\r\n } else {\r\n if (parent.children[i].fieldName) {\r\n let fieldValue = ''\r\n const item: any = {\r\n fieldName: parent.children[i].fieldName,\r\n fieldType: parent.children[i].itemType,\r\n rule: parent.children[i].rule,\r\n fieldValue: '',\r\n label: parent.children[i].label,\r\n version: parent.children[i].version ? parent.children[i].version : 100, // 兼容图形化配置时传显示的label,之前的传字段就是100的,label版本为101\r\n targetSource: parent.children[i].targetSource ? parent.children[i].targetSource : ''\r\n }\r\n fieldValue = JSON.parse(JSON.stringify(parent.children[i].fieldValue))\r\n if (parent.children[i].itemType === 'DATE') {\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n if (parent.children[i].selectType === 'time') { // 自定义时间\r\n if (parent.children[i].absoluteBool) { // 相对时间\r\n fieldValue = '#######'\r\n item.calcWays = parent.children[i].calcWays\r\n } else { // 取配置值\r\n // TODO\r\n // fieldValue = moment(fieldValue).format(parent.children[i].format)\r\n }\r\n } else if (parent.children[i].selectType === 'component') { // 关联控件\r\n fieldValue = '${' + parent.children[i].relateCompent + '}'\r\n }\r\n item.dateFormat = parent.children[i].format\r\n item.dateCalcTypes = parent.children[i].dateCalcTypes\r\n item.calcWays = parent.children[i].calcWays\r\n } else {\r\n if (Object.prototype.toString.call(fieldValue) === '[object Array]') { // 选中后台查询值\r\n const fieldList: any = []\r\n for (let n = 0; n < fieldValue.length; n++) {\r\n if (fieldValue[n] !== '全选') {\r\n fieldList.push(fieldValue[n])\r\n }\r\n }\r\n fieldValue = fieldList.join(',')\r\n }\r\n }\r\n item.fieldValue = fieldValue\r\n if (parent.children.length > 1 && i !== parent.children.length - 1) {\r\n if (parent.type === 'and') {\r\n item.join = '&&'\r\n } else {\r\n item.join = '||'\r\n }\r\n }\r\n conditions.push(item)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 筛选变量处理\r\n const getFilterParams = (type, list, graphicConfig) => {\r\n if (!type) {\r\n return\r\n }\r\n const classifyItem = graphicConfig[list].find(item => {\r\n return item.name === type.label\r\n })\r\n if (!classifyItem) {\r\n return\r\n }\r\n const conditions = []\r\n const filterList = classifyItem.filterList\r\n if (filterList) {\r\n for (let i = 0; i < filterList.length; i++) {\r\n if (filterList[i].children.length > 0) {\r\n handlerFilterParam(filterList[i], conditions)\r\n }\r\n }\r\n }\r\n return conditions\r\n }\r\n\r\n return async function () {\r\n const componentType = props.type\r\n let graphicConfig = props.graphicConfig\r\n if (!graphicConfig || Object.keys(graphicConfig).length === 0) {\r\n graphicConfig = {\r\n classify: [],\r\n classifyList: [],\r\n series: [],\r\n seriesList: [],\r\n leftAxis: [],\r\n leftAxisList: [],\r\n rightAxis: [],\r\n rightAxisList: [],\r\n relativeList: []\r\n }\r\n }\r\n const xAxisValue = graphicConfig.classify\r\n const yAxisValue = [...graphicConfig.leftAxis, ...graphicConfig.rightAxis]\r\n if (yAxisValue.length === 0) {\r\n message.error('当前y轴无配置信息')\r\n return\r\n }\r\n\r\n // 获取值轴参数\r\n const indicatorList = getIndicatorList(graphicConfig)\r\n // 获取系列值\r\n let series\r\n if (Array.isArray(graphicConfig.series) && graphicConfig.series.length > 0) {\r\n const seriesItem = graphicConfig.seriesList?.find(item => {\r\n const firstSeries = graphicConfig.series[0]\r\n return item.name === firstSeries || item.nameBak === firstSeries\r\n })\r\n if (seriesItem != null) {\r\n series = {\r\n label: seriesItem.name,\r\n columnName: seriesItem.label\r\n }\r\n }\r\n }\r\n // 获取分类\r\n let classification\r\n if (xAxisValue.length > 0) {\r\n classification = {\r\n label: xAxisValue[0],\r\n columnName: xAxisValue[0]\r\n }\r\n const classify = graphicConfig.classifyList?.find(item => {\r\n return item?.name === xAxisValue[0] || item?.nameBak === xAxisValue[0]\r\n }) || {}\r\n classification.columnName = classify.label\r\n // 获取排序信息\r\n getSortParams(classification, graphicConfig.classifyList)\r\n classification.conditions = getFilterParams(classification, 'classifyList', graphicConfig) || []\r\n }\r\n if (series) {\r\n // 获取排序信息\r\n getSortParams(series, graphicConfig.seriesList)\r\n series.conditions = getFilterParams(series, 'seriesList', graphicConfig) || []\r\n }\r\n\r\n for (let t = 0; t < indicatorList.length; t++) {\r\n if (indicatorList[t].location === 'RIGHT') {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'rightAxisList', graphicConfig)\r\n } else {\r\n indicatorList[t].conditions = getFilterParams(indicatorList[t], 'leftAxisList', graphicConfig)\r\n }\r\n }\r\n\r\n let sqlConditions\r\n if (graphicConfig?.pageMode === 'design') {\r\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\r\n sqlConditions = graphicConfig.sqlConditions ?? []\r\n } else {\r\n sqlConditions = getSqlCondition(graphicConfig?.relativeList)\r\n }\r\n let source = 'SQL_VIEW'\r\n let fixedDimSql = ''\r\n let dataSourceId = ''\r\n let idxLibMode = ''\r\n if (graphicConfig.source === 'INDICATOR_LIB') {\r\n source = 'INDICATOR_LIB'\r\n fixedDimSql = graphicConfig.fixedDimSql\r\n dataSourceId = graphicConfig.dataSourceId\r\n idxLibMode = graphicConfig.idxLibMode\r\n }\r\n\r\n const map = {\r\n ecanBar: 'bar',\r\n ecanLine: 'line',\r\n ecanPie: 'pie',\r\n ecanScatter: 'scatter'\r\n }\r\n\r\n try {\r\n const res = await request.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\r\n headers: {\r\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\r\n current_context: 'ygt'\r\n }\r\n })\r\n\r\n return request.post(`${INDICATOR_URL}/diagram`, {\r\n dataViewId: graphicConfig.dataViewId,\r\n plugin: '1',\r\n layer: '2',\r\n chartType: map[componentType],\r\n classification,\r\n indicatorList,\r\n series,\r\n sqlConditions,\r\n source,\r\n fixedDimSql,\r\n dataSourceId,\r\n idxLibMode\r\n }, {\r\n headers: { Authentication: res.data.data.token }\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n}\r\n\r\nexport default useRequestDiagramData\r\n","export const useValueFormatter = (formatter: string, value:string) => {\n if (formatter == null) return value\n const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) return value\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n if (variable == null || variable === '') break\n let statement = variable.slice(1, -1)\n statement = statement?.replace(/value/g, value)\n try {\n // 匹配加减乘除\n let result = statement\n if ((/[+\\-*/%]+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n result = eval2(statement)\n }\n formatter = formatter.replace(variable, result)\n } catch (e) {\n console.error(e)\n }\n }\n return formatter\n}\n\nexport default useValueFormatter\n","import { GLOBAL_MODEL, INDICATOR_URL, GLOBAL_TOKEN } from '@/_utils/constant'\nimport { lowerCaseIncludes } from '@/_utils/util'\nimport request from '@/_utils/request'\nimport { inject, unref } from 'vue'\n\nexport const useIndicatorData = (props: { [key:string]: any } = {}) => {\n const { requestToken } = inject(GLOBAL_TOKEN, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n requestToken: () => void 0\n })\n // 指标库模式才会发\n if (props.dataType === 'indicator') {\n // 只要调用,计数 + 1,计数大于0才会请求\n requestToken()\n }\n\n const handleQueryColumn = (queryColumn: { [key:string]: any } = {}) => {\n const { label, name, location, show, indexCode } = queryColumn\n return {\n label,\n columnName: name,\n location,\n show,\n calcType: 'COLUMN',\n hrpIndexCode: indexCode\n }\n }\n\n const handleIndicator = (indicator: { [key:string]: any } = {}) => {\n const {\n label,\n name,\n location,\n show,\n indexCode,\n calcType = 'COLUMN',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n } = indicator\n return {\n label,\n columnName: name,\n location,\n show,\n calcType,\n hrpIndexCode: indexCode,\n aggregate: 'SUM',\n builtInFormula,\n builtInValueSource,\n builtInCalcWay,\n formula,\n conditions\n }\n }\n\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const handleSqlConditions = (controlList: { [key:string]: any } [] = []) => {\n const len = controlList.length\n const sqlConditions = [] as { [key:string]: any } []\n for (let i = 0; i < len; i++) {\n const control = controlList[i]\n const {\n id,\n conditionLabel,\n conditionKey,\n conditionValueType\n } = control\n const sqlCondition: { [key:string]: any } = {\n rule: 'NONE',\n label: conditionLabel,\n fieldName: conditionKey,\n fieldValue: '', // 在关联控件中取\n valueType: conditionValueType\n }\n // 获取组件属性\n const model = getGlobalModel(id) || {}\n if (lowerCaseIncludes(model.type, 'date')) {\n const { value, format } = model || {}\n sqlCondition.fieldValue = unref(value)?.format(format)\n sqlCondition.dateFormat = format\n }\n sqlConditions.push(sqlCondition)\n }\n return sqlConditions\n }\n return async () => {\n const { graphicConfig } = props\n const {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classificationList = [],\n seriesList = [],\n leftAxisList = [],\n rightAxisList = [],\n queryColumnList = [],\n indicators = [],\n controlList = [],\n dataSourceId,\n idxLibMode,\n preview = false\n } = graphicConfig || {}\n // console.log('classificationList', classificationList)\n // console.log('seriesList', seriesList)\n // console.log('leftAxisList', leftAxisList)\n // console.log('rightAxisList', rightAxisList)\n // console.log('indicators', indicators)\n // console.log('controlList', controlList)\n // 重点处理 classificationList、seriesList、leftAxisList、rightAxisList、indicators\n // classificationList (取第一项) => classification\n let classification\n if (Array.isArray(classificationList) && classificationList.length > 0) {\n const len = classificationList.length\n for (let i = 0; i < len; i++) {\n const item = classificationList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 classification,停止遍历\n if (show || len === 1) {\n classification = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // seriesList (取第一项) => series\n let series\n if (Array.isArray(seriesList) && seriesList.length > 0) {\n const len = seriesList.length\n for (let i = 0; i < len; i++) {\n const item = seriesList[i] || {}\n const { label = '', name = '', show = false, sort, customGroup, conditions } = item\n // 如果是 show 直接提取 seriesList,停止遍历\n if (show || len === 1) {\n series = {\n label,\n columnName: name,\n show,\n sort,\n customGroup,\n conditions\n }\n break\n }\n }\n }\n // queryColumnList => queryColumns\n const queryColumns = []\n queryColumnList?.forEach((queryColumn: { [key:string]: any }) => {\n queryColumns.push(handleQueryColumn(queryColumn))\n })\n\n // leftAxisList + rightAxisList + indicators => indicatorList\n const indicatorList = []\n leftAxisList?.forEach((leftAxis: { [key:string]: any }) => {\n leftAxis.location = 'LEFT'\n indicatorList.push(handleIndicator(leftAxis))\n })\n rightAxisList?.forEach((rightAxis: { [key:string]: any }) => {\n rightAxis.location = 'RIGHT'\n indicatorList.push(handleIndicator(rightAxis))\n })\n indicators?.forEach((indicator: { [key:string]: any }) => {\n indicator.location = 'LEFT'\n indicatorList.push(handleIndicator(indicator))\n })\n if (layer === '1' && queryColumns.length === 0) {\n return\n } else if (layer === '2' && indicatorList.length === 0) {\n return\n }\n let sqlConditions\n if (graphicConfig?.pageMode === 'design') {\n // relativeList 在设计模式下,由于联动无法直接获取,已经处理好数据直接获取\n sqlConditions = graphicConfig.sqlConditions ?? []\n } else {\n sqlConditions = handleSqlConditions(controlList)\n }\n try {\n const res = await request.post(`${INDICATOR_URL}/diagram`, {\n source,\n dataViewId,\n plugin,\n layer,\n chartType,\n classification,\n series,\n indicatorList,\n queryColumns,\n pageFlag: true,\n sqlConditions,\n // fixedDimSql: '',\n dataSourceId,\n idxLibMode,\n preview\n },\n {\n headers: {\n // @ts-ignore\n Authentication: window?.config?.indicatorToken,\n operateContext: 'ygt'\n }\n })\n return res\n } catch (e) {\n console.error(e)\n }\n }\n}\n\nexport default useIndicatorData\n","export const useHrefParamsToGlobalVariables = () => {\n const search = window.location.search\n const params = search.slice(1).split('&')\n const len = params.length\n for (let i = 0; i < len; i++) {\n const param = params[i]\n if (param == null || param === '') continue\n const keyAndValue = param.split('=')\n if (Array.isArray(keyAndValue)) {\n const key = keyAndValue[0]\n const value = keyAndValue[1] as string\n (window as any).config[key] = value\n }\n }\n}\n\nexport default useHrefParamsToGlobalVariables\n","<template>\n <div id=\"container\" ref=\"container\">\n <template v-if=\"ready\">\n <div\n class=\"page-config\"\n :style=\"style\"\n >\n <slot></slot>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, nextTick, computed, ref, onMounted, onUnmounted } from 'vue'\nimport { debounce } from 'lodash-es'\nimport { pageConfigComponentProps } from './props'\nimport { useImagePath } from '@/_utils/hooks'\nexport default defineComponent({\n name: 'EcanPageConfig',\n inheritAttrs: false,\n props: {\n ...pageConfigComponentProps\n },\n setup (props) {\n // 大屏设计容器\n const style = computed(() => ({\n width: props.width,\n height: props.height,\n backgroundColor: props.backgroundColor,\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n backgroundSize: props.backgroundSize\n }))\n const width = ref(0)\n const height = ref(0)\n const originalWidth = ref(0)\n const originalHeight = ref(0)\n const ready = ref(false)\n const container = ref()\n let observer: MutationObserver | null\n const initSize = () => {\n return new Promise<void>((resolve) => {\n nextTick(() => {\n // 获取大屏的真实尺寸\n if (props.width && props.height) {\n width.value = parseFloat(props.width)\n height.value = parseFloat(props.height)\n } else {\n width.value = container.value.clientWidth\n height.value = container.value.clientHeight\n }\n // 获取画布尺寸\n if (!originalWidth.value || !originalHeight.value) {\n originalWidth.value = window.screen.width\n originalHeight.value = window.screen.height\n }\n resolve()\n })\n })\n }\n const updateSize = () => {\n if (width.value && height.value) {\n container.value.style.width = `${width.value}px`\n container.value.style.height = `${height.value}px`\n } else {\n container.value.style.width = `${originalWidth.value}px`\n container.value.style.height = `${originalHeight.value}px`\n }\n }\n const updateScale = () => {\n // 获取真实的视口尺寸\n const currentWidth = document.body.clientWidth\n const currentHeight = document.body.clientHeight\n // 获取大屏最终的宽高\n const realWidth = width.value || originalWidth.value\n const realHeight = height.value || originalHeight.value\n const widthScale = currentWidth / realWidth\n const heightScale = currentHeight / realHeight\n container.value && (container.value.style.transform = `scale(${widthScale}, ${heightScale})`)\n }\n const onResize = async () => {\n await initSize()\n updateScale()\n }\n const initMutationObserver = () => {\n const MutationObserver = window.MutationObserver\n observer = new MutationObserver(onResize)\n observer.observe(container.value, {\n attributes: true,\n attributeFilter: ['style'],\n attributeOldValue: true\n })\n }\n const removeMutationObserver = () => {\n if (observer) {\n observer.disconnect()\n observer.takeRecords()\n observer = null\n }\n }\n onMounted(async () => {\n ready.value = false\n await initSize()\n updateSize()\n updateScale()\n window.addEventListener('resize', debounce(onResize, 100))\n initMutationObserver()\n ready.value = true\n })\n onUnmounted(() => {\n window.removeEventListener('resize', onResize)\n removeMutationObserver()\n })\n return {\n style,\n container,\n ready\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n#container {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n.page-config {\n position: relative;\n overflow: hidden;\n background-size: cover;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport PageConfig from './PageConfig.vue'\nexport const EcanPageConfig = withInstall(PageConfig)\nexport default EcanPageConfig\nexport * from './props'\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport interface ProviderConfig {\n contextRequestUrl: string // 请求头\n pageMode: 'normal' | 'preview' | 'design' // 普通、预览、设计模式\n theme: 'light' | 'darkBlue'\n containerMap: { [key:string]: any }\n}\n\nexport const providerConfig: ProviderConfig = {\n contextRequestUrl: '',\n pageMode: 'normal',\n theme: 'light',\n containerMap: {}\n}\n\n// 转化默认属性\nexport const providerConfigComponentProps = transformToComponentProps(providerConfig)\n","<template>\n <!-- 请勿去除属性id -->\n <div id=\"ProviderConfig\" ref=\"providerConfig\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, onUnmounted, ref, onMounted, watch, computed, unref } from 'vue'\nimport mitt from 'mitt'\nimport { EVENT_BUS, GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL, INDICATOR_URL, GLOBAL_TOKEN, REFRESH_PAGE } from '@/_utils/constant'\nimport { providerConfigComponentProps } from './props'\nimport { useVariablesInText, useHrefParamsToGlobalVariables } from '@/_utils/hooks'\nimport axios from 'axios'\n\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\n\n const providerConfig = ref<HTMLElement>()\n const setTheme = () => {\n providerConfig.value.setAttribute('datav-theme', props.theme as string)\n }\n watch(() => props.theme, () => {\n setTheme()\n })\n onMounted(() => {\n setTheme()\n })\n const contextRequestUrl = computed(() => useVariablesInText(props.contextRequestUrl as string))\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n // 当前组件主动触发ID\n const touchEventId = ref<string>('')\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme,\n touchEventId\n })\n\n // 提供全局变量\n const globalModel = new Map()\n const getGlobalModel = (key: string) => {\n return globalModel.get(key)\n }\n const setGlobalModel = (key: string, value: any) => {\n globalModel.set(key, value)\n }\n provide(GLOBAL_MODEL, {\n getGlobalModel,\n setGlobalModel\n })\n\n // 提供事件\n const eventBus = mitt()\n const onEvent = (key: string, events: { [key:string]: any }) => {\n eventBus.on(key, (k: string) => {\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onUnmounted(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key: string, eventName: string) => {\n eventBus.emit(key, eventName)\n }\n provide(EVENT_BUS, {\n onEvent,\n offEvent,\n emitEvent\n })\n\n // 设置是否请求 token\n const tokenNum = ref(0)\n const requestToken = () => {\n tokenNum.value = unref(tokenNum) + 1\n }\n provide(GLOBAL_TOKEN, {\n requestToken\n })\n // 请求排序\n const requestModel = new Map()\n const setRequest = (requestFn: Function = () => {}, sortNum: number = 0) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\n }\n const handleRequestFnList = (requestFnList: Array<Function>) => {\n return new Promise((resolve, reject) => {\n const resultList = requestFnList.map(requestFn => requestFn())\n Promise.all(resultList)\n .then(list => {\n resolve(list)\n })\n .catch(err => {\n reject(err)\n })\n })\n }\n // 指标库模块请求 token\n const queryUserToken = async () => {\n const res = await axios.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\n headers: {\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\n current_context: 'ygt'\n }\n })\n // 设置 token 挂载在 window.config 上\n // @ts-ignore\n // eslint-disable-next-line\n config.indicatorToken = res.data.data?.token\n }\n const touchRequest = async () => {\n const requestModelArr = Array.from(requestModel)\n // 排序\n requestModelArr.sort((a, b) => b[0] - a[0])\n const len = requestModelArr.length\n try {\n // 指标库模块需要 token\n // 页面不为design 请求次数 token 不为0\n if (props.pageMode !== 'design' && unref(tokenNum) > 0) {\n await queryUserToken()\n }\n for (let i = 0; i < len; i++) {\n const requestFnList = requestModelArr[i][1]\n await handleRequestFnList(requestFnList)\n }\n } catch (e) {\n console.error(e)\n } finally {\n // 执行完直接清空\n requestModel.clear()\n }\n }\n\n provide(REQUEST_MODEL, {\n setRequest,\n touchRequest\n })\n\n const emitRefreshPage = () => {\n eventBus.emit(REFRESH_PAGE)\n }\n provide(REFRESH_PAGE, {\n emitRefreshPage\n })\n // const notRenderSet = ref(new Set())\n // const refreshEventBus = mitt()\n const onRefreshPage = (callBack: Function) => {\n eventBus.on(REFRESH_PAGE, () => callBack())\n onMounted(() => {\n eventBus.off(REFRESH_PAGE)\n })\n }\n\n expose({\n touchRequest,\n getGlobalModel,\n onRefreshPage\n })\n\n return {\n providerConfig\n }\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport ProviderConfig from './ProviderConfig.vue'\nexport const EcanProviderConfig = withInstall(ProviderConfig)\nexport default EcanProviderConfig\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TextProps extends Props {\n text: string // 文本内容\n color: string // 颜色\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n justifyContent: 'flex-start' | 'center' | 'end' // 水平位置\n alignItems: 'flex-start' | 'center' | 'end' // 垂直位置\n textShadow: string // 文字阴影\n data: { [key:string]: any }\n variableColor: string\n variableFontSize: string\n variableDefaultValue: string\n format: '' | 'percentage'\n}\nexport const textProps:TextProps = {\n ...props,\n name: '文本',\n keyName: '文本',\n type: 'ecanText',\n width: '100px',\n height: '40px',\n text: '文字',\n color: '#333',\n variableColor: '#f00',\n fontSize: '14px',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n justifyContent: 'center',\n alignItems: 'center',\n variableFontSize: '14px',\n data: {},\n variableDefaultValue: '0',\n format: ''\n}\n\n// 转化默认属性\nexport const textComponentProps = transformToComponentProps(textProps)\n\nexport const textEvents = ['refreshData', 'click']\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD/WzT/WjP/WDD/WzT/WzP/WzT/WzT/WzT/WjT/WzT/WDT/YED/WzT/WzT/WjT/YED/WzT/WzT/WzT/XDT/WzT/WjX/WjP/XDT/XDT/WTL/Tif/WzReH8z5AAAAHHRSTlMA8RgS9W9YHbePZyME5sVjCP7bzcCxgndOQC4GFJJgKwAAAIJJREFUKM+Nkd0OgyAMRjvqcLA53fzXvv9zaokmxq8mnsue5ACFDjiy+XyjLZ7yyK35OxN5mSFZKa2QojEIKRhrZKM0QnsMQxirmJ0kBubTIZvAtUyiFAT4JFoUIYmIotZ5xjDPfyoCAV16nMPdFir8xZ16nM//tePtXw2ODOJY0V0WqQwM2rgKrU0AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA3LTIyVDA5OjM1OjE5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNy0yMlQwOTozNTozNyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MzZkZTc4NjEtZDc4Zi00MjRmLWEzYzktNWU5NDI5MGNkY2YxIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozNmRlNzg2MS1kNzhmLTQyNGYtYTNjOS01ZTk0MjkwY2RjZjEiIHN0RXZ0OndoZW49IjIwMjItMDctMjJUMDk6MzU6MTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6VDI+BAAABUUlEQVRIia3WPyhGURgG8B8pi0xisStKMioZLQaLiaQMBoxiVBImCwaLf6MssloUk8Gmb7GgJFKSUvIZ7qe+bvd89+A+03uf989z3nPPPe+tK5fLqtF3tSESzRjFAJ4vemams4IaYqulCq9gEo34QGco+LcCg9hHaxW3jpsiBIZxmMp5kXQTRH1k8S4cZCxoE6//FaiXbEtThm87JjkPI+jN4E9xW4TAQoA/isjNFehCT8B3VoTAUID/xHURAn0B/g5fRQh0B/j7mOJkf2gTaKvY7YG8FsxXPe/hIVbgCTs5C+vAasU+xlooMGuLTrCVI/CDR0zVCgi9gzmUIgQmBbYmT+AdY5LjGMKWpNuaqHWKLrEY8JUkXeYi75iu4DzFfUi6ey9C4AvjeKviliTdRSHmsrvBbMU+lzNg0oidaLvox7LIK+IHdem/iqIROzL/jG+NrT1BRsXKNQAAAABJRU5ErkJggg==\"","<template>\n <div class=\"skeleton-wrapper\" :style=\"style\" v-if=\"loading\">\n <skeleton :loading=\"loading\"/>\n </div>\n <div class=\"ecan-text\" :style=\"style\" v-html=\"myText\" @click=\"click\" v-else/>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { textComponentProps } from './props'\nimport { usePickComponentStyle, useRequestData, useOnEvent, useEmitEvent } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport goUp from '@/assets/go-up.png'\nimport goDown from '@/assets/go-down.png'\nexport default defineComponent({\n name: 'EcanText',\n components: { Skeleton },\n props: {\n ...textComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myData = ref({} as { [key:string]:any })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType === 'static') {\n myData.value = data as { [key: string]: any }\n }\n }, {\n immediate: true\n })\n const myText = computed(() => {\n const data = unref(myData)\n let text = props.text as string\n text = text?.replace(/\\n|\\\\n/g, '<br/>')\n text = text?.replace(/\\s/g, '&nbsp;')\n const variables = (text).match(/\\{\\s*[\\w\\u4e00-\\u9fa5]*\\s*\\}/g)\n if (variables == null || variables.length === 0) return text\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const v = variable?.slice(1, variable.length - 1)?.trim()\n let usedVariable = data[v]\n // 能取到变量值\n if (usedVariable != null) {\n // 百分比格式化\n if (props.format === 'percentage') {\n // 判断是数字类型\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable * 100).toFixed(2)\n // 如果大于等于 0\n if (usedVariable >= 0) {\n text = text.replace(variable, `<span style=\"color:#ED6643;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goUp}\"/>${usedVariable}%</span>`)\n } else {\n // 如果小于 0\n text = text.replace(variable, `<span style=\"color: #6ACB97;font-size:${props.variableFontSize}\"><img style=\"width: ${props.variableFontSize}\" src=\"${goDown}\"/>${Math.abs(usedVariable)}%</span>`)\n }\n } else {\n // 判断不是数字类型\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${0.00}%</span>`)\n }\n } else if (props.format === 'money') {\n // 金额格式化\n usedVariable = +usedVariable\n if (!isNaN(usedVariable)) {\n usedVariable = (usedVariable).toFixed(2).toLocaleString()\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n /// 没有使用百分格式化\n text = text.replace(variable, `<span style=\"color:${props.variableColor};font-size:${props.variableFontSize}\">${usedVariable}</span>`)\n }\n } else {\n // 不能取到变量值\n text = text.replace(variable, props.variableDefaultValue as string)\n }\n }\n return `<span>${text}</span>`\n })\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n if (props.dataType === 'static') return\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n return {\n style,\n myText,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.skeleton-wrapper {\n overflow: hidden;\n}\n\n.ecan-text {\n overflow: hidden;\n display: flex;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Text from './Text.vue'\nexport const EcanText = withInstall(Text)\nexport default EcanText\nexport * from './props'\n","<template>\n <div class=\"red\">\n {{ text }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue'\nexport default defineComponent({\n name: 'EcanScrollText',\n setup () {\n const text = ref('基础文本')\n return {\n text\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.red {\n color: red;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport ScrollText from './ScrollText.vue'\nexport const EcanScrollText = withInstall(ScrollText)\nexport default EcanScrollText\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TimeDisplayProps extends Props {\n color: string\n format: string\n fontSize: string\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n textShadow: string // 文字阴影\n textAlign: string // 水平\n verticalAlign: string // 垂直\n}\n\nexport const timeDisplayProps: TimeDisplayProps = {\n ...props,\n name: '时间展示',\n keyName: '时间展示',\n type: 'ecanTimeDisplay',\n format: 'YYYY-MM-DD dddd HH:mm:ss',\n fontSize: '16px',\n color: '#333',\n width: '240px',\n height: '40px',\n textAlign: 'center',\n fontFamily: '',\n fontWeight: 400,\n textShadow: '',\n verticalAlign: 'middle'\n}\n\nexport const timeDisplayComponentProps = transformToComponentProps(timeDisplayProps)\n","<template>\n <div class=\"time-display\" :style=\"style\">\n {{ time }}\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, onMounted, onUnmounted, ref } from 'vue'\nimport { timeDisplayComponentProps } from './props'\nimport dayjs from 'dayjs'\nimport { usePickComponentStyle } from '../../_utils/hooks'\nexport default defineComponent({\n name: 'EcanTimeDisplay',\n props: {\n ...timeDisplayComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const time = ref(dayjs().format(props.format as string))\n let timer = null\n const clearTimer = () => {\n clearInterval(timer)\n timer = null\n }\n const setTimer = () => {\n if (timer) {\n clearTimer()\n }\n timer = setInterval(() => {\n time.value = dayjs().add(1, 's').format(props.format as string)\n }, 1000)\n }\n onMounted(() => {\n setTimer()\n })\n onUnmounted(() => {\n clearTimer()\n })\n return {\n style,\n time\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.time-display {\n overflow: hidden;\n display: table-cell;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport TimeDisplay from './TimeDisplay.vue'\nexport const EcanTimeDisplay = withInstall(TimeDisplay)\nexport default EcanTimeDisplay\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ListProps extends Props {\n data: { [key: string]: any } []\n columns: { [key: string]: any } []\n sliceCount: number,\n backgroundColor: string\n useRanking: boolean\n useTitle: boolean\n columnCount: number\n itemHeight: string\n itemColSpan: string\n itemRowSpan: string\n}\n\nexport const listProps:ListProps = {\n ...props,\n type: 'ecanList',\n name: '列表',\n keyName: '列表',\n width: '330px',\n height: '80px',\n backgroundColor: '#0d215e',\n itemColSpan: '10px',\n itemRowSpan: '10px',\n useRanking: true,\n useTitle: false,\n sliceCount: 6,\n columnCount: 1,\n itemHeight: '32px',\n data: [\n {\n name: 'a',\n age: 12\n },\n {\n name: 'b',\n age: 14\n }\n ],\n columns: [\n {\n key: 'name'\n },\n {\n key: 'age'\n }\n ]\n}\n\nexport const listComponentProps = transformToComponentProps(listProps)\n\nexport interface ListEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const listEvents: Array<keyof ListEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-list\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <div\n class=\"title\"\n v-if=\"useTitle\"\n >\n <div\n class=\"title-inner\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1}/ ${columnCount})`,\n marginRight: count % columnCount !== 0 ? itemColSpan : ''\n }\"\n v-for=\"count in columnCount\"\n :key=\"count\"\n >\n <div class=\"ranking\" v-if=\"useRanking\" />\n <div\n class=\"column\"\n v-for=\"(column, i) in columns\"\n :key=\"column.key || i\"\n :style=\"{\n color: column.titleColor,\n ...columnStyle\n }\"\n >\n {{ column.title }}\n </div>\n </div>\n </div>\n <div class=\"ecan-list-content\" v-if=\"dataSource.length > 0\">\n <div\n class=\"title-placeholder\"\n :style=\"{\n marginBottom: itemRowSpan\n }\"\n v-if=\"useTitle\"\n />\n <div\n class=\"item\"\n :style=\"{\n backgroundColor: backgroundColor,\n height: itemHeight,\n width: `calc(100% / ${columnCount} - ${itemColSpan} * ${columnCount - 1} / ${columnCount})`,\n marginRight: (i + 1) % columnCount !== 0 ? itemColSpan : '',\n marginBottom: itemRowSpan\n }\"\n v-for=\"(item, i) in dataSource.slice(0, sliceCount)\"\n :key=\"item.id || i\"\n @click=\"click\"\n >\n <div class=\"ranking\" v-if=\"useRanking\">\n <div class=\"icon\"/>\n <div class=\"sort\">\n Top {{ i + 1 }}\n </div>\n </div>\n <div\n :class=\"['column', contrastClass(item[column.key], column.format)]\"\n v-for=\"column in columns\"\n :key=\"column.key\"\n :style=\"{\n fontSize: column.fontSize,\n color: contrastClass(item[column.key], column.format) === '' ? column.color : '',\n fontWeight: column.fontWeight,\n ...columnStyle\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(item[column.key], column.format) }}\n </div>\n </div>\n </div>\n <div class=\"empty\" v-else>\n 暂无数据\n </div>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref } from 'vue'\nimport { listComponentProps, ListEvents } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/_utils/hooks'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton'\nexport default defineComponent({\n name: 'EcanList',\n components: { Skeleton },\n props: {\n ...listComponentProps\n },\n setup (props) {\n const dataSource = ref<{[key:string]: any} []>(props.data as {[key:string]: any} [])\n const style = usePickComponentStyle(props, ['backgroundColor'])\n const columnStyle = computed(() => {\n if (props.useRanking) {\n return {\n textAlign: 'center'\n }\n } else {\n return {\n textAlign: 'left'\n }\n }\n })\n type Format = 'money' | 'percentage' | 'contrast' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n\n try {\n loading.value = true\n const res = await requestData()\n dataSource.value = res?.data?.data.rows || []\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n handleRequestData()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n useOnEvent(props, {\n refreshData\n } as ListEvents)\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\n return {\n style,\n formatFn,\n columnStyle,\n contrastClass,\n dataSource,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n .ecan-list {\n overflow: hidden;\n }\n .ecan-list-content {\n width: 100%;\n height: 100%;\n overflow: auto;\n display: flex;\n align-content: flex-start;\n flex-wrap: wrap;\n }\n .title {\n position: absolute;\n z-index: 9;\n display: flex;\n align-items: center;\n height: 32px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .title-inner {\n padding-left: 28px;\n padding-right: 20px;\n flex: 1;\n display: flex;\n height: 100%;\n }\n .title-placeholder {\n width: 100%;\n height: 32px;\n }\n .item {\n display: flex;\n align-items: center;\n height: 32px;\n padding-left: 28px;\n padding-right: 20px;\n width: 100%;\n font-size: 16px;\n color: #ffffff;\n }\n .column {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .ranking {\n flex: 1;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .icon {\n width: 12px;\n height: 8px;\n background: #21BEF7;\n margin-right: 17px;\n opacity: .6;\n }\n .item:nth-child(2) .icon {\n opacity: .8;\n }\n .item:first-child .icon{\n opacity: 1;\n }\n .sort {\n font-weight: 600;\n }\n .goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n\n .goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n &:before {\n content: '';\n display: block;\n background: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n }\n .empty {\n text-align: center;\n margin-top: 15%;\n }\n</style>\n\n<style lang=\"less\">\n.ecan-list {\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n *::-webkit-scrollbar-thumb {\n border-radius: 6px;\n -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);\n background-color: #c8c9ca;\n }\n}\n[datav-theme='darkBlue'] {\n .ecan-list {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n *::-webkit-scrollbar-track{\n background-color: #192c70;\n }\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .empty {\n color: #ffffff;\n }\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport List from './List.vue'\nexport const EcanList = withInstall(List)\nexport default EcanList\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ProportionProps extends Props {\n strokeColor: string // 进度条的色彩\n strokeLinecap: 'round' | 'square' // 进度条的样式\n trailColor: string // 未完成的分段的颜色\n strokeType: 'circle' | 'dashboard',\n data: { [key:string]: any }\n text: string\n fontSize: string\n color: string\n strokeWidth: number\n fontWeight: number\n strokeTextWidth: string\n lineHeight: string\n decimalFormat: boolean\n variableDefaultValue: string\n}\n\nexport const proportionProps: ProportionProps = {\n ...props,\n name: '占比图',\n keyName: '占比图',\n type: 'ecanProportion',\n strokeType: 'circle',\n width: '200px',\n height: '200px',\n strokeColor: '#4091f7',\n strokeLinecap: 'round',\n trailColor: '#f5f5f5',\n data: {\n percent: 0.30\n },\n text: '{percent}%',\n fontSize: '26px',\n color: '#4091f7',\n strokeWidth: 6,\n fontWeight: 400,\n strokeTextWidth: '100%',\n lineHeight: '26px',\n decimalFormat: false,\n variableDefaultValue: '0'\n}\n\nexport const proportionComponentProps = transformToComponentProps(proportionProps)\n\nexport const proportionEvents = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-proportion\" :style=\"style\">\n <a-progress\n class=\"progress\"\n :percent=\"myValue\"\n :width=\"myWidth\"\n :type=\"strokeType\"\n :strokeColor=\"strokeColor\"\n :strokeLinecap=\"strokeLinecap\"\n :trailColor=\"trailColor\"\n :strokeWidth=\"strokeWidth\"\n :gapDegree=\"strokeType === 'dashboard' ? 75 : 0\"\n @click=\"click\"\n >\n <template #format>\n <skeleton v-if=\"loading\" :loading=\"loading\"/>\n <div\n v-else\n class=\"format\"\n :style=\"{\n width: strokeTextWidth,\n fontSize,\n color,\n fontWeight,\n lineHeight\n }\">\n {{ text }}\n </div>\n </template>\n </a-progress>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport 'ant-design-vue/es/progress/style'\nimport { Progress as AProgress } from 'ant-design-vue'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '@/_utils/hooks'\nimport { proportionComponentProps } from './props'\nimport { GLOBAL_CONFIG, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '../../common/skeleton'\nexport default defineComponent({\n name: 'EcanProportion',\n components: {\n AProgress,\n Skeleton\n },\n props: {\n ...proportionComponentProps\n },\n setup (props) {\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const style = usePickComponentStyle(props)\n const myWidth = computed(() => {\n const width = props.width as string\n return parseFloat(width)\n })\n const myData = ref<{ [key:string]: any }>({})\n watch(() => props.data, () => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n myData.value = props.data as { [key:string]: any }\n }\n }, {\n immediate: true,\n deep: true\n })\n const myValue = computed(() => {\n const data = unref(myData)\n const defaultValue = +(props.variableDefaultValue)\n if (data == null) {\n if (!isNaN(defaultValue)) {\n return defaultValue\n } else {\n return 0\n }\n }\n const variables = (props.text as string).match(/\\{.+\\}/g) || []\n let value\n const valueSet = new Set(Object.keys(data))\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n const key = variable.slice(1, variable.length - 1)\n if (valueSet.has(key)) {\n value = data[key]\n break\n }\n }\n\n if (typeof value === 'number') {\n value = value * 100\n } else if (typeof value === 'string' && !isNaN(+value)) {\n value = (+value) * 100\n } else if (!isNaN(defaultValue)) {\n value = defaultValue * 100\n } else {\n value = 0\n }\n\n if (props.decimalFormat) {\n value = +value.toFixed(2)\n }\n return value\n })\n const text = computed(() => {\n let text = props.text as string\n if (text === '') return unref(myValue)\n const defaultValue = props.variableDefaultValue as string // 变量默认值\n const data = unref(myData) // { a: 1, b: 2 }\n const variables = (text).match(/\\{.+\\}/g) || []\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, variable.length - 1) // { a - b} => a - b\n const textVariables = statement.match(/.*/g) // a - b => [a,b]\n for (let j = 0; j < textVariables?.length; j++) { // \"1 - 2\"\n const textVariable = textVariables[i]?.trim()\n if (data[textVariable] != null) {\n statement = statement.replace(textVariable, data[textVariable])\n } else {\n statement = statement.replace(textVariable, defaultValue)\n }\n }\n // 匹配加减乘除\n let usedVariable:number | string = statement\n // 运行表达式\n try {\n if ((/\\w+[+\\-*/%]+\\w+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n usedVariable = eval2(statement)\n }\n } catch (e) {\n console.error(e)\n }\n if (typeof usedVariable === 'number' || !isNaN(+usedVariable)) {\n usedVariable = (+usedVariable * 100)\n if (props.decimalFormat) {\n usedVariable = usedVariable.toFixed(2)\n }\n }\n text = text.replace(variable, usedVariable + '')\n }\n return text\n })\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n myData.value = res?.data?.data || {}\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const refreshData = () => {\n handleRequestData()\n }\n useOnEvent(props, {\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', () => {})\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, props.requestSort as number)\n\n return {\n style,\n myWidth,\n text,\n myValue,\n loading,\n click\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-proportion {\n overflow: hidden;\n}\n\n.progress {\n width: 100%;\n height: 100%;\n}\n\n.format {\n margin: 0 auto;\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Proportion from './Proportion.vue'\nexport const EcanProportion = withInstall(Proportion)\nexport default EcanProportion\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface InputProps extends Props {\n value: string,\n placeholder: string\n}\n\nexport const inputProps: InputProps = {\n ...props,\n width: '200px',\n id: '',\n left: '0px',\n top: '0px',\n name: '输入框',\n keyName: '输入框',\n rotate: '',\n type: 'ecanInput',\n value: '',\n placeholder: '请输入文字'\n}\n\n// 转化默认属性\nexport const inputComponentProps = transformToComponentProps(inputProps)\n","<template>\n <div\n class=\"ecan-input\"\n :style=\"style\"\n >\n <a-input\n class=\"input\"\n :value=\"value\"\n :placeholder=\"placeholder\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { usePickComponentStyle } from '@/_utils/hooks'\nimport { Input as AInput } from 'ant-design-vue'\nimport 'ant-design-vue/es/input/style'\nimport { inputComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanInput',\n components: {\n AInput\n },\n props: {\n ...inputComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n return {\n style\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.input {\n width: 100%;\n height: 100%;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Input from './Input.vue'\nexport const EcanInput = withInstall(Input)\nexport default EcanInput\nexport * from './props'\n","import {\n Props,\n EventsProp,\n props,\n transformToComponentProps\n} from '@/_utils/props'\nimport dayjs from 'dayjs'\n\nexport interface DatePickerProps extends Props, EventsProp {\n value: string\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n showTime: boolean // 增加时间选择功能\n}\n\nexport const datePickerProps: DatePickerProps = {\n ...props,\n height: '33px',\n width: '130px',\n id: '',\n left: '0px',\n top: '0px',\n name: '日期选择器',\n keyName: '日期选择器',\n rotate: '',\n type: 'ecanDatePicker',\n value: dayjs().format('YYYY-MM-DD'),\n picker: 'date',\n format: 'YYYY-MM-DD',\n showTime: false\n}\nexport const datePickerComponentProps = transformToComponentProps(datePickerProps)\n\nexport const datePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-date-picker\"\n :style=\"style\"\n >\n <!-- 宽度style有效,class无效 -->\n <a-date-picker\n class=\"date-picker\"\n dropdownClassName=\"ecan-date-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :showTime=\"showTime\"\n :locale=\"locale\"\n @change=\"dateChange\"\n :getPopupContainer=\"getPopupContainer\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, computed } from 'vue'\nimport { datePickerComponentProps } from './props'\nimport { DatePicker as ADatePicker } from 'ant-design-vue'\nimport 'ant-design-vue/es/date-picker/style'\nimport { usePickComponentStyle, useOnEvent, useEmitEvent } from '@/_utils/hooks'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { GLOBAL_MODEL } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanDatePicker',\n props: {\n ...datePickerComponentProps\n },\n components: {\n ADatePicker\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = computed<Dayjs | null>(() => props.value ? dayjs(props.value as string) : null)\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {\n })\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n myValue,\n locale,\n dateChange\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.date-picker {\n width: 100%;\n height: 100%\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] .ecan-date-picker {\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n}\n[datav-theme='darkBlue'] .ecan-date-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner, .ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner {\n background: #1890ff;\n }\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport DatePicker from './DatePicker.vue'\nexport const EcanDatePicker = withInstall(DatePicker)\nexport default EcanDatePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface SelectOption {\n value: any\n label: string\n disabled?: boolean\n key?: string\n title?: string,\n}\n\nexport type SelectOptions = SelectOption []\n\nexport interface SelectProps extends Props {\n data: SelectOptions // 同 options\n value: string,\n dataFieldNames: { label: string, value: string }\n\n}\n\nexport const selectProps: SelectProps = {\n ...props,\n name: '选择器',\n keyName: '选择器',\n width: '120px',\n height: '33px',\n type: 'ecanSelect',\n data: [],\n value: '',\n dataFieldNames: { label: 'label', value: 'value' }\n}\n\nexport const selectComponentProps = transformToComponentProps(selectProps)\n\nexport const selectEvents = ['selectChange']\n","<template>\n <div\n class=\"ecan-select\"\n :style=\"style\"\n >\n <a-select\n class=\"select\"\n v-model:value=\"myValue\"\n :options=\"options\"\n :getPopupContainer=\"getPopupContainer\"\n :field-names=\"dataFieldNames\"\n @change=\"selectChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref } from 'vue'\nimport { Select as ASelect } from 'ant-design-vue'\nimport 'ant-design-vue/es/select/style'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useRequestData } from '../../_utils/hooks'\nimport { selectComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '../../_utils/constant'\nexport default defineComponent({\n name: 'EcanSelect',\n components: {\n ASelect\n },\n props: {\n ...selectComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 挂在在 ProviderConfig 或者 body 下\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const requestData = useRequestData(props)\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const options = ref(props.data as { [key:string]:any } [])\n const myValue = ref(props.value || props.data[0])\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n const res = await requestData()\n options.value = res?.data?.data?.rows || []\n const firstOption = unref(options)[0]\n if (props.value === '' && firstOption != null) {\n myValue.value = firstOption[(props.dataFieldNames as { label: string, value: string }).value]\n }\n }\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myValue\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const selectChange = emitEvent('selectChange')\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n selectChange\n })\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(handleRequestData, props.requestSort as number)\n return {\n style,\n getPopupContainer,\n myValue,\n selectChange,\n options\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-select {\n :deep(.ant-select-selector) {\n height: 100% !important;\n }\n}\n\n.select {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #d9d9d9;\n }\n .ant-select-dropdown {\n color: rgba(0, 0, 0, 0.85);\n background: #ffffff;\n box-shadow: 0 2px 8px rgb(0 0 0 / 15%);\n }\n .ant-empty-img-simple-g {\n stroke: #d9d9d9;\n }\n .ant-empty-img-simple-ellipse {\n fill: #f5f5f5;\n }\n .ant-empty-img-simple-path {\n fill: #f5f5f5;\n stroke: #d9d9d9;\n }\n .ant-empty-description {\n color: rgba(0, 0, 0, 0.25);\n }\n .anticon-down {\n color: #333;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border: 1px solid #1f63a3;\n background-color: #05164c;\n box-shadow: inset 0 0 10px #005efe;\n color: #ffffff;\n }\n .ant-select-dropdown {\n box-shadow: inset 0 0 10px #005efe;\n color: #fff;\n background-color: #05164c;\n }\n .ant-empty-img-simple-g {\n stroke: #69befa;\n }\n .ant-empty-img-simple-ellipse {\n fill-opacity: 0;\n }\n .ant-empty-img-simple-path {\n fill: #69befa;\n stroke: #69befa;\n }\n .ant-empty-description {\n color: #69befa;\n }\n .anticon-down {\n color: #ffffff;\n }\n .ant-select-item {\n color: #ffffff;\n }\n .ant-select-item-option-active {\n background: #1f63a3;\n }\n .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n background: #1f63a3;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Select from './Select.vue'\nexport const EcanSelect = withInstall(Select)\nexport default EcanSelect\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface RangePickerProps extends Props {\n picker: 'date' | 'week' | 'month' | 'quarter' | 'year'\n format: string\n startTime: string // 开始时间\n endTime: string // 结束时间\n}\n\nexport const rangePickerProps: RangePickerProps = {\n ...props,\n name: '范围选择器',\n keyName: '范围选择器',\n type: 'ecanRangePicker',\n width: '250px',\n height: '35px',\n picker: 'date',\n format: 'YYYY-MM-DD',\n startTime: '',\n endTime: ''\n}\n\nexport const rangePickerComponentProps = transformToComponentProps(rangePickerProps)\n\nexport const rangePickerEvents = ['dateChange']\n","<template>\n <div\n class=\"ecan-range-picker\"\n :style=\"style\"\n >\n <a-range-picker\n class=\"range-picker\"\n dropdownClassName=\"ecan-range-picker-dropdown\"\n v-model:value=\"myValue\"\n :format=\"format\"\n :picker=\"picker\"\n :locale=\"locale\"\n :getPopupContainer=\"getPopupContainer\"\n @change=\"dateChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref, watch, ref } from 'vue'\nimport { rangePickerComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/_utils/hooks'\nimport { RangePicker as ARangePicker } from 'ant-design-vue'\nimport locale from 'ant-design-vue/es/date-picker/locale/zh_CN'\n// antdv 中 range-picker 组件与 date-picker 共用一个样式\nimport 'ant-design-vue/es/date-picker/style'\nimport { GLOBAL_MODEL } from '@/_utils/constant'\nimport dayjs, { Dayjs } from 'dayjs'\nexport default defineComponent({\n name: 'EcanRangePicker',\n components: {\n ARangePicker\n },\n props: {\n ...rangePickerComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const getPopupContainer = () => document.getElementById('ProviderConfig') || document.body\n const myValue = ref<[Dayjs, Dayjs]>([null, null])\n watch(() => [props.startTime, props.endTime], ([startTime, endTime]) => {\n const _startTime = startTime ? dayjs(startTime as string) : null\n const _endTime = endTime ? dayjs(endTime as string) : null\n myValue.value = [_startTime, _endTime]\n }, {\n immediate: true\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const myStartTime = computed(() => unref(myValue)[0])\n const myEndTime = computed(() => unref(myValue)[1])\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n format: props.format,\n startTime: myStartTime,\n endTime: myEndTime\n })\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const dateChange = emitEvent('dateChange', () => {})\n // TODO 传入需要注册的参数\n useOnEvent(props, {\n dateChange\n })\n return {\n style,\n getPopupContainer,\n locale,\n dateChange,\n myValue\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.range-picker {\n width: 100%;\n height: 100%;\n}\n</style>\n\n<style lang=\"less\">\n[datav-theme='light'] .ecan-range-picker{\n .ant-picker {\n background-color: #ffffff;\n color: rgba(0, 0, 0, 0.85);\n border: 1px solid #d9d9d9;\n }\n .ant-picker-input > input {\n color: rgba(0, 0, 0, 0.85);\n }\n .anticon-calendar {\n color: #333;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-input > input::placeholder {\n color: #bfbfbf;\n }\n .ant-picker-separator .anticon {\n color:#333;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker {\n .ant-picker {\n background-color: #05164c;\n border: 1px solid #1f63a3;\n color: #fff;\n box-shadow: inset 0 0 10px #005efe;\n }\n .ant-picker-input > input {\n color: #ffffff;\n }\n .anticon-calendar {\n color: #ffffff;\n }\n .anticon-close-circle {\n color: #333;\n }\n .ant-picker-separator .anticon {\n color:#fff;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-range-picker-dropdown {\n .ant-picker-panel {\n background: #05174e;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-header {\n color: #69befa;\n border-bottom: 1px solid #69befa;\n }\n .ant-picker-panel .ant-picker-footer {\n border-top: 1px solid #69befa;\n }\n .ant-picker-header button {\n color: #69befa;\n }\n .ant-picker-content th {\n color: #69befa;\n }\n .ant-picker-content td {\n color: #69befa;\n }\n .ant-picker-today-btn {\n color: #69befa;\n }\n .ant-picker-cell-disabled .ant-picker-cell-inner {\n color: #999;\n }\n .ant-picker-cell-disabled::before {\n background: #333;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport RangePicker from './RangePicker.vue'\nexport const EcanRangePicker = withInstall(RangePicker)\nexport default EcanRangePicker\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ButtonProps extends Props {\n text: string\n mode: 'primary' | 'dashed' | 'link' | 'text' | 'default'\n danger: boolean\n shape: 'default' | 'circle' | 'round'\n href: string\n target: 'self' | 'blank' | 'event'\n fontSize: string\n fontWeight: number\n}\n\nexport const buttonProps: ButtonProps = {\n ...props,\n width: '200px',\n name: '按钮',\n keyName: '按钮',\n type: 'ecanButton',\n text: '按钮',\n mode: 'default',\n danger: false,\n shape: 'default',\n href: '',\n target: 'self',\n fontSize: '14px',\n fontWeight: 400\n}\n\n// 转化默认属性\nexport const buttonComponentProps = transformToComponentProps(buttonProps)\n\nexport const buttonEvents = ['click']\n","<template>\n <div\n class=\"ecan-button\"\n :style=\"style\"\n >\n <a-button\n block\n @click=\"click\"\n :type=\"mode\"\n :danger=\"danger\"\n :shape=\"shape\"\n :href=\"myHref\"\n :target=\"myTarget\"\n >\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ myText }}\n </span>\n </a-button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref } from 'vue'\nimport { usePickComponentStyle, useEmitEvent, useVariablesInText } from '@/_utils/hooks'\nimport { Button as AButton } from 'ant-design-vue'\nimport 'ant-design-vue/es/button/style'\nimport { buttonComponentProps } from './props'\nexport default defineComponent({\n name: 'EcanButton',\n components: {\n AButton\n },\n props: {\n ...buttonComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n // 拦截触发事件\n const emitEvent = useEmitEvent(props)\n // click 是 event 名称\n const click = emitEvent('click', () => {\n const url = unref(myHref)\n if (props.target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url\n }, '*')\n }\n })\n\n const myText = computed(() => useVariablesInText(props.text as string))\n // 空字符串会刷新页面\n const myHref = computed(() => useVariablesInText(props.href as string) || null)\n const myTarget = computed(() => {\n const target = props.target as 'self' | 'blank' | 'event'\n if (target === 'event' || unref(myHref) == null) {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n })\n return {\n style,\n click,\n myText,\n myHref,\n myTarget\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.ecan-button {\n .ant-btn {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Button from './Button.vue'\nexport const EcanButton = withInstall(Button)\nexport default EcanButton\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface PieProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n backgroundColor: string\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n legendShow: boolean\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n legendTextStyleColor: string\n innerRadius: string\n outerRadius: string\n centerLeft: string\n centerTop: string\n labelShow: boolean\n labelFormatter: string\n labelFontSize: number\n labelPosition: 'outside' | 'inside' | 'center'\n labelLineShow: boolean\n labelColor: string\n isUseLabelColors: boolean\n labelLineLength: number\n labelLineLength2: number\n roseType: '' | 'radius' | 'area'\n valueTypeDataFieldNames: ValueTypeDataFieldNames,\n dataFieldConfigType: 'key' | 'value',\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n}\n\nexport const pieProps: PieProps = {\n ...props,\n id: '',\n name: '饼图',\n keyName: '饼图',\n type: 'ecanPie',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n backgroundColor: '',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '{b} : {c} ({d}%)',\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'vertical',\n legendTop: 'top',\n legendLeft: 'left',\n innerRadius: '0%',\n outerRadius: '60%',\n centerLeft: '50%',\n centerTop: '50%',\n labelShow: true,\n labelColor: '#333',\n isUseLabelColors: false,\n labelFontSize: 12,\n labelPosition: 'outside',\n labelFormatter: '{b}\\\\n{d}%',\n labelLineShow: true,\n labelLineLength: 10,\n labelLineLength2: 15,\n roseType: '',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n dataFieldConfigType: 'value',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息'\n}\n// 转化默认属性\nexport const pieComponentProps = transformToComponentProps(pieProps)\n\nexport interface PieEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const pieEvents: Array<keyof PieEvents> = ['click', 'refreshData']\n","import request from '../request'\nexport const useDownloadFile = async (downloadFileUrl: string) => {\n const res = await request.post(downloadFileUrl, {}, {\n responseType: 'blob'\n }) as any\n const { data, headers } = res\n const fileName = headers['content-disposition'].replace(/\\w+;filename=(.*)/, '$1')\n const blob = new Blob([data])\n const dom = document.createElement('a')\n const url = window.URL.createObjectURL(blob)\n dom.href = url\n dom.download = decodeURI(fileName)\n dom.style.display = 'none'\n document.body.appendChild(dom)\n dom.click()\n dom.parentNode?.removeChild(dom)\n window.URL.revokeObjectURL(url)\n}\nexport default useDownloadFile\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, watch, inject, ref, unref } from 'vue'\nimport {\n useEmitEvent,\n usePickComponentStyle,\n useRequestData,\n useTransformChartDataByAttrValue,\n useOnEvent,\n useRequestDiagramData\n} from '@/_utils/hooks'\nimport Echarts from '@/common/echarts'\nimport { pieComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { PieChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { handleFormatter } from '@/_utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { ValueTypeDataFieldNames } from '@/_utils/props'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\n\nuse([\n CanvasRenderer,\n PieChart,\n TitleComponent,\n ToolboxComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanPie',\n props: {\n ...pieComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => {\n let { data = [] } = unref(dataset)[0] || {}\n if (Array.isArray(props.colors)) {\n const isUseLabelColors = props.isUseLabelColors\n const colors = props.colors\n data = data.map((item, index) => ({\n label: isUseLabelColors ? { color: colors[index] } : {},\n ...item\n }))\n }\n return {\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: handleFormatter(props.tooltipFormatter as string),\n // formatter: function (params) {\n // console.log(params)\n // },\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n color: props.colors,\n series: [\n {\n data,\n type: 'pie',\n radius: [props.innerRadius, props.outerRadius],\n center: [props.centerLeft, props.centerTop],\n roseType: props.roseType,\n avoidLabelOverlap: false,\n // data: data.value,\n // data: props.data,\n // dimensions: ['name', 'count'],\n label: {\n show: props.labelPosition !== 'center' && props.labelShow,\n color: props.labelColor,\n fontSize: props.labelFontSize,\n position: props.labelPosition,\n formatter: handleFormatter(props.labelFormatter as string)\n },\n labelLine: {\n show: props.labelLineShow,\n length: props.labelLineLength,\n length2: props.labelLineLength2\n },\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowOffsetX: 0,\n shadowColor: 'rgba(0, 0, 0, 0.5)'\n },\n label: {\n // show: props.labelPosition === 'center'\n }\n }\n }\n ]\n }\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const { dataset: d } = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = d\n }\n\n const handleIndicatorDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\n const chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n dataset.value = chartData.dataset\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, props.valueTypeDataFieldNames as ValueTypeDataFieldNames)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let newArr = []\n if (res?.data?.data?.columns?.length > 0) {\n const name = res.data.data.columns[0]\n const value = res.data.data.columns[1]\n newArr = res?.data?.data?.rows?.map(item => {\n return {\n name: item[name],\n value: item[value]\n }\n })\n }\n handleIndicatorDataset(newArr)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n return {\n option,\n style,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Pie from './Pie.vue'\nexport const EcanPie = withInstall(Pie)\nexport default EcanPie\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface LineProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n titleLeft: string\n colors: string[]\n legendShow: boolean,\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal' // 标记点大小\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n graphicConfig?: any\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n areaStyleOpacity: number\n}\n\nexport const lineProps: LineProps = {\n ...props,\n id: '',\n name: '折线图',\n keyName: '折线图',\n type: 'ecanLine',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: '名称一', value: 335 },\n { name: '名称二', value: 310 },\n { name: '名称三', value: 234 },\n { name: '名称四', value: 135 },\n { name: '名称五', value: 1548 }\n ],\n titleText: '',\n titleSubtext: '',\n titleLeft: '',\n legendShow: false,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n areaStyleOpacity: 0\n}\n\n// 转化默认属性\nexport const lineComponentProps = transformToComponentProps(lineProps)\n\nexport const lineEvents = ['click', 'refreshData']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useValueFormatter,\n useEmitEvent, useOnEvent,\n usePickComponentStyle,\n useRequestData, useRequestDiagramData,\n useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue\n} from '@/_utils/hooks'\nimport Echarts from '@/common/echarts'\nimport { lineComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { LineChart } from 'echarts/charts'\nimport { TitleComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n LineChart,\n ToolboxComponent,\n TitleComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanLine',\n props: {\n ...lineComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subText: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n tooltip: {\n trigger: 'axis'\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: unref(series)\n }))\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n // const areaStyles = [\n // {\n // opacity: 0.4\n // },\n // {\n // opacity: 0.4\n // }\n // ]\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n // color: {\n // type: 'linear',\n // x: 0,\n // y: 0,\n // x2: 0,\n // y2: 1,\n // colorStops: [{\n // offset: 0, color: props.colors[i] // 0% 处的颜色\n // }, {\n // offset: 1, color: '#fff' // 100% 处的颜色\n // }],\n // global: false // 缺省为 false\n // },\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\n }\n series.value = temp\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n for (let i = 0; i < len; i++) {\n temp.push({\n type: 'line',\n ...dataset[i],\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n lineStyle: {\n width: props.lineStyleWidth\n }\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.symbolSize, props.smooth, props.lineStyleWidth, props.areaStyleOpacity], ([data]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(data as { [key: string]: any }[])\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n return {\n option,\n style,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Line from './Line.vue'\nexport const EcanLine = withInstall(Line)\nexport default EcanLine\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data,\n KeyTypeDataFieldNames,\n ValueTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface BarProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // x轴名称溢出操作\n xAxisLabelRotate: number // x轴名称旋转\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'bar' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n }\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n}\n\nexport const barProps: BarProps = {\n ...props,\n id: '',\n name: '柱状图',\n keyName: '柱状图',\n type: 'ecanBar',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n yAxisLabelFormatter: '{value}',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 310,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 310,\n type: '类型一'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLabelWidth: undefined,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {\n chartType: 'bar', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '2' // 图类型, 后台接口\n },\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false\n}\n\n// 转化默认属性\nexport const barComponentProps = transformToComponentProps(barProps)\n\nexport interface BarEvents {\n refreshData: () => void\n click: () => void\n}\n\nexport const barEvents: Array<keyof BarEvents> = ['refreshData', 'click']\n","<template>\n <div class=\"ecan-bar\" :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n usePickComponentStyle,\n useOnEvent,\n useTransformChartDataByAttrValue,\n useTransformChartDataByAttrKey,\n useEmitEvent,\n useRequestData,\n useIndicatorData,\n useValueFormatter\n} from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { ValueTypeDataFieldNames, KeyTypeDataFieldNames, Data } from '@/_utils/props'\nimport Echarts from '@/common/echarts'\nimport { barComponentProps, BarEvents } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart } from 'echarts/charts'\nimport Spin from '@/common/spin'\nimport { Modal as AModal } from 'ant-design-vue'\nimport {\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n} from 'echarts/components'\nimport { handleFormatter } from '@/_utils/util'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nuse([\n CanvasRenderer,\n BarChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanBar',\n props: {\n ...barComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const dataSource = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const series = computed(() => {\n const ds = unref(dataSource)\n const len = ds.length\n const series = []\n for (let i = 0; i < len; i++) {\n series.push({\n ...ds[i],\n type: 'bar',\n barWidth: props.barWidth\n })\n }\n return series\n })\n const dimensions = ref<{ [key: string]: any }[]>([])\n const loading = ref(false)\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n formatter: handleFormatter(props.tooltipFormatter as string),\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: props.isUseHorizontalAxis ? 'value' : 'category',\n data: props.isUseHorizontalAxis ? null : unref(dimensions),\n inverse: props.isUseHorizontalAxis ? false : props.axisInverse,\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor,\n interval: 0,\n rotate: props.xAxisLabelRotate,\n width: props.xAxisLabelWidth,\n overflow: props.xAxisLabelOverflow\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n type: props.isUseHorizontalAxis ? 'category' : 'value',\n data: props.isUseHorizontalAxis ? unref(dimensions) : null,\n inverse: props.isUseHorizontalAxis ? props.axisInverse : false,\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n if (props.isUseHorizontalAxis) return value\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: Data = [], useDataFieldNames: boolean = false) => {\n let chartData = {} as { [key:string]: any }\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n dataSource.value = chartData.dataset\n dimensions.value = chartData.dimensions\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n const { columns = [], rows = [] } = res?.data?.data ?? {}\n let fieldNames\n if (columns.length > 0) {\n fieldNames = {\n name: columns[0],\n types: columns.slice(1).map(column => {\n return {\n label: column,\n value: column\n }\n })\n }\n }\n handleIndicatorDataset(rows, fieldNames, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const refreshData = () => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'indicator':\n handleIndicatorData()\n break\n case 'request':\n handleRequestData()\n break\n }\n }\n\n expose({\n refreshData\n })\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n option,\n style,\n refreshData,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Bar from './Bar.vue'\nexport const EcanBar = withInstall(Bar)\nexport default EcanBar\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps,\n Data\n} from '@/_utils/props'\n\nexport interface ScatterProps extends Props {\n data: Data\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean,\n tooltipShow: boolean,\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipFormatter: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n symbolSize: number // 标记点大小\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n dataFieldNames: { name: string, value: string }\n graphicConfig?: any\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n}\n\nexport const scatterProps: ScatterProps = {\n ...props,\n id: '',\n name: '散点图',\n keyName: '散点图',\n type: 'ecanScatter',\n width: '400px',\n height: '400px',\n top: '',\n left: '',\n rotate: '',\n data: [\n { name: 233, value: 335 },\n { name: 556, value: 310 },\n { name: 56, value: 234 }\n ],\n titleText: '',\n titleSubtext: '',\n tooltipShow: true,\n tooltipTrigger: 'item',\n tooltipFormatter: '{c}',\n legendShow: false,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n symbolSize: 10,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLabelFormatter: '{value}',\n dataFieldNames: { name: 'name', value: 'value' },\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: undefined,\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息'\n}\n\n// 转化默认属性\nexport const scatterComponentProps = transformToComponentProps(scatterProps)\n\nexport const scatterEvents = ['click', 'refreshData']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\"\n >\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, inject, unref } from 'vue'\nimport {\n useValueFormatter,\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData,\n useVariablesInText\n} from '@/_utils/hooks'\nimport Echarts from '@/common/echarts'\nimport { scatterComponentProps } from './props'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { ScatterChart } from 'echarts/charts'\nimport { TitleComponent, TooltipComponent, LegendComponent, ToolboxComponent } from 'echarts/components'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport Spin from '@/common/spin/Spin.vue'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\nuse([\n CanvasRenderer,\n ScatterChart,\n ToolboxComponent,\n TitleComponent,\n TooltipComponent,\n LegendComponent\n])\nexport default defineComponent({\n name: 'EcanScatter',\n props: {\n ...scatterComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const dataset = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n xAxis: {\n // type: 'value'\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: {\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(props.yAxisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n },\n // 提示\n tooltip: {\n show: props.tooltipShow,\n trigger: props.tooltipTrigger,\n formatter: function (params) {\n const record = params?.data?.record ?? {}\n return useVariablesInText(props.tooltipFormatter as string, record)\n },\n axisPointer: {\n type: 'cross'\n }\n },\n // 图例\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft\n },\n series: [\n {\n data: unref(dataset),\n type: 'scatter',\n symbolSize: props.symbolSize\n }\n ]\n }))\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], dataFieldNames?: { name: string, value:string }) => {\n const { name: x = 'name', value: y = 'value' } = dataFieldNames || {}\n dataset.value = data.map(item => ({ value: [item[x], item[y]], record: item }))\n }\n\n // 静态数据\n watch(() => props.data, (value: any) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n loading.value = true\n try {\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, props.dataFieldNames as { name: string, value:string })\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const click = emitEvent('click', (e) => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const refreshData = () => {\n handleRequestData()\n }\n\n useOnEvent(props, {\n refreshData,\n click\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(handleRequestData, props.requestSort as number)\n\n return {\n option,\n style,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Scatter from './Scatter.vue'\nexport const EcanScatter = withInstall(Scatter)\nexport default EcanScatter\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface CustomGraphProps extends Props {\n option: { [key:string]: any }\n optionCode: string\n}\n\nexport const customGraphProps: CustomGraphProps = {\n ...props,\n id: '',\n name: '自定义图表',\n keyName: '自定义图表',\n type: 'ecanCustomGraph',\n width: '400px',\n height: '400px',\n option: {},\n optionCode: ''\n}\n\n// 转化默认属性\nexport const customGraphComponentProps = transformToComponentProps(customGraphProps)\n","<template>\n <div :style=\"style\">\n <echarts\n :option=\"myOption\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, watch, ref } from 'vue'\nimport Echarts from '../../common/echarts'\nimport { customGraphComponentProps } from './props'\nimport { usePickComponentStyle } from '../../_utils/hooks'\nimport * as echarts from 'echarts'\n// import 'echarts/components'\nexport default defineComponent({\n name: 'EcanCustomGraph',\n props: {\n ...customGraphComponentProps\n },\n components: {\n Echarts\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myOption = ref()\n watch(() => props.optionCode, (optionCode: string) => {\n /* // eslint-disable-next-line\n let option = {}\n // eslint-disable-next-line\n eval(props.optionCode as string)\n myOption.value = option */\n try {\n // eslint-disable-next-line\n const evalCopy = eval\n myOption.value = evalCopy(optionCode)\n } catch (e) {\n console.error(e)\n }\n }, {\n immediate: true\n })\n return {\n style,\n myOption,\n echarts\n }\n }\n})\n</script>\n","import { withInstall } from '../../_utils/withInstall'\nimport CustomGraph from './CustomGraph.vue'\nexport const EcanCustomGraph = withInstall(CustomGraph)\nexport default EcanCustomGraph\nexport * from './props'\n","import {\n Data,\n Props,\n props,\n transformToComponentProps,\n ValueTypeDataFieldNames,\n KeyTypeDataFieldNames\n} from '@/_utils/props'\n\nexport interface ComboGraphProps extends Props {\n data: Data,\n titleText: string\n titleSubtext: string\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n valueTypeDataFieldNames: ValueTypeDataFieldNames\n keyTypeDataFieldNames: KeyTypeDataFieldNames\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n seriesTypes: { [key: string]: any } []\n dataFieldConfigType: 'key' | 'value',\n yAxis: { [key: string]: any } [],\n graphicConfig?: any\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n areaStyleOpacity: number\n barWidth: string\n}\n\nexport const comboGraphProps: ComboGraphProps = {\n ...props,\n id: '',\n name: '组合图表',\n keyName: '组合图表',\n type: 'ecanComboGraph',\n width: '400px',\n height: '400px',\n data: [\n {\n name: '名称一',\n value: 335,\n type: '类型一'\n },\n {\n name: '名称二',\n value: 410,\n type: '类型一'\n },\n {\n name: '名称三',\n value: 210,\n type: '类型一'\n },\n {\n name: '名称一',\n value: 510,\n type: '类型二'\n },\n {\n name: '名称二',\n value: 731,\n type: '类型二'\n },\n {\n name: '名称三',\n value: 910,\n type: '类型二'\n }\n ],\n titleText: '',\n titleSubtext: '',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '',\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n seriesTypes: [\n {\n type: 'bar',\n axisIndex: 0\n },\n {\n type: 'line',\n axisIndex: 0\n }\n ],\n yAxis: [\n {\n axisLabelFormatter: '{value}'\n },\n {\n axisLabelFormatter: '{value}'\n }\n ],\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n areaStyleOpacity: 0,\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n barWidth: '40%'\n}\n\n// 转化默认属性\nexport const comboGraphComponentProps = transformToComponentProps(comboGraphProps)\n\nexport const comboGraphEvents = ['refreshData', 'click']\n","<template>\n <div :style=\"style\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n <a-modal\n wrap-class-name=\"full-modal\"\n width=\"100%\"\n :visible=\"visible\"\n :footer=\"null\"\n @cancel=\"hideModal\">\n <spin :spinning=\"loading\">\n <echarts\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n @click=\"click\"\n />\n </spin>\n </a-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport {\n useEmitEvent,\n useOnEvent,\n usePickComponentStyle,\n useRequestData, useTransformChartDataByAttrKey,\n useTransformChartDataByAttrValue,\n useValueFormatter,\n useRequestDiagramData\n // useTooltipFormatter\n} from '@/_utils/hooks'\nimport { comboGraphComponentProps } from './props'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport { KeyTypeDataFieldNames, ValueTypeDataFieldNames } from '@/_utils/props'\nimport { BarEvents } from '../bar'\nimport { use } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { BarChart, LineChart } from 'echarts/charts'\nimport { DatasetComponent, LegendComponent, TitleComponent, ToolboxComponent } from 'echarts/components'\nimport Echarts from '@/common/echarts'\nimport Spin from '@/common/spin/'\nimport useDownloadFile from '@/_utils/hooks/useDownloadFile'\nimport { Modal as AModal } from 'ant-design-vue'\n\nuse([\n CanvasRenderer,\n BarChart,\n LineChart,\n TitleComponent,\n LegendComponent,\n DatasetComponent,\n ToolboxComponent\n])\nexport default defineComponent({\n name: 'EcanComboGraph',\n props: {\n ...comboGraphComponentProps\n },\n components: {\n Spin,\n Echarts,\n AModal\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const series = ref<{ [key: string]: any }[]>([])\n const dimensions = ref<{ [key: string]: any }[]>([])\n const visible = ref(false)\n const hideModal = () => {\n visible.value = false\n }\n const option = computed(() => ({\n title: {\n text: props.titleText,\n subtext: props.titleSubtext,\n left: 'center'\n },\n toolbox: {\n show: props.toolboxShow,\n left: props.toolboxLeft,\n top: props.toolboxTop,\n itemSize: props.toolboxItemSize,\n itemGap: props.toolboxItemGap,\n feature: {\n myDownload: {\n show: true,\n title: '数据下载',\n icon: 'path://M502.010485 765.939573c3.773953 3.719718 8.686846 5.573949 13.596669 5.573949 0.075725 0 0.151449-0.010233 0.227174-0.011256 0.329505 0.016373 0.654916 0.050142 0.988514 0.050142 0.706081 0 1.400906-0.042979 2.087545-0.116657 4.352121-0.366344 8.607028-2.190899 11.961426-5.496178l335.053985-330.166675c7.619538-7.509021 7.709589-19.773346 0.200568-27.393907s-19.774369-7.711636-27.39493-0.201591L536.193005 706.304358 536.193005 50.019207c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 657.032164-306.881342-302.44838c-7.618515-7.509021-19.883863-7.419993-27.393907 0.199545-7.509021 7.619538-7.419993 19.884886 0.199545 27.393907L502.010485 765.939573z, M867.170139 711.020776c-10.698666 0-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 13.054317-10.620895 23.675212-23.676236 23.675212L205.182103 919.486668c-13.054317 0-23.676236-10.620895-23.676236-23.675212L181.505867 730.391962c0-10.698666-8.67252-19.371186-19.371186-19.371186s-19.371186 8.67252-19.371186 19.371186l0 165.419494c0 34.416857 28.000728 62.416562 62.417585 62.416562l618.941638 0c34.417881 0 62.417585-27.999704 62.417585-62.416562L886.540302 730.391962C886.541325 719.693296 877.868805 711.020776 867.170139 711.020776z',\n onclick () {\n useDownloadFile(props.toolboxDownloadUrl as string)\n }\n },\n myDataZoom: {\n show: true,\n title: '放大',\n icon: 'path://M932.42 902.246667L792 761.793333A403.84 403.84 0 0 0 896 490.666667c0-223.86-181.473333-405.333333-405.333333-405.333334S85.333333 266.806667 85.333333 490.666667s181.473333 405.333333 405.333334 405.333333a403.84 403.84 0 0 0 271.126666-104l140.453334 140.453333a21.333333 21.333333 0 0 0 30.173333-30.173333zM128 490.666667c0-200.293333 162.373333-362.666667 362.666667-362.666667s362.666667 162.373333 362.666666 362.666667-162.373333 362.666667-362.666666 362.666666-362.666667-162.373333-362.666667-362.666666z m512 0a21.333333 21.333333 0 0 1-21.333333 21.333333H512v106.666667a21.333333 21.333333 0 0 1-42.666667 0V512H362.666667a21.333333 21.333333 0 0 1 0-42.666667h106.666666V362.666667a21.333333 21.333333 0 0 1 42.666667 0v106.666666h106.666667a21.333333 21.333333 0 0 1 21.333333 21.333334z',\n onclick () {\n visible.value = true\n }\n },\n myInfo: {\n show: true,\n title: '说明信息',\n icon: 'path://M512.50142 958.397886c-119.320573 0-231.499491-46.465265-315.871087-130.837884C112.258737 743.188406 65.792449 631.010511 65.792449 511.688915c0-119.319549 46.466288-231.499491 130.837884-315.871087C281.002952 111.445208 393.180847 64.979944 512.50142 64.979944s231.499491 46.465265 315.871087 130.837884c84.372619 84.372619 130.837884 196.551538 130.837884 315.871087 0 119.321596-46.465265 231.499491-130.837884 315.871087C744.000911 911.932622 631.821993 958.397886 512.50142 958.397886zM512.50142 105.962334c-223.718271 0-405.726581 182.00831-405.726581 405.726581s182.00831 405.726581 405.726581 405.726581c223.718271 0 405.727605-182.00831 405.727605-405.726581S736.220714 105.962334 512.50142 105.962334z M510.150886 775.953647c-18.107403 0-32.745798-14.678304-32.745798-32.785707L477.405087 452.191846c0-18.108426 14.638395-32.785707 32.745798-32.785707 18.107403 0 32.745798 14.678304 32.745798 32.785707l0 290.976094C542.896684 761.275343 528.258289 775.953647 510.150886 775.953647z M511.357364 296.458969m-45.080731 0a44.054 44.054 0 1 0 90.161463 0 44.054 44.054 0 1 0-90.161463 0Z',\n onclick () {\n AModal.info({\n title: '说明信息',\n content: (props.toolboxInfoText as string)\n })\n }\n }\n }\n },\n grid: {\n top: props.gridTop,\n bottom: props.gridBottom,\n left: props.gridLeft,\n right: props.gridRight,\n containLabel: props.gridContainLabel\n },\n color: props.colors,\n tooltip: {\n trigger: 'axis',\n show: props.tooltipShow,\n // formatter: ,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n legend: {\n show: props.legendShow,\n orient: props.legendOrient,\n top: props.legendTop,\n left: props.legendLeft,\n textStyle: {\n color: props.legendTextStyleColor\n }\n },\n xAxis: {\n type: 'category',\n data: unref(dimensions),\n splitLine: {\n show: props.xAxisSplitLineShow,\n lineStyle: {\n color: props.xAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.xAxisLabelColor\n },\n axisLine: {\n lineStyle: {\n color: props.xAxisLineStyleColor\n }\n },\n axisTick: {\n show: props.xAxisTickShow\n }\n },\n yAxis: unref(yAxis),\n series: unref(series)\n }))\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const handleDataset = (data: any = [], useDataFieldNames: boolean = false) => {\n // dataFieldNames 字段映射\n let chartData\n if (props.dataFieldConfigType === 'key') {\n const dataFieldNames = useDataFieldNames ? props.keyTypeDataFieldNames as KeyTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n } else if (props.dataFieldConfigType === 'value') {\n const dataFieldNames = useDataFieldNames ? props.valueTypeDataFieldNames as ValueTypeDataFieldNames : null\n chartData = useTransformChartDataByAttrValue(data, dataFieldNames)\n }\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n const { type, axisIndex } = seriesType || {}\n let series = {\n type: type,\n yAxisIndex: axisIndex,\n tooltip: {\n valueFormatter (value: string) {\n return useValueFormatter(props?.tooltipFormatter, value)\n }\n },\n ...dataset[i]\n } as { [key:string]: any }\n if (type === 'line') {\n series = {\n ...series,\n symbolSize: props.symbolSize,\n smooth: props.smooth,\n areaStyle: {\n opacity: props.areaStyleOpacity\n },\n lineStyle: {\n width: props.lineStyleWidth\n }\n }\n }\n if (type === 'bar') {\n series = {\n ...series,\n barWidth: props.barWidth\n }\n }\n temp.push(series)\n }\n series.value = temp\n }\n\n const handleIndicatorDataset = (data: any = [], keyTypeDataFieldNames: KeyTypeDataFieldNames, useDataFieldNames: boolean = false) => {\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\n const chartData = useTransformChartDataByAttrKey(data, dataFieldNames)\n // dataFieldNames 字段映射\n dimensions.value = chartData.dimensions\n const dataset = chartData.dataset\n const temp = [] as { [key: string]: any } []\n const len = dataset.length\n const seriesTypes = props.seriesTypes as { [key: string]: any } []\n for (let i = 0; i < len; i++) {\n const seriesType = seriesTypes[i]\n temp.push({\n type: seriesType?.type,\n yAxisIndex: seriesType?.axisIndex,\n ...dataset[i]\n })\n }\n series.value = temp\n }\n\n // 静态数据\n watch(() => [props.data, props.seriesTypes, props.symbolSize, props.smooth, props.areaStyleOpacity, props.lineStyleWidth, props.barWidth], ([value]) => {\n if (props.dataType === 'static' || unref(pageMode) === 'design') {\n handleDataset(value)\n }\n }, {\n immediate: true,\n deep: true\n })\n\n const yAxis = computed(() => {\n const yAxis = props.yAxis as { [key: string]: any } []\n return yAxis?.map((axis) => {\n return {\n type: 'value',\n splitLine: {\n show: props.yAxisSplitLineShow,\n lineStyle: {\n color: props.yAxisSplitLineStyleColor\n }\n },\n axisLabel: {\n color: props.yAxisLabelColor,\n formatter (value: string) {\n return useValueFormatter(axis.axisLabelFormatter as string, value)\n }\n },\n axisLine: {\n lineStyle: {\n color: props.yAxisLineStyleColor\n }\n }\n }\n })\n })\n\n const loading = ref(false)\n\n const requestData = useRequestData(props)\n\n // 动态数据\n const handleRequestData = async () => {\n if (props.dataType !== 'request' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestData()\n handleDataset(res?.data?.data?.rows, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n // 指标库\n const requestDiagram = useRequestDiagramData(props)\n const handleIndicatorData = async () => {\n if (props.dataType !== 'indicator' || unref(pageMode) === 'design') return\n try {\n loading.value = true\n const res = await requestDiagram()\n let a\n if (res?.data?.data?.columns?.length > 0) {\n a = {\n name: res.data.data.columns[0],\n types: res.data.data.columns.slice(1).map(it => {\n return { label: it, value: it }\n })\n }\n }\n handleIndicatorDataset(res?.data?.data?.rows, a, true)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const chooseRequestOrDiagram = () => {\n if (unref(pageMode) === 'design') return\n handleIndicatorData()\n handleRequestData()\n }\n\n const refreshData = () => {\n chooseRequestOrDiagram()\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n const click = emitEvent('click', (e) => {\n // TODO 设置是否保存钻取数据\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: e?.data })\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n setRequest(chooseRequestOrDiagram, props.requestSort as number)\n\n useOnEvent(props, {\n refreshData,\n click\n } as BarEvents)\n\n return {\n style,\n option,\n click,\n loading,\n visible,\n hideModal\n }\n }\n})\n</script>\n\n<style lang=\"less\">\n.full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n .ant-modal-body {\n padding: 45px 30px 0;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport ComboGraph from './ComboGraph.vue'\nexport const EcanComboGraph = withInstall(ComboGraph)\nexport default EcanComboGraph\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface BorderProps extends Props {\n fontSize: string // 字体大小\n fontFamily: string // 字体\n fontWeight: number // 字体的粗细程度\n title: string\n mode: 'top-title' | 'no-title' | 'left-top'\n borderColor: string\n borderRadius: string\n borderStyle: string\n borderWidth: string\n backgroundColor: string\n useBorderModify: boolean\n textShadow: string\n data: { [key:string]: any }\n}\n\nexport const borderProps: BorderProps = {\n ...props,\n name: '边框',\n keyName: '边框',\n type: 'ecanBorder',\n width: '450px',\n height: '450px',\n zIndex: 0,\n fontSize: '16px',\n fontFamily: '',\n fontWeight: 700,\n title: '标题',\n mode: 'no-title',\n borderColor: '#eee',\n borderRadius: '5px',\n borderStyle: 'solid',\n borderWidth: '2px',\n backgroundColor: '',\n useBorderModify: false,\n textShadow: '',\n data: {}\n}\n\nexport const borderComponentProps = transformToComponentProps(borderProps)\n\nexport const borderEvents = ['click']\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAZlBMVEUAAABBltJCldJCldFEk89BltJCltFBldI/lMBKndtmb9pCltNDldFAkclAldNBldJBltM/lM5AltNCldJBldJBlNJBltVBldJBlNJBlNI/lNNBldJBldNAldJBldJBldJBldNBldIiNK7WAAAAInRSTlMAM4BNGmaz5gQGbiAPCV1WQxUpOCY9EmxQSC2jdoacqZK8uPo7tAAAAZ9JREFUSMe90NmOwjAMheGka0J3SulCy/L+Lzk4I+HYhckEKs7dr1x8kQVM5YJMZ7SLiXVHOw817Z72cSns3BmziY7EnGRGjDqUpKt4pEZQKruvyaJt85YmBUebKLJVNUlpq6oOQ1tVVRzbqu6DwFb1NUlsVd3SNL0UDM0jqkaSqoeQqjKmahtQNUzuC1AtU1sF9KHmnmrtrSK6idqBWqE6GFVxFdGvqDGoJ01Qt7rfTEV0e7V6qSK6VjNPtTaqoOq8Ugnqr7aeav+rAuqrTh+qZw3o1urAVcFVQD3U6ZnaYY9MLZk6G5WhDaDFI9UeUPyE7gCNsAdAD9gxoBJ7ARRPUVwALXdu8/h/s3xmjtwUu0/M0M/UJzBjAei3TUTdpmKmcpkBmOHKBNTPzJi59zYJys3DO2aL78YcmNkLgrrM9m9TucwzmoBy08xlju+bgL42G4c5OcxqZSLqbwqXOVNTGXMWFD0ak6KN1ZKaojYmbribndW9MXELNQEFFUyiNqQlmEQ1JqpgErUifUUTUVEIupx1wzpjvWfdsh4FQX8ANe4nnpsb9NEAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAcCAMAAACH42siAAAAaVBMVEUAAABElM9BltJCldJCldFBltJBldJCltFNmrNCmNNFldNAldJBldNBldRBldNBldNBldJCoNFBldJBltNBldJBldJAldJAltJBldJBldJBldNAlNFAldJBlNJAldJBldNBldJBldJBldLfIVowAAAAI3RSTlMAGjJNgGbmswMSCScgDTs/ZAVRK0eYj2s3r3AWveHEhXjeXb5rzlgAAAFqSURBVEjH1dbJVsJAEIXhHjJ05tlEooK8/0NKsbDrFjmHiBD0Lvqcf9PfthRM7xvoZMQuLHZaOejGYLtcdEItzI9oaLg5xIHj5hgcG262oXXcrGzJ23Umg5717C7NKBrAjOMDM8YgCI5ghmEPprUTmMZkrBOtdbJgfpZovho0gwzNOkfTam9k5jSGkKlTMOezWT3VLH5qlg8wQzSbO5jJ28l8Z+YLmZMwuz9lupvNXpjlFTMTZv7vzFSatTDtGnNeYdpNzZTMSJhx5f84m8Y3mSEzJzTVolko3J7Qve+a0J3vntDWffdEaMUQQo1vTWjuuyA0UWvUUarqzuqLUMPt1MD3uKTaTdRwvdrdorpFtfZtH6eyK2F3RS23U3uhlr9VB1TdE1V2h7Vr1O4mdbdera6o+Wq1Vqi2rEktFapGoZopVLVCtVCXag19IBPUiiWpBrojE1QNXZAp1/TYbhKdKVwuWotORKfn9wu/DSc/X9T6qgAAAABJRU5ErkJggg==\"","<template>\n <div class=\"ecan-border\" :style=\"style\" @click=\"click\">\n <div\n class=\"no-title\"\n :style=\"borderStyle\"\n v-if=\"mode === 'no-title'\"\n >\n <template v-if=\"useBorderModify\">\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </template>\n </div>\n <div class=\"top-title\" :style=\"borderStyle\" v-if=\"mode === 'top-title'\">\n <div class=\"title-item-wrapper\">\n <div class=\"title-item\">\n <img\n class=\"title-decoration-left\"\n src=\"../../assets/border-title-decoration-left.png\"\n >\n <div class=\"title\">{{ title }}</div>\n <img\n class=\"title-decoration-right\"\n src=\"../../assets/border-title-decoration-right.png\"\n >\n </div>\n </div>\n <div class=\"top-left border-item\"/>\n <div class=\"top-right border-item\"/>\n <div class=\"bottom-left border-item\"/>\n <div class=\"bottom-right border-item\"/>\n </div>\n <div class=\"left-title\" v-if=\"mode === 'left-title'\">\n <div class=\"title\">\n <span>{{ title }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, watch } from 'vue'\nimport { borderComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanBorder',\n props: {\n ...borderComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['background'])\n const { theme } = inject(GLOBAL_CONFIG, {\n theme: 'light'\n })\n const borderStyle = computed(() => {\n return {\n // borderWidth: props.borderWidth,\n // borderStyle: props.borderStyle,\n // borderRadius: props.borderRadius,\n // borderColor: props.borderColor,\n // backgroundColor: props.backgroundColor,\n width: '100%',\n height: '100%'\n }\n })\n const emitEvent = useEmitEvent(props)\n const click = emitEvent('click', () => {})\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n useOnEvent(props, {\n click\n })\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n type: props.type,\n value: myData\n })\n return {\n style,\n click,\n borderStyle,\n theme\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.top-title, .no-title {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n .border-item {\n position: absolute;\n z-index: 2;\n border-color: #50FCFC;\n border-style: solid;\n width: 13px;\n height: 11px;\n }\n .top-left {\n top: 0;\n left: 0;\n border-top-width: 1px;\n border-right-width: 0;\n border-bottom-width: 0;\n border-left-width: 1px;\n }\n .top-right {\n top: 0;\n right: -2px;\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 0;\n border-left-width: 0;\n }\n .bottom-left {\n bottom: -2px;\n left: 0;\n border-top-width: 0;\n border-right-width: 0;\n border-bottom-width: 1px;\n border-left-width: 1px;\n }\n .bottom-right {\n bottom: -2px;\n right: -2px;\n border-top-width: 0;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 0;\n }\n .title-item-wrapper {\n width: 100%;\n padding: 5px 0;\n background-image: url(\"../../assets/border-title-background.png\");\n background-size: cover;\n display: grid;\n place-content: center;\n }\n .title-item {\n display: flex;\n align-items: center;\n }\n .title {\n padding: 0 17px;\n color: #d5fdfd;\n background: linear-gradient(0deg,#01aaff,#00eaff);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n .title-decoration-left {\n width: 58px;\n height: 14px;\n }\n .title-decoration-right {\n width: 58px;\n height: 14px;\n }\n}\n\n.left-title {\n position: relative;\n width: 100%;\n height: 100%;\n border: 2px solid #375A8899;\n border-radius: 0;\n .title {\n position: absolute;\n left: -33px;\n top: -14px;\n width: 33px;\n min-height: 194px;\n padding-top: 33px;\n padding-bottom: 31px;\n background-image: url(\"../../assets/border-left-title.png\");\n background-repeat: no-repeat;\n background-size: 100% 100%;\n color: #fff;\n font-weight: 500;\n text-align: center;\n span {\n writing-mode: vertical-lr;\n }\n }\n}\n</style>\n","import { withInstall } from '@/_utils/withInstall'\nimport Border from './Border.vue'\nexport const EcanBorder = withInstall(Border)\nexport default EcanBorder\nexport * from './props'\n","import { transformToComponentProps } from '@/_utils/props'\n\nexport type ModalPosition = 'default' | 'top' | 'center' | 'bottom'\n\nexport interface ModalProps {\n id: string\n type: string\n width: string\n height: string\n title: string\n titleFontSize: string\n titleColor: string\n backgroundColor: string\n backgroundImage: string\n backgroundSize: string\n keyName: string\n componentList: { [key: string]: any } []\n fullModal: boolean // 是否充满全屏\n originalWidth: string // 设计稿宽\n originalHeight: string // 设计稿长\n destroyOnClose: boolean\n position: ModalPosition\n}\n\nexport const modalProps: ModalProps = {\n id: '',\n type: 'ecanModal',\n title: '',\n titleFontSize: '14px',\n titleColor: '',\n width: '1000px',\n height: '800px',\n originalWidth: '1920px',\n originalHeight: '1080px',\n backgroundColor: '#fff',\n backgroundImage: '',\n backgroundSize: '100% 100%',\n keyName: '弹窗',\n componentList: [],\n fullModal: false,\n destroyOnClose: false,\n position: 'default'\n}\n\nexport const modalComponentProps = transformToComponentProps(modalProps)\n\nexport const modalEvents = ['showModal']\n","<template>\n <!-- centered + style 中的 verticalAlign 调整弹窗位置 -->\n <a-modal\n :getContainer=\"getContainer\"\n :wrapClassName=\"wrapClassName\"\n centered\n :visible=\"visible\"\n :footer=\"null\"\n :width=\"isFullModal || isFullWidth ? '100%' : modalWith\"\n :destroyOnClose=\"destroyOnClose\"\n :style=\"modalStyle\"\n :bodyStyle=\"{\n background: 'red'\n }\"\n @ok=\"onOk\"\n @cancel=\"onCancel\"\n >\n <template #title v-if=\"title\" >\n <div\n :style=\"{\n fontSize: titleFontSize,\n color: titleColor,\n backgroundColor,\n padding: '16px 24px'\n }\"\n >\n {{ title }}\n </div>\n </template>\n <div class=\"contain\" ref=\"contain\" :style=\"containStyle\">\n <div class=\"content\" :style=\"contentStyle\">\n <component\n v-for=\"(component, index) in componentList\"\n :key=\"(component.id) + index\"\n :is=\"component.type\"\n v-bind=\"component\"\n />\n </div>\n </div>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, nextTick, ref, unref } from 'vue'\nimport { modalComponentProps, ModalPosition } from './props'\nimport { Modal as AModal } from 'ant-design-vue'\nimport 'ant-design-vue/es/modal/style'\nimport { useOnEvent, usePickComponentStyle, useImagePath } from '@/_utils/hooks'\nimport { REQUEST_MODEL } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanModal',\n components: {\n AModal\n },\n props: {\n ...modalComponentProps\n },\n setup (props) {\n const getContainer = () => document.getElementById('ProviderConfig') || document.body\n const modalStyle = computed(() => {\n const position = props.position as ModalPosition\n const map = {\n default: '',\n top: 'top',\n center: 'middle',\n bottom: 'bottom'\n }\n return {\n verticalAlign: map[position]\n }\n })\n const width = props.width as string\n const height = props.height as string\n const originalWidth = props.originalWidth as string\n const originalHeight = props.originalHeight as string\n const scaleWidth = computed(() => parseFloat(width) / parseFloat(originalWidth))\n const scaleHeight = computed(() => parseFloat(height) / parseFloat(originalHeight))\n // 弹窗适配\n const modalWith = computed(() => `${unref(scaleWidth) * 100}%`)\n // const modalHeight = computed(() => `${scaleHeight.value * 100}%`)\n const screenWidth = computed(() => document.body.offsetWidth)\n const screenHeight = computed(() => document.body.offsetHeight)\n const containWidth = computed(() => unref(screenWidth) * unref(scaleWidth))\n const containHeight = computed(() => unref(screenHeight) * unref(scaleHeight))\n const containStyle = computed(() => ({\n width: `${unref(containWidth)}px`,\n height: `${unref(containHeight)}px`\n }))\n const style = usePickComponentStyle(props)\n const contentStyle = computed(() => ({\n ...unref(style),\n backgroundImage: useImagePath(props.backgroundImage as string, true),\n transform: `scale(${unref(containWidth) / parseFloat(width)},${unref(containHeight) / parseFloat(height)})`\n }))\n const isFullWidth = computed(() => unref(scaleWidth) >= 1)\n const isFullModal = computed(() => props.fullModal)\n const wrapClassName = computed(() => {\n let className = 'ecan-modal'\n if (unref(isFullWidth)) className += ' ecan-full-width-modal'\n if (unref(isFullModal)) className += ' ecan-full-modal'\n return className\n })\n const visible = ref(false)\n const contain = ref<HTMLElement>()\n const { touchRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n touchRequest: () => void 0\n })\n const showModal = () => {\n visible.value = true\n nextTick(() => {\n touchRequest()\n })\n }\n const hideModal = () => {\n visible.value = false\n }\n const onOk = () => {\n hideModal()\n }\n const onCancel = () => {\n hideModal()\n }\n // 注册\n useOnEvent(props, {\n showModal\n })\n\n return {\n contain,\n containStyle,\n contentStyle,\n getContainer,\n modalStyle,\n modalWith,\n isFullModal,\n style,\n visible,\n showModal,\n onOk,\n onCancel,\n isFullWidth,\n wrapClassName\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.contain {\n position: relative;\n overflow: hidden;\n}\n.content {\n transform-origin: left top;\n z-index: 999;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-modal {\n .ant-modal-body {\n padding: 0;\n }\n .ant-modal-header {\n padding: 0;\n border-bottom: none;\n background: none;\n }\n}\n\n.ecan-full-width-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n.ecan-full-modal {\n .ant-modal {\n max-width: 100%;\n top: 0;\n padding-bottom: 0;\n margin: 0;\n }\n .ant-modal-content {\n display: flex;\n flex-direction: column;\n height: calc(100vh);\n }\n .ant-modal-body {\n flex: 1;\n }\n}\n\n[datav-theme='darkBlue'] .ecan-modal {\n .anticon-close > svg > path {\n fill: #fff;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Modal from './Modal.vue'\nexport const EcanModal = withInstall(Modal)\nexport default EcanModal\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TabsProps extends Props {\n data: { [key:string]: any } []\n backgroundColor: string\n tabFontSize: string\n tabColor: string\n activeTabColor: string\n tabBackgroundImage: string\n tabBarGutter: string\n activeTabBackgroundImage\n value: string\n activeKey: number\n tabHorizontalPadding: string\n // 包含组件id\n contains: string []\n}\n\nexport const tabsProps: TabsProps = {\n ...props,\n tabHorizontalPadding: '0px',\n type: 'ecanTabs',\n name: '标签页',\n keyName: '标签页',\n width: '500px',\n height: '400px',\n tabFontSize: '14px',\n backgroundColor: '',\n activeTabColor: '#1890ff',\n tabBackgroundImage: '',\n activeTabBackgroundImage: '',\n tabColor: '#333',\n tabBarGutter: '24px',\n value: '',\n activeKey: 0,\n contains: [],\n data: [\n {\n title: '标签1'\n },\n {\n title: '标签2'\n },\n {\n title: '标签3'\n }\n ]\n}\n\nexport const tabsComponentProps = transformToComponentProps(tabsProps)\n\nexport const tabsEvents = ['tabChange']\n","<template>\n <div class=\"ecan-tabs\" :style=\"style\">\n <div\n class=\"tabs-header\"\n :style=\"{\n fontSize: tabFontSize\n }\"\n >\n <div\n class=\"tab\"\n :style=\"{\n padding: `5px ${tabHorizontalPadding}`,\n color: isActive(index) ? activeTabColor : tabColor,\n backgroundImage: isActive(index) ? useImagePath(activeTabBackgroundImage, true) : useImagePath(tabBackgroundImage, true),\n marginRight: tabBarGutter\n }\"\n v-for=\"(tab, index) in myData\"\n :key=\"index\"\n @click.prevent.stop=\"tabChange(tab, index)\"\n >\n <div\n class=\"tab-inner\"\n :style=\"{\n borderBottom: !activeTabBackgroundImage && !tabBackgroundImage ? `1px solid ${isActive(index) ? activeTabColor : 'transparent'}` : ''\n }\"\n >\n {{tab.title}}\n </div>\n </div>\n </div>\n <div class=\"tabs-content\"></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, watch } from 'vue'\nimport { tabsComponentProps } from './props'\nimport { useEmitEvent, useOnEvent, usePickComponentStyle, useImagePath } from '@/_utils/hooks'\nimport { GLOBAL_MODEL, REFRESH_PAGE } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanTabs',\n props: {\n ...tabsComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const activeKey = ref(0)\n watch(() => props.activeKey, (key) => {\n activeKey.value = key\n }, {\n immediate: true\n })\n const myData = ref<{ [key:string]: any } []>([])\n watch(() => props.data, (data: { [key:string]: any } []) => {\n myData.value = data\n }, {\n immediate: true,\n deep: true\n })\n const isActive = (index: number) => activeKey.value === index\n const myValue = ref(props.value || (unref(myData)[0] && unref(myData)[0]?.value) || '')\n // 注册函数触发事件拦截器\n const emitEvent = useEmitEvent(props)\n const { setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n // 初始化设置值\n setGlobalModel(props.id as string, {\n value: myValue,\n activeKey\n })\n\n const { emitRefreshPage } = inject(REFRESH_PAGE, {\n // eslint-disable-next-line no-void\n emitRefreshPage: () => void 0\n })\n\n const tabChange = emitEvent('tabChange', (tab:{ [key:string]:any }, index: number) => {\n if (index !== unref(activeKey)) {\n myValue.value = tab?.value || ''\n activeKey.value = index\n emitRefreshPage()\n }\n })\n useOnEvent(props, {\n tabChange\n })\n return {\n style,\n activeKey,\n isActive,\n tabChange,\n myData,\n useImagePath\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-tabs {\n display: flex;\n flex-direction: column;\n}\n\n.tabs-header {\n width: 100%;\n color: #333333;\n display: flex;\n}\n\n.tab {\n background-size: 100% 100%;\n background-repeat: no-repeat;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.tab:last-child {\n margin-right: 0 !important;\n}\n\n.tabs-content {\n flex:1;\n}\n</style>\n","import Tabs from './Tabs.vue'\nimport { withInstall } from '../../_utils/withInstall'\nexport const EcanTabs = withInstall(Tabs)\nexport default EcanTabs\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface ImageProps extends Props {\n imgUrl: string\n href: string\n target: 'self' | 'blank' | 'event' // 打开方式\n linkPage: string // 传入pageId\n}\n\nexport const imageProps: ImageProps = {\n ...props,\n name: '图片',\n keyName: '图片',\n type: 'ecanImage',\n width: '300px',\n height: '300px',\n imgUrl: '',\n target: 'self',\n href: '',\n linkPage: ''\n}\n\nexport const imageComponentProps = transformToComponentProps(imageProps)\n","<template>\n <img\n :style=\"style\"\n :src=\"myImgUrl\"\n v-if=\"myImgUrl !== ''\"\n @click=\"onClick\"\n />\n <div\n class=\"image-placeholder\"\n :style=\"style\"\n v-else\n >\n 请上传图片\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, unref } from 'vue'\nimport { imageComponentProps } from './props'\nimport { useImagePath, usePickComponentStyle, usePageUrl, useVariablesInText } from '@/_utils/hooks'\nimport { GLOBAL_CONFIG } from '@/_utils/constant'\nexport default defineComponent({\n name: 'EcanImage',\n props: {\n ...imageComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props)\n const myImgUrl = computed(() => useImagePath(props.imgUrl as string))\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n const onClick = () => {\n // 空链接、空页面直接 return\n if (!props.linkPage && !props.href) return\n const linkPage = (props.linkPage || '') as string\n const pageUrl = usePageUrl(unref(pageMode), linkPage)\n // 优先使用外部链接,再使用url\n const href = props.href as string\n let url = href || pageUrl\n url = useVariablesInText(url)\n const target = props.target\n if (target == null || target === '') return\n if (target !== 'event') {\n window.open(url, '_' + (target as string))\n } else {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n return {\n style,\n myImgUrl,\n onClick\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.image-placeholder {\n display: grid;\n place-content: center;\n border: 1px solid #d9d9d9;\n font-size: 16px;\n color: #333;\n width: 100%;\n overflow: hidden;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Image from './Image.vue'\nexport const EcanImage = withInstall(Image)\nexport default EcanImage\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData']\n","<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"dataColumns.length > 0 ? dataColumns : myColumns\"\n :data-source=\"dataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot:summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject } from 'vue'\nimport {\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/_utils/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/_utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/_utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = computed(() => {\n // 复制表头数据\n let columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n columns = columns.concat(props.columns as { [key: string]: any } [])\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n const len = columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n return columns\n })\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const dataSource = ref(props.data as { [key: string]: any } [])\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n dataSource.value = data as { [key: string]: any } []\n })\n const orderCondition = ref<string | undefined>(undefined)\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {\n orderCondition: unref(orderCondition)\n } as { [key:string]: any }\n // 分页\n if (props.paginationShow) {\n params = {\n ...params,\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1'\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n dataSource.value = rows\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const dataColumns = ref([])\n const handleIndicatorDataset = (colmuns: any = [], rows: any = []) => {\n dataColumns.value = colmuns.map((it: string) => {\n return { title: it, dataIndex: it, key: it }\n })\n dataSource.value = rows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(dataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n return {\n x,\n y,\n myColumns,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n dataColumns,\n dataSource,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table {\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n","import {\n Props,\n props,\n transformToComponentProps\n} from '@/_utils/props'\n\nexport interface MapProps extends Props {\n mapJson: { name: string, value: string } | null,\n data: { [key:string]: any } []\n backgroundImage: string\n backgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat',\n symbolImage: string // 图标\n symbolWidth: number\n symbolHeight: number\n geoZoom: number\n geoRoam: boolean\n geoCenter: string\n geoBackgroundImage: string\n geoBackgroundImageRepeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'\n geoLabelShow: boolean\n geoLabelColor: string\n geoLabelFontSize: number\n geoItemStyleAreaColor: string\n geoItemStyleBorderColor: string\n geoItemStyleBorderWidth: number\n geoItemStyleShadowColor: string\n geoItemStyleShadowOffsetX: number\n geoItemStyleShadowOffsetY: number\n geoItemStyleShadowBlur: number\n geoEmphasisDisabled: boolean\n geoEmphasisLabelColor: string\n geoEmphasisItemStyleAreaColor: string\n geoEmphasisItemStyleBorderColor: string\n itemStyleColor: string\n labelFontSize: number\n labelFormatter: string\n labelShow: boolean\n labelColor: string\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string\n}\n\nexport const mapProps: MapProps = {\n ...props,\n mapJson: null,\n data: [],\n name: '地图',\n keyName: '地图',\n type: 'ecanMap',\n width: '400px',\n height: '400px',\n backgroundImage: '',\n backgroundImageRepeat: 'no-repeat',\n geoBackgroundImage: '',\n geoBackgroundImageRepeat: 'no-repeat',\n symbolImage: '',\n symbolWidth: 10,\n symbolHeight: 10,\n itemStyleColor: '#11BFDA',\n labelFontSize: 14,\n labelShow: true,\n geoLabelShow: true,\n geoLabelColor: '#000',\n geoZoom: 1,\n geoRoam: false,\n geoCenter: '',\n geoLabelFontSize: 12,\n labelColor: '',\n labelFormatter: '{b}',\n geoItemStyleAreaColor: '#eee',\n geoItemStyleBorderColor: '#000',\n geoItemStyleBorderWidth: 1,\n geoItemStyleShadowColor: '',\n geoItemStyleShadowOffsetX: 0,\n geoItemStyleShadowOffsetY: 0,\n geoItemStyleShadowBlur: 0,\n geoEmphasisDisabled: false,\n geoEmphasisLabelColor: '#fff',\n geoEmphasisItemStyleAreaColor: '#f00',\n geoEmphasisItemStyleBorderColor: '#000',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{b}'\n}\n\nexport const mapComponentProps = transformToComponentProps(mapProps)\n","<template>\n <div class=\"ecan-map\" :style=\"style\">\n <echarts\n v-if=\"isLoadedData\"\n :option=\"option\"\n :update-options=\"{ notMerge: true }\"\n autoresize\n />\n <img\n ref=\"geoBackgroundImageRef\"\n v-show=\"false\"\n :src=\"myGeoBackgroundImage\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, watch, ref, unref } from 'vue'\nimport { mapComponentProps } from './props'\nimport Echarts from '@/common/echarts'\nimport { use, registerMap } from 'echarts/core'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport { MapChart, ScatterChart } from 'echarts/charts'\nimport { VisualMapComponent, TooltipComponent, GraphicComponent } from 'echarts/components'\nimport request from '@/_utils/request'\nimport { usePickComponentStyle, useImagePath } from '../../_utils/hooks'\nimport { UPLOAD_PATH } from '@/_utils/constant'\nuse([\n CanvasRenderer,\n MapChart,\n ScatterChart,\n VisualMapComponent,\n TooltipComponent,\n GraphicComponent\n])\nexport default defineComponent({\n name: 'EcanMap',\n components: {\n Echarts\n },\n props: {\n ...mapComponentProps\n },\n setup (props) {\n const style = usePickComponentStyle(props, ['backgroundImage'])\n const geoBackgroundImageRef = ref()\n const myGeoBackgroundImage = computed(() => useImagePath(props.geoBackgroundImage as string))\n const myBackgroundImage = computed(() => useImagePath(props.backgroundImage as string))\n const areaColor = computed(() => {\n const backgroundImage = props.geoBackgroundImage as string\n if (backgroundImage) {\n return {\n image: unref(geoBackgroundImageRef),\n repeat: props.geoBackgroundImageRepeat\n }\n }\n return props.geoItemStyleAreaColor\n })\n const symbol = computed(() => {\n const symbolImage = props.symbolImage as string\n if (props.symbolImage) {\n return 'image://' + useImagePath(symbolImage)\n }\n return 'circle'\n })\n const geoCenter = computed(() => (props.geoCenter as string)?.split(','))\n const option = computed(() => ({\n // backgroundColor: unref(background),\n tooltip: {\n show: true\n },\n graphic: [\n { // 一个图形元素,类型是 image。\n type: 'image',\n style: {\n width: parseFloat(props.width as string),\n height: parseFloat(props.height as string),\n image: unref(myBackgroundImage)\n },\n top: 'center'\n }\n ],\n geo: {\n zoom: props.geoZoom,\n roam: props.geoRoam,\n center: unref(geoCenter),\n map: 'map',\n tooltip: {\n show: false\n },\n label: { // 地图上显示文字属性\n show: props.geoLabelShow,\n color: props.geoLabelColor,\n fontSize: props.geoLabelFontSize\n },\n itemStyle: { // 地图上板块属性\n areaColor: unref(areaColor),\n borderColor: props.geoItemStyleBorderColor,\n borderWidth: props.geoItemStyleBorderWidth,\n shadowColor: props.geoItemStyleShadowColor,\n shadowBlur: props.geoItemStyleShadowBlur,\n shadowOffsetX: props.geoItemStyleShadowOffsetX,\n shadowOffsetY: props.geoItemStyleShadowOffsetY\n },\n emphasis: { // 当鼠标悬停的时候\n disabled: props.geoEmphasisDisabled,\n label: {\n color: props.geoEmphasisLabelColor\n },\n itemStyle: {\n areaColor: props.geoEmphasisItemStyleAreaColor,\n borderColor: props.geoEmphasisItemStyleBorderColor\n }\n }\n },\n series: [\n {\n type: 'scatter',\n coordinateSystem: 'geo',\n itemStyle: {\n color: props.itemStyleColor\n },\n symbol: unref(symbol),\n symbolSize: [props.symbolWidth, props.symbolHeight],\n label: {\n show: props.labelShow,\n fontSize: props.labelFontSize,\n formatter: props.labelFormatter,\n color: props.labelColor\n },\n tooltip: {\n show: props.tooltipShow,\n formatter: props.tooltipFormatter,\n textStyle: {\n color: props.tooltipTextStyleColor\n }\n },\n data: props.data\n }\n ]\n }))\n // const echarts = ref()\n const isLoadedData = ref(false)\n const handleRegisterMap = async () => {\n const mapJson = props.mapJson as { name: string, path: string }\n if (mapJson == null || mapJson.path == null) return\n const res = await request(UPLOAD_PATH + mapJson.path)\n registerMap('map', (res?.data || {}) as any)\n isLoadedData.value = true\n }\n watch(() => props.mapJson, () => {\n handleRegisterMap()\n }, {\n immediate: true\n })\n return {\n option,\n style,\n isLoadedData,\n geoBackgroundImageRef,\n myGeoBackgroundImage\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.ecan-map {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n</style>\n","import { withInstall } from '../../_utils/withInstall'\nimport Map from './Map.vue'\nexport const EcanMap = withInstall(Map)\nexport default EcanMap\nexport * from './props'\n","import { App } from 'vue'\nimport * as components from './components'\nconst install = (app: App) => {\n Object.keys(components).forEach(key => {\n const component = components[key]\n if (component.install) {\n app.use(component)\n }\n })\n}\n\n// 部分导出\nexport * from './components'\n// 全局安装\nexport default {\n install\n}\n"],"names":["init","root","chart","autoresize","props","initChart","manualUpdate","h","generate","index","_objectSpread","_defineProperty","message","generateColor","useInsertStyles","_excluded","_objectWithoutProperties","_objectWithoutPropertiesLoose","IconBase","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","Icon","_createVNode","LoadingOutlined","_sfc_main","ASpin","_hoisted_1","_openBlock","_createElementBlock","_createBlock","_renderSlot","ASkeleton","id","name","data","config","_a","_b","_c","style","_normalizeStyle","_createCommentVNode","providerConfig","_toDisplayString","_createElementVNode","_hoisted_6","_withCtx","_Fragment","_renderList","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_normalizeClass","_hoisted_7","AProgress","text","AInput","ADatePicker","ASelect","ARangePicker","AButton","AModal","series","yAxis","_createSlots","_resolveDynamicComponent","_mergeProps","_withModifiers","ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","summaryList","total","Map"],"mappings":"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"}