@visactor/vchart 1.7.0-alpha.0 → 1.7.0-alpha.1

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 (689) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +23903 -23822
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/area/area.js +2 -1
  6. package/cjs/chart/area/area.js.map +1 -1
  7. package/cjs/chart/base-chart.d.ts +9 -12
  8. package/cjs/chart/base-chart.js +35 -46
  9. package/cjs/chart/base-chart.js.map +1 -1
  10. package/cjs/chart/interface/chart.d.ts +2 -4
  11. package/cjs/chart/interface/chart.js.map +1 -1
  12. package/cjs/chart/line/line.js +2 -1
  13. package/cjs/chart/line/line.js.map +1 -1
  14. package/cjs/chart/sequence/sequence.d.ts +1 -1
  15. package/cjs/chart/sequence/sequence.js +1 -1
  16. package/cjs/chart/sequence/sequence.js.map +1 -1
  17. package/cjs/chart/stack.js +2 -1
  18. package/cjs/compile/compiler.d.ts +2 -2
  19. package/cjs/compile/compiler.js +7 -7
  20. package/cjs/compile/compiler.js.map +1 -1
  21. package/cjs/compile/mark/compilable-mark.d.ts +10 -6
  22. package/cjs/compile/mark/compilable-mark.js +22 -11
  23. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  24. package/cjs/compile/mark/interface.d.ts +6 -4
  25. package/cjs/compile/mark/interface.js.map +1 -1
  26. package/cjs/compile/mark/util.d.ts +1 -3
  27. package/cjs/compile/mark/util.js +1 -37
  28. package/cjs/compile/mark/util.js.map +1 -1
  29. package/cjs/component/axis/base-axis.d.ts +1 -4
  30. package/cjs/component/axis/base-axis.js +19 -34
  31. package/cjs/component/axis/base-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/axis.d.ts +3 -13
  33. package/cjs/component/axis/cartesian/axis.js +15 -15
  34. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  35. package/cjs/component/axis/cartesian/band-axis.d.ts +0 -7
  36. package/cjs/component/axis/cartesian/band-axis.js +0 -1
  37. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  38. package/cjs/component/axis/cartesian/interface/common.d.ts +0 -6
  39. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  40. package/cjs/component/axis/interface/common.d.ts +0 -1
  41. package/cjs/component/axis/interface/common.js.map +1 -1
  42. package/cjs/component/axis/interface/spec.js.map +1 -1
  43. package/cjs/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  44. package/cjs/component/axis/mixin/band-axis-mixin.js +1 -1
  45. package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
  46. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  47. package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -3
  48. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  49. package/cjs/component/axis/polar/axis.js +6 -3
  50. package/cjs/component/axis/polar/axis.js.map +1 -1
  51. package/cjs/component/base/base-component.js +3 -3
  52. package/cjs/component/base/base-component.js.map +1 -1
  53. package/cjs/component/base/util.js +16 -12
  54. package/cjs/component/base/util.js.map +1 -1
  55. package/cjs/component/brush/brush.d.ts +1 -2
  56. package/cjs/component/brush/brush.js +1 -1
  57. package/cjs/component/brush/brush.js.map +1 -1
  58. package/cjs/component/crosshair/base.d.ts +2 -2
  59. package/cjs/component/crosshair/base.js +1 -1
  60. package/cjs/component/crosshair/base.js.map +1 -1
  61. package/cjs/component/custom-mark/custom-mark.d.ts +2 -2
  62. package/cjs/component/custom-mark/custom-mark.js +1 -1
  63. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  64. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -1
  65. package/cjs/component/data-zoom/data-filter-base-component.js +52 -30
  66. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  67. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +3 -1
  68. package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -37
  69. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  70. package/cjs/component/data-zoom/data-zoom/interface.d.ts +5 -1
  71. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  72. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +5 -1
  73. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  74. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  75. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +19 -15
  76. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  77. package/cjs/component/data-zoom/util.d.ts +4 -0
  78. package/cjs/component/data-zoom/util.js +11 -2
  79. package/cjs/component/data-zoom/util.js.map +1 -1
  80. package/cjs/component/geo/geo-coordinate.d.ts +2 -2
  81. package/cjs/component/geo/geo-coordinate.js +1 -1
  82. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  83. package/cjs/component/index.d.ts +3 -2
  84. package/cjs/component/index.js.map +1 -1
  85. package/cjs/component/indicator/indicator.d.ts +2 -2
  86. package/cjs/component/indicator/indicator.js +1 -1
  87. package/cjs/component/indicator/indicator.js.map +1 -1
  88. package/cjs/component/interface/theme.d.ts +2 -1
  89. package/cjs/component/interface/theme.js.map +1 -1
  90. package/cjs/component/label/base-label.d.ts +1 -2
  91. package/cjs/component/label/base-label.js +1 -2
  92. package/cjs/component/label/base-label.js.map +1 -1
  93. package/cjs/component/label/interface.d.ts +4 -0
  94. package/cjs/component/label/interface.js.map +1 -1
  95. package/cjs/component/label/label.d.ts +4 -6
  96. package/cjs/component/label/label.js +13 -8
  97. package/cjs/component/label/label.js.map +1 -1
  98. package/cjs/component/label/totalLabel.d.ts +0 -2
  99. package/cjs/component/label/totalLabel.js +2 -1
  100. package/cjs/component/label/totalLabel.js.map +1 -1
  101. package/cjs/component/label/util.d.ts +9 -2
  102. package/cjs/component/label/util.js +20 -5
  103. package/cjs/component/label/util.js.map +1 -1
  104. package/cjs/component/legend/util.d.ts +1 -1
  105. package/cjs/component/map-label/component.d.ts +2 -2
  106. package/cjs/component/map-label/component.js +1 -1
  107. package/cjs/component/map-label/component.js.map +1 -1
  108. package/cjs/component/marker/base-marker.d.ts +7 -2
  109. package/cjs/component/marker/base-marker.js +43 -19
  110. package/cjs/component/marker/base-marker.js.map +1 -1
  111. package/cjs/component/marker/interface.d.ts +14 -3
  112. package/cjs/component/marker/interface.js.map +1 -1
  113. package/cjs/component/marker/mark-area/interface/spec.d.ts +1 -1
  114. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  115. package/cjs/component/marker/mark-area/mark-area.js +28 -12
  116. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  117. package/cjs/component/marker/mark-line/interface/spec.d.ts +3 -4
  118. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  119. package/cjs/component/marker/mark-line/mark-line.js +32 -14
  120. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  121. package/cjs/component/marker/mark-line/util.d.ts +3 -3
  122. package/cjs/component/marker/mark-line/util.js.map +1 -1
  123. package/cjs/component/marker/mark-point/interface/spec.d.ts +5 -4
  124. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  125. package/cjs/component/marker/mark-point/interface/theme.d.ts +5 -5
  126. package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
  127. package/cjs/component/marker/mark-point/mark-point.js +13 -5
  128. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  129. package/cjs/component/marker/utils.d.ts +3 -4
  130. package/cjs/component/marker/utils.js +44 -25
  131. package/cjs/component/marker/utils.js.map +1 -1
  132. package/cjs/component/title/title.js +1 -1
  133. package/cjs/component/title/title.js.map +1 -1
  134. package/cjs/component/tooltip/handler/base.js +6 -6
  135. package/cjs/component/tooltip/handler/base.js.map +1 -1
  136. package/cjs/component/tooltip/handler/dom/util.js +3 -2
  137. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  138. package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
  139. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  140. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  141. package/cjs/component/tooltip/interface/spec.d.ts +1 -1
  142. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  143. package/cjs/component/tooltip/interface/theme.d.ts +10 -11
  144. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  145. package/cjs/component/tooltip/tooltip.d.ts +2 -2
  146. package/cjs/component/tooltip/tooltip.js +3 -4
  147. package/cjs/component/tooltip/tooltip.js.map +1 -1
  148. package/cjs/component/util.d.ts +1 -3
  149. package/cjs/component/util.js +2 -2
  150. package/cjs/component/util.js.map +1 -1
  151. package/cjs/constant/scatter.js +1 -2
  152. package/cjs/constant/scroll-bar.js +2 -1
  153. package/cjs/core/expression-function.d.ts +12 -0
  154. package/cjs/core/expression-function.js +30 -0
  155. package/cjs/core/expression-function.js.map +1 -0
  156. package/cjs/core/index.d.ts +2 -1
  157. package/cjs/core/index.js +3 -2
  158. package/cjs/core/index.js.map +1 -1
  159. package/cjs/core/interface.d.ts +5 -0
  160. package/cjs/core/interface.js.map +1 -1
  161. package/cjs/core/vchart.d.ts +9 -1
  162. package/cjs/core/vchart.js +97 -71
  163. package/cjs/core/vchart.js.map +1 -1
  164. package/cjs/data/initialize.js +7 -6
  165. package/cjs/data/initialize.js.map +1 -1
  166. package/cjs/data/transforms/aggregation.d.ts +4 -3
  167. package/cjs/data/transforms/aggregation.js +4 -4
  168. package/cjs/data/transforms/aggregation.js.map +1 -1
  169. package/cjs/data/transforms/dimension-statistics.js +14 -4
  170. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  171. package/cjs/data/transforms/sankey.d.ts +3 -6
  172. package/cjs/data/transforms/sankey.js +40 -23
  173. package/cjs/data/transforms/sankey.js.map +1 -1
  174. package/cjs/event/bubble.js +1 -2
  175. package/cjs/event/event.js +2 -1
  176. package/cjs/event/events/dimension/base.d.ts +1 -0
  177. package/cjs/event/events/dimension/base.js +10 -6
  178. package/cjs/event/events/dimension/base.js.map +1 -1
  179. package/cjs/event/interface.d.ts +1 -1
  180. package/cjs/event/interface.js.map +1 -1
  181. package/cjs/index-wx-simple.d.ts +4 -0
  182. package/cjs/index-wx-simple.js +35 -0
  183. package/cjs/index-wx-simple.js.map +1 -0
  184. package/cjs/interaction/config.d.ts +2 -2
  185. package/cjs/interaction/config.js +2 -2
  186. package/cjs/interaction/config.js.map +1 -1
  187. package/cjs/interaction/trigger.js +2 -2
  188. package/cjs/interaction/trigger.js.map +1 -1
  189. package/cjs/layout/base-layout.js +1 -1
  190. package/cjs/layout/layout-item.js +3 -5
  191. package/cjs/layout/layout-item.js.map +1 -1
  192. package/cjs/mark/arc.js +2 -2
  193. package/cjs/mark/arc.js.map +1 -1
  194. package/cjs/mark/base/base-mark.d.ts +2 -2
  195. package/cjs/mark/base/base-mark.js +62 -40
  196. package/cjs/mark/base/base-mark.js.map +1 -1
  197. package/cjs/mark/label.js +1 -4
  198. package/cjs/mark/label.js.map +1 -1
  199. package/cjs/model/base-model.d.ts +0 -2
  200. package/cjs/model/base-model.js +9 -15
  201. package/cjs/model/base-model.js.map +1 -1
  202. package/cjs/model/interface.d.ts +3 -9
  203. package/cjs/model/interface.js.map +1 -1
  204. package/cjs/model/layout-model.d.ts +6 -4
  205. package/cjs/model/layout-model.js +28 -17
  206. package/cjs/model/layout-model.js.map +1 -1
  207. package/cjs/series/area/area.d.ts +1 -1
  208. package/cjs/series/area/area.js +5 -6
  209. package/cjs/series/area/area.js.map +1 -1
  210. package/cjs/series/area/interface.d.ts +4 -0
  211. package/cjs/series/area/interface.js.map +1 -1
  212. package/cjs/series/bar/bar.js +2 -4
  213. package/cjs/series/bar/bar.js.map +1 -1
  214. package/cjs/series/base/base-series.d.ts +4 -0
  215. package/cjs/series/base/base-series.js +13 -5
  216. package/cjs/series/base/base-series.js.map +1 -1
  217. package/cjs/series/cartesian/cartesian.d.ts +3 -0
  218. package/cjs/series/cartesian/cartesian.js +16 -4
  219. package/cjs/series/cartesian/cartesian.js.map +1 -1
  220. package/cjs/series/correlation/correlation.js +3 -7
  221. package/cjs/series/correlation/correlation.js.map +1 -1
  222. package/cjs/series/funnel/funnel-3d.js +1 -1
  223. package/cjs/series/funnel/funnel-3d.js.map +1 -1
  224. package/cjs/series/funnel/funnel.js +2 -6
  225. package/cjs/series/funnel/funnel.js.map +1 -1
  226. package/cjs/series/gauge/gauge.d.ts +0 -1
  227. package/cjs/series/gauge/gauge.js +3 -8
  228. package/cjs/series/gauge/gauge.js.map +1 -1
  229. package/cjs/series/heatmap/heatmap.js +2 -4
  230. package/cjs/series/heatmap/heatmap.js.map +1 -1
  231. package/cjs/series/index.d.ts +2 -2
  232. package/cjs/series/index.js.map +1 -1
  233. package/cjs/series/interface/common.d.ts +2 -2
  234. package/cjs/series/interface/common.js.map +1 -1
  235. package/cjs/series/interface/series.d.ts +1 -0
  236. package/cjs/series/interface/series.js.map +1 -1
  237. package/cjs/series/interface/type.d.ts +3 -1
  238. package/cjs/series/interface/type.js +2 -1
  239. package/cjs/series/interface/type.js.map +1 -1
  240. package/cjs/series/line/interface.d.ts +4 -0
  241. package/cjs/series/line/interface.js.map +1 -1
  242. package/cjs/series/line/line.d.ts +1 -1
  243. package/cjs/series/line/line.js.map +1 -1
  244. package/cjs/series/map/map.js +2 -4
  245. package/cjs/series/map/map.js.map +1 -1
  246. package/cjs/series/mixin/line-mixin.d.ts +3 -1
  247. package/cjs/series/mixin/line-mixin.js +16 -10
  248. package/cjs/series/mixin/line-mixin.js.map +1 -1
  249. package/cjs/series/pie/pie.js +1 -4
  250. package/cjs/series/pie/pie.js.map +1 -1
  251. package/cjs/series/polar/progress-like/progress-like.js +4 -4
  252. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  253. package/cjs/series/radar/animation.js.map +1 -1
  254. package/cjs/series/range-column/range-column.js +2 -2
  255. package/cjs/series/range-column/range-column.js.map +1 -1
  256. package/cjs/series/rose/rose.d.ts +2 -1
  257. package/cjs/series/rose/rose.js +2 -4
  258. package/cjs/series/rose/rose.js.map +1 -1
  259. package/cjs/series/sankey/sankey.d.ts +6 -1
  260. package/cjs/series/sankey/sankey.js +48 -42
  261. package/cjs/series/sankey/sankey.js.map +1 -1
  262. package/cjs/series/scatter/scatter.js +2 -4
  263. package/cjs/series/scatter/scatter.js.map +1 -1
  264. package/cjs/series/waterfall/waterfall.js +1 -1
  265. package/cjs/series/waterfall/waterfall.js.map +1 -1
  266. package/cjs/series/word-cloud/base.d.ts +1 -0
  267. package/cjs/series/word-cloud/base.js +33 -33
  268. package/cjs/series/word-cloud/base.js.map +1 -1
  269. package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
  270. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  271. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  272. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  273. package/cjs/theme/builtin/common/component/axis/common-axis.js +1 -1
  274. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  275. package/cjs/theme/builtin/common/component/crosshair.js +5 -5
  276. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  277. package/cjs/theme/builtin/common/component/data-zoom.js +10 -10
  278. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  279. package/cjs/theme/builtin/common/component/indicator.js +1 -1
  280. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  281. package/cjs/theme/builtin/common/component/legend/color-legend.js +3 -4
  282. package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  283. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  284. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  285. package/cjs/theme/builtin/common/component/legend/size-legend.js +6 -6
  286. package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  287. package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
  288. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  289. package/cjs/theme/builtin/common/component/mark-line.js +9 -9
  290. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  291. package/cjs/theme/builtin/common/component/mark-point.js +15 -3
  292. package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
  293. package/cjs/theme/builtin/common/component/player.js +7 -7
  294. package/cjs/theme/builtin/common/component/player.js.map +1 -1
  295. package/cjs/theme/builtin/common/component/poptip.js +3 -4
  296. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  297. package/cjs/theme/builtin/common/component/scroll-bar.js +20 -7
  298. package/cjs/theme/builtin/common/component/scroll-bar.js.map +1 -1
  299. package/cjs/theme/builtin/common/component/title.js +1 -1
  300. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  301. package/cjs/theme/builtin/common/component/tooltip.d.ts +2 -1
  302. package/cjs/theme/builtin/common/component/tooltip.js +3 -4
  303. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  304. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  305. package/cjs/theme/builtin/common/mark.js.map +1 -1
  306. package/cjs/theme/builtin/common/series/rangeColumn.js +1 -1
  307. package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
  308. package/cjs/theme/builtin/dark/color-scheme.js +20 -11
  309. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  310. package/cjs/theme/builtin/index.d.ts +2 -4
  311. package/cjs/theme/builtin/index.js +17 -22
  312. package/cjs/theme/builtin/index.js.map +1 -1
  313. package/cjs/theme/builtin/light/color-scheme.js +19 -10
  314. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  315. package/cjs/theme/color-scheme/builtin/interface.d.ts +16 -7
  316. package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
  317. package/cjs/theme/color-scheme/legacy.js +18 -2
  318. package/cjs/theme/color-scheme/legacy.js.map +1 -1
  319. package/cjs/theme/color-scheme/util.js +2 -2
  320. package/cjs/theme/color-scheme/util.js.map +1 -1
  321. package/cjs/theme/theme-manager.d.ts +1 -1
  322. package/cjs/theme/theme-manager.js +2 -2
  323. package/cjs/theme/theme-manager.js.map +1 -1
  324. package/cjs/typings/spec/common.d.ts +1 -2
  325. package/cjs/typings/spec/common.js.map +1 -1
  326. package/cjs/typings/visual.d.ts +1 -1
  327. package/cjs/typings/visual.js.map +1 -1
  328. package/cjs/util/spec/background.js +8 -14
  329. package/cjs/util/spec/background.js.map +1 -1
  330. package/cjs/util/spec/common.d.ts +1 -1
  331. package/cjs/util/spec/common.js +2 -2
  332. package/cjs/util/spec/common.js.map +1 -1
  333. package/cjs/util/spec/preprocess.d.ts +1 -1
  334. package/cjs/util/spec/preprocess.js +7 -17
  335. package/cjs/util/spec/preprocess.js.map +1 -1
  336. package/cjs/util/spec/transform.d.ts +2 -0
  337. package/cjs/util/spec/transform.js +18 -2
  338. package/cjs/util/spec/transform.js.map +1 -1
  339. package/cjs/vchart-all.js +2 -3
  340. package/cjs/vchart-all.js.map +1 -1
  341. package/cjs/vchart-simple.d.ts +1 -0
  342. package/cjs/vchart-simple.js +4 -4
  343. package/cjs/vchart-simple.js.map +1 -1
  344. package/esm/chart/area/area.js +2 -1
  345. package/esm/chart/area/area.js.map +1 -1
  346. package/esm/chart/base-chart.d.ts +9 -12
  347. package/esm/chart/base-chart.js +33 -45
  348. package/esm/chart/base-chart.js.map +1 -1
  349. package/esm/chart/interface/chart.d.ts +2 -4
  350. package/esm/chart/interface/chart.js.map +1 -1
  351. package/esm/chart/line/line.js +2 -1
  352. package/esm/chart/line/line.js.map +1 -1
  353. package/esm/chart/sequence/sequence.d.ts +1 -1
  354. package/esm/chart/sequence/sequence.js +1 -1
  355. package/esm/chart/sequence/sequence.js.map +1 -1
  356. package/esm/chart/stack.js +2 -1
  357. package/esm/compile/compiler.d.ts +2 -2
  358. package/esm/compile/compiler.js +7 -7
  359. package/esm/compile/compiler.js.map +1 -1
  360. package/esm/compile/mark/compilable-mark.d.ts +10 -6
  361. package/esm/compile/mark/compilable-mark.js +23 -12
  362. package/esm/compile/mark/compilable-mark.js.map +1 -1
  363. package/esm/compile/mark/interface.d.ts +6 -4
  364. package/esm/compile/mark/interface.js.map +1 -1
  365. package/esm/compile/mark/util.d.ts +1 -3
  366. package/esm/compile/mark/util.js +0 -34
  367. package/esm/compile/mark/util.js.map +1 -1
  368. package/esm/component/axis/base-axis.d.ts +1 -4
  369. package/esm/component/axis/base-axis.js +18 -35
  370. package/esm/component/axis/base-axis.js.map +1 -1
  371. package/esm/component/axis/cartesian/axis.d.ts +3 -13
  372. package/esm/component/axis/cartesian/axis.js +14 -13
  373. package/esm/component/axis/cartesian/axis.js.map +1 -1
  374. package/esm/component/axis/cartesian/band-axis.d.ts +0 -7
  375. package/esm/component/axis/cartesian/band-axis.js +0 -1
  376. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  377. package/esm/component/axis/cartesian/interface/common.d.ts +0 -6
  378. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  379. package/esm/component/axis/interface/common.d.ts +0 -1
  380. package/esm/component/axis/interface/common.js.map +1 -1
  381. package/esm/component/axis/interface/spec.js.map +1 -1
  382. package/esm/component/axis/mixin/band-axis-mixin.d.ts +0 -1
  383. package/esm/component/axis/mixin/band-axis-mixin.js +1 -1
  384. package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
  385. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
  386. package/esm/component/axis/mixin/linear-axis-mixin.js +4 -3
  387. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  388. package/esm/component/axis/polar/axis.js +5 -2
  389. package/esm/component/axis/polar/axis.js.map +1 -1
  390. package/esm/component/base/base-component.js +2 -4
  391. package/esm/component/base/base-component.js.map +1 -1
  392. package/esm/component/base/util.js +7 -3
  393. package/esm/component/base/util.js.map +1 -1
  394. package/esm/component/brush/brush.d.ts +1 -2
  395. package/esm/component/brush/brush.js +1 -1
  396. package/esm/component/brush/brush.js.map +1 -1
  397. package/esm/component/crosshair/base.d.ts +2 -2
  398. package/esm/component/crosshair/base.js +1 -1
  399. package/esm/component/crosshair/base.js.map +1 -1
  400. package/esm/component/custom-mark/custom-mark.d.ts +2 -2
  401. package/esm/component/custom-mark/custom-mark.js +1 -1
  402. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  403. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -1
  404. package/esm/component/data-zoom/data-filter-base-component.js +52 -30
  405. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  406. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +3 -1
  407. package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -37
  408. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  409. package/esm/component/data-zoom/data-zoom/interface.d.ts +5 -1
  410. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  411. package/esm/component/data-zoom/scroll-bar/interface.d.ts +5 -1
  412. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  413. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
  414. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +19 -15
  415. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  416. package/esm/component/data-zoom/util.d.ts +4 -0
  417. package/esm/component/data-zoom/util.js +13 -1
  418. package/esm/component/data-zoom/util.js.map +1 -1
  419. package/esm/component/geo/geo-coordinate.d.ts +2 -2
  420. package/esm/component/geo/geo-coordinate.js +1 -1
  421. package/esm/component/geo/geo-coordinate.js.map +1 -1
  422. package/esm/component/index.d.ts +3 -2
  423. package/esm/component/index.js.map +1 -1
  424. package/esm/component/indicator/indicator.d.ts +2 -2
  425. package/esm/component/indicator/indicator.js +1 -1
  426. package/esm/component/indicator/indicator.js.map +1 -1
  427. package/esm/component/interface/theme.d.ts +2 -1
  428. package/esm/component/interface/theme.js.map +1 -1
  429. package/esm/component/label/base-label.d.ts +1 -2
  430. package/esm/component/label/base-label.js +1 -1
  431. package/esm/component/label/base-label.js.map +1 -1
  432. package/esm/component/label/interface.d.ts +4 -0
  433. package/esm/component/label/interface.js.map +1 -1
  434. package/esm/component/label/label.d.ts +4 -6
  435. package/esm/component/label/label.js +14 -8
  436. package/esm/component/label/label.js.map +1 -1
  437. package/esm/component/label/totalLabel.d.ts +0 -2
  438. package/esm/component/label/totalLabel.js +2 -1
  439. package/esm/component/label/totalLabel.js.map +1 -1
  440. package/esm/component/label/util.d.ts +9 -2
  441. package/esm/component/label/util.js +17 -3
  442. package/esm/component/label/util.js.map +1 -1
  443. package/esm/component/legend/util.d.ts +1 -1
  444. package/esm/component/map-label/component.d.ts +2 -2
  445. package/esm/component/map-label/component.js +1 -1
  446. package/esm/component/map-label/component.js.map +1 -1
  447. package/esm/component/marker/base-marker.d.ts +7 -2
  448. package/esm/component/marker/base-marker.js +41 -18
  449. package/esm/component/marker/base-marker.js.map +1 -1
  450. package/esm/component/marker/interface.d.ts +14 -3
  451. package/esm/component/marker/interface.js.map +1 -1
  452. package/esm/component/marker/mark-area/interface/spec.d.ts +1 -1
  453. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  454. package/esm/component/marker/mark-area/mark-area.js +25 -11
  455. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  456. package/esm/component/marker/mark-line/interface/spec.d.ts +3 -4
  457. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  458. package/esm/component/marker/mark-line/mark-line.js +32 -11
  459. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  460. package/esm/component/marker/mark-line/util.d.ts +3 -3
  461. package/esm/component/marker/mark-line/util.js.map +1 -1
  462. package/esm/component/marker/mark-point/interface/spec.d.ts +5 -4
  463. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  464. package/esm/component/marker/mark-point/interface/theme.d.ts +5 -5
  465. package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
  466. package/esm/component/marker/mark-point/mark-point.js +13 -5
  467. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  468. package/esm/component/marker/utils.d.ts +3 -4
  469. package/esm/component/marker/utils.js +43 -23
  470. package/esm/component/marker/utils.js.map +1 -1
  471. package/esm/component/title/title.js +1 -1
  472. package/esm/component/title/title.js.map +1 -1
  473. package/esm/component/tooltip/handler/base.js +5 -7
  474. package/esm/component/tooltip/handler/base.js.map +1 -1
  475. package/esm/component/tooltip/handler/dom/util.js +3 -1
  476. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  477. package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
  478. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  479. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  480. package/esm/component/tooltip/interface/spec.d.ts +1 -1
  481. package/esm/component/tooltip/interface/spec.js.map +1 -1
  482. package/esm/component/tooltip/interface/theme.d.ts +10 -11
  483. package/esm/component/tooltip/interface/theme.js.map +1 -1
  484. package/esm/component/tooltip/tooltip.d.ts +2 -2
  485. package/esm/component/tooltip/tooltip.js +3 -3
  486. package/esm/component/tooltip/tooltip.js.map +1 -1
  487. package/esm/component/util.d.ts +1 -3
  488. package/esm/component/util.js +2 -2
  489. package/esm/component/util.js.map +1 -1
  490. package/esm/constant/scatter.js +1 -2
  491. package/esm/constant/scroll-bar.js +2 -1
  492. package/esm/core/expression-function.d.ts +12 -0
  493. package/esm/core/expression-function.js +22 -0
  494. package/esm/core/expression-function.js.map +1 -0
  495. package/esm/core/index.d.ts +2 -1
  496. package/esm/core/index.js +3 -1
  497. package/esm/core/index.js.map +1 -1
  498. package/esm/core/interface.d.ts +5 -0
  499. package/esm/core/interface.js.map +1 -1
  500. package/esm/core/vchart.d.ts +9 -1
  501. package/esm/core/vchart.js +65 -44
  502. package/esm/core/vchart.js.map +1 -1
  503. package/esm/data/initialize.js +7 -7
  504. package/esm/data/initialize.js.map +1 -1
  505. package/esm/data/transforms/aggregation.d.ts +4 -3
  506. package/esm/data/transforms/aggregation.js +6 -6
  507. package/esm/data/transforms/aggregation.js.map +1 -1
  508. package/esm/data/transforms/dimension-statistics.js +14 -4
  509. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  510. package/esm/data/transforms/sankey.d.ts +3 -6
  511. package/esm/data/transforms/sankey.js +36 -22
  512. package/esm/data/transforms/sankey.js.map +1 -1
  513. package/esm/event/bubble.js +1 -2
  514. package/esm/event/event.js +2 -1
  515. package/esm/event/events/dimension/base.d.ts +1 -0
  516. package/esm/event/events/dimension/base.js +10 -6
  517. package/esm/event/events/dimension/base.js.map +1 -1
  518. package/esm/event/interface.d.ts +1 -1
  519. package/esm/event/interface.js.map +1 -1
  520. package/esm/index-wx-simple.d.ts +4 -0
  521. package/esm/index-wx-simple.js +35 -0
  522. package/esm/index-wx-simple.js.map +1 -0
  523. package/esm/interaction/config.d.ts +2 -2
  524. package/esm/interaction/config.js +2 -2
  525. package/esm/interaction/config.js.map +1 -1
  526. package/esm/interaction/trigger.js +2 -2
  527. package/esm/interaction/trigger.js.map +1 -1
  528. package/esm/layout/base-layout.js +1 -1
  529. package/esm/layout/layout-item.js +3 -5
  530. package/esm/layout/layout-item.js.map +1 -1
  531. package/esm/mark/arc.js +2 -2
  532. package/esm/mark/arc.js.map +1 -1
  533. package/esm/mark/base/base-mark.d.ts +2 -2
  534. package/esm/mark/base/base-mark.js +59 -38
  535. package/esm/mark/base/base-mark.js.map +1 -1
  536. package/esm/mark/label.js +1 -4
  537. package/esm/mark/label.js.map +1 -1
  538. package/esm/model/base-model.d.ts +0 -2
  539. package/esm/model/base-model.js +8 -18
  540. package/esm/model/base-model.js.map +1 -1
  541. package/esm/model/interface.d.ts +3 -9
  542. package/esm/model/interface.js.map +1 -1
  543. package/esm/model/layout-model.d.ts +6 -4
  544. package/esm/model/layout-model.js +27 -18
  545. package/esm/model/layout-model.js.map +1 -1
  546. package/esm/series/area/area.d.ts +1 -1
  547. package/esm/series/area/area.js +5 -6
  548. package/esm/series/area/area.js.map +1 -1
  549. package/esm/series/area/interface.d.ts +4 -0
  550. package/esm/series/area/interface.js.map +1 -1
  551. package/esm/series/bar/bar.js +1 -5
  552. package/esm/series/bar/bar.js.map +1 -1
  553. package/esm/series/base/base-series.d.ts +4 -0
  554. package/esm/series/base/base-series.js +13 -7
  555. package/esm/series/base/base-series.js.map +1 -1
  556. package/esm/series/cartesian/cartesian.d.ts +3 -0
  557. package/esm/series/cartesian/cartesian.js +16 -4
  558. package/esm/series/cartesian/cartesian.js.map +1 -1
  559. package/esm/series/correlation/correlation.js +2 -8
  560. package/esm/series/correlation/correlation.js.map +1 -1
  561. package/esm/series/funnel/funnel-3d.js +1 -1
  562. package/esm/series/funnel/funnel-3d.js.map +1 -1
  563. package/esm/series/funnel/funnel.js +3 -7
  564. package/esm/series/funnel/funnel.js.map +1 -1
  565. package/esm/series/gauge/gauge.d.ts +0 -1
  566. package/esm/series/gauge/gauge.js +2 -9
  567. package/esm/series/gauge/gauge.js.map +1 -1
  568. package/esm/series/heatmap/heatmap.js +1 -5
  569. package/esm/series/heatmap/heatmap.js.map +1 -1
  570. package/esm/series/index.d.ts +2 -2
  571. package/esm/series/index.js.map +1 -1
  572. package/esm/series/interface/common.d.ts +2 -2
  573. package/esm/series/interface/common.js.map +1 -1
  574. package/esm/series/interface/series.d.ts +1 -0
  575. package/esm/series/interface/series.js.map +1 -1
  576. package/esm/series/interface/type.d.ts +3 -1
  577. package/esm/series/interface/type.js +2 -1
  578. package/esm/series/interface/type.js.map +1 -1
  579. package/esm/series/line/interface.d.ts +4 -0
  580. package/esm/series/line/interface.js.map +1 -1
  581. package/esm/series/line/line.d.ts +1 -1
  582. package/esm/series/line/line.js.map +1 -1
  583. package/esm/series/map/map.js +1 -5
  584. package/esm/series/map/map.js.map +1 -1
  585. package/esm/series/mixin/line-mixin.d.ts +3 -1
  586. package/esm/series/mixin/line-mixin.js +15 -10
  587. package/esm/series/mixin/line-mixin.js.map +1 -1
  588. package/esm/series/pie/pie.js +1 -4
  589. package/esm/series/pie/pie.js.map +1 -1
  590. package/esm/series/polar/progress-like/progress-like.js +3 -4
  591. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  592. package/esm/series/radar/animation.js.map +1 -1
  593. package/esm/series/range-column/range-column.js +1 -3
  594. package/esm/series/range-column/range-column.js.map +1 -1
  595. package/esm/series/rose/rose.d.ts +2 -1
  596. package/esm/series/rose/rose.js +1 -5
  597. package/esm/series/rose/rose.js.map +1 -1
  598. package/esm/series/sankey/sankey.d.ts +6 -1
  599. package/esm/series/sankey/sankey.js +49 -46
  600. package/esm/series/sankey/sankey.js.map +1 -1
  601. package/esm/series/scatter/scatter.js +1 -5
  602. package/esm/series/scatter/scatter.js.map +1 -1
  603. package/esm/series/waterfall/waterfall.js +1 -1
  604. package/esm/series/waterfall/waterfall.js.map +1 -1
  605. package/esm/series/word-cloud/base.d.ts +1 -0
  606. package/esm/series/word-cloud/base.js +33 -33
  607. package/esm/series/word-cloud/base.js.map +1 -1
  608. package/esm/series/word-cloud/word-cloud-3d.js +32 -32
  609. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  610. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
  611. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  612. package/esm/theme/builtin/common/component/axis/common-axis.js +1 -1
  613. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  614. package/esm/theme/builtin/common/component/crosshair.js +5 -5
  615. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  616. package/esm/theme/builtin/common/component/data-zoom.js +10 -10
  617. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  618. package/esm/theme/builtin/common/component/indicator.js +1 -1
  619. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  620. package/esm/theme/builtin/common/component/legend/color-legend.js +3 -4
  621. package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -1
  622. package/esm/theme/builtin/common/component/legend/discrete-legend.js +2 -2
  623. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  624. package/esm/theme/builtin/common/component/legend/size-legend.js +6 -6
  625. package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -1
  626. package/esm/theme/builtin/common/component/map-label.js.map +1 -1
  627. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  628. package/esm/theme/builtin/common/component/mark-line.js +9 -9
  629. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  630. package/esm/theme/builtin/common/component/mark-point.js +15 -3
  631. package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
  632. package/esm/theme/builtin/common/component/player.js +7 -7
  633. package/esm/theme/builtin/common/component/player.js.map +1 -1
  634. package/esm/theme/builtin/common/component/poptip.js +3 -4
  635. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  636. package/esm/theme/builtin/common/component/scroll-bar.js +20 -7
  637. package/esm/theme/builtin/common/component/scroll-bar.js.map +1 -1
  638. package/esm/theme/builtin/common/component/title.js +1 -1
  639. package/esm/theme/builtin/common/component/title.js.map +1 -1
  640. package/esm/theme/builtin/common/component/tooltip.d.ts +2 -1
  641. package/esm/theme/builtin/common/component/tooltip.js +3 -4
  642. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  643. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  644. package/esm/theme/builtin/common/mark.js.map +1 -1
  645. package/esm/theme/builtin/common/series/rangeColumn.js +1 -1
  646. package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
  647. package/esm/theme/builtin/dark/color-scheme.js +20 -11
  648. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  649. package/esm/theme/builtin/index.d.ts +2 -4
  650. package/esm/theme/builtin/index.js +15 -28
  651. package/esm/theme/builtin/index.js.map +1 -1
  652. package/esm/theme/builtin/light/color-scheme.js +19 -10
  653. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  654. package/esm/theme/color-scheme/builtin/interface.d.ts +16 -7
  655. package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
  656. package/esm/theme/color-scheme/legacy.js +18 -2
  657. package/esm/theme/color-scheme/legacy.js.map +1 -1
  658. package/esm/theme/color-scheme/util.js +2 -2
  659. package/esm/theme/color-scheme/util.js.map +1 -1
  660. package/esm/theme/theme-manager.d.ts +1 -1
  661. package/esm/theme/theme-manager.js +2 -2
  662. package/esm/theme/theme-manager.js.map +1 -1
  663. package/esm/typings/spec/common.d.ts +1 -2
  664. package/esm/typings/spec/common.js.map +1 -1
  665. package/esm/typings/visual.d.ts +1 -1
  666. package/esm/typings/visual.js.map +1 -1
  667. package/esm/util/spec/background.js +3 -11
  668. package/esm/util/spec/background.js.map +1 -1
  669. package/esm/util/spec/common.d.ts +1 -1
  670. package/esm/util/spec/common.js +2 -2
  671. package/esm/util/spec/common.js.map +1 -1
  672. package/esm/util/spec/preprocess.d.ts +1 -1
  673. package/esm/util/spec/preprocess.js +5 -18
  674. package/esm/util/spec/preprocess.js.map +1 -1
  675. package/esm/util/spec/transform.d.ts +2 -0
  676. package/esm/util/spec/transform.js +17 -1
  677. package/esm/util/spec/transform.js.map +1 -1
  678. package/esm/vchart-all.js +1 -4
  679. package/esm/vchart-all.js.map +1 -1
  680. package/esm/vchart-simple.d.ts +1 -0
  681. package/esm/vchart-simple.js +15 -14
  682. package/esm/vchart-simple.js.map +1 -1
  683. package/package.json +19 -20
  684. package/cjs/theme/util.d.ts +0 -5
  685. package/cjs/theme/util.js +0 -35
  686. package/cjs/theme/util.js.map +0 -1
  687. package/esm/theme/util.d.ts +0 -5
  688. package/esm/theme/util.js +0 -37
  689. package/esm/theme/util.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { isValid, isFunction } from "@visactor/vutils";
1
+ import { isFunction, isPlainObject, isValid } from "@visactor/vutils";
2
2
 
3
- import { average, sum, standardDeviation, variance, median, min, max } from "../../util/math";
3
+ import { variance, average, min, max, sum, standardDeviation, median } from "../../util/math";
4
4
 
5
5
  export const markerMin = (_data, opt) => {
6
6
  const data = _data[0].latestData;
@@ -55,22 +55,22 @@ export function markerAggregation(_data, options) {
55
55
  if (isValid(option.x)) {
56
56
  let x = option.x;
57
57
  if (isFunction(x) && (x = x(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData)),
58
- "string" == typeof x || "number" == typeof x) result.x = x; else {
58
+ isPlainObject(x)) {
59
59
  const {aggrType: aggrType, field: field} = x;
60
60
  result.x = aggrMap[aggrType](_data, {
61
61
  field: field
62
62
  });
63
- }
63
+ } else result.x = x;
64
64
  }
65
65
  if (isValid(option.y)) {
66
66
  let y = option.y;
67
67
  if (isFunction(y) && (y = y(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData)),
68
- "string" == typeof y || "number" == typeof y) result.y = y; else {
68
+ isPlainObject(y)) {
69
69
  const {aggrType: aggrType, field: field} = y;
70
70
  result.y = aggrMap[aggrType](_data, {
71
71
  field: field
72
72
  });
73
- }
73
+ } else result.y = y;
74
74
  }
75
75
  option.getRefRelativeSeries && (result.getRefRelativeSeries = option.getRefRelativeSeries),
76
76
  results.push(result);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/aggregation.ts"],"names":[],"mappings":"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","file":"aggregation.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IAggrType } from '../../component/marker/interface';\nimport type { ICartesianSeries } from '../../series/interface';\n\nimport { isValid, isFunction } from '@visactor/vutils';\nimport { average, sum, standardDeviation, variance, median, min, max } from '../../util/math';\nimport type { Datum } from '../../typings';\n\nexport type IOption = {\n field: string;\n};\n\nexport type IOptionAggrField = {\n field: string;\n aggrType: IAggrType;\n};\n\nexport type IOptionPos = IOptionAggrField | string | number;\n\nexport type IOptionSeries = {\n getRelativeSeries: () => ICartesianSeries;\n getStartRelativeSeries: () => ICartesianSeries;\n getEndRelativeSeries: () => ICartesianSeries;\n};\n\nexport type IOptionCallback = (\n relativeSeriesData: any,\n startRelativeSeriesData: any,\n endRelativeSeriesData: any\n) => IOptionPos;\n\nexport type IOptionAggr = {\n x?: IOptionPos | IOptionCallback;\n y?: IOptionPos | IOptionCallback;\n getRefRelativeSeries?: () => ICartesianSeries;\n} & IOptionSeries;\n\nexport const markerMin = (_data: Array<DataView>, opt: IOption) => {\n const data = _data[0].latestData as Datum[];\n\n return min(data, opt.field);\n};\nexport const markerMax = (_data: Array<DataView>, opt: IOption) => {\n const data = _data[0].latestData as Datum[];\n\n return max(data, opt.field);\n};\n\nexport function markerSum(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return sum(data, opt.field);\n}\nexport function markerAverage(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return average(data, opt.field);\n}\n\nexport function markerVariance(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return variance(data, opt.field);\n}\n\nexport function markerStandardDeviation(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return standardDeviation(data, opt.field);\n}\n\nexport function markerMedian(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return median(data, opt.field);\n}\n\nexport function markerAggregation(_data: Array<DataView>, options: IOptionAggr[]) {\n const aggrMap = {\n min: markerMin,\n max: markerMax,\n sum: markerSum,\n average: markerAverage,\n variance: markerVariance,\n standardDeviation: markerStandardDeviation,\n median: markerMedian\n };\n const results: {\n x: string | number | null;\n y: string | number | null;\n }[] = [];\n\n options.forEach(option => {\n const result: {\n x: string | number | null;\n y: string | number | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n } = { x: null, y: null };\n\n const relativeSeriesData = option.getRelativeSeries().getData().getLatestData();\n const startRelativeSeriesData = option.getStartRelativeSeries().getData().getLatestData();\n const endRelativeSeriesData = option.getEndRelativeSeries().getData().getLatestData();\n\n if (isValid(option.x)) {\n let x = option.x;\n if (isFunction(x)) {\n x = x(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData);\n }\n if (typeof x === 'string' || typeof x === 'number') {\n result.x = x;\n } else {\n const { aggrType, field } = x;\n result.x = aggrMap[aggrType](_data, { field: field });\n }\n }\n if (isValid(option.y)) {\n let y = option.y;\n if (isFunction(y)) {\n y = y(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData);\n }\n if (typeof y === 'string' || typeof y === 'number') {\n result.y = y;\n } else {\n const { aggrType, field } = y;\n result.y = aggrMap[aggrType](_data, { field: field });\n }\n }\n if (option.getRefRelativeSeries) {\n result.getRefRelativeSeries = option.getRefRelativeSeries;\n }\n results.push(result);\n });\n\n return results;\n}\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/aggregation.ts"],"names":[],"mappings":"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","file":"aggregation.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IAggrType } from '../../component/marker/interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { Datum, StringOrNumber } from '../../typings';\n\nimport { isFunction, isPlainObject, isValid } from '@visactor/vutils';\nimport { variance, average, min, max, sum, standardDeviation, median } from '../../util/math';\n\nexport type IOption = {\n field: string;\n};\n\nexport type IOptionAggrField = {\n field: string;\n aggrType: IAggrType;\n};\n\nexport type IOptionPos = IOptionAggrField | string | number | StringOrNumber[];\n\nexport type IOptionSeries = {\n getRelativeSeries: () => ICartesianSeries;\n getStartRelativeSeries: () => ICartesianSeries;\n getEndRelativeSeries: () => ICartesianSeries;\n};\n\nexport type IOptionCallback = (\n relativeSeriesData: any,\n startRelativeSeriesData: any,\n endRelativeSeriesData: any\n) => IOptionPos;\n\nexport type IOptionAggr = {\n x?: IOptionPos | IOptionCallback;\n y?: IOptionPos | IOptionCallback;\n getRefRelativeSeries?: () => ICartesianSeries;\n} & IOptionSeries;\n\nexport const markerMin = (_data: Array<DataView>, opt: IOption) => {\n const data = _data[0].latestData as Datum[];\n\n return min(data, opt.field);\n};\nexport const markerMax = (_data: Array<DataView>, opt: IOption) => {\n const data = _data[0].latestData as Datum[];\n\n return max(data, opt.field);\n};\n\nexport function markerSum(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return sum(data, opt.field);\n}\nexport function markerAverage(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return average(data, opt.field);\n}\n\nexport function markerVariance(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return variance(data, opt.field);\n}\n\nexport function markerStandardDeviation(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return standardDeviation(data, opt.field);\n}\n\nexport function markerMedian(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return median(data, opt.field);\n}\n\nexport function markerAggregation(_data: Array<DataView>, options: IOptionAggr[]) {\n const aggrMap = {\n min: markerMin,\n max: markerMax,\n sum: markerSum,\n average: markerAverage,\n variance: markerVariance,\n standardDeviation: markerStandardDeviation,\n median: markerMedian\n };\n const results: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n }[] = [];\n\n options.forEach(option => {\n const result: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n } = { x: null, y: null };\n\n const relativeSeriesData = option.getRelativeSeries().getData().getLatestData();\n const startRelativeSeriesData = option.getStartRelativeSeries().getData().getLatestData();\n const endRelativeSeriesData = option.getEndRelativeSeries().getData().getLatestData();\n\n if (isValid(option.x)) {\n let x = option.x;\n if (isFunction(x)) {\n x = x(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData);\n }\n if (isPlainObject(x)) {\n const { aggrType, field } = x as IOptionAggrField;\n result.x = aggrMap[aggrType](_data, { field: field });\n } else {\n result.x = x;\n }\n }\n if (isValid(option.y)) {\n let y = option.y;\n if (isFunction(y)) {\n y = y(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData);\n }\n\n if (isPlainObject(y)) {\n const { aggrType, field } = y as IOptionAggrField;\n result.y = aggrMap[aggrType](_data, { field: field });\n } else {\n result.y = y;\n }\n }\n if (option.getRefRelativeSeries) {\n result.getRefRelativeSeries = option.getRefRelativeSeries;\n }\n results.push(result);\n });\n\n return results;\n}\n"]}
@@ -27,16 +27,26 @@ export const dimensionStatistics = (data, op) => {
27
27
 
28
28
  export const dimensionStatisticsOfSimpleData = (latestData, fields, dataFields) => {
29
29
  const result = {};
30
+ let fValues = [], nextFValues = [];
30
31
  return fields.forEach((f => {
31
32
  const key = f.key;
32
33
  result[key] = {};
33
34
  const dataFieldInKey = null == dataFields ? void 0 : dataFields[key], operations = f.operations, isNumberField = operations.some((op => "min" === op || "max" === op || "allValid" === op));
34
- let allValid = !0, fValues = latestData.reduce(((res, d) => (d && res.push(d[key]),
35
- res)), []);
35
+ let allValid = !0;
36
+ fValues.length = 0, latestData.forEach((d => {
37
+ d && fValues.push(d[key]);
38
+ }));
36
39
  const len = fValues.length;
37
- isNumberField ? (fValues = fValues.filter(couldBeValidNumber), allValid = fValues.length === len) : fValues = operations.some((op => "array-min" === op || "array-max" === op)) ? fValues.reduce(((res, entry) => (entry && entry.forEach((d => {
40
+ if (isNumberField) {
41
+ nextFValues.length = 0, fValues.forEach(((item, i) => {
42
+ couldBeValidNumber(item) && nextFValues.push(item);
43
+ }));
44
+ const t = fValues;
45
+ fValues = nextFValues, nextFValues = t, allValid = fValues.length === len;
46
+ } else fValues = operations.some((op => "array-min" === op || "array-max" === op)) ? fValues.reduce(((res, entry) => (entry && entry.forEach((d => {
38
47
  couldBeValidNumber(d) && res.push(d);
39
- })), res)), []) : fValues.filter((entry => void 0 !== entry)), operations.forEach((op => {
48
+ })), res)), []) : fValues.filter((entry => void 0 !== entry));
49
+ operations.forEach((op => {
40
50
  if (f.customize) result[key][op] = f.customize; else {
41
51
  if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) {
42
52
  if ("values" === op) return void (result[key][op] = [ ...dataFieldInKey.domain ]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/dimension-statistics.ts"],"names":[],"mappings":"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","file":"dimension-statistics.js","sourcesContent":["import { isNil, isFunction } from '@visactor/vutils';\nimport type { IFieldsMeta } from '../../typings/spec';\nimport { couldBeValidNumber } from '../../util/type';\nimport { mergeFields } from '../../util/data';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\n\nconst methods = {\n min: (arr: any[]) => {\n return arr.length ? Math.min.apply(null, arr) : 0;\n },\n max: (arr: any[]) => {\n return arr.length ? Math.max.apply(null, arr) : 0;\n },\n 'array-min': (arr: any[]) => {\n return arr.length ? Math.min.apply(null, arr) : 0;\n },\n 'array-max': (arr: any[]) => {\n return arr.length ? Math.max.apply(null, arr) : 0;\n },\n values: (arr: any[]) => {\n const map = {};\n const res: any[] = [];\n\n for (const entry of arr) {\n if (!map[entry]) {\n res.push(entry);\n map[entry] = 1;\n }\n }\n\n return res;\n }\n};\n\nexport type StatisticOperations = Array<'max' | 'min' | 'values' | 'array-max' | 'array-min' | 'allValid'>;\n\nexport interface IStatisticsOption {\n fields: {\n key: string;\n operations: StatisticOperations;\n customize?: { max: number; min: number } | any[];\n }[];\n // operations: Array<'max' | 'min' | 'values'>;\n target?: 'parser' | 'latest';\n}\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatistics = (data: Array<DataView>, op: IStatisticsOption) => {\n // const operations = op.operations;\n let fields = op.fields;\n if (isFunction(fields)) {\n fields = fields();\n }\n if (!fields?.length || !data?.length) {\n return {};\n }\n\n // merge same key\n fields = mergeFields([], fields);\n\n const dataKey = op.target === 'parser' ? 'parserData' : 'latestData';\n const latestData = data[0][dataKey] ? data[0][dataKey] : data || [];\n const dataFields = data[0].getFields?.() as Record<\n /** 字段key */\n string,\n IFieldsMeta\n >;\n\n return dimensionStatisticsOfSimpleData(latestData, fields, dataFields);\n};\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatisticsOfSimpleData = (\n latestData: Datum[],\n fields: {\n key: string;\n operations: StatisticOperations;\n customize?: { max: number; min: number } | any[];\n }[],\n dataFields?: Record<\n /** 字段key */\n string,\n IFieldsMeta\n >\n) => {\n const result = {};\n\n fields.forEach(f => {\n const key = f.key;\n // NOTE: the same key in fields has been merge already\n result[key] = {};\n const dataFieldInKey = dataFields?.[key];\n const operations: StatisticOperations = f.operations;\n const isNumberField = operations.some(op => op === 'min' || op === 'max' || op === 'allValid');\n let allValid = true;\n let fValues: any[] = latestData.reduce((res: any[], d: Datum) => {\n if (d) {\n res.push(d[key]);\n }\n return res;\n }, []);\n const len = fValues.length;\n\n if (isNumberField) {\n fValues = fValues.filter(couldBeValidNumber);\n allValid = fValues.length === len;\n } else if (operations.some(op => op === 'array-min' || op === 'array-max')) {\n fValues = fValues.reduce((res, entry) => {\n if (entry) {\n entry.forEach((d: any) => {\n if (couldBeValidNumber(d)) {\n res.push(d);\n }\n });\n }\n\n return res;\n }, []);\n } else {\n fValues = fValues.filter((entry: any) => entry !== undefined);\n }\n\n operations.forEach(op => {\n // @chensij 如果指定了计算的domain结果,则忽略计算(目前该逻辑仅在dot series中维护,因为dot series期望在filter data之后x轴改变domain,y轴不改变domain)\n if (f.customize) {\n result[key][op] = f.customize;\n } else {\n if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) {\n if (op === 'values') {\n result[key][op] = [...dataFieldInKey.domain];\n return;\n }\n } else if (op === 'allValid') {\n return;\n }\n\n result[key][op] = methods[op](fValues);\n\n if (op === 'array-max') {\n result[key].max = result[key][op];\n }\n if (op === 'array-min') {\n result[key].min = result[key][op];\n }\n }\n });\n\n if (isNumberField) {\n result[key].allValid = allValid;\n }\n });\n\n return result;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/dimension-statistics.ts"],"names":[],"mappings":"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","file":"dimension-statistics.js","sourcesContent":["import { isNil, isFunction } from '@visactor/vutils';\nimport type { IFieldsMeta } from '../../typings/spec';\nimport { couldBeValidNumber } from '../../util/type';\nimport { mergeFields } from '../../util/data';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\n\nconst methods = {\n min: (arr: any[]) => {\n return arr.length ? Math.min.apply(null, arr) : 0;\n },\n max: (arr: any[]) => {\n return arr.length ? Math.max.apply(null, arr) : 0;\n },\n 'array-min': (arr: any[]) => {\n return arr.length ? Math.min.apply(null, arr) : 0;\n },\n 'array-max': (arr: any[]) => {\n return arr.length ? Math.max.apply(null, arr) : 0;\n },\n values: (arr: any[]) => {\n const map = {};\n const res: any[] = [];\n\n for (const entry of arr) {\n if (!map[entry]) {\n res.push(entry);\n map[entry] = 1;\n }\n }\n\n return res;\n }\n};\n\nexport type StatisticOperations = Array<'max' | 'min' | 'values' | 'array-max' | 'array-min' | 'allValid'>;\n\nexport interface IStatisticsOption {\n fields: {\n key: string;\n operations: StatisticOperations;\n customize?: { max: number; min: number } | any[];\n }[];\n // operations: Array<'max' | 'min' | 'values'>;\n target?: 'parser' | 'latest';\n}\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatistics = (data: Array<DataView>, op: IStatisticsOption) => {\n // const operations = op.operations;\n let fields = op.fields;\n if (isFunction(fields)) {\n fields = fields();\n }\n if (!fields?.length || !data?.length) {\n return {};\n }\n\n // merge same key\n fields = mergeFields([], fields);\n\n const dataKey = op.target === 'parser' ? 'parserData' : 'latestData';\n const latestData = data[0][dataKey] ? data[0][dataKey] : data || [];\n const dataFields = data[0].getFields?.() as Record<\n /** 字段key */\n string,\n IFieldsMeta\n >;\n\n return dimensionStatisticsOfSimpleData(latestData, fields, dataFields);\n};\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatisticsOfSimpleData = (\n latestData: Datum[],\n fields: {\n key: string;\n operations: StatisticOperations;\n customize?: { max: number; min: number } | any[];\n }[],\n dataFields?: Record<\n /** 字段key */\n string,\n IFieldsMeta\n >\n) => {\n const result = {};\n\n let fValues: any[] = [];\n let nextFValues: any[] = [];\n fields.forEach(f => {\n const key = f.key;\n // NOTE: the same key in fields has been merge already\n result[key] = {};\n const dataFieldInKey = dataFields?.[key];\n const operations: StatisticOperations = f.operations;\n const isNumberField = operations.some(op => op === 'min' || op === 'max' || op === 'allValid');\n let allValid = true;\n fValues.length = 0;\n\n latestData.forEach((d: Datum) => {\n if (d) {\n fValues.push(d[key]);\n }\n });\n const len = fValues.length;\n\n if (isNumberField) {\n nextFValues.length = 0;\n fValues.forEach((item, i) => {\n if (couldBeValidNumber(item)) {\n nextFValues.push(item);\n }\n });\n const t = fValues;\n fValues = nextFValues;\n nextFValues = t;\n // fValues = fValues.filter(couldBeValidNumber);\n allValid = fValues.length === len;\n } else if (operations.some(op => op === 'array-min' || op === 'array-max')) {\n fValues = fValues.reduce((res, entry) => {\n if (entry) {\n entry.forEach((d: any) => {\n if (couldBeValidNumber(d)) {\n res.push(d);\n }\n });\n }\n\n return res;\n }, []);\n } else {\n fValues = fValues.filter((entry: any) => entry !== undefined);\n }\n\n operations.forEach(op => {\n // @chensij 如果指定了计算的domain结果,则忽略计算(目前该逻辑仅在dot series中维护,因为dot series期望在filter data之后x轴改变domain,y轴不改变domain)\n if (f.customize) {\n result[key][op] = f.customize;\n } else {\n if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) {\n if (op === 'values') {\n result[key][op] = [...dataFieldInKey.domain];\n return;\n }\n } else if (op === 'allValid') {\n return;\n }\n\n result[key][op] = methods[op](fValues);\n\n if (op === 'array-max') {\n result[key].max = result[key][op];\n }\n if (op === 'array-min') {\n result[key].min = result[key][op];\n }\n }\n });\n\n if (isNumberField) {\n result[key].allValid = allValid;\n }\n });\n\n return result;\n};\n"]}
@@ -10,12 +10,9 @@ export interface ISankeyOpt extends SankeyOptions {
10
10
  y1: number;
11
11
  };
12
12
  }
13
- export declare const sankey: (data: SankeyData, op: ISankeyOpt) => {
14
- nodes?: import("@visactor/vgrammar-sankey").SankeyNodeDatum[];
15
- links: import("@visactor/vgrammar-sankey").SankeyLinkDatum[];
16
- } | {
17
- nodes: import("@visactor/vgrammar-sankey").HierarchyNodeDatum[];
18
- } | {
13
+ export declare const collectHierarchyField: (set: Set<any>, data: any[], field: string) => void;
14
+ export declare const sankeyFormat: (data: any[]) => SankeyData[];
15
+ export declare const sankeyLayout: (data: SankeyData[], op: ISankeyOpt) => {
19
16
  nodes: import("@visactor/vgrammar-sankey").SankeyNodeElement[];
20
17
  links: import("@visactor/vgrammar-sankey").SankeyLinkElement[];
21
18
  columns: import("@visactor/vgrammar-sankey").SankeyNodeElement[][];
@@ -1,43 +1,57 @@
1
1
  import { SankeyLayout } from "@visactor/vgrammar-sankey";
2
2
 
3
- import { isArray, isString } from "@visactor/vutils";
3
+ import { isArray, isNil, isString } from "@visactor/vutils";
4
4
 
5
- export const sankey = (data, op) => {
6
- var _a, _b, _c;
7
- if (!data || !(null == op ? void 0 : op.view) || !isArray(data)) return data;
8
- const view = op.view();
9
- if (view.x1 - view.x0 == 0 || view.y1 - view.y0 == 0 || view.x1 - view.x0 == -1 / 0 || view.x1 - view.x0 == 1 / 0 || view.y1 - view.y0 == -1 / 0 || view.y1 - view.y0 == 1 / 0) return data;
5
+ export const collectHierarchyField = (set, data, field) => {
6
+ data.forEach((obj => {
7
+ isNil(obj[field]) || set.add(obj[field]), obj.children && obj.children.length > 0 && collectHierarchyField(set, obj.children, field);
8
+ }));
9
+ };
10
+
11
+ const convertValuesToNumbers = data => {
12
+ data.forEach((obj => {
13
+ obj.value = isString(obj.value) ? +obj.value : obj.value, obj.children && obj.children.length > 0 && convertValuesToNumbers(obj.children);
14
+ }));
15
+ };
16
+
17
+ export const sankeyFormat = data => {
18
+ var _a;
19
+ if (!data || !isArray(data)) return [];
10
20
  if (data.length > 1) {
11
21
  const updateData = {
12
22
  links: [],
13
23
  nodes: []
14
24
  };
15
- data.forEach((datum => {
25
+ return data.forEach((datum => {
16
26
  "links" !== datum.id && "nodes" !== datum.id || (updateData[datum.id] = datum.values);
17
- })), data = updateData;
18
- } else data = (null === (_a = data[0]) || void 0 === _a ? void 0 : _a.latestData) ? data[0].latestData[0] : data[0];
19
- if ("source" !== op.sourceField || "target" !== op.targetField || "value" !== op.valueField) for (const key in data) if ("links" === key) {
27
+ })), [ updateData ];
28
+ }
29
+ return (null === (_a = data[0]) || void 0 === _a ? void 0 : _a.latestData) ? data[0].latestData : data;
30
+ };
31
+
32
+ export const sankeyLayout = (data, op) => {
33
+ var _a, _b;
34
+ if (!data || !(null == op ? void 0 : op.view) || !data.length) return [];
35
+ const view = op.view();
36
+ if (view.x1 - view.x0 == 0 || view.y1 - view.y0 == 0 || view.x1 - view.x0 == -1 / 0 || view.x1 - view.x0 == 1 / 0 || view.y1 - view.y0 == -1 / 0 || view.y1 - view.y0 == 1 / 0) return [];
37
+ const originalData = data[0];
38
+ if (("source" !== op.sourceField || "target" !== op.targetField || "value" !== op.valueField) && originalData.links) {
20
39
  const updatedData = [];
21
- data[key].forEach((datum => {
40
+ originalData.links.forEach((datum => {
22
41
  const updatedDatum = {};
23
42
  for (const key in datum) key === op.sourceField ? updatedDatum.source = datum[op.sourceField] : key === op.targetField ? updatedDatum.target = datum[op.targetField] : key === op.valueField ? updatedDatum.value = datum[op.valueField] : updatedDatum[key] = datum[key];
24
43
  updatedData.push(updatedDatum);
25
- })), data[key] = updatedData;
44
+ })), originalData.links = updatedData;
26
45
  }
27
- const convertValuesToNumbers = data => {
28
- data.forEach((obj => {
29
- obj.value = isString(obj.value) ? +obj.value : obj.value, obj.children && obj.children.length > 0 && convertValuesToNumbers(obj.children);
30
- }));
31
- };
32
- for (const key in data) if ("links" === key) {
46
+ if (originalData.links) {
33
47
  const updatedData = [];
34
- data[key].forEach((datum => {
48
+ originalData.links.forEach((datum => {
35
49
  const updatedDatum = {};
36
50
  for (const key in datum) "value" === key ? updatedDatum.value = isString(datum.value) ? +datum.value : datum.value : updatedDatum[key] = datum[key];
37
51
  updatedData.push(updatedDatum);
38
- })), data[key] = updatedData;
39
- } else "nodes" === key && (null === (_c = null === (_b = data.nodes) || void 0 === _b ? void 0 : _b[0]) || void 0 === _c ? void 0 : _c.children) && convertValuesToNumbers(data.nodes);
52
+ })), originalData.links = updatedData;
53
+ } else (null === (_b = null === (_a = originalData.nodes) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.children) && convertValuesToNumbers(originalData.nodes);
40
54
  const layout = new SankeyLayout(op), result = [];
41
- return result.push(layout.layout(data, view)), result;
55
+ return result.push(layout.layout(originalData, view)), result;
42
56
  };
43
57
  //# sourceMappingURL=sankey.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type { SankeyOptions, SankeyData } from '@visactor/vgrammar-sankey';\nimport { SankeyLayout } from '@visactor/vgrammar-sankey';\nimport { isArray, isString } from '@visactor/vutils';\n\nexport interface ISankeyOpt extends SankeyOptions {\n targetField: string;\n sourceField: string;\n valueField: string;\n view: () => { x0: number; x1: number; y0: number; y1: number };\n}\n\nexport const sankey = (data: SankeyData, op: ISankeyOpt) => {\n if (!data || !op?.view || !isArray(data)) {\n return data;\n }\n\n const view = op.view();\n\n if (\n view.x1 - view.x0 === 0 ||\n view.y1 - view.y0 === 0 ||\n view.x1 - view.x0 === -Infinity ||\n view.x1 - view.x0 === Infinity ||\n view.y1 - view.y0 === -Infinity ||\n view.y1 - view.y0 === Infinity\n ) {\n return data;\n }\n\n if (data.length > 1) {\n /**\n * data structure for Fengshen:\n * [{id:’nodes’, values:[xxx]},{id:’links’, values:[xxx]}]\n */\n const updateData: SankeyData = {\n links: [],\n nodes: []\n };\n data.forEach((datum: any) => {\n if (datum.id === 'links' || datum.id === 'nodes') {\n updateData[datum.id] = datum.values;\n }\n });\n data = updateData;\n } else {\n /**\n * data structure:\n * [{nodes: [xxx], links: [xxx]}]\n */\n if (data[0]?.latestData) {\n data = data[0].latestData[0];\n } else {\n data = data[0];\n }\n }\n\n if (op.sourceField !== 'source' || op.targetField !== 'target' || op.valueField !== 'value') {\n for (const key in data) {\n if (key === 'links') {\n const updatedData: {}[] = [];\n data[key].forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === op.sourceField) {\n updatedDatum.source = datum[op.sourceField];\n } else if (key === op.targetField) {\n updatedDatum.target = datum[op.targetField];\n } else if (key === op.valueField) {\n updatedDatum.value = datum[op.valueField];\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n data[key] = updatedData;\n }\n }\n }\n\n const convertValuesToNumbers = (data: any) => {\n data.forEach((obj: any) => {\n obj.value = isString(obj.value) ? +obj.value : obj.value; // 将字符串转换为数值类型\n if (obj.children && obj.children.length > 0) {\n convertValuesToNumbers(obj.children); // 递归处理子节点\n }\n });\n };\n\n //Convert value from string to number\n for (const key in data) {\n //node-link型数据\n if (key === 'links') {\n const updatedData: {}[] = [];\n data[key].forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === 'value') {\n updatedDatum.value = isString(datum.value) ? +datum.value : datum.value; // 将字符串转换为数值类型\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n data[key] = updatedData;\n //层级型数据\n } else if (key === 'nodes') {\n if ((data.nodes?.[0] as any)?.children) {\n convertValuesToNumbers(data.nodes);\n }\n }\n }\n\n const layout = new SankeyLayout(op);\n\n const result = [];\n\n result.push(layout.layout(data, view));\n\n return result;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type { SankeyOptions, SankeyData } from '@visactor/vgrammar-sankey';\nimport { SankeyLayout } from '@visactor/vgrammar-sankey';\nimport { isArray, isNil, isString } from '@visactor/vutils';\n\nexport interface ISankeyOpt extends SankeyOptions {\n targetField: string;\n sourceField: string;\n valueField: string;\n view: () => { x0: number; x1: number; y0: number; y1: number };\n}\n\nexport const collectHierarchyField = (set: Set<any>, data: any[], field: string) => {\n data.forEach((obj: any) => {\n if (!isNil(obj[field])) {\n set.add(obj[field]);\n }\n\n if (obj.children && obj.children.length > 0) {\n collectHierarchyField(set, obj.children, field); // 递归处理子节点\n }\n });\n};\n\nconst convertValuesToNumbers = (data: any) => {\n data.forEach((obj: any) => {\n obj.value = isString(obj.value) ? +obj.value : obj.value; // 将字符串转换为数值类型\n if (obj.children && obj.children.length > 0) {\n convertValuesToNumbers(obj.children); // 递归处理子节点\n }\n });\n};\n\nexport const sankeyFormat = (data: any[]): SankeyData[] => {\n if (!data || !isArray(data)) {\n return [] as SankeyData[];\n }\n\n if (data.length > 1) {\n /**\n * data structure for Fengshen:\n * [{id:’nodes’, values:[xxx]},{id:’links’, values:[xxx]}]\n */\n const updateData: SankeyData = {\n links: [],\n nodes: []\n };\n data.forEach((datum: any) => {\n if (datum.id === 'links' || datum.id === 'nodes') {\n updateData[datum.id] = datum.values;\n }\n });\n return [updateData];\n }\n /**\n * data structure:\n * [{nodes: [xxx], links: [xxx]}]\n */\n if (data[0]?.latestData) {\n return data[0].latestData;\n }\n return data;\n};\n\nexport const sankeyLayout = (data: SankeyData[], op: ISankeyOpt) => {\n if (!data || !op?.view || !data.length) {\n return [];\n }\n\n const view = op.view();\n\n if (\n view.x1 - view.x0 === 0 ||\n view.y1 - view.y0 === 0 ||\n view.x1 - view.x0 === -Infinity ||\n view.x1 - view.x0 === Infinity ||\n view.y1 - view.y0 === -Infinity ||\n view.y1 - view.y0 === Infinity\n ) {\n return [];\n }\n\n const originalData = data[0];\n\n if (op.sourceField !== 'source' || op.targetField !== 'target' || op.valueField !== 'value') {\n if ((originalData as any).links) {\n const updatedData: {}[] = [];\n\n (originalData as any).links.forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === op.sourceField) {\n updatedDatum.source = datum[op.sourceField];\n } else if (key === op.targetField) {\n updatedDatum.target = datum[op.targetField];\n } else if (key === op.valueField) {\n updatedDatum.value = datum[op.valueField];\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n (originalData as any).links = updatedData;\n }\n }\n\n if ((originalData as any).links) {\n //node-link型数据\n const updatedData: {}[] = [];\n (originalData as any).links.forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === 'value') {\n updatedDatum.value = isString(datum.value) ? +datum.value : datum.value; // 将字符串转换为数值类型\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n (originalData as any).links = updatedData;\n } else if ((originalData as any).nodes?.[0]?.children) {\n //层级型数据\n //Convert value from string to number\n convertValuesToNumbers((originalData as any).nodes);\n }\n\n const layout = new SankeyLayout(op);\n\n const result = [];\n\n result.push(layout.layout(originalData, view));\n\n return result;\n};\n"]}
@@ -33,5 +33,4 @@ export class Bubble {
33
33
  release() {
34
34
  this._map.clear(), this._levelNodes.clear();
35
35
  }
36
- }
37
- //# sourceMappingURL=bubble.js.map
36
+ }
@@ -53,4 +53,5 @@ export class Event {
53
53
  release() {
54
54
  this._eventDispatcher.release(), this._composedEventMap.clear();
55
55
  }
56
- }
56
+ }
57
+ //# sourceMappingURL=event.js.map
@@ -10,6 +10,7 @@ export declare class DimensionEvent implements IComposedEvent {
10
10
  protected _callback: (params: BaseEventParams) => void;
11
11
  protected _chart: Maybe<IChart>;
12
12
  constructor(eventDispatcher: IEventDispatcher, mode: RenderMode);
13
+ private get chart();
13
14
  register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void;
14
15
  unregister(): void;
15
16
  protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null;
@@ -8,23 +8,27 @@ import { isDiscrete } from "@visactor/vscale";
8
8
 
9
9
  export class DimensionEvent {
10
10
  constructor(eventDispatcher, mode) {
11
+ this._eventDispatcher = eventDispatcher, this._mode = mode;
12
+ }
13
+ get chart() {
11
14
  var _a, _b;
12
- this._eventDispatcher = eventDispatcher, this._mode = mode, this._chart = null === (_b = (_a = this._eventDispatcher.globalInstance).getChart) || void 0 === _b ? void 0 : _b.call(_a);
15
+ return this._chart || (this._chart = null === (_b = (_a = this._eventDispatcher.globalInstance).getChart) || void 0 === _b ? void 0 : _b.call(_a)),
16
+ this._chart;
13
17
  }
14
18
  register(eType, handler) {
15
19
  var _a, _b;
16
- (null !== (_b = null === (_a = this._chart) || void 0 === _a ? void 0 : _a.getOption().onError) && void 0 !== _b ? _b : error)("Method not implemented.");
20
+ (null !== (_b = null === (_a = this.chart) || void 0 === _a ? void 0 : _a.getOption().onError) && void 0 !== _b ? _b : error)("Method not implemented.");
17
21
  }
18
22
  unregister() {
19
23
  var _a, _b;
20
- (null !== (_b = null === (_a = this._chart) || void 0 === _a ? void 0 : _a.getOption().onError) && void 0 !== _b ? _b : error)("Method not implemented.");
24
+ (null !== (_b = null === (_a = this.chart) || void 0 === _a ? void 0 : _a.getOption().onError) && void 0 !== _b ? _b : error)("Method not implemented.");
21
25
  }
22
26
  getTargetDimensionInfo(x, y) {
23
27
  var _a, _b;
24
- const cartesianInfo = null !== (_a = getCartesianDimensionInfo(this._chart, {
28
+ const cartesianInfo = null !== (_a = getCartesianDimensionInfo(this.chart, {
25
29
  x: x,
26
30
  y: y
27
- })) && void 0 !== _a ? _a : [], polarInfo = null !== (_b = getPolarDimensionInfo(this._chart, {
31
+ })) && void 0 !== _a ? _a : [], polarInfo = null !== (_b = getPolarDimensionInfo(this.chart, {
28
32
  x: x,
29
33
  y: y
30
34
  })) && void 0 !== _b ? _b : [], result = [].concat(cartesianInfo, polarInfo);
@@ -32,7 +36,7 @@ export class DimensionEvent {
32
36
  }
33
37
  dispatch(v, opt) {
34
38
  var _a;
35
- const axis = null === (_a = this._chart) || void 0 === _a ? void 0 : _a.getAllComponents().filter((c => {
39
+ const axis = null === (_a = this.chart) || void 0 === _a ? void 0 : _a.getAllComponents().filter((c => {
36
40
  if ("axes" !== c.specKey) return !1;
37
41
  const scale = c.getScale();
38
42
  return !!isDiscrete(scale.type) && (!(null == opt ? void 0 : opt.filter) || opt.filter(c));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAY5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,cAAc;IAQzB,YAAY,eAAiC,EAAE,IAAgB;;QAC7D,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAC,QAAQ,kDAAI,CAAC;IAClE,CAAC;IAED,QAAQ,CAAqB,KAAU,EAAE,OAAiD;;QACxF,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,UAAU;;QACR,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAES,sBAAsB,CAAC,CAAS,EAAE,CAAS;;QACnD,MAAM,aAAa,GAAG,MAAA,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,MAAA,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAErE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,CAAU,EAAE,GAA0C;;QAE7D,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACtD,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,KAAK,GAAW,CAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAE;gBACf,OAAO,GAAG,CAAC,MAAM,CAAQ,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAY,CAAC;QACd,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAmB,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,OAAO;YACf,aAAa;SACgB,CAAC,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","file":"base.js","sourcesContent":["import { error } from '../../../util/debug';\nimport type { IAxis } from '../../../component/axis/interface';\nimport type { RenderMode } from '../../../typings/spec/common';\nimport type {\n BaseEventParams,\n EventHandler,\n EventParamsDefinition,\n IComposedEvent,\n IEventDispatcher\n} from '../../interface';\nimport type { IChart } from '../../../chart/interface';\nimport type { IDimensionInfo } from './interface';\nimport { getPolarDimensionInfo } from './util/polar';\nimport { getCartesianDimensionInfo, getDimensionInfoByValue } from './util/cartesian';\nimport type { Maybe } from '../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionEvent implements IComposedEvent {\n protected _eventDispatcher: IEventDispatcher;\n protected _mode: RenderMode;\n\n protected _callback!: (params: BaseEventParams) => void;\n\n protected _chart: Maybe<IChart>;\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n\n this._chart = this._eventDispatcher.globalInstance.getChart?.();\n }\n\n register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void {\n (this._chart?.getOption().onError ?? error)('Method not implemented.');\n }\n unregister(): void {\n (this._chart?.getOption().onError ?? error)('Method not implemented.');\n }\n\n protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null {\n const cartesianInfo = getCartesianDimensionInfo(this._chart, { x, y }) ?? [];\n const polarInfo = getPolarDimensionInfo(this._chart, { x, y }) ?? [];\n\n const result = [].concat(cartesianInfo, polarInfo);\n if (result.length === 0) {\n return null;\n }\n\n return result;\n }\n\n dispatch(v: unknown, opt: { filter?: (axis: IAxis) => boolean }) {\n // get all enable axis\n const axis = this._chart?.getAllComponents().filter(c => {\n if (c.specKey !== 'axes') {\n return false;\n }\n const scale = (<IAxis>c).getScale();\n if (!isDiscrete(scale.type)) {\n return false;\n }\n if (opt?.filter) {\n return opt.filter(<IAxis>c);\n }\n return true;\n }) as IAxis[];\n const dimensionInfo: IDimensionInfo[] = [];\n axis.forEach(a => {\n const info = getDimensionInfoByValue(a as unknown as any, v);\n if (info) {\n dimensionInfo.push(info);\n }\n });\n this._callback.call(null, {\n action: 'enter',\n dimensionInfo\n } as unknown as BaseEventParams);\n return dimensionInfo;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAY5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,cAAc;IAQzB,YAAY,eAAiC,EAAE,IAAgB;QAC7D,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAY,KAAK;;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAC,QAAQ,kDAAI,CAAC;SACjE;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ,CAAqB,KAAU,EAAE,OAAiD;;QACxF,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACxE,CAAC;IACD,UAAU;;QACR,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACxE,CAAC;IAES,sBAAsB,CAAC,CAAS,EAAE,CAAS;;QACnD,MAAM,aAAa,GAAG,MAAA,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAA,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAEpE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,CAAU,EAAE,GAA0C;;QAE7D,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACrD,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,KAAK,GAAW,CAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAE;gBACf,OAAO,GAAG,CAAC,MAAM,CAAQ,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAY,CAAC;QACd,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAmB,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,OAAO;YACf,aAAa;SACgB,CAAC,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","file":"base.js","sourcesContent":["import { error } from '../../../util/debug';\nimport type { IAxis } from '../../../component/axis/interface';\nimport type { RenderMode } from '../../../typings/spec/common';\nimport type {\n BaseEventParams,\n EventHandler,\n EventParamsDefinition,\n IComposedEvent,\n IEventDispatcher\n} from '../../interface';\nimport type { IChart } from '../../../chart/interface';\nimport type { IDimensionInfo } from './interface';\nimport { getPolarDimensionInfo } from './util/polar';\nimport { getCartesianDimensionInfo, getDimensionInfoByValue } from './util/cartesian';\nimport type { Maybe } from '../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionEvent implements IComposedEvent {\n protected _eventDispatcher: IEventDispatcher;\n protected _mode: RenderMode;\n\n protected _callback!: (params: BaseEventParams) => void;\n\n protected _chart: Maybe<IChart>;\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n }\n\n private get chart() {\n if (!this._chart) {\n this._chart = this._eventDispatcher.globalInstance.getChart?.();\n }\n return this._chart;\n }\n\n register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void {\n (this.chart?.getOption().onError ?? error)('Method not implemented.');\n }\n unregister(): void {\n (this.chart?.getOption().onError ?? error)('Method not implemented.');\n }\n\n protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null {\n const cartesianInfo = getCartesianDimensionInfo(this.chart, { x, y }) ?? [];\n const polarInfo = getPolarDimensionInfo(this.chart, { x, y }) ?? [];\n\n const result = [].concat(cartesianInfo, polarInfo);\n if (result.length === 0) {\n return null;\n }\n\n return result;\n }\n\n dispatch(v: unknown, opt: { filter?: (axis: IAxis) => boolean }) {\n // get all enable axis\n const axis = this.chart?.getAllComponents().filter(c => {\n if (c.specKey !== 'axes') {\n return false;\n }\n const scale = (<IAxis>c).getScale();\n if (!isDiscrete(scale.type)) {\n return false;\n }\n if (opt?.filter) {\n return opt.filter(<IAxis>c);\n }\n return true;\n }) as IAxis[];\n const dimensionInfo: IDimensionInfo[] = [];\n axis.forEach(a => {\n const info = getDimensionInfoByValue(a as unknown as any, v);\n if (info) {\n dimensionInfo.push(info);\n }\n });\n this._callback.call(null, {\n action: 'enter',\n dimensionInfo\n } as unknown as BaseEventParams);\n return dimensionInfo;\n }\n}\n"]}
@@ -12,7 +12,7 @@ import type { TooltipEventParams } from '../component/tooltip/interface/event';
12
12
  import type { ILayoutItem } from '../layout/interface';
13
13
  export type EventType = 'pointerdown' | 'pointerup' | 'pointerupoutside' | 'pointertap' | 'pointerover' | 'pointermove' | 'pointerenter' | 'pointerleave' | 'pointerout' | 'mousedown' | 'mouseup' | 'mouseupoutside' | 'rightdown' | 'rightup' | 'rightupoutside' | 'click' | 'dblclick' | 'mousemove' | 'mouseover' | 'mouseout' | 'mouseenter' | 'mouseleave' | 'wheel' | 'touchstart' | 'touchend' | 'touchendoutside' | 'touchmove' | 'touchcancel' | 'tap' | 'dragstart' | 'drag' | 'dragenter' | 'dragleave' | 'dragover' | 'dragend' | 'drop' | 'pan' | 'panstart' | 'panend' | 'press' | 'pressup' | 'pressend' | 'pinch' | 'pinchstart' | 'pinchend' | 'swipe' | keyof typeof ChartEvent | keyof typeof VGRAMMAR_HOOK_EVENT | string;
14
14
  export type EventBubbleLevel = keyof typeof Event_Bubble_Level;
15
- export type ComponentType = 'axis' | 'dataZoom' | 'indicator' | 'legend' | 'mapLabel' | 'markLine' | 'tooltip' | 'title' | 'label';
15
+ export type ComponentType = 'axis' | 'dataZoom' | 'indicator' | 'legend' | 'mapLabel' | 'markLine' | 'markArea' | 'markPoint' | 'tooltip' | 'title' | 'label';
16
16
  export type EventTargetType = MarkType | ComponentType | SeriesType;
17
17
  export type EventSourceType = keyof typeof Event_Source_Type;
18
18
  export type EventQuery = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\nimport type { ILayoutItem } from '../layout/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'tooltip'\n | 'title'\n | 'label';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n /**\n * 是否阻止冒泡\n */\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: IGraphic;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type LayoutEventParam = {\n elements: (ILayoutItem & { type: string })[];\n} & Partial<BaseEventParams>;\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimension: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n tooltipRelease: TooltipEventParams;\n afterLayout: LayoutEventParam;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
1
+ {"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\nimport type { ILayoutItem } from '../layout/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'markArea'\n | 'markPoint'\n | 'tooltip'\n | 'title'\n | 'label';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n /**\n * 是否阻止冒泡\n */\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: IGraphic;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type LayoutEventParam = {\n elements: (ILayoutItem & { type: string })[];\n} & Partial<BaseEventParams>;\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimension: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n tooltipRelease: TooltipEventParams;\n afterLayout: LayoutEventParam;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { VChart } from './core';
2
+ export * from './core';
3
+ export { VChart };
4
+ export default VChart;
@@ -0,0 +1,35 @@
1
+ import { VChart } from "./core";
2
+
3
+ import { registerLineChart } from "./chart/line/line";
4
+
5
+ import { registerBarChart } from "./chart/bar/bar";
6
+
7
+ import { registerAreaChart } from "./chart/area/area";
8
+
9
+ import { registerPieChart } from "./chart/pie/pie";
10
+
11
+ import { registerCommonChart } from "./chart/common/common";
12
+
13
+ import { registerLabel } from "./component/label/label";
14
+
15
+ import { registerCartesianCrossHair } from "./component/crosshair/cartesian";
16
+
17
+ import { registerTooltip } from "./component/tooltip/tooltip";
18
+
19
+ import { registerDiscreteLegend } from "./component/legend/discrete/legend";
20
+
21
+ import { registerCartesianBandAxis } from "./component/axis/cartesian/band-axis";
22
+
23
+ import { registerCartesianLinearAxis } from "./component/axis/cartesian/linear-axis";
24
+
25
+ import { registerWXEnv } from "./env";
26
+
27
+ export * from "./core";
28
+
29
+ VChart.useRegisters([ registerLineChart, registerAreaChart, registerBarChart, registerPieChart, registerCommonChart, registerCartesianLinearAxis, registerCartesianBandAxis, registerDiscreteLegend, registerTooltip, registerCartesianCrossHair, registerLabel ]),
30
+ VChart.useRegisters([ registerWXEnv ]);
31
+
32
+ export { VChart };
33
+
34
+ export default VChart;
35
+ //# sourceMappingURL=index-wx-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index-wx-simple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,cAAc,QAAQ,CAAC;AAEvB,MAAM,CAAC,YAAY,CAAC;IAElB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IAGnB,2BAA2B;IAC3B,yBAAyB;IACzB,sBAAsB;IACtB,eAAe;IACf,0BAA0B;IAC1B,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,eAAe,MAAM,CAAC","file":"index-wx-simple.js","sourcesContent":["/**\n * @description 包含基础的折柱饼图,提供坐标轴、离散图例以及 tooltip、crosshair、label 组件\n */\nimport { VChart } from './core';\nimport { registerLineChart } from './chart/line/line';\nimport { registerBarChart } from './chart/bar/bar';\nimport { registerAreaChart } from './chart/area/area';\nimport { registerPieChart } from './chart/pie/pie';\nimport { registerCommonChart } from './chart/common/common';\n\nimport { registerLabel } from './component/label/label';\nimport { registerCartesianCrossHair } from './component/crosshair/cartesian';\nimport { registerTooltip } from './component/tooltip/tooltip';\nimport { registerDiscreteLegend } from './component/legend/discrete/legend';\nimport { registerCartesianBandAxis } from './component/axis/cartesian/band-axis';\nimport { registerCartesianLinearAxis } from './component/axis/cartesian/linear-axis';\nimport { registerWXEnv } from './env';\n\nexport * from './core';\n\nVChart.useRegisters([\n // charts\n registerLineChart,\n registerAreaChart,\n registerBarChart,\n registerPieChart,\n registerCommonChart,\n\n // components\n registerCartesianLinearAxis,\n registerCartesianBandAxis,\n registerDiscreteLegend,\n registerTooltip,\n registerCartesianCrossHair,\n registerLabel\n]);\n\nVChart.useRegisters([registerWXEnv]);\n\nexport { VChart };\n\nexport default VChart;\n"]}
@@ -3,7 +3,7 @@ export declare function getDefaultInteractionConfigByMode(mode: RenderMode): {
3
3
  hover: {
4
4
  enable: boolean;
5
5
  trigger: string;
6
- triggerOff: string[];
6
+ triggerOff: string;
7
7
  };
8
8
  select: {
9
9
  enable: boolean;
@@ -13,7 +13,7 @@ export declare function getDefaultInteractionConfigByMode(mode: RenderMode): {
13
13
  hover: {
14
14
  enable: boolean;
15
15
  trigger: string[];
16
- triggerOff: string[];
16
+ triggerOff: string;
17
17
  };
18
18
  select: {
19
19
  enable: boolean;
@@ -7,7 +7,7 @@ export function getDefaultInteractionConfigByMode(mode) {
7
7
  hover: {
8
8
  enable: !0,
9
9
  trigger: "pointermove",
10
- triggerOff: [ "pointermove", "pointerleave" ]
10
+ triggerOff: "pointerleave"
11
11
  },
12
12
  select: {
13
13
  enable: !0,
@@ -17,7 +17,7 @@ export function getDefaultInteractionConfigByMode(mode) {
17
17
  hover: {
18
18
  enable: !0,
19
19
  trigger: [ "pointerdown", "pointermove" ],
20
- triggerOff: [ "pointermove", "pointerleave" ]
20
+ triggerOff: "pointerleave"
21
21
  },
22
22
  select: {
23
23
  enable: !0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,UAAU,iCAAiC,CAAC,IAAgB;IAChE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;aAC5C;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,YAAY;aACtB;SACF,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;gBACvC,UAAU,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;aAC5C;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,KAAK;aACf;SACF,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"config.js","sourcesContent":["import type { RenderMode } from '../typings/spec/common';\nimport { RenderModeEnum } from '../typings/spec/common';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../util';\n\nexport function getDefaultInteractionConfigByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n hover: {\n enable: true,\n trigger: 'pointermove',\n triggerOff: ['pointermove', 'pointerleave']\n },\n select: {\n enable: true,\n trigger: 'pointertap'\n }\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n hover: {\n enable: true,\n trigger: ['pointerdown', 'pointermove'],\n triggerOff: ['pointermove', 'pointerleave']\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n };\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"sources":["../src/interaction/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,UAAU,iCAAiC,CAAC,IAAgB;IAChE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,cAAc;aAC3B;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,YAAY;aACtB;SACF,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;gBACvC,UAAU,EAAE,cAAc;aAC3B;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,KAAK;aACf;SACF,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"config.js","sourcesContent":["import type { RenderMode } from '../typings/spec/common';\nimport { RenderModeEnum } from '../typings/spec/common';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../util';\n\nexport function getDefaultInteractionConfigByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n hover: {\n enable: true,\n trigger: 'pointermove',\n triggerOff: 'pointerleave'\n },\n select: {\n enable: true,\n trigger: 'pointertap'\n }\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n hover: {\n enable: true,\n trigger: ['pointerdown', 'pointermove'],\n triggerOff: 'pointerleave'\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n };\n }\n\n return null;\n}\n"]}
@@ -22,7 +22,7 @@ export class Trigger {
22
22
  constructor(spec, option) {
23
23
  this._fields = null, this._marks = new MarkSet, this._markReverse = new MarkSet,
24
24
  this.onHover = params => {
25
- this.filterEventMark(params) && this.hoverItem(params);
25
+ this.filterEventMark(params) ? this.hoverItem(params) : this.unhoverItem();
26
26
  }, this.onUnHover = params => {
27
27
  this.filterEventMark(params) || this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_HOVER) || this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0] && this.unhoverItem();
28
28
  }, this.onSelect = params => {
@@ -137,4 +137,4 @@ export class Trigger {
137
137
  return (this._fields ? this._fields : Object.keys(datumA)).every((f => datumA[f] === datumB[f]));
138
138
  }
139
139
  }
140
- //# sourceMappingURL=trigger.js.map
140
+ //# sourceMappingURL=trigger.js.map