@visactor/vchart 1.12.0-alpha.0 → 1.12.0-alpha.4

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 (480) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +7713 -7064
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/animate-manager.js +1 -1
  6. package/cjs/animation/animate-manager.js.map +1 -1
  7. package/cjs/animation/config.js +4 -1
  8. package/cjs/animation/config.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +1 -0
  10. package/cjs/chart/base/base-chart.js +18 -9
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/cartesian/cartesian-transformer.d.ts +4 -0
  13. package/cjs/chart/cartesian/cartesian-transformer.js +25 -10
  14. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  15. package/cjs/chart/index.d.ts +5 -3
  16. package/cjs/chart/index.js +16 -2
  17. package/cjs/chart/index.js.map +1 -1
  18. package/cjs/chart/interface/type.d.ts +2 -1
  19. package/cjs/chart/interface/type.js +2 -1
  20. package/cjs/chart/interface/type.js.map +1 -1
  21. package/cjs/chart/mosaic/index.d.ts +3 -0
  22. package/cjs/chart/mosaic/index.js +22 -0
  23. package/cjs/chart/mosaic/index.js.map +1 -0
  24. package/cjs/chart/mosaic/interface.d.ts +7 -0
  25. package/cjs/chart/mosaic/interface.js +6 -0
  26. package/cjs/chart/mosaic/interface.js.map +1 -0
  27. package/cjs/chart/mosaic/mosaic-transformer.d.ts +9 -0
  28. package/cjs/chart/mosaic/mosaic-transformer.js +43 -0
  29. package/cjs/chart/mosaic/mosaic-transformer.js.map +1 -0
  30. package/cjs/chart/mosaic/mosaic.d.ts +20 -0
  31. package/cjs/chart/mosaic/mosaic.js +39 -0
  32. package/cjs/chart/mosaic/mosaic.js.map +1 -0
  33. package/cjs/chart/sankey/sankey.js +5 -3
  34. package/cjs/chart/sankey/sankey.js.map +1 -1
  35. package/cjs/chart/stack.d.ts +11 -1
  36. package/cjs/chart/stack.js +5 -4
  37. package/cjs/chart/stack.js.map +1 -1
  38. package/cjs/compile/grammar-item.js +2 -1
  39. package/cjs/compile/mark/compilable-mark.js +6 -4
  40. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  41. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  42. package/cjs/component/axis/cartesian/band-axis.d.ts +2 -2
  43. package/cjs/component/axis/cartesian/band-axis.js +2 -2
  44. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  45. package/cjs/component/axis/polar/axis.d.ts +1 -1
  46. package/cjs/component/axis/polar/axis.js +1 -1
  47. package/cjs/component/axis/polar/axis.js.map +1 -1
  48. package/cjs/component/axis/polar/band-axis.d.ts +1 -1
  49. package/cjs/component/crosshair/cartesian.js +10 -5
  50. package/cjs/component/crosshair/cartesian.js.map +1 -1
  51. package/cjs/component/crosshair/polar.js +2 -2
  52. package/cjs/component/crosshair/polar.js.map +1 -1
  53. package/cjs/component/data-zoom/data-filter-base-component.d.ts +0 -1
  54. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  55. package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  56. package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -5
  57. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  58. package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
  59. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  60. package/cjs/component/indicator/indicator.d.ts +1 -1
  61. package/cjs/component/indicator/indicator.js +4 -2
  62. package/cjs/component/indicator/indicator.js.map +1 -1
  63. package/cjs/component/indicator/interface.d.ts +3 -1
  64. package/cjs/component/indicator/interface.js.map +1 -1
  65. package/cjs/component/label/interface.d.ts +2 -1
  66. package/cjs/component/label/interface.js.map +1 -1
  67. package/cjs/component/label/label.js +8 -5
  68. package/cjs/component/label/label.js.map +1 -1
  69. package/cjs/component/label/util.d.ts +9 -0
  70. package/cjs/component/label/util.js +35 -8
  71. package/cjs/component/label/util.js.map +1 -1
  72. package/cjs/component/legend/continuous/legend.js +2 -1
  73. package/cjs/component/legend/continuous/legend.js.map +1 -1
  74. package/cjs/component/marker/base-marker.d.ts +4 -3
  75. package/cjs/component/marker/base-marker.js +6 -45
  76. package/cjs/component/marker/base-marker.js.map +1 -1
  77. package/cjs/component/marker/interface.d.ts +3 -3
  78. package/cjs/component/marker/interface.js.map +1 -1
  79. package/cjs/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  80. package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  81. package/cjs/component/marker/mark-area/interface/spec.d.ts +3 -2
  82. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  83. package/cjs/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  84. package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
  85. package/cjs/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  86. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  87. package/cjs/component/marker/mark-line/interface/spec.d.ts +5 -5
  88. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  89. package/cjs/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  90. package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
  91. package/cjs/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  92. package/cjs/component/marker/mark-point/cartesian-mark-point.js +1 -1
  93. package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  94. package/cjs/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  95. package/cjs/component/marker/mark-point/geo-mark-point.js.map +1 -1
  96. package/cjs/component/marker/mark-point/interface/spec.d.ts +4 -3
  97. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  98. package/cjs/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  99. package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
  100. package/cjs/component/marker/utils.d.ts +2 -3
  101. package/cjs/component/marker/utils.js +16 -14
  102. package/cjs/component/marker/utils.js.map +1 -1
  103. package/cjs/component/tooltip/interface/spec.d.ts +1 -0
  104. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  105. package/cjs/component/tooltip/interface/theme.d.ts +3 -2
  106. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  107. package/cjs/component/tooltip/tooltip.d.ts +2 -1
  108. package/cjs/component/tooltip/tooltip.js +5 -3
  109. package/cjs/component/tooltip/tooltip.js.map +1 -1
  110. package/cjs/component/util.js +1 -2
  111. package/cjs/constant/index.d.ts +5 -0
  112. package/cjs/constant/index.js +6 -2
  113. package/cjs/constant/index.js.map +1 -1
  114. package/cjs/core/index.d.ts +1 -2
  115. package/cjs/core/index.js +2 -2
  116. package/cjs/core/index.js.map +1 -1
  117. package/cjs/core/interface.d.ts +3 -2
  118. package/cjs/core/interface.js.map +1 -1
  119. package/cjs/core/vchart.d.ts +8 -6
  120. package/cjs/core/vchart.js +46 -27
  121. package/cjs/core/vchart.js.map +1 -1
  122. package/cjs/data/transforms/aggregation.d.ts +8 -3
  123. package/cjs/data/transforms/aggregation.js +62 -2
  124. package/cjs/data/transforms/aggregation.js.map +1 -1
  125. package/cjs/data/transforms/legend-data/continuous/continuous.js +4 -3
  126. package/cjs/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  127. package/cjs/data/transforms/legend-data/continuous/interface.d.ts +1 -0
  128. package/cjs/data/transforms/legend-data/continuous/interface.js.map +1 -1
  129. package/cjs/data/transforms/stack-split.js +2 -2
  130. package/cjs/data/transforms/stack-split.js.map +1 -1
  131. package/cjs/data/transforms/waterfall.js +17 -6
  132. package/cjs/data/transforms/waterfall.js.map +1 -1
  133. package/cjs/index-wx.d.ts +1 -0
  134. package/cjs/index-wx.js +1 -1
  135. package/cjs/index-wx.js.map +1 -1
  136. package/cjs/index.d.ts +1 -0
  137. package/cjs/index.js +5 -4
  138. package/cjs/index.js.map +1 -1
  139. package/cjs/layout/layout-item.d.ts +1 -1
  140. package/cjs/model/interface.d.ts +4 -0
  141. package/cjs/model/interface.js.map +1 -1
  142. package/cjs/plugin/components/tooltip-handler/dom/interface.d.ts +1 -0
  143. package/cjs/plugin/components/tooltip-handler/dom/interface.js.map +1 -1
  144. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.d.ts +1 -3
  145. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js +9 -14
  146. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  147. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js +7 -11
  148. package/cjs/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  149. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js +8 -6
  150. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  151. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js +6 -5
  152. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -1
  153. package/cjs/plugin/components/tooltip-handler/interface/style.d.ts +1 -0
  154. package/cjs/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  155. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +8 -3
  156. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  157. package/cjs/series/bar/bar.d.ts +0 -1
  158. package/cjs/series/bar/bar.js +38 -33
  159. package/cjs/series/bar/bar.js.map +1 -1
  160. package/cjs/series/base/base-series.js +7 -7
  161. package/cjs/series/base/base-series.js.map +1 -1
  162. package/cjs/series/base/constant.d.ts +6 -0
  163. package/cjs/series/base/constant.js +12 -2
  164. package/cjs/series/base/constant.js.map +1 -1
  165. package/cjs/series/gauge/gauge-pointer.js +3 -1
  166. package/cjs/series/gauge/gauge-pointer.js.map +1 -1
  167. package/cjs/series/interface/common.d.ts +2 -0
  168. package/cjs/series/interface/common.js.map +1 -1
  169. package/cjs/series/interface/series.d.ts +4 -1
  170. package/cjs/series/interface/series.js.map +1 -1
  171. package/cjs/series/interface/theme.d.ts +2 -0
  172. package/cjs/series/interface/theme.js +2 -1
  173. package/cjs/series/interface/theme.js.map +1 -1
  174. package/cjs/series/interface/type.d.ts +2 -1
  175. package/cjs/series/interface/type.js +1 -1
  176. package/cjs/series/interface/type.js.map +1 -1
  177. package/cjs/series/line/animation.js +7 -4
  178. package/cjs/series/line/animation.js.map +1 -1
  179. package/cjs/series/mosaic/interface.d.ts +16 -0
  180. package/cjs/series/mosaic/interface.js +6 -0
  181. package/cjs/series/mosaic/interface.js.map +1 -0
  182. package/cjs/series/mosaic/mosaic.d.ts +16 -0
  183. package/cjs/series/mosaic/mosaic.js +69 -0
  184. package/cjs/series/mosaic/mosaic.js.map +1 -0
  185. package/cjs/series/polar/animation.js +12 -3
  186. package/cjs/series/polar/animation.js.map +1 -1
  187. package/cjs/series/polar/progress-like/progress-like.js +2 -2
  188. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  189. package/cjs/series/rose/animation.js +8 -2
  190. package/cjs/series/rose/animation.js.map +1 -1
  191. package/cjs/series/sankey/interface.d.ts +5 -4
  192. package/cjs/series/sankey/interface.js.map +1 -1
  193. package/cjs/series/sankey/sankey-transformer.d.ts +5 -0
  194. package/cjs/series/sankey/sankey-transformer.js +16 -0
  195. package/cjs/series/sankey/sankey-transformer.js.map +1 -0
  196. package/cjs/series/sankey/sankey.d.ts +7 -2
  197. package/cjs/series/sankey/sankey.js +47 -151
  198. package/cjs/series/sankey/sankey.js.map +1 -1
  199. package/cjs/series/treemap/treemap.d.ts +1 -0
  200. package/cjs/series/treemap/treemap.js +2 -1
  201. package/cjs/series/treemap/treemap.js.map +1 -1
  202. package/cjs/series/word-cloud/interface.d.ts +1 -1
  203. package/cjs/series/word-cloud/interface.js.map +1 -1
  204. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +24 -0
  205. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  206. package/cjs/theme/builtin/common/component/tooltip.js +0 -2
  207. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  208. package/cjs/theme/builtin/common/series/index.js +3 -2
  209. package/cjs/theme/builtin/common/series/index.js.map +1 -1
  210. package/cjs/theme/builtin/common/series/mosaic.d.ts +2 -0
  211. package/cjs/theme/builtin/common/series/mosaic.js +27 -0
  212. package/cjs/theme/builtin/common/series/mosaic.js.map +1 -0
  213. package/cjs/theme/builtin/common/series/pie.js +1 -0
  214. package/cjs/theme/builtin/common/series/pie.js.map +1 -1
  215. package/cjs/theme/builtin/common/series/pie3d.js +1 -0
  216. package/cjs/theme/builtin/common/series/pie3d.js.map +1 -1
  217. package/cjs/theme/builtin/dark/color-scheme.js +4 -1
  218. package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
  219. package/cjs/theme/builtin/light/color-scheme.js +4 -1
  220. package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
  221. package/cjs/theme/interface.d.ts +2 -2
  222. package/cjs/theme/interface.js.map +1 -1
  223. package/cjs/typings/spec/common.d.ts +2 -2
  224. package/cjs/typings/spec/common.js.map +1 -1
  225. package/cjs/typings/visual.d.ts +2 -2
  226. package/cjs/typings/visual.js.map +1 -1
  227. package/cjs/util/data.d.ts +24 -1
  228. package/cjs/util/data.js +88 -17
  229. package/cjs/util/data.js.map +1 -1
  230. package/cjs/util/hierarchy.d.ts +2 -0
  231. package/cjs/util/hierarchy.js +16 -3
  232. package/cjs/util/hierarchy.js.map +1 -1
  233. package/cjs/util/spec/index.d.ts +0 -1
  234. package/cjs/util/spec/index.js +1 -1
  235. package/cjs/util/spec/index.js.map +1 -1
  236. package/cjs/util/style.d.ts +1 -0
  237. package/cjs/util/style.js +11 -2
  238. package/cjs/util/style.js.map +1 -1
  239. package/esm/animation/animate-manager.js +1 -1
  240. package/esm/animation/animate-manager.js.map +1 -1
  241. package/esm/animation/config.js +4 -1
  242. package/esm/animation/config.js.map +1 -1
  243. package/esm/chart/base/base-chart.d.ts +1 -0
  244. package/esm/chart/base/base-chart.js +20 -11
  245. package/esm/chart/base/base-chart.js.map +1 -1
  246. package/esm/chart/cartesian/cartesian-transformer.d.ts +4 -0
  247. package/esm/chart/cartesian/cartesian-transformer.js +25 -10
  248. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  249. package/esm/chart/index.d.ts +5 -3
  250. package/esm/chart/index.js +4 -2
  251. package/esm/chart/index.js.map +1 -1
  252. package/esm/chart/interface/type.d.ts +2 -1
  253. package/esm/chart/interface/type.js +2 -1
  254. package/esm/chart/interface/type.js.map +1 -1
  255. package/esm/chart/mosaic/index.d.ts +3 -0
  256. package/esm/chart/mosaic/index.js +6 -0
  257. package/esm/chart/mosaic/index.js.map +1 -0
  258. package/esm/chart/mosaic/interface.d.ts +7 -0
  259. package/esm/chart/mosaic/interface.js +2 -0
  260. package/esm/chart/mosaic/interface.js.map +1 -0
  261. package/esm/chart/mosaic/mosaic-transformer.d.ts +9 -0
  262. package/esm/chart/mosaic/mosaic-transformer.js +37 -0
  263. package/esm/chart/mosaic/mosaic-transformer.js.map +1 -0
  264. package/esm/chart/mosaic/mosaic.d.ts +20 -0
  265. package/esm/chart/mosaic/mosaic.js +41 -0
  266. package/esm/chart/mosaic/mosaic.js.map +1 -0
  267. package/esm/chart/sankey/sankey.js +5 -3
  268. package/esm/chart/sankey/sankey.js.map +1 -1
  269. package/esm/chart/stack.d.ts +11 -1
  270. package/esm/chart/stack.js +5 -4
  271. package/esm/chart/stack.js.map +1 -1
  272. package/esm/compile/grammar-item.js +2 -1
  273. package/esm/compile/mark/compilable-mark.js +6 -4
  274. package/esm/compile/mark/compilable-mark.js.map +1 -1
  275. package/esm/component/axis/cartesian/axis.js.map +1 -1
  276. package/esm/component/axis/cartesian/band-axis.d.ts +2 -2
  277. package/esm/component/axis/cartesian/band-axis.js +2 -2
  278. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  279. package/esm/component/axis/polar/axis.d.ts +1 -1
  280. package/esm/component/axis/polar/axis.js +1 -1
  281. package/esm/component/axis/polar/axis.js.map +1 -1
  282. package/esm/component/axis/polar/band-axis.d.ts +1 -1
  283. package/esm/component/crosshair/cartesian.js +10 -5
  284. package/esm/component/crosshair/cartesian.js.map +1 -1
  285. package/esm/component/crosshair/polar.js +2 -2
  286. package/esm/component/crosshair/polar.js.map +1 -1
  287. package/esm/component/data-zoom/data-filter-base-component.d.ts +0 -1
  288. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  289. package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -1
  290. package/esm/component/data-zoom/data-zoom/data-zoom.js +19 -5
  291. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  292. package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
  293. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  294. package/esm/component/indicator/indicator.d.ts +1 -1
  295. package/esm/component/indicator/indicator.js +4 -4
  296. package/esm/component/indicator/indicator.js.map +1 -1
  297. package/esm/component/indicator/interface.d.ts +3 -1
  298. package/esm/component/indicator/interface.js.map +1 -1
  299. package/esm/component/label/interface.d.ts +2 -1
  300. package/esm/component/label/interface.js.map +1 -1
  301. package/esm/component/label/label.js +9 -5
  302. package/esm/component/label/label.js.map +1 -1
  303. package/esm/component/label/util.d.ts +9 -0
  304. package/esm/component/label/util.js +34 -5
  305. package/esm/component/label/util.js.map +1 -1
  306. package/esm/component/legend/continuous/legend.js +2 -1
  307. package/esm/component/legend/continuous/legend.js.map +1 -1
  308. package/esm/component/marker/base-marker.d.ts +4 -3
  309. package/esm/component/marker/base-marker.js +6 -39
  310. package/esm/component/marker/base-marker.js.map +1 -1
  311. package/esm/component/marker/interface.d.ts +3 -3
  312. package/esm/component/marker/interface.js.map +1 -1
  313. package/esm/component/marker/mark-area/cartesian-mark-area.d.ts +2 -2
  314. package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
  315. package/esm/component/marker/mark-area/interface/spec.d.ts +3 -2
  316. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  317. package/esm/component/marker/mark-area/polar-mark-area.d.ts +2 -2
  318. package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
  319. package/esm/component/marker/mark-line/cartesian-mark-line.d.ts +2 -2
  320. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  321. package/esm/component/marker/mark-line/interface/spec.d.ts +5 -5
  322. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  323. package/esm/component/marker/mark-line/polar-mark-line.d.ts +2 -2
  324. package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
  325. package/esm/component/marker/mark-point/cartesian-mark-point.d.ts +2 -2
  326. package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
  327. package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
  328. package/esm/component/marker/mark-point/geo-mark-point.d.ts +2 -1
  329. package/esm/component/marker/mark-point/geo-mark-point.js.map +1 -1
  330. package/esm/component/marker/mark-point/interface/spec.d.ts +4 -3
  331. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  332. package/esm/component/marker/mark-point/polar-mark-point.d.ts +2 -1
  333. package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
  334. package/esm/component/marker/utils.d.ts +2 -3
  335. package/esm/component/marker/utils.js +16 -14
  336. package/esm/component/marker/utils.js.map +1 -1
  337. package/esm/component/tooltip/interface/spec.d.ts +1 -0
  338. package/esm/component/tooltip/interface/spec.js.map +1 -1
  339. package/esm/component/tooltip/interface/theme.d.ts +3 -2
  340. package/esm/component/tooltip/interface/theme.js.map +1 -1
  341. package/esm/component/tooltip/tooltip.d.ts +2 -1
  342. package/esm/component/tooltip/tooltip.js +5 -3
  343. package/esm/component/tooltip/tooltip.js.map +1 -1
  344. package/esm/component/util.js +1 -2
  345. package/esm/constant/index.d.ts +5 -0
  346. package/esm/constant/index.js +10 -0
  347. package/esm/constant/index.js.map +1 -1
  348. package/esm/core/index.d.ts +1 -2
  349. package/esm/core/index.js +1 -3
  350. package/esm/core/index.js.map +1 -1
  351. package/esm/core/interface.d.ts +3 -2
  352. package/esm/core/interface.js.map +1 -1
  353. package/esm/core/vchart.d.ts +8 -6
  354. package/esm/core/vchart.js +47 -28
  355. package/esm/core/vchart.js.map +1 -1
  356. package/esm/data/transforms/aggregation.d.ts +8 -3
  357. package/esm/data/transforms/aggregation.js +60 -2
  358. package/esm/data/transforms/aggregation.js.map +1 -1
  359. package/esm/data/transforms/legend-data/continuous/continuous.js +4 -2
  360. package/esm/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  361. package/esm/data/transforms/legend-data/continuous/interface.d.ts +1 -0
  362. package/esm/data/transforms/legend-data/continuous/interface.js.map +1 -1
  363. package/esm/data/transforms/stack-split.js +2 -2
  364. package/esm/data/transforms/stack-split.js.map +1 -1
  365. package/esm/data/transforms/waterfall.js +17 -6
  366. package/esm/data/transforms/waterfall.js.map +1 -1
  367. package/esm/index-wx.d.ts +1 -0
  368. package/esm/index-wx.js +2 -0
  369. package/esm/index-wx.js.map +1 -1
  370. package/esm/index.d.ts +1 -0
  371. package/esm/index.js +2 -0
  372. package/esm/index.js.map +1 -1
  373. package/esm/layout/layout-item.d.ts +1 -1
  374. package/esm/model/interface.d.ts +4 -0
  375. package/esm/model/interface.js.map +1 -1
  376. package/esm/plugin/components/tooltip-handler/dom/interface.d.ts +1 -0
  377. package/esm/plugin/components/tooltip-handler/dom/interface.js.map +1 -1
  378. package/esm/plugin/components/tooltip-handler/dom/model/content-model.d.ts +1 -3
  379. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js +9 -14
  380. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  381. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js +5 -9
  382. package/esm/plugin/components/tooltip-handler/dom/model/shape-model.js.map +1 -1
  383. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js +8 -6
  384. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  385. package/esm/plugin/components/tooltip-handler/dom/utils/style.js +5 -4
  386. package/esm/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -1
  387. package/esm/plugin/components/tooltip-handler/interface/style.d.ts +1 -0
  388. package/esm/plugin/components/tooltip-handler/interface/style.js.map +1 -1
  389. package/esm/plugin/components/tooltip-handler/utils/attribute.js +7 -2
  390. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  391. package/esm/series/bar/bar.d.ts +0 -1
  392. package/esm/series/bar/bar.js +39 -34
  393. package/esm/series/bar/bar.js.map +1 -1
  394. package/esm/series/base/base-series.js +8 -7
  395. package/esm/series/base/base-series.js.map +1 -1
  396. package/esm/series/base/constant.d.ts +6 -0
  397. package/esm/series/base/constant.js +13 -0
  398. package/esm/series/base/constant.js.map +1 -1
  399. package/esm/series/gauge/gauge-pointer.js +3 -2
  400. package/esm/series/gauge/gauge-pointer.js.map +1 -1
  401. package/esm/series/interface/common.d.ts +2 -0
  402. package/esm/series/interface/common.js.map +1 -1
  403. package/esm/series/interface/series.d.ts +4 -1
  404. package/esm/series/interface/series.js.map +1 -1
  405. package/esm/series/interface/theme.d.ts +2 -0
  406. package/esm/series/interface/theme.js +2 -1
  407. package/esm/series/interface/theme.js.map +1 -1
  408. package/esm/series/interface/type.d.ts +2 -1
  409. package/esm/series/interface/type.js +1 -1
  410. package/esm/series/interface/type.js.map +1 -1
  411. package/esm/series/line/animation.js +7 -4
  412. package/esm/series/line/animation.js.map +1 -1
  413. package/esm/series/mosaic/interface.d.ts +16 -0
  414. package/esm/series/mosaic/interface.js +2 -0
  415. package/esm/series/mosaic/interface.js.map +1 -0
  416. package/esm/series/mosaic/mosaic.d.ts +16 -0
  417. package/esm/series/mosaic/mosaic.js +78 -0
  418. package/esm/series/mosaic/mosaic.js.map +1 -0
  419. package/esm/series/polar/animation.js +10 -4
  420. package/esm/series/polar/animation.js.map +1 -1
  421. package/esm/series/polar/progress-like/progress-like.js +2 -2
  422. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  423. package/esm/series/rose/animation.js +8 -2
  424. package/esm/series/rose/animation.js.map +1 -1
  425. package/esm/series/sankey/interface.d.ts +5 -4
  426. package/esm/series/sankey/interface.js.map +1 -1
  427. package/esm/series/sankey/sankey-transformer.d.ts +5 -0
  428. package/esm/series/sankey/sankey-transformer.js +8 -0
  429. package/esm/series/sankey/sankey-transformer.js.map +1 -0
  430. package/esm/series/sankey/sankey.d.ts +7 -2
  431. package/esm/series/sankey/sankey.js +49 -147
  432. package/esm/series/sankey/sankey.js.map +1 -1
  433. package/esm/series/treemap/treemap.d.ts +1 -0
  434. package/esm/series/treemap/treemap.js +2 -1
  435. package/esm/series/treemap/treemap.js.map +1 -1
  436. package/esm/series/word-cloud/interface.d.ts +1 -1
  437. package/esm/series/word-cloud/interface.js.map +1 -1
  438. package/esm/theme/builtin/common/component/legend/discrete-legend.js +24 -0
  439. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  440. package/esm/theme/builtin/common/component/tooltip.js +0 -2
  441. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  442. package/esm/theme/builtin/common/series/index.js +4 -1
  443. package/esm/theme/builtin/common/series/index.js.map +1 -1
  444. package/esm/theme/builtin/common/series/mosaic.d.ts +2 -0
  445. package/esm/theme/builtin/common/series/mosaic.js +23 -0
  446. package/esm/theme/builtin/common/series/mosaic.js.map +1 -0
  447. package/esm/theme/builtin/common/series/pie.js +1 -0
  448. package/esm/theme/builtin/common/series/pie.js.map +1 -1
  449. package/esm/theme/builtin/common/series/pie3d.js +1 -0
  450. package/esm/theme/builtin/common/series/pie3d.js.map +1 -1
  451. package/esm/theme/builtin/dark/color-scheme.js +4 -1
  452. package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
  453. package/esm/theme/builtin/light/color-scheme.js +4 -1
  454. package/esm/theme/builtin/light/color-scheme.js.map +1 -1
  455. package/esm/theme/interface.d.ts +2 -2
  456. package/esm/theme/interface.js.map +1 -1
  457. package/esm/typings/spec/common.d.ts +2 -2
  458. package/esm/typings/spec/common.js.map +1 -1
  459. package/esm/typings/visual.d.ts +2 -2
  460. package/esm/typings/visual.js.map +1 -1
  461. package/esm/util/data.d.ts +24 -1
  462. package/esm/util/data.js +86 -17
  463. package/esm/util/data.js.map +1 -1
  464. package/esm/util/hierarchy.d.ts +2 -0
  465. package/esm/util/hierarchy.js +14 -0
  466. package/esm/util/hierarchy.js.map +1 -1
  467. package/esm/util/spec/index.d.ts +0 -1
  468. package/esm/util/spec/index.js +0 -2
  469. package/esm/util/spec/index.js.map +1 -1
  470. package/esm/util/style.d.ts +1 -0
  471. package/esm/util/style.js +8 -0
  472. package/esm/util/style.js.map +1 -1
  473. package/package.json +18 -18
  474. package/build/index.es.js +0 -101358
  475. package/cjs/util/spec/background.d.ts +0 -4
  476. package/cjs/util/spec/background.js +0 -21
  477. package/cjs/util/spec/background.js.map +0 -1
  478. package/esm/util/spec/background.d.ts +0 -4
  479. package/esm/util/spec/background.js +0 -13
  480. package/esm/util/spec/background.js.map +0 -1
@@ -14,6 +14,7 @@ export declare function mergeFields(targetFields: {
14
14
  }[];
15
15
  export declare function getFieldAlias(dataView: DataView, field: string): any;
16
16
  export interface IStackCacheNode {
17
+ groupField?: string;
17
18
  values: any[];
18
19
  series: {
19
20
  s: ISeries;
@@ -28,8 +29,11 @@ export interface IStackCacheNode {
28
29
  [key: string]: IStackCacheNode;
29
30
  };
30
31
  key: string;
32
+ total?: number;
31
33
  }
32
34
  export interface IStackCacheRoot {
35
+ groupField?: string;
36
+ total?: number;
33
37
  nodes: {
34
38
  [key: string]: IStackCacheNode;
35
39
  };
@@ -51,6 +55,25 @@ export declare function sortStackValueGroup(stackValueGroup: {
51
55
  [key: string]: IStackCacheNode;
52
56
  };
53
57
  export declare function stackTotal(stackData: IStackCacheNode, valueField: string): void;
58
+ export interface IMosaicData {
59
+ groupField?: string;
60
+ groupValue?: string;
61
+ value?: number;
62
+ end?: number;
63
+ start?: number;
64
+ startPercent?: number;
65
+ endPercent?: number;
66
+ }
67
+ export declare function stackMosaicTotal(stackData: IStackCacheNode, valueField: string): void;
68
+ export declare function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]): void;
54
69
  export declare function stackOffsetSilhouette(stackCache: IStackCacheNode): void;
55
- export declare function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean): void;
70
+ export declare function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean, hasMinMax?: boolean, fields?: {
71
+ key: string;
72
+ start: string;
73
+ end: string;
74
+ startPercent: string;
75
+ endPercent: string;
76
+ min?: string;
77
+ max?: string;
78
+ }): void;
56
79
  export declare function stackGroup(s: ISeries, stackData: ISeriesStackDataMeta, stackCache: IStackCacheNode, valueField: string, setInitialValue: boolean, stackSortCache: IStackSortCache, stackKey?: string): void;
package/cjs/util/data.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.stackGroup = exports.stack = exports.stackOffsetSilhouette = exports.stackTotal = exports.sortStackValueGroup = exports.getRegionStackGroup = exports.getFieldAlias = exports.mergeFields = void 0;
5
+ }), exports.stackGroup = exports.stack = exports.stackOffsetSilhouette = exports.stackMosaic = exports.stackMosaicTotal = exports.stackTotal = exports.sortStackValueGroup = exports.getRegionStackGroup = exports.getFieldAlias = exports.mergeFields = void 0;
6
6
 
7
7
  const constant_1 = require("../constant"), type_1 = require("./type"), math_1 = require("./math");
8
8
 
@@ -44,6 +44,7 @@ function getRegionStackGroup(region, setInitialValue, filter) {
44
44
  var _a;
45
45
  const stackData = s.getStackData(), stackValue = s.getStackValue(), stackValueField = s.getStackValueField(), filterEnable = !filter || filter(s);
46
46
  stackData && stackValueField && filterEnable && (stackValueGroup[stackValue] = null !== (_a = stackValueGroup[stackValue]) && void 0 !== _a ? _a : {
47
+ groupField: stackData.groupField,
47
48
  nodes: {}
48
49
  }, stackGroup(s, stackData, stackValueGroup[stackValue], stackValueField, setInitialValue, stackSortCache));
49
50
  })), stackSort ? sortStackValueGroup(stackValueGroup, stackSortCache) : stackValueGroup;
@@ -60,13 +61,68 @@ function stackTotal(stackData, valueField) {
60
61
  if ("values" in stackData && stackData.values.length) {
61
62
  const total = (0, math_1.sum)(stackData.values, valueField), percent = (0, math_1.max)(stackData.values, constant_1.STACK_FIELD_END_PERCENT);
62
63
  stackData.values.forEach((v => {
63
- v[constant_1.STACK_FIELD_TOTAL] = total, v[constant_1.STACK_FIELD_TOTAL_PERCENT] = percent,
64
- delete v[constant_1.STACK_FIELD_TOTAL_TOP];
64
+ v[constant_1.STACK_FIELD_TOTAL] = total, v[constant_1.STACK_FIELD_TOTAL_PERCENT] = percent;
65
65
  }));
66
- stackData.values.reduce(((max, current) => current[constant_1.STACK_FIELD_END] > max[constant_1.STACK_FIELD_END] ? current : max))[constant_1.STACK_FIELD_TOTAL_TOP] = !0;
67
66
  } else for (const key in stackData.nodes) stackTotal(stackData.nodes[key], valueField);
68
67
  }
69
68
 
69
+ function stackMosaicTotal(stackData, valueField) {
70
+ var _a, _b;
71
+ if ("values" in stackData && stackData.values.length) (0, type_1.isValid)(null === (_a = stackData.values[0]) || void 0 === _a ? void 0 : _a[constant_1.STACK_FIELD_TOTAL]) ? stackData.total = null === (_b = stackData.values[0]) || void 0 === _b ? void 0 : _b[constant_1.STACK_FIELD_TOTAL] : stackData.total = (0,
72
+ math_1.sum)(stackData.values, valueField); else {
73
+ for (const key in stackData.nodes) stackMosaicTotal(stackData.nodes[key], valueField);
74
+ stackData.nodes && (stackData.total = (0, math_1.sum)(Object.keys(stackData.nodes).map((key => stackData.nodes[key])), "total"));
75
+ }
76
+ }
77
+
78
+ function stackMosaic(s, stackCache, mosaicData) {
79
+ var _a;
80
+ if (stackCache.groupField && stackCache.nodes) {
81
+ const groupValues = (null === (_a = s.getRawDataStatisticsByField(stackCache.groupField, !1)) || void 0 === _a ? void 0 : _a.values) || [], mosaicStackData = {
82
+ key: `${stackCache.groupField}`,
83
+ values: groupValues.map((group => {
84
+ const groupValues = stackCache.nodes[group];
85
+ return {
86
+ groupValue: group,
87
+ value: groupValues.total,
88
+ end: groupValues.total
89
+ };
90
+ }))
91
+ };
92
+ stack(mosaicStackData, !1, !0, !1, {
93
+ key: "groupField",
94
+ start: "start",
95
+ end: "end",
96
+ startPercent: "startPercent",
97
+ endPercent: "endPercent"
98
+ }), mosaicStackData.values.forEach((stackValue => {
99
+ stackCache.nodes[stackValue.groupValue].mosaicData = stackValue;
100
+ }));
101
+ } else if ("values" in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {
102
+ const len = mosaicData.length;
103
+ let catStartPercent = 0, catEndPercent = 1, valueStartPercent = 0, valueEndPercent = 1;
104
+ for (let i = 0; i < len; i++) if (i % 2 == 0) {
105
+ const catDelta = catEndPercent - catStartPercent;
106
+ catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta, catStartPercent += mosaicData[i].startPercent * catDelta;
107
+ } else {
108
+ const valueDelta = valueEndPercent - valueStartPercent;
109
+ valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta, valueStartPercent += mosaicData[i].startPercent * valueDelta;
110
+ }
111
+ len % 2 == 0 ? stackCache.values.forEach((v => {
112
+ const delta = catEndPercent - catStartPercent;
113
+ v[constant_1.MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[constant_1.STACK_FIELD_END_PERCENT],
114
+ v[constant_1.MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[constant_1.STACK_FIELD_START_PERCENT],
115
+ v[constant_1.MOSAIC_VALUE_END_PERCENT] = valueEndPercent, v[constant_1.MOSAIC_VALUE_START_PERCENT] = valueStartPercent;
116
+ })) : stackCache.values.forEach((v => {
117
+ const delta = valueEndPercent - valueStartPercent;
118
+ v[constant_1.MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[constant_1.STACK_FIELD_END_PERCENT],
119
+ v[constant_1.MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[constant_1.STACK_FIELD_START_PERCENT],
120
+ v[constant_1.MOSAIC_CAT_END_PERCENT] = catEndPercent, v[constant_1.MOSAIC_CAT_START_PERCENT] = catStartPercent;
121
+ }));
122
+ }
123
+ for (const key in stackCache.nodes) stackMosaic(s, stackCache.nodes[key], stackCache.nodes[key].mosaicData ? mosaicData ? [ ...mosaicData, stackCache.nodes[key].mosaicData ] : [ stackCache.nodes[key].mosaicData ] : null);
124
+ }
125
+
70
126
  function stackOffsetSilhouette(stackCache) {
71
127
  if (!stackCache.values.length) return;
72
128
  const centerValue = stackCache.values[stackCache.values.length - 1][constant_1.STACK_FIELD_END] / 2;
@@ -74,29 +130,42 @@ function stackOffsetSilhouette(stackCache) {
74
130
  stackCache.values[j][constant_1.STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][constant_1.STACK_FIELD_END] - centerValue;
75
131
  }
76
132
 
77
- function stack(stackCache, stackInverse, hasPercent) {
133
+ function stack(stackCache, stackInverse, hasPercent, hasMinMax, fields = {
134
+ key: constant_1.STACK_FIELD_KEY,
135
+ start: constant_1.STACK_FIELD_START,
136
+ end: constant_1.STACK_FIELD_END,
137
+ startPercent: constant_1.STACK_FIELD_START_PERCENT,
138
+ endPercent: constant_1.STACK_FIELD_END_PERCENT,
139
+ max: constant_1.STACK_FIELD_TOTAL_TOP,
140
+ min: constant_1.STACK_FIELD_TOTAL_BOTTOM
141
+ }) {
142
+ const hasMinField = hasMinMax && (0, type_1.isValid)(fields.min), hasMaxField = hasMinMax && (0,
143
+ type_1.isValid)(fields.max);
78
144
  if (stackCache.values.length > 0) {
79
- let positiveStart = 0, negativeStart = 0, sign = 1, value = 0;
145
+ let positiveStart = 0, negativeStart = 0, sign = 1, value = 0, minNode = null, maxNode = null;
80
146
  const maxLength = stackCache.values.length;
81
147
  for (let index = 0; index < maxLength; index++) {
82
148
  const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
83
- value = v[constant_1.STACK_FIELD_END], value >= 0 ? (v[constant_1.STACK_FIELD_START] = positiveStart,
84
- positiveStart += v[constant_1.STACK_FIELD_END], v[constant_1.STACK_FIELD_END] = positiveStart) : (v[constant_1.STACK_FIELD_START] = negativeStart,
85
- negativeStart += v[constant_1.STACK_FIELD_END], v[constant_1.STACK_FIELD_END] = negativeStart),
86
- v[constant_1.STACK_FIELD_KEY] = stackCache.key;
149
+ value = v[fields.end], value >= 0 ? (v[fields.start] = positiveStart, positiveStart += v[fields.end],
150
+ v[fields.end] = positiveStart) : (v[fields.start] = negativeStart, negativeStart += v[fields.end],
151
+ v[fields.end] = negativeStart), v[fields.key] = stackCache.key, hasMaxField && (delete v[fields.max],
152
+ (!maxNode || v[fields.end] > maxNode[fields.end]) && (maxNode = v)), hasMinField && (delete v[fields.min],
153
+ (!minNode || v[fields.start] < minNode[fields.start]) && (minNode = v));
87
154
  }
88
- if (hasPercent) for (let index = 0; index < maxLength; index++) {
155
+ if (hasMaxField && maxNode && (maxNode[fields.max] = !0), hasMinField && minNode && (minNode[fields.min] = !0),
156
+ hasPercent) for (let index = 0; index < maxLength; index++) {
89
157
  const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
90
- value = v[constant_1.STACK_FIELD_END];
158
+ value = v[fields.end];
91
159
  const denominator = value >= 0 ? positiveStart : negativeStart;
92
- sign = value >= 0 ? 1 : -1, v[constant_1.STACK_FIELD_START_PERCENT] = 0 === denominator ? 0 : Math.min(1, v[constant_1.STACK_FIELD_START] / denominator) * sign,
93
- v[constant_1.STACK_FIELD_END_PERCENT] = 0 === denominator ? 0 : Math.min(1, v[constant_1.STACK_FIELD_END] / denominator) * sign;
160
+ sign = value >= 0 ? 1 : -1, v[fields.startPercent] = 0 === denominator ? 0 : Math.min(1, v[fields.start] / denominator) * sign,
161
+ v[fields.endPercent] = 0 === denominator ? 0 : Math.min(1, v[fields.end] / denominator) * sign;
94
162
  }
95
163
  }
96
- for (const key in stackCache.nodes) stack(stackCache.nodes[key], stackInverse, hasPercent);
164
+ for (const key in stackCache.nodes) stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);
97
165
  }
98
166
 
99
167
  function stackGroup(s, stackData, stackCache, valueField, setInitialValue, stackSortCache, stackKey) {
168
+ var _a;
100
169
  if ("values" in stackData) if (setInitialValue && stackData.values.forEach((v => v[constant_1.STACK_FIELD_END] = (0,
101
170
  type_1.toValidNumber)(v[valueField]))), stackCache.series.push({
102
171
  s: s,
@@ -112,17 +181,19 @@ function stackGroup(s, stackData, stackCache, valueField, setInitialValue, stack
112
181
  }));
113
182
  } else stackCache.values.push(...stackData.values); else for (const key in stackData.nodes) {
114
183
  const newStackKey = stackKey ? `${stackKey}_${key}` : key;
115
- !stackCache.nodes[key] && (stackCache.nodes[key] = {
184
+ stackCache.nodes[key] || (stackCache.nodes[key] = {
116
185
  values: [],
117
186
  series: [],
118
187
  nodes: {},
119
188
  sortDatums: [],
120
189
  key: newStackKey
121
- }), stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
190
+ }, (0, type_1.isValid)(null === (_a = stackData.nodes[key]) || void 0 === _a ? void 0 : _a.groupField) && (stackCache.nodes[key].groupField = stackData.nodes[key].groupField)),
191
+ stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
122
192
  }
123
193
  }
124
194
 
125
195
  exports.mergeFields = mergeFields, exports.getFieldAlias = getFieldAlias, exports.getRegionStackGroup = getRegionStackGroup,
126
196
  exports.sortStackValueGroup = sortStackValueGroup, exports.stackTotal = stackTotal,
197
+ exports.stackMosaicTotal = stackMosaicTotal, exports.stackMosaic = stackMosaic,
127
198
  exports.stackOffsetSilhouette = stackOffsetSilhouette, exports.stack = stack, exports.stackGroup = stackGroup;
128
199
  //# sourceMappingURL=data.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/dimension-statistics';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY\n} from '../constant';\nimport { toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n}\nexport interface IStackCacheRoot {\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n delete v[STACK_FIELD_TOTAL_TOP];\n });\n const maxNode = stackData.values.reduce((max, current) => {\n return current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max;\n });\n maxNode[STACK_FIELD_TOTAL_TOP] = true;\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(stackCache: IStackCacheNode, stackInverse: boolean, hasPercent?: boolean) {\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[STACK_FIELD_END];\n if (value >= 0) {\n v[STACK_FIELD_START] = positiveStart;\n positiveStart += v[STACK_FIELD_END];\n v[STACK_FIELD_END] = positiveStart;\n } else {\n v[STACK_FIELD_START] = negativeStart;\n negativeStart += v[STACK_FIELD_END];\n v[STACK_FIELD_END] = negativeStart;\n }\n v[STACK_FIELD_KEY] = stackCache.key;\n }\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[STACK_FIELD_END];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[STACK_FIELD_START_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign;\n v[STACK_FIELD_END_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n !stackCache.nodes[key] &&\n (stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n });\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/util/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { StatisticOperations } from '../data/transforms/dimension-statistics';\nimport {\n STACK_FIELD_END,\n STACK_FIELD_START_PERCENT,\n STACK_FIELD_END_PERCENT,\n STACK_FIELD_END_OffsetSilhouette,\n STACK_FIELD_START_OffsetSilhouette,\n STACK_FIELD_TOTAL,\n STACK_FIELD_TOTAL_PERCENT,\n STACK_FIELD_TOTAL_TOP,\n STACK_FIELD_START,\n STACK_FIELD_KEY,\n STACK_FIELD_TOTAL_BOTTOM,\n MOSAIC_CAT_START_PERCENT,\n MOSAIC_CAT_END_PERCENT,\n MOSAIC_VALUE_START_PERCENT,\n MOSAIC_VALUE_END_PERCENT\n} from '../constant';\nimport { isValid, toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/interface';\nimport type { IRegion } from '../region/interface';\n\nexport function mergeFields(\n targetFields: {\n key: string;\n operations: StatisticOperations;\n }[],\n mergeFields: {\n key: string;\n operations: StatisticOperations;\n }[]\n): {\n key: string;\n operations: StatisticOperations;\n}[] {\n for (let i = 0; i < mergeFields.length; i++) {\n const element = mergeFields[i];\n const _target = findFields(targetFields, element.key);\n if (!_target) {\n targetFields.push(element);\n } else {\n _target.operations = [...new Set(_target.operations.concat(element.operations))];\n }\n }\n return targetFields;\n}\n\nfunction findFields(\n list: {\n key: string;\n operations: StatisticOperations;\n }[],\n fieldKey: string\n) {\n return list.find(i => i.key === fieldKey);\n}\n\n// 如果不存在别名就返回 field\nexport function getFieldAlias(dataView: DataView, field: string) {\n if (!dataView) {\n return field ?? null;\n }\n const fields = dataView.getFields();\n if (!fields) {\n return field ?? null;\n }\n if (!fields[field]) {\n return field ?? null;\n }\n return fields[field].alias ?? field;\n}\n\nexport interface IStackCacheNode {\n groupField?: string;\n values: any[];\n series: {\n s: ISeries;\n values: any[];\n }[];\n sortDatums: {\n datum: any;\n index: number;\n series: ISeries;\n }[];\n nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n total?: number;\n}\nexport interface IStackCacheRoot {\n groupField?: string;\n total?: number;\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport interface IStackSortCache {\n [key: string]: {\n lastIndex: number;\n sort: { [key: string]: number };\n };\n}\n\nexport function getRegionStackGroup(region: IRegion, setInitialValue: boolean, filter?: (s: any) => boolean) {\n const stackSort = region.getStackSort();\n\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\n // 堆积排序 {维度key: { lastIndex: 0, sort:{[值]: 值序号}}}\n let stackSortCache: IStackSortCache = null;\n // 如果有排序\n if (stackSort) {\n // 先遍历系列,得到基于 seriesField 的排序信息\n // 这里性能消耗应该很小\n stackSortCache = {};\n region.getSeries().forEach(s => {\n // 拿到系列的 seriesField 做排序准备\n const seriesField = s.getSeriesField();\n if (seriesField) {\n const fieldInfo = s.getRawDataStatisticsByField(seriesField);\n if (fieldInfo.values) {\n if (!stackSortCache[seriesField]) {\n stackSortCache[seriesField] = { lastIndex: 0, sort: {} };\n }\n fieldInfo.values.forEach((v, i) => {\n if (!(v in stackSortCache[seriesField].sort)) {\n stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;\n stackSortCache[seriesField].lastIndex++;\n }\n });\n }\n }\n });\n }\n\n region.getSeries().forEach(s => {\n const stackData = s.getStackData();\n const stackValue = s.getStackValue();\n const stackValueField = s.getStackValueField();\n const filterEnable = filter ? filter(s) : true;\n if (stackData && stackValueField && filterEnable) {\n stackValueGroup[stackValue] = stackValueGroup[stackValue] ?? {\n groupField: stackData.groupField,\n nodes: {}\n };\n\n stackGroup(\n s,\n stackData,\n stackValueGroup[stackValue] as IStackCacheNode,\n stackValueField,\n setInitialValue,\n stackSortCache\n );\n }\n });\n return stackSort\n ? sortStackValueGroup(stackValueGroup as { [key: string]: IStackCacheNode }, stackSortCache)\n : stackValueGroup;\n}\n\n// 排序\nexport function sortStackValueGroup(\n stackValueGroup: { [key: string]: IStackCacheNode },\n stackSortCache: IStackSortCache\n) {\n for (const key in stackValueGroup) {\n if (stackValueGroup[key].sortDatums?.length) {\n stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);\n stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);\n } else {\n sortStackValueGroup(stackValueGroup[key].nodes, stackSortCache);\n }\n }\n return stackValueGroup;\n}\n\nexport function stackTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n const total = sum(stackData.values, valueField);\n const percent = max(stackData.values, STACK_FIELD_END_PERCENT);\n\n stackData.values.forEach(v => {\n v[STACK_FIELD_TOTAL] = total;\n v[STACK_FIELD_TOTAL_PERCENT] = percent;\n });\n\n return;\n }\n for (const key in stackData.nodes) {\n stackTotal(stackData.nodes[key], valueField);\n }\n return;\n}\n\nexport interface IMosaicData {\n groupField?: string;\n groupValue?: string;\n value?: number;\n end?: number;\n start?: number;\n startPercent?: number;\n endPercent?: number;\n}\n\nexport function stackMosaicTotal(stackData: IStackCacheNode, valueField: string) {\n if ('values' in stackData && stackData.values.length) {\n if (isValid(stackData.values[0]?.[STACK_FIELD_TOTAL])) {\n stackData.total = stackData.values[0]?.[STACK_FIELD_TOTAL];\n } else {\n stackData.total = sum(stackData.values, valueField);\n }\n return;\n }\n for (const key in stackData.nodes) {\n stackMosaicTotal(stackData.nodes[key], valueField);\n }\n\n if (stackData.nodes) {\n stackData.total = sum(\n Object.keys(stackData.nodes).map(key => stackData.nodes[key]),\n 'total'\n );\n }\n\n return;\n}\n\nexport function stackMosaic(s: ISeries, stackCache: IStackCacheNode, mosaicData?: IMosaicData[]) {\n if (stackCache.groupField && stackCache.nodes) {\n const groupValues = s.getRawDataStatisticsByField(stackCache.groupField, false)?.values || [];\n const mosaicStackData = {\n key: `${stackCache.groupField}`,\n values: groupValues.map(group => {\n const groupValues = stackCache.nodes[group];\n\n return {\n groupValue: group,\n value: groupValues.total,\n end: groupValues.total\n };\n })\n };\n\n stack(mosaicStackData as IStackCacheNode, false, true, false, {\n key: 'groupField',\n start: 'start',\n end: 'end',\n startPercent: 'startPercent',\n endPercent: 'endPercent'\n });\n\n mosaicStackData.values.forEach(stackValue => {\n (stackCache.nodes[stackValue.groupValue] as any).mosaicData = stackValue;\n });\n } else if ('values' in stackCache && stackCache.values.length && mosaicData && mosaicData.length) {\n const len = mosaicData.length;\n let catStartPercent = 0;\n let catEndPercent = 1;\n let valueStartPercent = 0;\n let valueEndPercent = 1;\n\n for (let i = 0; i < len; i++) {\n if (i % 2 === 0) {\n const catDelta = catEndPercent - catStartPercent;\n\n catEndPercent = catStartPercent + mosaicData[i].endPercent * catDelta;\n catStartPercent = catStartPercent + mosaicData[i].startPercent * catDelta;\n } else {\n const valueDelta = valueEndPercent - valueStartPercent;\n\n valueEndPercent = valueStartPercent + mosaicData[i].endPercent * valueDelta;\n valueStartPercent = valueStartPercent + mosaicData[i].startPercent * valueDelta;\n }\n }\n\n if (len % 2 === 0) {\n stackCache.values.forEach(v => {\n const delta = catEndPercent - catStartPercent;\n v[MOSAIC_CAT_END_PERCENT] = catStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_VALUE_END_PERCENT] = valueEndPercent;\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent;\n });\n } else {\n stackCache.values.forEach(v => {\n const delta = valueEndPercent - valueStartPercent;\n v[MOSAIC_VALUE_END_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_END_PERCENT];\n v[MOSAIC_VALUE_START_PERCENT] = valueStartPercent + delta * v[STACK_FIELD_START_PERCENT];\n v[MOSAIC_CAT_END_PERCENT] = catEndPercent;\n v[MOSAIC_CAT_START_PERCENT] = catStartPercent;\n });\n }\n }\n\n for (const key in stackCache.nodes) {\n stackMosaic(\n s,\n stackCache.nodes[key],\n (stackCache.nodes[key] as any).mosaicData\n ? mosaicData\n ? [...mosaicData, (stackCache.nodes[key] as any).mosaicData]\n : [(stackCache.nodes[key] as any).mosaicData]\n : null\n );\n }\n}\n\nexport function stackOffsetSilhouette(stackCache: IStackCacheNode) {\n if (!stackCache.values.length) {\n return;\n }\n const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;\n for (let j = 0; j < stackCache.values.length; j++) {\n stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;\n stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;\n }\n}\n\nexport function stack(\n stackCache: IStackCacheNode,\n stackInverse: boolean,\n hasPercent?: boolean,\n hasMinMax?: boolean,\n fields: {\n key: string;\n start: string;\n end: string;\n startPercent: string;\n endPercent: string;\n min?: string;\n max?: string;\n } = {\n key: STACK_FIELD_KEY,\n start: STACK_FIELD_START,\n end: STACK_FIELD_END,\n startPercent: STACK_FIELD_START_PERCENT,\n endPercent: STACK_FIELD_END_PERCENT,\n max: STACK_FIELD_TOTAL_TOP,\n min: STACK_FIELD_TOTAL_BOTTOM\n }\n) {\n const hasMinField = hasMinMax && isValid(fields.min);\n const hasMaxField = hasMinMax && isValid(fields.max);\n\n if (stackCache.values.length > 0) {\n // 设置一个小数以保证 log 计算不会报错\n let positiveStart = 0;\n let negativeStart = 0;\n // temp\n let sign = 1;\n let value = 0;\n let minNode: any = null;\n let maxNode: any = null;\n\n // stack\n const maxLength = stackCache.values.length;\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n if (value >= 0) {\n v[fields.start] = positiveStart;\n positiveStart += v[fields.end];\n v[fields.end] = positiveStart;\n } else {\n v[fields.start] = negativeStart;\n negativeStart += v[fields.end];\n v[fields.end] = negativeStart;\n }\n v[fields.key] = stackCache.key;\n\n if (hasMaxField) {\n delete v[fields.max];\n if (!maxNode || v[fields.end] > maxNode[fields.end]) {\n maxNode = v;\n }\n }\n if (hasMinField) {\n delete v[fields.min];\n if (!minNode || v[fields.start] < minNode[fields.start]) {\n minNode = v;\n }\n }\n }\n\n hasMaxField && maxNode && (maxNode[fields.max] = true);\n hasMinField && minNode && (minNode[fields.min] = true);\n\n if (hasPercent) {\n // normalize\n for (let index = 0; index < maxLength; index++) {\n const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];\n value = v[fields.end];\n const denominator = value >= 0 ? positiveStart : negativeStart;\n sign = value >= 0 ? 1 : -1;\n v[fields.startPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.start] / denominator) * sign;\n v[fields.endPercent] = denominator === 0 ? 0 : Math.min(1, v[fields.end] / denominator) * sign;\n }\n }\n }\n\n for (const key in stackCache.nodes) {\n stack(stackCache.nodes[key], stackInverse, hasPercent, hasMinMax, fields);\n }\n}\n\nexport function stackGroup(\n s: ISeries,\n stackData: ISeriesStackDataMeta,\n stackCache: IStackCacheNode,\n valueField: string,\n setInitialValue: boolean,\n stackSortCache: IStackSortCache,\n stackKey?: string\n) {\n if ('values' in stackData) {\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.series.push({ s: s, values: stackData.values });\n // 如果有排序\n if (stackSortCache) {\n // 系列的 seriesField\n const seriesField = s.getSeriesField();\n stackData.values.forEach(d => {\n stackCache.sortDatums.push({\n series: s,\n datum: d,\n index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0\n });\n });\n } else {\n // 如果没有排序,直接生成 values 数组\n stackCache.values.push(...stackData.values);\n }\n return;\n }\n for (const key in stackData.nodes) {\n const newStackKey = stackKey ? `${stackKey}_${key}` : key;\n\n if (!stackCache.nodes[key]) {\n stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {},\n sortDatums: [],\n key: newStackKey\n };\n\n if (isValid(stackData.nodes[key]?.groupField)) {\n stackCache.nodes[key].groupField = stackData.nodes[key].groupField;\n }\n }\n\n stackGroup(\n s,\n stackData.nodes[key],\n stackCache.nodes[key],\n valueField,\n setInitialValue,\n stackSortCache,\n newStackKey\n );\n }\n}\n"]}
@@ -1,3 +1,5 @@
1
1
  export declare const findHierarchyNode: <T>(hierarchyData: T[], key: string, keyField?: string, childrenField?: string) => T;
2
2
  export declare const findHierarchyNodeParent: <T>(hierarchyData: T[], key: string, keyField?: string, childrenField?: string) => T;
3
3
  export declare const findHierarchyPath: <T>(hierarchyData: T[], key: string, keyField?: string, childrenField?: string) => string[];
4
+ export declare function isHierarchyItem(item: Object, valueField?: string, childrenField?: string): boolean;
5
+ export declare function filterHierarchyDataByRange(data: any[], minValue: number, maxValue: number, valueField?: string, childrenField?: string): any[];
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.findHierarchyPath = exports.findHierarchyNodeParent = exports.findHierarchyNode = void 0;
5
+ }), exports.filterHierarchyDataByRange = exports.isHierarchyItem = exports.findHierarchyPath = exports.findHierarchyNodeParent = exports.findHierarchyNode = void 0;
6
6
 
7
- const findHierarchyNode = (hierarchyData, key, keyField = "key", childrenField = "children") => {
7
+ const vutils_1 = require("@visactor/vutils"), findHierarchyNode = (hierarchyData, key, keyField = "key", childrenField = "children") => {
8
8
  for (let i = 0; i < hierarchyData.length; i++) {
9
9
  const node = hierarchyData[i];
10
10
  if (node[keyField] === key) return node;
@@ -48,5 +48,18 @@ const findHierarchyPath = (hierarchyData, key, keyField = "key", childrenField =
48
48
  return dfs(hierarchyData, []), result;
49
49
  };
50
50
 
51
- exports.findHierarchyPath = findHierarchyPath;
51
+ function isHierarchyItem(item, valueField = "value", childrenField = "children") {
52
+ return !!(0, vutils_1.isObject)(item) && (!!item.hasOwnProperty(childrenField) && Array.isArray(item[childrenField]));
53
+ }
54
+
55
+ function filterHierarchyDataByRange(data, minValue, maxValue, valueField = "value", childrenField = "children") {
56
+ return Array.isArray(data) ? data.map((item => {
57
+ const newItem = Object.assign({}, item);
58
+ return Array.isArray(newItem[childrenField]) && (newItem[childrenField] = filterHierarchyDataByRange(newItem[childrenField], minValue, maxValue, valueField, childrenField)),
59
+ newItem;
60
+ })).filter((item => +item[valueField] >= minValue && +item[valueField] <= maxValue || item[childrenField] && item[childrenField].length > 0)) : data;
61
+ }
62
+
63
+ exports.findHierarchyPath = findHierarchyPath, exports.isHierarchyItem = isHierarchyItem,
64
+ exports.filterHierarchyDataByRange = filterHierarchyDataByRange;
52
65
  //# sourceMappingURL=hierarchy.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/hierarchy.ts"],"names":[],"mappings":";;;AAQO,MAAM,iBAAiB,GAAG,CAC/B,aAAkB,EAClB,GAAW,EACX,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,UAAU,EAChB,EAAE;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;YACvB,MAAM,MAAM,GAAG,IAAA,yBAAiB,EAAI,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YACvF,IAAI,MAAM,EAAE;gBACV,OAAO,MAAM,CAAC;aACf;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B;AAUK,MAAM,uBAAuB,GAAG,CACrC,aAAkB,EAClB,GAAW,EACX,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,UAAU,EAChB,EAAE;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;oBAC/B,OAAO,IAAI,CAAC;iBACb;gBACD,MAAM,MAAM,GAAG,IAAA,+BAAuB,EAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBACrF,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC;AAUK,MAAM,iBAAiB,GAAG,CAC/B,aAAkB,EAClB,GAAW,EACX,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,UAAU,EAChB,EAAE;IACZ,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,IAAS,EAAE,IAAc,EAAW,EAAE;QACjD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChD,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;gBACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChE,IAAI,GAAG,KAAK,IAAI,EAAE;oBAChB,OAAO,GAAG,CAAC;iBACZ;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B","file":"hierarchy.js","sourcesContent":["/**\n * 根据Key, 找到对应节点\n * @param hierarchyData\n * @param key\n * @param keyField\n * @param childrenField\n * @returns\n */\nexport const findHierarchyNode = <T>(\n hierarchyData: T[],\n key: string,\n keyField = 'key',\n childrenField = 'children'\n): T | null => {\n for (let i = 0; i < hierarchyData.length; i++) {\n const node = hierarchyData[i];\n if (node[keyField] === key) {\n return node;\n }\n if (node[childrenField]) {\n const result = findHierarchyNode<T>(node[childrenField], key, keyField, childrenField);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\n/**\n * 根据key, 找到对应节点的父节点\n * @param hierarchyData\n * @param key\n * @param keyField\n * @param childrenField\n * @returns\n */\nexport const findHierarchyNodeParent = <T>(\n hierarchyData: T[],\n key: string,\n keyField = 'key',\n childrenField = 'children'\n): T | null => {\n for (let i = 0; i < hierarchyData.length; i++) {\n const node = hierarchyData[i];\n if (node[childrenField]) {\n for (let j = 0; j < node[childrenField].length; j++) {\n const childNode = node[childrenField][j];\n if (childNode[keyField] === key) {\n return node;\n }\n const result = findHierarchyNodeParent<T>([childNode], key, keyField, childrenField);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n};\n\n/**\n * 回溯遍历多叉树, 找到给定key的路径.\n * @param hierarchyData\n * @param key\n * @param keyField\n * @param childrenField\n * @returns\n */\nexport const findHierarchyPath = <T>(\n hierarchyData: T[],\n key: string,\n keyField = 'key',\n childrenField = 'children'\n): string[] => {\n const result: string[] = [];\n const dfs = (data: T[], path: string[]): boolean => {\n for (const item of data) {\n if (item[keyField] === key) {\n result.push(...path, item[keyField].toString());\n return true;\n }\n\n if (item[childrenField]) {\n const res = dfs(item[childrenField], [...path, item[keyField]]);\n if (res === true) {\n return res;\n }\n }\n }\n return false;\n };\n dfs(hierarchyData, []);\n return result;\n};\n"]}
1
+ {"version":3,"sources":["../src/util/hierarchy.ts"],"names":[],"mappings":"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","file":"hierarchy.js","sourcesContent":["import { isObject } from '@visactor/vutils';\n\n/**\n * 根据Key, 找到对应节点\n * @param hierarchyData\n * @param key\n * @param keyField\n * @param childrenField\n * @returns\n */\nexport const findHierarchyNode = <T>(\n hierarchyData: T[],\n key: string,\n keyField = 'key',\n childrenField = 'children'\n): T | null => {\n for (let i = 0; i < hierarchyData.length; i++) {\n const node = hierarchyData[i];\n if (node[keyField] === key) {\n return node;\n }\n if (node[childrenField]) {\n const result = findHierarchyNode<T>(node[childrenField], key, keyField, childrenField);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\n/**\n * 根据key, 找到对应节点的父节点\n * @param hierarchyData\n * @param key\n * @param keyField\n * @param childrenField\n * @returns\n */\nexport const findHierarchyNodeParent = <T>(\n hierarchyData: T[],\n key: string,\n keyField = 'key',\n childrenField = 'children'\n): T | null => {\n for (let i = 0; i < hierarchyData.length; i++) {\n const node = hierarchyData[i];\n if (node[childrenField]) {\n for (let j = 0; j < node[childrenField].length; j++) {\n const childNode = node[childrenField][j];\n if (childNode[keyField] === key) {\n return node;\n }\n const result = findHierarchyNodeParent<T>([childNode], key, keyField, childrenField);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n};\n\n/**\n * 回溯遍历多叉树, 找到给定key的路径.\n * @param hierarchyData\n * @param key\n * @param keyField\n * @param childrenField\n * @returns\n */\nexport const findHierarchyPath = <T>(\n hierarchyData: T[],\n key: string,\n keyField = 'key',\n childrenField = 'children'\n): string[] => {\n const result: string[] = [];\n const dfs = (data: T[], path: string[]): boolean => {\n for (const item of data) {\n if (item[keyField] === key) {\n result.push(...path, item[keyField].toString());\n return true;\n }\n\n if (item[childrenField]) {\n const res = dfs(item[childrenField], [...path, item[keyField]]);\n if (res === true) {\n return res;\n }\n }\n }\n return false;\n };\n dfs(hierarchyData, []);\n return result;\n};\n\nexport function isHierarchyItem(item: Object, valueField = 'value', childrenField = 'children') {\n // 检查 item 是否为对象且不为 null\n if (!isObject(item)) {\n return false;\n }\n\n // 检查 item 是否包含 childrenKey 属性且其值为数组\n if (item.hasOwnProperty(childrenField)) {\n return Array.isArray(item[childrenField]);\n }\n\n return false;\n}\n\nexport function filterHierarchyDataByRange(\n data: any[],\n minValue: number,\n maxValue: number,\n valueField = 'value',\n childrenField = 'children'\n) {\n if (!Array.isArray(data)) {\n return data;\n }\n\n return data\n .map(item => {\n const newItem = { ...item };\n if (Array.isArray(newItem[childrenField])) {\n newItem[childrenField] = filterHierarchyDataByRange(\n newItem[childrenField],\n minValue,\n maxValue,\n valueField,\n childrenField\n );\n }\n return newItem;\n })\n .filter(\n item =>\n (+item[valueField] >= minValue && +item[valueField] <= maxValue) ||\n (item[childrenField] && item[childrenField].length > 0)\n );\n}\n"]}
@@ -1,2 +1 @@
1
- export * from './background';
2
1
  export * from './transform';
@@ -17,5 +17,5 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
17
17
 
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
- }), __exportStar(require("./background"), exports), __exportStar(require("./transform"), exports);
20
+ }), __exportStar(require("./transform"), exports);
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B","file":"index.js","sourcesContent":["export * from './background';\nexport * from './transform';\n"]}
1
+ {"version":3,"sources":["../src/util/spec/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B","file":"index.js","sourcesContent":["export * from './transform';\n"]}
@@ -1,4 +1,5 @@
1
1
  export declare function transformComponentStyle(cfg?: any): any;
2
2
  export declare function transformStateStyle(stateStyle: any): {};
3
3
  export declare function transformAxisLabelStateStyle(stateStyle: any): {};
4
+ export declare function transformIndicatorStyle(style: any, datum: any): any;
4
5
  export declare function transformToGraphic(style: any): any;
package/cjs/util/style.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.transformToGraphic = exports.transformAxisLabelStateStyle = exports.transformStateStyle = exports.transformComponentStyle = void 0;
5
+ }), exports.transformToGraphic = exports.transformIndicatorStyle = exports.transformAxisLabelStateStyle = exports.transformStateStyle = exports.transformComponentStyle = void 0;
6
6
 
7
7
  const vutils_1 = require("@visactor/vutils");
8
8
 
@@ -38,11 +38,20 @@ function transformAxisLabelStateStyle(stateStyle) {
38
38
  })), newStateStyle;
39
39
  }
40
40
 
41
+ function transformIndicatorStyle(style, datum) {
42
+ if ((0, vutils_1.isEmpty)(style)) return null;
43
+ const newStateStyle = {};
44
+ return Object.keys(style).forEach((key => {
45
+ (0, vutils_1.isFunction)(style[key]) ? newStateStyle[key] = style[key](datum) : newStateStyle[key] = style[key];
46
+ })), transformToGraphic(newStateStyle);
47
+ }
48
+
41
49
  function transformToGraphic(style) {
42
50
  return (null == style ? void 0 : style.angle) && (style.angle = (0, vutils_1.degreeToRadian)(style.angle)),
43
51
  style;
44
52
  }
45
53
 
46
54
  exports.transformComponentStyle = transformComponentStyle, exports.transformStateStyle = transformStateStyle,
47
- exports.transformAxisLabelStateStyle = transformAxisLabelStateStyle, exports.transformToGraphic = transformToGraphic;
55
+ exports.transformAxisLabelStateStyle = transformAxisLabelStateStyle, exports.transformIndicatorStyle = transformIndicatorStyle,
56
+ exports.transformToGraphic = transformToGraphic;
48
57
  //# sourceMappingURL=style.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/style.ts"],"names":[],"mappings":"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","file":"style.js","sourcesContent":["import { degreeToRadian, isEmpty, isFunction } from '@visactor/vutils';\nimport type { Datum } from '../typings';\nimport type { LegendItemDatum } from '@visactor/vrender-components';\n\n/**\n * 针对一些可以配置状态样式的属性的转换函数,结构如下:\n * { style: {}, state: { hover: {} } }\n * @param cfg\n * @returns\n */\nexport function transformComponentStyle(cfg: any = {}) {\n const newConfig = {\n ...cfg\n };\n\n if (isFunction(cfg.style)) {\n newConfig.style = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.style(item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.style)) {\n newConfig.style = transformToGraphic(cfg.style);\n }\n\n if (!isEmpty(cfg.state)) {\n const newStateStyle = {};\n Object.keys(cfg.state).forEach(key => {\n if (isFunction(cfg.state[key])) {\n newStateStyle[key] = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.state[key](item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.state[key])) {\n newStateStyle[key] = transformToGraphic(cfg.state[key]);\n }\n });\n newConfig.state = newStateStyle;\n }\n\n return newConfig;\n}\n\nexport function transformStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (value: any, index: number, datum: Datum, data: Datum[]) =>\n transformToGraphic(stateStyle[key](value, index, datum, data));\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformAxisLabelStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (datum: Datum, index: number, data: Datum[], layer?: number) => {\n return transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer));\n };\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformToGraphic(style: any) {\n if (style?.angle) {\n style.angle = degreeToRadian(style.angle);\n }\n\n return style;\n}\n"]}
1
+ {"version":3,"sources":["../src/util/style.ts"],"names":[],"mappings":";;;AAAA,6CAAuE;AAUvE,SAAgB,uBAAuB,CAAC,MAAW,EAAE;IACnD,MAAM,SAAS,qBACV,GAAG,CACP,CAAC;IAEF,IAAI,IAAA,mBAAU,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACzB,SAAS,CAAC,KAAK,GAAG,CAAC,IAAqB,EAAE,UAAmB,EAAE,KAAa,EAAE,QAA2B,EAAE,EAAE,CAC3G,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;KACpE;SAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC9B,SAAS,CAAC,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACjD;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnC,IAAI,IAAA,mBAAU,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC9B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAqB,EAAE,UAAmB,EAAE,KAAa,EAAE,QAA2B,EAAE,EAAE,CAC9G,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;aACzE;iBAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBACnC,aAAa,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;KACjC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA1BD,0DA0BC;AAED,SAAgB,mBAAmB,CAAC,UAAe;IACjD,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpC,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAU,EAAE,KAAa,EAAE,KAAY,EAAE,IAAa,EAAE,EAAE,CAC9E,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;SAClE;aAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;YACpC,aAAa,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAfD,kDAeC;AAED,SAAgB,4BAA4B,CAAC,UAAe;IAC1D,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpC,IAAI,IAAA,mBAAU,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAY,EAAE,KAAa,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE;gBAClF,OAAO,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACxF,CAAC,CAAC;SACH;aAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;YACpC,aAAa,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAhBD,oEAgBC;AAED,SAAgB,uBAAuB,CAAC,KAAU,EAAE,KAAU;IAC5D,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC/B,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACL,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SACjC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC3C,CAAC;AAbD,0DAaC;AAED,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE;QAChB,KAAK,CAAC,KAAK,GAAG,IAAA,uBAAc,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3C;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAND,gDAMC","file":"style.js","sourcesContent":["import { degreeToRadian, isEmpty, isFunction } from '@visactor/vutils';\nimport type { Datum } from '../typings';\nimport type { LegendItemDatum } from '@visactor/vrender-components';\n\n/**\n * 针对一些可以配置状态样式的属性的转换函数,结构如下:\n * { style: {}, state: { hover: {} } }\n * @param cfg\n * @returns\n */\nexport function transformComponentStyle(cfg: any = {}) {\n const newConfig = {\n ...cfg\n };\n\n if (isFunction(cfg.style)) {\n newConfig.style = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.style(item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.style)) {\n newConfig.style = transformToGraphic(cfg.style);\n }\n\n if (!isEmpty(cfg.state)) {\n const newStateStyle = {};\n Object.keys(cfg.state).forEach(key => {\n if (isFunction(cfg.state[key])) {\n newStateStyle[key] = (item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) =>\n transformToGraphic(cfg.state[key](item, isSelected, index, allItems));\n } else if (!isEmpty(cfg.state[key])) {\n newStateStyle[key] = transformToGraphic(cfg.state[key]);\n }\n });\n newConfig.state = newStateStyle;\n }\n\n return newConfig;\n}\n\nexport function transformStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (value: any, index: number, datum: Datum, data: Datum[]) =>\n transformToGraphic(stateStyle[key](value, index, datum, data));\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformAxisLabelStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(stateStyle).forEach(key => {\n if (isFunction(stateStyle[key])) {\n newStateStyle[key] = (datum: Datum, index: number, data: Datum[], layer?: number) => {\n return transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer));\n };\n } else if (!isEmpty(stateStyle[key])) {\n newStateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return newStateStyle;\n}\n\nexport function transformIndicatorStyle(style: any, datum: any) {\n if (isEmpty(style)) {\n return null;\n }\n const newStateStyle = {};\n Object.keys(style).forEach(key => {\n if (isFunction(style[key])) {\n newStateStyle[key] = style[key](datum);\n } else {\n newStateStyle[key] = style[key];\n }\n });\n return transformToGraphic(newStateStyle);\n}\n\nexport function transformToGraphic(style: any) {\n if (style?.angle) {\n style.angle = degreeToRadian(style.angle);\n }\n\n return style;\n}\n"]}
@@ -31,7 +31,7 @@ export class AnimateManager extends StateManager {
31
31
  _getDefaultStateMap() {
32
32
  return {
33
33
  animationState: {
34
- callback: (datum, element) => "exit" === element.diffState ? AnimationStateEnum.exit : AnimationStateEnum.appear
34
+ callback: (datum, element) => "exit" === element.diffState ? AnimationStateEnum.exit : "update" === element.diffState ? AnimationStateEnum.update : AnimationStateEnum.appear
35
35
  }
36
36
  };
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/animation/animate-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,cAAe,SAAQ,YAAY;IAAhD;;QAGW,OAAE,GAAW,QAAQ,EAAE,CAAC;QAEvB,yBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE;YAC/C,OAAO,GAAG,MAAM,YAAY,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;QAC/C,CAAC,CAAC;IAqDJ,CAAC;IAnDC,2BAA2B;QACzB,OAAO,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB,CAAC,KAAyB,EAAE,QAAkB;QAE9D,IAAI,KAAK,KAAK,kBAAkB,CAAC,MAAM,EAAE;YACvC,IAAI,CAAC,WAAW,CACd;gBACE,cAAc,EAAE;oBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;iBAC/D;aACF,EACD,QAAQ,CACT,CAAC;SACH;aAEI,IAAI,KAAK,KAAK,kBAAkB,CAAC,MAAM,EAAE;YAC5C,IAAI,CAAC,WAAW,CACd;gBACE,cAAc,EAAE;oBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE;wBAC1C,OAAO,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;oBAC5F,CAAC;iBACF;aACF,EACD,QAAQ,CACT,CAAC;SACH;aAEI;YACH,IAAI,CAAC,WAAW,CACd;gBACE,cAAc,EAAE;oBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE,CAAC,KAAK;iBACnD;aACF,EACD,QAAQ,CACT,CAAC;SACH;IACH,CAAC;IAES,mBAAmB;QAC3B,OAAO;YACL,cAAc,EAAE;gBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE;oBAC1C,OAAO,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;gBAC5F,CAAC;aACF;SACF,CAAC;IACJ,CAAC;CACF","file":"animate-manager.js","sourcesContent":["import type { IElement } from '@visactor/vgrammar-core';\nimport { StateManager } from '../compile/signal/state-manager';\nimport type { StateValueMap } from '../compile/signal/interface';\nimport { PREFIX } from '../constant';\nimport { createID } from '../util/id';\nimport type { IAnimate, IAnimateState } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { AnimationStateEnum } from './interface';\n\nexport class AnimateManager extends StateManager implements IAnimate {\n protected declare _stateMap: IAnimateState & StateValueMap;\n\n readonly id: number = createID();\n\n protected stateKeyToSignalName = (key: string) => {\n return `${PREFIX}_animate_${this.id}_${key}`;\n };\n\n getAnimationStateSignalName() {\n return this.stateKeyToSignalName('animationState');\n }\n\n updateAnimateState(state: AnimationStateEnum, noRender?: boolean) {\n // when animation state is 'update', do animations by element diffState(enter & update & exit)\n if (state === AnimationStateEnum.update) {\n this.updateState(\n {\n animationState: {\n callback: (datum: any, element: IElement) => element.diffState\n }\n },\n noRender\n );\n }\n // when animation state is 'appear', all valid elements would do appear animation except from exit elements\n else if (state === AnimationStateEnum.appear) {\n this.updateState(\n {\n animationState: {\n callback: (datum: any, element: IElement) => {\n return element.diffState === 'exit' ? AnimationStateEnum.none : AnimationStateEnum.appear;\n }\n }\n },\n noRender\n );\n }\n // when animation state is other types, all elements would do animation by state\n else {\n this.updateState(\n {\n animationState: {\n callback: (datum: any, element: IElement) => state\n }\n },\n noRender\n );\n }\n }\n\n protected _getDefaultStateMap(): IAnimateState & StateValueMap {\n return {\n animationState: {\n callback: (datum: any, element: IElement) => {\n return element.diffState === 'exit' ? AnimationStateEnum.exit : AnimationStateEnum.appear;\n }\n }\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/animation/animate-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,cAAe,SAAQ,YAAY;IAAhD;;QAGW,OAAE,GAAW,QAAQ,EAAE,CAAC;QAEvB,yBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE;YAC/C,OAAO,GAAG,MAAM,YAAY,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;QAC/C,CAAC,CAAC;IAyDJ,CAAC;IAvDC,2BAA2B;QACzB,OAAO,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB,CAAC,KAAyB,EAAE,QAAkB;QAE9D,IAAI,KAAK,KAAK,kBAAkB,CAAC,MAAM,EAAE;YACvC,IAAI,CAAC,WAAW,CACd;gBACE,cAAc,EAAE;oBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;iBAC/D;aACF,EACD,QAAQ,CACT,CAAC;SACH;aAEI,IAAI,KAAK,KAAK,kBAAkB,CAAC,MAAM,EAAE;YAC5C,IAAI,CAAC,WAAW,CACd;gBACE,cAAc,EAAE;oBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE;wBAC1C,OAAO,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;oBAC5F,CAAC;iBACF;aACF,EACD,QAAQ,CACT,CAAC;SACH;aAEI;YACH,IAAI,CAAC,WAAW,CACd;gBACE,cAAc,EAAE;oBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE,CAAC,KAAK;iBACnD;aACF,EACD,QAAQ,CACT,CAAC;SACH;IACH,CAAC;IAES,mBAAmB;QAC3B,OAAO;YACL,cAAc,EAAE;gBACd,QAAQ,EAAE,CAAC,KAAU,EAAE,OAAiB,EAAE,EAAE;oBAC1C,OAAO,OAAO,CAAC,SAAS,KAAK,MAAM;wBACjC,CAAC,CAAC,kBAAkB,CAAC,IAAI;wBACzB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ;4BAChC,CAAC,CAAC,kBAAkB,CAAC,MAAM;4BAC3B,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;gBAChC,CAAC;aACF;SACF,CAAC;IACJ,CAAC;CACF","file":"animate-manager.js","sourcesContent":["import type { IElement } from '@visactor/vgrammar-core';\nimport { StateManager } from '../compile/signal/state-manager';\nimport type { StateValueMap } from '../compile/signal/interface';\nimport { PREFIX } from '../constant';\nimport { createID } from '../util/id';\nimport type { IAnimate, IAnimateState } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { AnimationStateEnum } from './interface';\n\nexport class AnimateManager extends StateManager implements IAnimate {\n protected declare _stateMap: IAnimateState & StateValueMap;\n\n readonly id: number = createID();\n\n protected stateKeyToSignalName = (key: string) => {\n return `${PREFIX}_animate_${this.id}_${key}`;\n };\n\n getAnimationStateSignalName() {\n return this.stateKeyToSignalName('animationState');\n }\n\n updateAnimateState(state: AnimationStateEnum, noRender?: boolean) {\n // when animation state is 'update', do animations by element diffState(enter & update & exit)\n if (state === AnimationStateEnum.update) {\n this.updateState(\n {\n animationState: {\n callback: (datum: any, element: IElement) => element.diffState\n }\n },\n noRender\n );\n }\n // when animation state is 'appear', all valid elements would do appear animation except from exit elements\n else if (state === AnimationStateEnum.appear) {\n this.updateState(\n {\n animationState: {\n callback: (datum: any, element: IElement) => {\n return element.diffState === 'exit' ? AnimationStateEnum.none : AnimationStateEnum.appear;\n }\n }\n },\n noRender\n );\n }\n // when animation state is other types, all elements would do animation by state\n else {\n this.updateState(\n {\n animationState: {\n callback: (datum: any, element: IElement) => state\n }\n },\n noRender\n );\n }\n }\n\n protected _getDefaultStateMap(): IAnimateState & StateValueMap {\n return {\n animationState: {\n callback: (datum: any, element: IElement) => {\n return element.diffState === 'exit'\n ? AnimationStateEnum.exit\n : element.diffState === 'update'\n ? AnimationStateEnum.update\n : AnimationStateEnum.appear;\n }\n }\n };\n }\n}\n"]}
@@ -112,7 +112,10 @@ const lineOrAreaAnimation = (params, preset) => ({
112
112
  channel: [ "points" ],
113
113
  custom: TagPointsUpdate,
114
114
  duration: DEFAULT_ANIMATION_CONFIG.update.duration,
115
- easing: DEFAULT_ANIMATION_CONFIG.update.easing
115
+ easing: DEFAULT_ANIMATION_CONFIG.update.easing,
116
+ customParameters: {
117
+ clipRangeByDimension: "horizontal" === params.direction ? "y" : "x"
118
+ }
116
119
  } ],
117
120
  disappear: {
118
121
  type: "clipOut"
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/animation/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { TagPointsUpdate, ClipDirectionAnimate } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { ILineAnimationParams, LineAppearPreset } from '../series/line/animation';\nimport { linePresetAnimation } from '../series/line/animation';\nimport type { MarkAnimationSpec, ICartesianGroupAnimationParams } from './interface';\nimport { Factory } from '../core/factory';\nimport {\n View,\n registerScaleInAnimation,\n registerScaleOutAnimation,\n registerFadeInAnimation,\n registerFadeOutAnimation,\n registerClipInAnimation,\n registerClipOutAnimation,\n registerGrowAngleInAnimation,\n registerGrowAngleOutAnimation,\n registerGrowCenterInAnimation,\n registerGrowCenterOutAnimation,\n registerGrowHeightInAnimation,\n registerGrowHeightOutAnimation,\n registerGrowPointsInAnimation,\n registerGrowPointsOutAnimation,\n registerGrowPointsXInAnimation,\n registerGrowPointsXOutAnimation,\n registerGrowPointsYInAnimation,\n registerGrowPointsYOutAnimation,\n registerGrowRadiusInAnimation,\n registerGrowRadiusOutAnimation,\n registerGrowWidthInAnimation,\n registerGrowWidthOutAnimation,\n registerMoveInAnimation,\n registerMoveOutAnimation,\n registerRotateInAnimation,\n registerRotateOutAnimation,\n registerUpdateAnimation\n} from '@visactor/vgrammar-core';\n\nexport const DEFAULT_ANIMATION_CONFIG = {\n appear: {\n duration: 1000,\n easing: 'cubicOut'\n },\n update: {\n type: 'update',\n duration: 300,\n easing: 'linear'\n },\n enter: {\n duration: 300,\n easing: 'linear'\n },\n exit: {\n duration: 300,\n easing: 'linear'\n },\n disappear: {\n duration: 500,\n easing: 'cubicIn'\n }\n};\n\nexport const ScaleInOutAnimation = {\n appear: { type: 'scaleIn' },\n enter: { type: 'scaleIn' },\n exit: { type: 'scaleOut' },\n disappear: { type: 'scaleOut' }\n};\n\nexport const FadeInOutAnimation = {\n appear: { type: 'fadeIn' },\n enter: { type: 'fadeIn' },\n exit: { type: 'fadeOut' },\n disappear: { type: 'fadeOut' }\n};\n\nexport const registerScaleInOutAnimation = () => {\n Factory.registerAnimation('scaleInOut', () => ScaleInOutAnimation);\n};\n\nexport const registerFadeInOutAnimation = () => {\n Factory.registerAnimation('fadeInOut', () => FadeInOutAnimation);\n};\n\nexport const registerCartesianGroupClipAnimation = () => {\n Factory.registerAnimation('cartesianGroupClip', (params?: ICartesianGroupAnimationParams) => {\n return {\n appear: {\n custom: ClipDirectionAnimate,\n customParameters: (datum: any, element: IElement) => {\n return {\n animationType: 'in',\n group: element.getGraphicItem(),\n direction: params.direction(),\n width: params.width(),\n height: params.height(),\n orient: params.orient()\n };\n }\n },\n disappear: {\n custom: ClipDirectionAnimate,\n customParameters: (datum: any, element: IElement) => {\n return {\n animationType: 'out',\n group: element.getGraphicItem(),\n direction: params.direction(),\n width: params.width(),\n height: params.height(),\n orient: params.orient()\n };\n }\n }\n };\n });\n};\n\nconst lineOrAreaAnimation = (params: ILineAnimationParams, preset: LineAppearPreset) => {\n return {\n appear: linePresetAnimation(params, preset),\n enter: { type: 'fadeIn' },\n exit: { type: 'fadeOut' },\n update: [\n {\n type: 'update',\n options: { excludeChannels: ['points', 'defined'] }\n },\n {\n channel: ['points'],\n custom: TagPointsUpdate,\n duration: DEFAULT_ANIMATION_CONFIG.update.duration,\n easing: DEFAULT_ANIMATION_CONFIG.update.easing\n }\n ],\n disappear: { type: 'clipOut' }\n } as MarkAnimationSpec;\n};\n\nexport const registerLineAnimation = () => {\n Factory.registerAnimation('line', lineOrAreaAnimation);\n};\n\nexport const registerAreaAnimation = () => {\n Factory.registerAnimation('area', lineOrAreaAnimation);\n};\n\nexport const registerVGrammarCommonAnimation = () => {\n View.useRegisters([\n registerScaleInAnimation,\n registerScaleOutAnimation,\n registerFadeInAnimation,\n registerFadeOutAnimation,\n registerMoveInAnimation,\n registerMoveOutAnimation,\n registerRotateInAnimation,\n registerRotateOutAnimation,\n registerUpdateAnimation\n ]);\n};\n\nexport const registerVGrammarRectAnimation = () => {\n View.useRegisters([\n registerGrowHeightInAnimation,\n registerGrowHeightOutAnimation,\n registerGrowWidthInAnimation,\n registerGrowWidthOutAnimation,\n registerGrowCenterInAnimation,\n registerGrowCenterOutAnimation\n ]);\n};\n\nexport const registerVGrammarArcAnimation = () => {\n View.useRegisters([\n registerGrowRadiusInAnimation,\n registerGrowRadiusOutAnimation,\n registerGrowAngleInAnimation,\n registerGrowAngleOutAnimation\n ]);\n};\n\nexport const registerVGrammarLineOrAreaAnimation = () => {\n View.useRegisters([\n registerGrowPointsInAnimation,\n registerGrowPointsOutAnimation,\n registerGrowPointsXInAnimation,\n registerGrowPointsXOutAnimation,\n registerGrowPointsYInAnimation,\n registerGrowPointsYOutAnimation,\n registerClipInAnimation,\n registerClipOutAnimation\n ]);\n};\n\nexport const registerVGrammarPolygonAnimation = () => {\n View.useRegisters([registerGrowPointsInAnimation, registerGrowPointsOutAnimation]);\n};\n"]}
1
+ {"version":3,"sources":["../src/animation/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { TagPointsUpdate, ClipDirectionAnimate } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { ILineAnimationParams, LineAppearPreset } from '../series/line/animation';\nimport { linePresetAnimation } from '../series/line/animation';\nimport type { MarkAnimationSpec, ICartesianGroupAnimationParams } from './interface';\nimport { Factory } from '../core/factory';\nimport {\n View,\n registerScaleInAnimation,\n registerScaleOutAnimation,\n registerFadeInAnimation,\n registerFadeOutAnimation,\n registerClipInAnimation,\n registerClipOutAnimation,\n registerGrowAngleInAnimation,\n registerGrowAngleOutAnimation,\n registerGrowCenterInAnimation,\n registerGrowCenterOutAnimation,\n registerGrowHeightInAnimation,\n registerGrowHeightOutAnimation,\n registerGrowPointsInAnimation,\n registerGrowPointsOutAnimation,\n registerGrowPointsXInAnimation,\n registerGrowPointsXOutAnimation,\n registerGrowPointsYInAnimation,\n registerGrowPointsYOutAnimation,\n registerGrowRadiusInAnimation,\n registerGrowRadiusOutAnimation,\n registerGrowWidthInAnimation,\n registerGrowWidthOutAnimation,\n registerMoveInAnimation,\n registerMoveOutAnimation,\n registerRotateInAnimation,\n registerRotateOutAnimation,\n registerUpdateAnimation\n} from '@visactor/vgrammar-core';\nimport { Direction } from '../typings/space';\n\nexport const DEFAULT_ANIMATION_CONFIG = {\n appear: {\n duration: 1000,\n easing: 'cubicOut'\n },\n update: {\n type: 'update',\n duration: 300,\n easing: 'linear'\n },\n enter: {\n duration: 300,\n easing: 'linear'\n },\n exit: {\n duration: 300,\n easing: 'linear'\n },\n disappear: {\n duration: 500,\n easing: 'cubicIn'\n }\n};\n\nexport const ScaleInOutAnimation = {\n appear: { type: 'scaleIn' },\n enter: { type: 'scaleIn' },\n exit: { type: 'scaleOut' },\n disappear: { type: 'scaleOut' }\n};\n\nexport const FadeInOutAnimation = {\n appear: { type: 'fadeIn' },\n enter: { type: 'fadeIn' },\n exit: { type: 'fadeOut' },\n disappear: { type: 'fadeOut' }\n};\n\nexport const registerScaleInOutAnimation = () => {\n Factory.registerAnimation('scaleInOut', () => ScaleInOutAnimation);\n};\n\nexport const registerFadeInOutAnimation = () => {\n Factory.registerAnimation('fadeInOut', () => FadeInOutAnimation);\n};\n\nexport const registerCartesianGroupClipAnimation = () => {\n Factory.registerAnimation('cartesianGroupClip', (params?: ICartesianGroupAnimationParams) => {\n return {\n appear: {\n custom: ClipDirectionAnimate,\n customParameters: (datum: any, element: IElement) => {\n return {\n animationType: 'in',\n group: element.getGraphicItem(),\n direction: params.direction(),\n width: params.width(),\n height: params.height(),\n orient: params.orient()\n };\n }\n },\n disappear: {\n custom: ClipDirectionAnimate,\n customParameters: (datum: any, element: IElement) => {\n return {\n animationType: 'out',\n group: element.getGraphicItem(),\n direction: params.direction(),\n width: params.width(),\n height: params.height(),\n orient: params.orient()\n };\n }\n }\n };\n });\n};\n\nconst lineOrAreaAnimation = (params: ILineAnimationParams, preset: LineAppearPreset) => {\n return {\n appear: linePresetAnimation(params, preset),\n enter: { type: 'fadeIn' },\n exit: { type: 'fadeOut' },\n update: [\n {\n type: 'update',\n options: { excludeChannels: ['points', 'defined'] }\n },\n {\n channel: ['points'],\n custom: TagPointsUpdate,\n duration: DEFAULT_ANIMATION_CONFIG.update.duration,\n easing: DEFAULT_ANIMATION_CONFIG.update.easing,\n customParameters: {\n clipRangeByDimension: params.direction === Direction.horizontal ? 'y' : 'x'\n }\n }\n ],\n disappear: { type: 'clipOut' }\n } as MarkAnimationSpec;\n};\n\nexport const registerLineAnimation = () => {\n Factory.registerAnimation('line', lineOrAreaAnimation);\n};\n\nexport const registerAreaAnimation = () => {\n Factory.registerAnimation('area', lineOrAreaAnimation);\n};\n\nexport const registerVGrammarCommonAnimation = () => {\n View.useRegisters([\n registerScaleInAnimation,\n registerScaleOutAnimation,\n registerFadeInAnimation,\n registerFadeOutAnimation,\n registerMoveInAnimation,\n registerMoveOutAnimation,\n registerRotateInAnimation,\n registerRotateOutAnimation,\n registerUpdateAnimation\n ]);\n};\n\nexport const registerVGrammarRectAnimation = () => {\n View.useRegisters([\n registerGrowHeightInAnimation,\n registerGrowHeightOutAnimation,\n registerGrowWidthInAnimation,\n registerGrowWidthOutAnimation,\n registerGrowCenterInAnimation,\n registerGrowCenterOutAnimation\n ]);\n};\n\nexport const registerVGrammarArcAnimation = () => {\n View.useRegisters([\n registerGrowRadiusInAnimation,\n registerGrowRadiusOutAnimation,\n registerGrowAngleInAnimation,\n registerGrowAngleOutAnimation\n ]);\n};\n\nexport const registerVGrammarLineOrAreaAnimation = () => {\n View.useRegisters([\n registerGrowPointsInAnimation,\n registerGrowPointsOutAnimation,\n registerGrowPointsXInAnimation,\n registerGrowPointsXOutAnimation,\n registerGrowPointsYInAnimation,\n registerGrowPointsYOutAnimation,\n registerClipInAnimation,\n registerClipOutAnimation\n ]);\n};\n\nexport const registerVGrammarPolygonAnimation = () => {\n View.useRegisters([registerGrowPointsInAnimation, registerGrowPointsOutAnimation]);\n};\n"]}
@@ -59,6 +59,7 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
59
59
  protected _backgroundMark: IRectMark;
60
60
  constructor(spec: T, option: IChartOption);
61
61
  created(): void;
62
+ protected _initStack(): void;
62
63
  init(): void;
63
64
  reDataFlow(): void;
64
65
  onResize(width: number, height: number, reRender?: boolean): void;