@visactor/vchart 1.10.0-alpha.1 → 1.10.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 (648) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +4415 -3072
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/bar/bar-transformer.d.ts +1 -0
  6. package/cjs/chart/bar/bar-transformer.js +19 -2
  7. package/cjs/chart/bar/bar-transformer.js.map +1 -1
  8. package/cjs/chart/bar/interface.d.ts +3 -0
  9. package/cjs/chart/bar/interface.js.map +1 -1
  10. package/cjs/chart/base/base-chart-transformer.js +3 -3
  11. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  12. package/cjs/chart/base/base-chart.d.ts +1 -1
  13. package/cjs/chart/base/base-chart.js +4 -2
  14. package/cjs/chart/base/base-chart.js.map +1 -1
  15. package/cjs/chart/base/util.d.ts +1 -1
  16. package/cjs/chart/base/util.js +20 -10
  17. package/cjs/chart/base/util.js.map +1 -1
  18. package/cjs/chart/cartesian/cartesian-transformer.d.ts +1 -0
  19. package/cjs/chart/cartesian/cartesian-transformer.js +10 -7
  20. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  21. package/cjs/chart/polar/polar-transformer.js.map +1 -1
  22. package/cjs/compile/compiler.js +5 -1
  23. package/cjs/compile/compiler.js.map +1 -1
  24. package/cjs/compile/mark/compilable-mark.d.ts +4 -1
  25. package/cjs/compile/mark/compilable-mark.js +9 -1
  26. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  27. package/cjs/compile/mark/interface.d.ts +4 -1
  28. package/cjs/compile/mark/interface.js.map +1 -1
  29. package/cjs/component/axis/base-axis.d.ts +1 -53
  30. package/cjs/component/axis/base-axis.js +76 -83
  31. package/cjs/component/axis/base-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/band-axis.d.ts +5 -0
  33. package/cjs/component/axis/cartesian/band-axis.js +27 -5
  34. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  35. package/cjs/component/axis/cartesian/interface/spec.d.ts +5 -0
  36. package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
  37. package/cjs/component/axis/cartesian/log-axis.js +2 -1
  38. package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
  39. package/cjs/component/axis/interface/spec.d.ts +5 -6
  40. package/cjs/component/axis/interface/spec.js.map +1 -1
  41. package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
  42. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  43. package/cjs/component/base/base-component.d.ts +1 -1
  44. package/cjs/component/base/base-component.js +2 -2
  45. package/cjs/component/base/base-component.js.map +1 -1
  46. package/cjs/component/brush/brush.d.ts +0 -3
  47. package/cjs/component/brush/brush.js +5 -33
  48. package/cjs/component/brush/brush.js.map +1 -1
  49. package/cjs/component/brush/interface.d.ts +0 -3
  50. package/cjs/component/brush/interface.js.map +1 -1
  51. package/cjs/component/custom-mark/custom-mark.d.ts +1 -2
  52. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  53. package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -6
  54. package/cjs/component/data-zoom/data-filter-base-component.js +11 -21
  55. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  56. package/cjs/component/data-zoom/data-zoom/data-zoom.js +5 -6
  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 +0 -2
  59. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  60. package/cjs/component/data-zoom/util.js +1 -5
  61. package/cjs/component/data-zoom/util.js.map +1 -1
  62. package/cjs/component/indicator/indicator.js.map +1 -1
  63. package/cjs/component/indicator/interface.d.ts +5 -5
  64. package/cjs/component/indicator/interface.js.map +1 -1
  65. package/cjs/component/label/base-label.d.ts +4 -4
  66. package/cjs/component/label/interface.d.ts +8 -9
  67. package/cjs/component/label/interface.js.map +1 -1
  68. package/cjs/component/label/label.js +1 -1
  69. package/cjs/component/label/label.js.map +1 -1
  70. package/cjs/component/label/total-label.js +14 -1
  71. package/cjs/component/label/total-label.js.map +1 -1
  72. package/cjs/component/label/util.d.ts +1 -1
  73. package/cjs/component/label/util.js +1 -8
  74. package/cjs/component/label/util.js.map +1 -1
  75. package/cjs/component/legend/discrete/interface.d.ts +3 -2
  76. package/cjs/component/legend/discrete/interface.js.map +1 -1
  77. package/cjs/component/legend/util.d.ts +1 -1
  78. package/cjs/component/marker/interface.d.ts +6 -6
  79. package/cjs/component/marker/interface.js.map +1 -1
  80. package/cjs/component/marker/mark-area/interface/theme.d.ts +1 -1
  81. package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
  82. package/cjs/component/marker/mark-area/mark-area.js +1 -1
  83. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  84. package/cjs/component/marker/mark-line/interface/theme.d.ts +1 -1
  85. package/cjs/component/marker/mark-line/interface/theme.js.map +1 -1
  86. package/cjs/component/marker/mark-line/mark-line.js +1 -1
  87. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  88. package/cjs/component/marker/mark-point/interface/theme.d.ts +1 -1
  89. package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
  90. package/cjs/component/marker/mark-point/mark-point.js +5 -2
  91. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  92. package/cjs/component/poptip/interface.d.ts +5 -2
  93. package/cjs/component/poptip/interface.js.map +1 -1
  94. package/cjs/component/title/interface/spec.d.ts +18 -7
  95. package/cjs/component/title/interface/spec.js.map +1 -1
  96. package/cjs/component/title/interface/theme.d.ts +2 -1
  97. package/cjs/component/title/interface/theme.js.map +1 -1
  98. package/cjs/component/tooltip/interface/common.d.ts +1 -1
  99. package/cjs/component/tooltip/interface/common.js.map +1 -1
  100. package/cjs/component/tooltip/interface/theme.d.ts +3 -2
  101. package/cjs/component/tooltip/interface/theme.js.map +1 -1
  102. package/cjs/component/tooltip/processor/base.js +2 -2
  103. package/cjs/component/tooltip/processor/base.js.map +1 -1
  104. package/cjs/component/tooltip/tooltip.js +6 -6
  105. package/cjs/component/tooltip/tooltip.js.map +1 -1
  106. package/cjs/constant/index.d.ts +1 -0
  107. package/cjs/constant/index.js +5 -4
  108. package/cjs/constant/index.js.map +1 -1
  109. package/cjs/core/index.d.ts +1 -1
  110. package/cjs/core/index.js +1 -1
  111. package/cjs/core/index.js.map +1 -1
  112. package/cjs/core/vchart.js +4 -3
  113. package/cjs/core/vchart.js.map +1 -1
  114. package/cjs/data/transforms/dimension-statistics.d.ts +2 -0
  115. package/cjs/data/transforms/dimension-statistics.js +1 -1
  116. package/cjs/data/transforms/dimension-statistics.js.map +1 -1
  117. package/cjs/data/transforms/funnel.d.ts +1 -1
  118. package/cjs/data/transforms/waterfall.js +104 -29
  119. package/cjs/data/transforms/waterfall.js.map +1 -1
  120. package/cjs/event/event-dispatcher.js +1 -1
  121. package/cjs/event/event-dispatcher.js.map +1 -1
  122. package/cjs/event/events/dimension/util/common.js +45 -48
  123. package/cjs/event/events/dimension/util/common.js.map +1 -1
  124. package/cjs/event/interface.d.ts +2 -1
  125. package/cjs/event/interface.js.map +1 -1
  126. package/cjs/interaction/dimension-trigger.js +3 -1
  127. package/cjs/interaction/dimension-trigger.js.map +1 -1
  128. package/cjs/interaction/interaction.d.ts +5 -0
  129. package/cjs/interaction/interaction.js +17 -1
  130. package/cjs/interaction/interaction.js.map +1 -1
  131. package/cjs/interaction/interface.d.ts +4 -1
  132. package/cjs/interaction/interface.js.map +1 -1
  133. package/cjs/mark/label.d.ts +2 -2
  134. package/cjs/mark/label.js.map +1 -1
  135. package/cjs/mark/text.d.ts +16 -7
  136. package/cjs/mark/text.js +12 -6
  137. package/cjs/mark/text.js.map +1 -1
  138. package/cjs/plugin/components/tooltip-handler/base.js +15 -15
  139. package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
  140. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -4
  141. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  142. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +2 -2
  143. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  144. package/cjs/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
  145. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js +2 -2
  146. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  147. package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +1 -1
  148. package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  149. package/cjs/series/area/interface.d.ts +2 -1
  150. package/cjs/series/area/interface.js.map +1 -1
  151. package/cjs/series/bar/bar-3d.js.map +1 -1
  152. package/cjs/series/bar/bar.d.ts +11 -1
  153. package/cjs/series/bar/bar.js +102 -72
  154. package/cjs/series/bar/bar.js.map +1 -1
  155. package/cjs/series/bar/interface.d.ts +4 -3
  156. package/cjs/series/bar/interface.js.map +1 -1
  157. package/cjs/series/base/base-series-transformer.d.ts +4 -0
  158. package/cjs/series/base/base-series-transformer.js +33 -10
  159. package/cjs/series/base/base-series-transformer.js.map +1 -1
  160. package/cjs/series/base/base-series.d.ts +4 -1
  161. package/cjs/series/base/base-series.js +10 -2
  162. package/cjs/series/base/base-series.js.map +1 -1
  163. package/cjs/series/cartesian/cartesian.d.ts +1 -2
  164. package/cjs/series/cartesian/cartesian.js +28 -24
  165. package/cjs/series/cartesian/cartesian.js.map +1 -1
  166. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  167. package/cjs/series/correlation/interface.d.ts +3 -3
  168. package/cjs/series/correlation/interface.js.map +1 -1
  169. package/cjs/series/dot/interface.d.ts +2 -2
  170. package/cjs/series/dot/interface.js.map +1 -1
  171. package/cjs/series/funnel/funnel.js.map +1 -1
  172. package/cjs/series/funnel/interface.d.ts +5 -4
  173. package/cjs/series/funnel/interface.js.map +1 -1
  174. package/cjs/series/interface/common.d.ts +2 -0
  175. package/cjs/series/interface/common.js.map +1 -1
  176. package/cjs/series/line/interface.d.ts +3 -2
  177. package/cjs/series/line/interface.js.map +1 -1
  178. package/cjs/series/map/interface.d.ts +2 -5
  179. package/cjs/series/map/interface.js.map +1 -1
  180. package/cjs/series/mixin/line-mixin.js +1 -1
  181. package/cjs/series/mixin/line-mixin.js.map +1 -1
  182. package/cjs/series/pie/3d/pie-3d.d.ts +1 -1
  183. package/cjs/series/pie/3d/pie-3d.js +2 -4
  184. package/cjs/series/pie/3d/pie-3d.js.map +1 -1
  185. package/cjs/series/pie/interface.d.ts +5 -4
  186. package/cjs/series/pie/interface.js.map +1 -1
  187. package/cjs/series/pie/pie-transformer.js +5 -4
  188. package/cjs/series/pie/pie-transformer.js.map +1 -1
  189. package/cjs/series/pie/pie.js +1 -4
  190. package/cjs/series/pie/pie.js.map +1 -1
  191. package/cjs/series/radar/interface.d.ts +2 -1
  192. package/cjs/series/radar/interface.js.map +1 -1
  193. package/cjs/series/range-column/interface.d.ts +5 -5
  194. package/cjs/series/range-column/interface.js.map +1 -1
  195. package/cjs/series/rose/interface.d.ts +2 -1
  196. package/cjs/series/rose/interface.js.map +1 -1
  197. package/cjs/series/rose/rose.js +1 -5
  198. package/cjs/series/rose/rose.js.map +1 -1
  199. package/cjs/series/sankey/interface.d.ts +2 -2
  200. package/cjs/series/sankey/interface.js.map +1 -1
  201. package/cjs/series/sankey/sankey.js.map +1 -1
  202. package/cjs/series/scatter/interface.d.ts +2 -1
  203. package/cjs/series/scatter/interface.js.map +1 -1
  204. package/cjs/series/sunburst/sunburst.js.map +1 -1
  205. package/cjs/series/treemap/interface.d.ts +3 -2
  206. package/cjs/series/treemap/interface.js.map +1 -1
  207. package/cjs/series/treemap/treemap.d.ts +2 -0
  208. package/cjs/series/treemap/treemap.js +45 -45
  209. package/cjs/series/treemap/treemap.js.map +1 -1
  210. package/cjs/series/util/utils.js +1 -1
  211. package/cjs/series/util/utils.js.map +1 -1
  212. package/cjs/series/word-cloud/base.js.map +1 -1
  213. package/cjs/series/word-cloud/interface.d.ts +2 -6
  214. package/cjs/series/word-cloud/interface.js.map +1 -1
  215. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +9 -7
  216. package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  217. package/cjs/theme/builtin/common/component/axis/common-axis.js +15 -10
  218. package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  219. package/cjs/theme/builtin/common/component/crosshair.js +121 -6
  220. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  221. package/cjs/theme/builtin/common/component/data-zoom.js +17 -5
  222. package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
  223. package/cjs/theme/builtin/common/component/indicator.js +9 -7
  224. package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
  225. package/cjs/theme/builtin/common/component/legend/continuous.js +33 -13
  226. package/cjs/theme/builtin/common/component/legend/continuous.js.map +1 -1
  227. package/cjs/theme/builtin/common/component/legend/discrete-legend.js +17 -9
  228. package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  229. package/cjs/theme/builtin/common/component/map-label.js +9 -7
  230. package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
  231. package/cjs/theme/builtin/common/component/mark-area.js +5 -6
  232. package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
  233. package/cjs/theme/builtin/common/component/mark-line.js +5 -6
  234. package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
  235. package/cjs/theme/builtin/common/component/poptip.js +9 -7
  236. package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
  237. package/cjs/theme/builtin/common/component/title.js +17 -9
  238. package/cjs/theme/builtin/common/component/title.js.map +1 -1
  239. package/cjs/theme/builtin/common/component/tooltip.js +25 -11
  240. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  241. package/cjs/theme/builtin/common/component/total-label.js +5 -6
  242. package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
  243. package/cjs/theme/builtin/common/mark.js +10 -8
  244. package/cjs/theme/builtin/common/mark.js.map +1 -1
  245. package/cjs/theme/builtin/common/series/circle-packing.js +9 -7
  246. package/cjs/theme/builtin/common/series/circle-packing.js.map +1 -1
  247. package/cjs/theme/builtin/common/series/dot.js +17 -9
  248. package/cjs/theme/builtin/common/series/dot.js.map +1 -1
  249. package/cjs/theme/builtin/common/series/funnel.js +9 -7
  250. package/cjs/theme/builtin/common/series/funnel.js.map +1 -1
  251. package/cjs/theme/builtin/common/series/funnel3d.js +9 -7
  252. package/cjs/theme/builtin/common/series/funnel3d.js.map +1 -1
  253. package/cjs/theme/builtin/common/series/map.js +9 -7
  254. package/cjs/theme/builtin/common/series/map.js.map +1 -1
  255. package/cjs/theme/builtin/common/series/sunburst.js +9 -3
  256. package/cjs/theme/builtin/common/series/sunburst.js.map +1 -1
  257. package/cjs/theme/builtin/common/series/treemap.js +18 -10
  258. package/cjs/theme/builtin/common/series/treemap.js.map +1 -1
  259. package/cjs/theme/builtin/common/series/waterfall.js +5 -6
  260. package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
  261. package/cjs/theme/builtin/index.js +3 -3
  262. package/cjs/theme/builtin/index.js.map +1 -1
  263. package/cjs/theme/builtin/light/index.js +6 -2
  264. package/cjs/theme/builtin/light/index.js.map +1 -1
  265. package/cjs/theme/interface.d.ts +3 -19
  266. package/cjs/theme/interface.js.map +1 -1
  267. package/cjs/theme/theme-manager.d.ts +1 -1
  268. package/cjs/theme/theme-manager.js +2 -2
  269. package/cjs/theme/theme-manager.js.map +1 -1
  270. package/cjs/theme/token/builtin/default.d.ts +2 -0
  271. package/cjs/theme/{builtin/common/constants.js → token/builtin/default.js} +3 -5
  272. package/cjs/theme/token/builtin/default.js.map +1 -0
  273. package/cjs/theme/token/builtin/index.d.ts +2 -0
  274. package/cjs/theme/token/builtin/index.js +21 -0
  275. package/cjs/theme/token/builtin/index.js.map +1 -0
  276. package/cjs/theme/token/builtin/interface.d.ts +17 -0
  277. package/cjs/theme/token/builtin/interface.js +6 -0
  278. package/cjs/theme/token/builtin/interface.js.map +1 -0
  279. package/cjs/theme/token/index.d.ts +3 -0
  280. package/cjs/theme/token/index.js +22 -0
  281. package/cjs/theme/token/index.js.map +1 -0
  282. package/cjs/theme/token/interface.d.ts +6 -0
  283. package/cjs/theme/token/interface.js +6 -0
  284. package/cjs/theme/token/interface.js.map +1 -0
  285. package/cjs/theme/token/util.d.ts +3 -0
  286. package/cjs/theme/token/util.js +15 -0
  287. package/cjs/theme/token/util.js.map +1 -0
  288. package/cjs/typings/spec/common.d.ts +31 -22
  289. package/cjs/typings/spec/common.js.map +1 -1
  290. package/cjs/typings/tooltip/line.js.map +1 -1
  291. package/cjs/typings/tooltip/position.d.ts +2 -19
  292. package/cjs/typings/tooltip/position.js +1 -12
  293. package/cjs/typings/tooltip/position.js.map +1 -1
  294. package/cjs/typings/visual.d.ts +13 -7
  295. package/cjs/typings/visual.js.map +1 -1
  296. package/cjs/util/data.d.ts +2 -1
  297. package/cjs/util/data.js +12 -7
  298. package/cjs/util/data.js.map +1 -1
  299. package/cjs/util/spec/common.d.ts +0 -2
  300. package/cjs/util/spec/common.js +3 -8
  301. package/cjs/util/spec/common.js.map +1 -1
  302. package/cjs/util/spec/index.d.ts +2 -2
  303. package/cjs/util/spec/index.js +1 -1
  304. package/cjs/util/spec/index.js.map +1 -1
  305. package/cjs/util/text.js +3 -3
  306. package/cjs/util/text.js.map +1 -1
  307. package/cjs/util/theme/common.d.ts +2 -0
  308. package/cjs/util/theme/common.js +15 -0
  309. package/cjs/util/theme/common.js.map +1 -0
  310. package/cjs/util/theme/index.d.ts +3 -0
  311. package/cjs/util/theme/index.js +22 -0
  312. package/cjs/util/theme/index.js.map +1 -0
  313. package/cjs/util/{spec → theme}/merge-theme.js +3 -1
  314. package/cjs/util/theme/merge-theme.js.map +1 -0
  315. package/cjs/util/{spec → theme}/preprocess.d.ts +2 -1
  316. package/cjs/util/{spec → theme}/preprocess.js +5 -3
  317. package/cjs/util/theme/preprocess.js.map +1 -0
  318. package/esm/chart/bar/bar-transformer.d.ts +1 -0
  319. package/esm/chart/bar/bar-transformer.js +19 -1
  320. package/esm/chart/bar/bar-transformer.js.map +1 -1
  321. package/esm/chart/bar/interface.d.ts +3 -0
  322. package/esm/chart/bar/interface.js.map +1 -1
  323. package/esm/chart/base/base-chart-transformer.js +3 -3
  324. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  325. package/esm/chart/base/base-chart.d.ts +1 -1
  326. package/esm/chart/base/base-chart.js +4 -2
  327. package/esm/chart/base/base-chart.js.map +1 -1
  328. package/esm/chart/base/util.d.ts +1 -1
  329. package/esm/chart/base/util.js +21 -9
  330. package/esm/chart/base/util.js.map +1 -1
  331. package/esm/chart/cartesian/cartesian-transformer.d.ts +1 -0
  332. package/esm/chart/cartesian/cartesian-transformer.js +10 -7
  333. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  334. package/esm/chart/polar/polar-transformer.js.map +1 -1
  335. package/esm/compile/compiler.js +5 -1
  336. package/esm/compile/compiler.js.map +1 -1
  337. package/esm/compile/mark/compilable-mark.d.ts +4 -1
  338. package/esm/compile/mark/compilable-mark.js +9 -1
  339. package/esm/compile/mark/compilable-mark.js.map +1 -1
  340. package/esm/compile/mark/interface.d.ts +4 -1
  341. package/esm/compile/mark/interface.js.map +1 -1
  342. package/esm/component/axis/base-axis.d.ts +1 -53
  343. package/esm/component/axis/base-axis.js +74 -82
  344. package/esm/component/axis/base-axis.js.map +1 -1
  345. package/esm/component/axis/cartesian/band-axis.d.ts +5 -0
  346. package/esm/component/axis/cartesian/band-axis.js +27 -6
  347. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  348. package/esm/component/axis/cartesian/interface/spec.d.ts +5 -0
  349. package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
  350. package/esm/component/axis/cartesian/log-axis.js +2 -1
  351. package/esm/component/axis/cartesian/log-axis.js.map +1 -1
  352. package/esm/component/axis/interface/spec.d.ts +5 -6
  353. package/esm/component/axis/interface/spec.js.map +1 -1
  354. package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
  355. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  356. package/esm/component/base/base-component.d.ts +1 -1
  357. package/esm/component/base/base-component.js +3 -1
  358. package/esm/component/base/base-component.js.map +1 -1
  359. package/esm/component/brush/brush.d.ts +0 -3
  360. package/esm/component/brush/brush.js +5 -31
  361. package/esm/component/brush/brush.js.map +1 -1
  362. package/esm/component/brush/interface.d.ts +0 -3
  363. package/esm/component/brush/interface.js.map +1 -1
  364. package/esm/component/custom-mark/custom-mark.d.ts +1 -2
  365. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  366. package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -6
  367. package/esm/component/data-zoom/data-filter-base-component.js +12 -20
  368. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  369. package/esm/component/data-zoom/data-zoom/data-zoom.js +6 -7
  370. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  371. package/esm/component/data-zoom/data-zoom/interface.d.ts +0 -2
  372. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  373. package/esm/component/data-zoom/util.js +1 -5
  374. package/esm/component/data-zoom/util.js.map +1 -1
  375. package/esm/component/indicator/indicator.js.map +1 -1
  376. package/esm/component/indicator/interface.d.ts +5 -5
  377. package/esm/component/indicator/interface.js.map +1 -1
  378. package/esm/component/label/base-label.d.ts +4 -4
  379. package/esm/component/label/interface.d.ts +8 -9
  380. package/esm/component/label/interface.js.map +1 -1
  381. package/esm/component/label/label.js +1 -1
  382. package/esm/component/label/label.js.map +1 -1
  383. package/esm/component/label/total-label.js +14 -1
  384. package/esm/component/label/total-label.js.map +1 -1
  385. package/esm/component/label/util.d.ts +1 -1
  386. package/esm/component/label/util.js +1 -8
  387. package/esm/component/label/util.js.map +1 -1
  388. package/esm/component/legend/discrete/interface.d.ts +3 -2
  389. package/esm/component/legend/discrete/interface.js.map +1 -1
  390. package/esm/component/legend/util.d.ts +1 -1
  391. package/esm/component/marker/interface.d.ts +6 -6
  392. package/esm/component/marker/interface.js.map +1 -1
  393. package/esm/component/marker/mark-area/interface/theme.d.ts +1 -1
  394. package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
  395. package/esm/component/marker/mark-area/mark-area.js +1 -1
  396. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  397. package/esm/component/marker/mark-line/interface/theme.d.ts +1 -1
  398. package/esm/component/marker/mark-line/interface/theme.js.map +1 -1
  399. package/esm/component/marker/mark-line/mark-line.js +1 -1
  400. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  401. package/esm/component/marker/mark-point/interface/theme.d.ts +1 -1
  402. package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
  403. package/esm/component/marker/mark-point/mark-point.js +5 -2
  404. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  405. package/esm/component/poptip/interface.d.ts +5 -2
  406. package/esm/component/poptip/interface.js.map +1 -1
  407. package/esm/component/title/interface/spec.d.ts +18 -7
  408. package/esm/component/title/interface/spec.js.map +1 -1
  409. package/esm/component/title/interface/theme.d.ts +2 -1
  410. package/esm/component/title/interface/theme.js.map +1 -1
  411. package/esm/component/tooltip/interface/common.d.ts +1 -1
  412. package/esm/component/tooltip/interface/common.js.map +1 -1
  413. package/esm/component/tooltip/interface/theme.d.ts +3 -2
  414. package/esm/component/tooltip/interface/theme.js.map +1 -1
  415. package/esm/component/tooltip/processor/base.js +1 -3
  416. package/esm/component/tooltip/processor/base.js.map +1 -1
  417. package/esm/component/tooltip/tooltip.js +2 -4
  418. package/esm/component/tooltip/tooltip.js.map +1 -1
  419. package/esm/constant/index.d.ts +1 -0
  420. package/esm/constant/index.js +2 -0
  421. package/esm/constant/index.js.map +1 -1
  422. package/esm/core/index.d.ts +1 -1
  423. package/esm/core/index.js +1 -1
  424. package/esm/core/index.js.map +1 -1
  425. package/esm/core/vchart.js +4 -3
  426. package/esm/core/vchart.js.map +1 -1
  427. package/esm/data/transforms/dimension-statistics.d.ts +2 -0
  428. package/esm/data/transforms/dimension-statistics.js +1 -1
  429. package/esm/data/transforms/dimension-statistics.js.map +1 -1
  430. package/esm/data/transforms/funnel.d.ts +1 -1
  431. package/esm/data/transforms/waterfall.js +104 -28
  432. package/esm/data/transforms/waterfall.js.map +1 -1
  433. package/esm/event/event-dispatcher.js +2 -2
  434. package/esm/event/event-dispatcher.js.map +1 -1
  435. package/esm/event/events/dimension/util/common.js +44 -47
  436. package/esm/event/events/dimension/util/common.js.map +1 -1
  437. package/esm/event/interface.d.ts +2 -1
  438. package/esm/event/interface.js.map +1 -1
  439. package/esm/interaction/dimension-trigger.js +3 -1
  440. package/esm/interaction/dimension-trigger.js.map +1 -1
  441. package/esm/interaction/interaction.d.ts +5 -0
  442. package/esm/interaction/interaction.js +17 -1
  443. package/esm/interaction/interaction.js.map +1 -1
  444. package/esm/interaction/interface.d.ts +4 -1
  445. package/esm/interaction/interface.js.map +1 -1
  446. package/esm/mark/label.d.ts +2 -2
  447. package/esm/mark/label.js.map +1 -1
  448. package/esm/mark/text.d.ts +16 -7
  449. package/esm/mark/text.js +13 -7
  450. package/esm/mark/text.js.map +1 -1
  451. package/esm/plugin/components/tooltip-handler/base.js +14 -16
  452. package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
  453. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -4
  454. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  455. package/esm/plugin/components/tooltip-handler/utils/attribute.js +3 -3
  456. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  457. package/esm/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
  458. package/esm/plugin/components/tooltip-handler/utils/get-spec.js +2 -2
  459. package/esm/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  460. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +1 -1
  461. package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  462. package/esm/series/area/interface.d.ts +2 -1
  463. package/esm/series/area/interface.js.map +1 -1
  464. package/esm/series/bar/bar-3d.js.map +1 -1
  465. package/esm/series/bar/bar.d.ts +11 -1
  466. package/esm/series/bar/bar.js +99 -66
  467. package/esm/series/bar/bar.js.map +1 -1
  468. package/esm/series/bar/interface.d.ts +4 -3
  469. package/esm/series/bar/interface.js.map +1 -1
  470. package/esm/series/base/base-series-transformer.d.ts +4 -0
  471. package/esm/series/base/base-series-transformer.js +35 -10
  472. package/esm/series/base/base-series-transformer.js.map +1 -1
  473. package/esm/series/base/base-series.d.ts +4 -1
  474. package/esm/series/base/base-series.js +10 -2
  475. package/esm/series/base/base-series.js.map +1 -1
  476. package/esm/series/cartesian/cartesian.d.ts +1 -2
  477. package/esm/series/cartesian/cartesian.js +28 -25
  478. package/esm/series/cartesian/cartesian.js.map +1 -1
  479. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  480. package/esm/series/correlation/interface.d.ts +3 -3
  481. package/esm/series/correlation/interface.js.map +1 -1
  482. package/esm/series/dot/interface.d.ts +2 -2
  483. package/esm/series/dot/interface.js.map +1 -1
  484. package/esm/series/funnel/funnel.js.map +1 -1
  485. package/esm/series/funnel/interface.d.ts +5 -4
  486. package/esm/series/funnel/interface.js.map +1 -1
  487. package/esm/series/interface/common.d.ts +2 -0
  488. package/esm/series/interface/common.js.map +1 -1
  489. package/esm/series/line/interface.d.ts +3 -2
  490. package/esm/series/line/interface.js.map +1 -1
  491. package/esm/series/map/interface.d.ts +2 -5
  492. package/esm/series/map/interface.js.map +1 -1
  493. package/esm/series/mixin/line-mixin.js +1 -1
  494. package/esm/series/mixin/line-mixin.js.map +1 -1
  495. package/esm/series/pie/3d/pie-3d.d.ts +1 -1
  496. package/esm/series/pie/3d/pie-3d.js +2 -3
  497. package/esm/series/pie/3d/pie-3d.js.map +1 -1
  498. package/esm/series/pie/interface.d.ts +5 -4
  499. package/esm/series/pie/interface.js.map +1 -1
  500. package/esm/series/pie/pie-transformer.js +5 -1
  501. package/esm/series/pie/pie-transformer.js.map +1 -1
  502. package/esm/series/pie/pie.js +1 -4
  503. package/esm/series/pie/pie.js.map +1 -1
  504. package/esm/series/radar/interface.d.ts +2 -1
  505. package/esm/series/radar/interface.js.map +1 -1
  506. package/esm/series/range-column/interface.d.ts +5 -5
  507. package/esm/series/range-column/interface.js.map +1 -1
  508. package/esm/series/rose/interface.d.ts +2 -1
  509. package/esm/series/rose/interface.js.map +1 -1
  510. package/esm/series/rose/rose.js +1 -5
  511. package/esm/series/rose/rose.js.map +1 -1
  512. package/esm/series/sankey/interface.d.ts +2 -2
  513. package/esm/series/sankey/interface.js.map +1 -1
  514. package/esm/series/sankey/sankey.js.map +1 -1
  515. package/esm/series/scatter/interface.d.ts +2 -1
  516. package/esm/series/scatter/interface.js.map +1 -1
  517. package/esm/series/sunburst/sunburst.js.map +1 -1
  518. package/esm/series/treemap/interface.d.ts +3 -2
  519. package/esm/series/treemap/interface.js.map +1 -1
  520. package/esm/series/treemap/treemap.d.ts +2 -0
  521. package/esm/series/treemap/treemap.js +43 -46
  522. package/esm/series/treemap/treemap.js.map +1 -1
  523. package/esm/series/util/utils.js +1 -1
  524. package/esm/series/util/utils.js.map +1 -1
  525. package/esm/series/word-cloud/base.js.map +1 -1
  526. package/esm/series/word-cloud/interface.d.ts +2 -6
  527. package/esm/series/word-cloud/interface.js.map +1 -1
  528. package/esm/theme/builtin/common/component/axis/cartesian-axis.js +8 -4
  529. package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
  530. package/esm/theme/builtin/common/component/axis/common-axis.js +14 -7
  531. package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
  532. package/esm/theme/builtin/common/component/crosshair.js +120 -7
  533. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  534. package/esm/theme/builtin/common/component/data-zoom.js +16 -6
  535. package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
  536. package/esm/theme/builtin/common/component/indicator.js +8 -4
  537. package/esm/theme/builtin/common/component/indicator.js.map +1 -1
  538. package/esm/theme/builtin/common/component/legend/continuous.js +32 -10
  539. package/esm/theme/builtin/common/component/legend/continuous.js.map +1 -1
  540. package/esm/theme/builtin/common/component/legend/discrete-legend.js +16 -6
  541. package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
  542. package/esm/theme/builtin/common/component/map-label.js +8 -4
  543. package/esm/theme/builtin/common/component/map-label.js.map +1 -1
  544. package/esm/theme/builtin/common/component/mark-area.js +4 -3
  545. package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
  546. package/esm/theme/builtin/common/component/mark-line.js +4 -3
  547. package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
  548. package/esm/theme/builtin/common/component/poptip.js +8 -4
  549. package/esm/theme/builtin/common/component/poptip.js.map +1 -1
  550. package/esm/theme/builtin/common/component/title.js +16 -6
  551. package/esm/theme/builtin/common/component/title.js.map +1 -1
  552. package/esm/theme/builtin/common/component/tooltip.js +24 -8
  553. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  554. package/esm/theme/builtin/common/component/total-label.js +4 -3
  555. package/esm/theme/builtin/common/component/total-label.js.map +1 -1
  556. package/esm/theme/builtin/common/mark.js +9 -5
  557. package/esm/theme/builtin/common/mark.js.map +1 -1
  558. package/esm/theme/builtin/common/series/circle-packing.js +8 -4
  559. package/esm/theme/builtin/common/series/circle-packing.js.map +1 -1
  560. package/esm/theme/builtin/common/series/dot.js +16 -6
  561. package/esm/theme/builtin/common/series/dot.js.map +1 -1
  562. package/esm/theme/builtin/common/series/funnel.js +8 -4
  563. package/esm/theme/builtin/common/series/funnel.js.map +1 -1
  564. package/esm/theme/builtin/common/series/funnel3d.js +8 -4
  565. package/esm/theme/builtin/common/series/funnel3d.js.map +1 -1
  566. package/esm/theme/builtin/common/series/map.js +8 -4
  567. package/esm/theme/builtin/common/series/map.js.map +1 -1
  568. package/esm/theme/builtin/common/series/sunburst.js +8 -4
  569. package/esm/theme/builtin/common/series/sunburst.js.map +1 -1
  570. package/esm/theme/builtin/common/series/treemap.js +17 -7
  571. package/esm/theme/builtin/common/series/treemap.js.map +1 -1
  572. package/esm/theme/builtin/common/series/waterfall.js +4 -3
  573. package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
  574. package/esm/theme/builtin/index.js +4 -4
  575. package/esm/theme/builtin/index.js.map +1 -1
  576. package/esm/theme/builtin/light/index.js +7 -3
  577. package/esm/theme/builtin/light/index.js.map +1 -1
  578. package/esm/theme/interface.d.ts +3 -19
  579. package/esm/theme/interface.js.map +1 -1
  580. package/esm/theme/theme-manager.d.ts +1 -1
  581. package/esm/theme/theme-manager.js +2 -2
  582. package/esm/theme/theme-manager.js.map +1 -1
  583. package/esm/theme/token/builtin/default.d.ts +2 -0
  584. package/esm/theme/{builtin/common/constants.js → token/builtin/default.js} +3 -5
  585. package/esm/theme/token/builtin/default.js.map +1 -0
  586. package/esm/theme/token/builtin/index.d.ts +2 -0
  587. package/esm/theme/token/builtin/index.js +4 -0
  588. package/esm/theme/token/builtin/index.js.map +1 -0
  589. package/esm/theme/token/builtin/interface.d.ts +17 -0
  590. package/esm/theme/token/builtin/interface.js +2 -0
  591. package/esm/theme/token/builtin/interface.js.map +1 -0
  592. package/esm/theme/token/index.d.ts +3 -0
  593. package/esm/theme/token/index.js +6 -0
  594. package/esm/theme/token/index.js.map +1 -0
  595. package/esm/theme/token/interface.d.ts +6 -0
  596. package/esm/theme/token/interface.js +2 -0
  597. package/esm/theme/token/interface.js.map +1 -0
  598. package/esm/theme/token/util.d.ts +3 -0
  599. package/esm/theme/token/util.js +8 -0
  600. package/esm/theme/token/util.js.map +1 -0
  601. package/esm/typings/spec/common.d.ts +31 -22
  602. package/esm/typings/spec/common.js.map +1 -1
  603. package/esm/typings/tooltip/line.js.map +1 -1
  604. package/esm/typings/tooltip/position.d.ts +2 -19
  605. package/esm/typings/tooltip/position.js +1 -15
  606. package/esm/typings/tooltip/position.js.map +1 -1
  607. package/esm/typings/visual.d.ts +13 -7
  608. package/esm/typings/visual.js.map +1 -1
  609. package/esm/util/data.d.ts +2 -1
  610. package/esm/util/data.js +12 -8
  611. package/esm/util/data.js.map +1 -1
  612. package/esm/util/spec/common.d.ts +0 -2
  613. package/esm/util/spec/common.js +0 -8
  614. package/esm/util/spec/common.js.map +1 -1
  615. package/esm/util/spec/index.d.ts +2 -2
  616. package/esm/util/spec/index.js +2 -2
  617. package/esm/util/spec/index.js.map +1 -1
  618. package/esm/util/text.js +4 -4
  619. package/esm/util/text.js.map +1 -1
  620. package/esm/util/theme/common.d.ts +2 -0
  621. package/esm/util/theme/common.js +8 -0
  622. package/esm/util/theme/common.js.map +1 -0
  623. package/esm/util/theme/index.d.ts +3 -0
  624. package/esm/util/theme/index.js +6 -0
  625. package/esm/util/theme/index.js.map +1 -0
  626. package/esm/util/{spec → theme}/merge-theme.js +3 -1
  627. package/esm/util/theme/merge-theme.js.map +1 -0
  628. package/esm/util/{spec → theme}/preprocess.d.ts +2 -1
  629. package/esm/util/theme/preprocess.js +18 -0
  630. package/esm/util/theme/preprocess.js.map +1 -0
  631. package/package.json +17 -17
  632. package/cjs/data/transforms/treemap.d.ts +0 -11
  633. package/cjs/data/transforms/treemap.js +0 -15
  634. package/cjs/data/transforms/treemap.js.map +0 -1
  635. package/cjs/theme/builtin/common/constants.d.ts +0 -2
  636. package/cjs/theme/builtin/common/constants.js.map +0 -1
  637. package/cjs/util/spec/merge-theme.js.map +0 -1
  638. package/cjs/util/spec/preprocess.js.map +0 -1
  639. package/esm/data/transforms/treemap.d.ts +0 -11
  640. package/esm/data/transforms/treemap.js +0 -9
  641. package/esm/data/transforms/treemap.js.map +0 -1
  642. package/esm/theme/builtin/common/constants.d.ts +0 -2
  643. package/esm/theme/builtin/common/constants.js.map +0 -1
  644. package/esm/util/spec/merge-theme.js.map +0 -1
  645. package/esm/util/spec/preprocess.js +0 -15
  646. package/esm/util/spec/preprocess.js.map +0 -1
  647. /package/cjs/util/{spec → theme}/merge-theme.d.ts +0 -0
  648. /package/esm/util/{spec → theme}/merge-theme.d.ts +0 -0
@@ -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} from '../constant';\nimport { toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/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 nodes: {\n [key: string]: IStackCacheNode;\n };\n}\nexport interface IStackCacheRoot {\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport function getRegionStackGroup(\n region: { getSeries: () => any[] },\n setInitialValue: boolean,\n filter?: (s: any) => boolean\n) {\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\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 stackGroup(s, stackData, stackValueGroup[stackValue] as IStackCacheNode, stackValueField, setInitialValue);\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 }\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) {\n if ('values' in stackData) {\n // 初值\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.values.push(...stackData.values);\n stackCache.series.push({ s: s, values: stackData.values });\n return;\n }\n for (const key in stackData.nodes) {\n !stackCache.nodes[key] &&\n (stackCache.nodes[key] = {\n values: [],\n series: [],\n nodes: {}\n });\n stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue);\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} from '../constant';\nimport { toValidNumber } from './type';\nimport { max, sum } from './math';\nimport type { ISeries, ISeriesStackDataMeta } from '../series/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 nodes: {\n [key: string]: IStackCacheNode;\n };\n key: string;\n}\nexport interface IStackCacheRoot {\n nodes: {\n [key: string]: IStackCacheNode;\n };\n}\n\nexport function getRegionStackGroup(\n region: { getSeries: () => any[] },\n setInitialValue: boolean,\n filter?: (s: any) => boolean\n) {\n const stackValueGroup: { [key: string]: IStackCacheRoot } = {};\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 stackGroup(s, stackData, stackValueGroup[stackValue] as IStackCacheNode, stackValueField, setInitialValue);\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 stackKey?: string\n) {\n if ('values' in stackData) {\n // 初值\n setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));\n stackCache.values.push(...stackData.values);\n stackCache.series.push({ s: s, values: stackData.values });\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 key: newStackKey\n });\n stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, newStackKey);\n }\n}\n"]}
@@ -1,5 +1,3 @@
1
1
  import { DataView } from '@visactor/vdataset';
2
- import type { ITheme } from '../../theme';
3
2
  export declare function isDataView(obj: any): obj is DataView;
4
3
  export declare function isHTMLElement(obj: any): obj is Element;
5
- export declare function getThemeObject(theme?: string | ITheme, transformed?: boolean): ITheme;
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.getThemeObject = exports.isHTMLElement = exports.isDataView = void 0;
5
+ }), exports.isHTMLElement = exports.isDataView = void 0;
6
6
 
7
- const vdataset_1 = require("@visactor/vdataset"), theme_1 = require("../../theme"), vutils_1 = require("@visactor/vutils");
7
+ const vdataset_1 = require("@visactor/vdataset");
8
8
 
9
9
  function isDataView(obj) {
10
10
  return obj instanceof vdataset_1.DataView;
@@ -19,10 +19,5 @@ function isHTMLElement(obj) {
19
19
  }
20
20
  }
21
21
 
22
- function getThemeObject(theme, transformed) {
23
- return (0, vutils_1.isString)(theme) ? theme_1.ThemeManager.themeExist(theme) ? theme_1.ThemeManager.getTheme(theme, transformed) : {} : (0,
24
- vutils_1.isObject)(theme) ? theme : {};
25
- }
26
-
27
- exports.isDataView = isDataView, exports.isHTMLElement = isHTMLElement, exports.getThemeObject = getThemeObject;
22
+ exports.isDataView = isDataView, exports.isHTMLElement = isHTMLElement;
28
23
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/common.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAG9C,uCAA2C;AAC3C,6CAAsD;AAEtD,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,YAAY,mBAAQ,CAAC;AACjC,CAAC;AAFD,gCAEC;AAED,SAAgB,aAAa,CAAC,GAAQ;IACpC,IAAI;QACF,OAAO,GAAG,YAAY,OAAO,CAAC;KAC/B;IAAC,WAAM;QAEN,MAAM,eAAe,GAAsB;YACzC,UAAU;YACV,WAAW;YACX,WAAW;YACX,cAAc;YACd,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAhBD,sCAgBC;AAED,SAAgB,cAAc,CAAC,KAAuB,EAAE,WAAqB;IAC3E,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QACnB,IAAI,oBAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,oBAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,OAAO,EAAE,CAAC;KACX;SAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAVD,wCAUC","file":"common.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { ITheme } from '../../theme';\n// eslint-disable-next-line no-duplicate-imports\nimport { ThemeManager } from '../../theme';\nimport { isObject, isString } from '@visactor/vutils';\n\nexport function isDataView(obj: any): obj is DataView {\n return obj instanceof DataView;\n}\n\nexport function isHTMLElement(obj: any): obj is Element {\n try {\n return obj instanceof Element;\n } catch {\n // 跨端 plan B\n const htmlElementKeys: (keyof Element)[] = [\n 'children',\n 'innerHTML',\n 'classList',\n 'setAttribute',\n 'tagName',\n 'getBoundingClientRect'\n ];\n const keys = Object.keys(obj);\n return htmlElementKeys.every(key => keys.includes(key));\n }\n}\n\nexport function getThemeObject(theme?: string | ITheme, transformed?: boolean): ITheme {\n if (isString(theme)) {\n if (ThemeManager.themeExist(theme)) {\n return ThemeManager.getTheme(theme, transformed);\n }\n return {};\n } else if (isObject(theme)) {\n return theme;\n }\n return {};\n}\n"]}
1
+ {"version":3,"sources":["../src/util/spec/common.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,GAAG,YAAY,mBAAQ,CAAC;AACjC,CAAC;AAFD,gCAEC;AAED,SAAgB,aAAa,CAAC,GAAQ;IACpC,IAAI;QACF,OAAO,GAAG,YAAY,OAAO,CAAC;KAC/B;IAAC,WAAM;QAEN,MAAM,eAAe,GAAsB;YACzC,UAAU;YACV,WAAW;YACX,WAAW;YACX,cAAc;YACd,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAhBD,sCAgBC","file":"common.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\n\nexport function isDataView(obj: any): obj is DataView {\n return obj instanceof DataView;\n}\n\nexport function isHTMLElement(obj: any): obj is Element {\n try {\n return obj instanceof Element;\n } catch {\n // 跨端 plan B\n const htmlElementKeys: (keyof Element)[] = [\n 'children',\n 'innerHTML',\n 'classList',\n 'setAttribute',\n 'tagName',\n 'getBoundingClientRect'\n ];\n const keys = Object.keys(obj);\n return htmlElementKeys.every(key => keys.includes(key));\n }\n}\n"]}
@@ -2,6 +2,6 @@ export * from './background';
2
2
  export * from './clone-deep';
3
3
  export * from './common';
4
4
  export * from './merge-spec';
5
- export * from './merge-theme';
6
- export * from './preprocess';
5
+ export * from '../theme/merge-theme';
6
+ export * from '../theme/preprocess';
7
7
  export * from './transform';
@@ -19,6 +19,6 @@ Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), __exportStar(require("./background"), exports), __exportStar(require("./clone-deep"), exports),
21
21
  __exportStar(require("./common"), exports), __exportStar(require("./merge-spec"), exports),
22
- __exportStar(require("./merge-theme"), exports), __exportStar(require("./preprocess"), exports),
22
+ __exportStar(require("../theme/merge-theme"), exports), __exportStar(require("../theme/preprocess"), exports),
23
23
  __exportStar(require("./transform"), exports);
24
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/spec/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,2CAAyB;AACzB,+CAA6B;AAC7B,gDAA8B;AAC9B,+CAA6B;AAC7B,8CAA4B","file":"index.js","sourcesContent":["export * from './background';\nexport * from './clone-deep';\nexport * from './common';\nexport * from './merge-spec';\nexport * from './merge-theme';\nexport * from './preprocess';\nexport * from './transform';\n"]}
1
+ {"version":3,"sources":["../src/util/spec/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,2CAAyB;AACzB,+CAA6B;AAC7B,uDAAqC;AACrC,sDAAoC;AACpC,8CAA4B","file":"index.js","sourcesContent":["export * from './background';\nexport * from './clone-deep';\nexport * from './common';\nexport * from './merge-spec';\nexport * from '../theme/merge-theme';\nexport * from '../theme/preprocess';\nexport * from './transform';\n"]}
package/cjs/util/text.js CHANGED
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.measureText = exports.initTextMeasure = void 0;
6
6
 
7
- const constants_1 = require("../theme/builtin/common/constants"), vutils_extension_1 = require("@visactor/vutils-extension"), initTextMeasure = (textSpec, option, useNaiveCanvas) => (0,
7
+ const vutils_extension_1 = require("@visactor/vutils-extension"), token_1 = require("../theme/token"), initTextMeasure = (textSpec, option, useNaiveCanvas) => (0,
8
8
  vutils_extension_1.initTextMeasure)(textSpec, option, useNaiveCanvas, {
9
- fontFamily: constants_1.THEME_CONSTANTS.defaultFontFamily,
10
- fontSize: constants_1.THEME_CONSTANTS.defaultFontSize
9
+ fontFamily: token_1.tokenMap.defaultFontFamily,
10
+ fontSize: token_1.tokenMap.defaultFontSize
11
11
  });
12
12
 
13
13
  exports.initTextMeasure = initTextMeasure;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/text.ts"],"names":[],"mappings":";;;AAGA,iEAAoE;AACpE,iEAAoF;AAG7E,MAAM,eAAe,GAAG,CAC7B,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACY,EAAE;IACtC,OAAO,IAAA,kCAAmB,EAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;QAC3D,UAAU,EAAE,2BAAe,CAAC,iBAAiB;QAC7C,QAAQ,EAAE,2BAAe,CAAC,eAAe;KAC1C,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEK,MAAM,WAAW,GAAG,CACzB,IAAY,EACZ,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACb,EAAE;IACb,OAAO,IAAA,uBAAe,EAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB","file":"text.js","sourcesContent":["import type { ITextMeasureOption, ITextSize } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TextMeasure } from '@visactor/vutils';\nimport { THEME_CONSTANTS } from '../theme/builtin/common/constants';\nimport { initTextMeasure as initTextMeasureFunc } from '@visactor/vutils-extension';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): TextMeasure<ITextGraphicAttribute> => {\n return initTextMeasureFunc(textSpec, option, useNaiveCanvas, {\n fontFamily: THEME_CONSTANTS.defaultFontFamily,\n fontSize: THEME_CONSTANTS.defaultFontSize\n });\n};\n\nexport const measureText = (\n text: string,\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): ITextSize => {\n return initTextMeasure(textSpec, option, useNaiveCanvas).measure(text);\n};\n"]}
1
+ {"version":3,"sources":["../src/util/text.ts"],"names":[],"mappings":";;;AAGA,iEAAoF;AAEpF,0CAA0C;AAEnC,MAAM,eAAe,GAAG,CAC7B,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACY,EAAE;IACtC,OAAO,IAAA,kCAAmB,EAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;QAC3D,UAAU,EAAE,gBAAQ,CAAC,iBAAiB;QACtC,QAAQ,EAAE,gBAAQ,CAAC,eAAe;KACnC,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEK,MAAM,WAAW,GAAG,CACzB,IAAY,EACZ,QAAyC,EACzC,MAAoC,EACpC,cAAwB,EACb,EAAE;IACb,OAAO,IAAA,uBAAe,EAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB","file":"text.js","sourcesContent":["import type { ITextMeasureOption, ITextSize } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TextMeasure } from '@visactor/vutils';\nimport { initTextMeasure as initTextMeasureFunc } from '@visactor/vutils-extension';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { tokenMap } from '../theme/token';\n\nexport const initTextMeasure = (\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): TextMeasure<ITextGraphicAttribute> => {\n return initTextMeasureFunc(textSpec, option, useNaiveCanvas, {\n fontFamily: tokenMap.defaultFontFamily,\n fontSize: tokenMap.defaultFontSize\n });\n};\n\nexport const measureText = (\n text: string,\n textSpec?: Partial<ITextGraphicAttribute>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): ITextSize => {\n return initTextMeasure(textSpec, option, useNaiveCanvas).measure(text);\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import type { ITheme } from '../../theme';
2
+ export declare function getThemeObject(theme?: string | ITheme, transformed?: boolean): ITheme;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.getThemeObject = void 0;
6
+
7
+ const theme_1 = require("../../theme"), vutils_1 = require("@visactor/vutils");
8
+
9
+ function getThemeObject(theme, transformed) {
10
+ return (0, vutils_1.isString)(theme) ? theme_1.ThemeManager.themeExist(theme) ? theme_1.ThemeManager.getTheme(theme, transformed) : {} : (0,
11
+ vutils_1.isObject)(theme) ? theme : {};
12
+ }
13
+
14
+ exports.getThemeObject = getThemeObject;
15
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/theme/common.ts"],"names":[],"mappings":";;;AAEA,uCAA2C;AAC3C,6CAAsD;AAEtD,SAAgB,cAAc,CAAC,KAAuB,EAAE,WAAqB;IAC3E,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QACnB,IAAI,oBAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,oBAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAClD;QACD,OAAO,EAAE,CAAC;KACX;SAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAVD,wCAUC","file":"common.js","sourcesContent":["import type { ITheme } from '../../theme';\n// eslint-disable-next-line no-duplicate-imports\nimport { ThemeManager } from '../../theme';\nimport { isObject, isString } from '@visactor/vutils';\n\nexport function getThemeObject(theme?: string | ITheme, transformed?: boolean): ITheme {\n if (isString(theme)) {\n if (ThemeManager.themeExist(theme)) {\n return ThemeManager.getTheme(theme, transformed);\n }\n return {};\n } else if (isObject(theme)) {\n return theme;\n }\n return {};\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './common';
2
+ export * from './merge-theme';
3
+ export * from './preprocess';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __exportStar = this && this.__exportStar || function(m, exports) {
15
+ for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
16
+ };
17
+
18
+ Object.defineProperty(exports, "__esModule", {
19
+ value: !0
20
+ }), __exportStar(require("./common"), exports), __exportStar(require("./merge-theme"), exports),
21
+ __exportStar(require("./preprocess"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/theme/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B;AAC9B,+CAA6B","file":"index.js","sourcesContent":["export * from './common';\nexport * from './merge-theme';\nexport * from './preprocess';\n"]}
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.transformSeriesThemeToMerge = exports.transformColorSchemeToMerge = exports.mergeTheme = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), util_1 = require("../../theme/color-scheme/util"), theme_1 = require("../../series/interface/theme"), merge_spec_1 = require("./merge-spec");
7
+ const vutils_1 = require("@visactor/vutils"), util_1 = require("../../theme/color-scheme/util"), theme_1 = require("../../series/interface/theme"), merge_spec_1 = require("../spec/merge-spec");
8
8
 
9
9
  function mergeTheme(target, ...sources) {
10
10
  return (0, merge_spec_1.mergeSpec)(transformThemeToMerge(target), ...sources.map(transformThemeToMerge));
11
11
  }
12
12
 
13
13
  function transformThemeToMerge(theme) {
14
+ var _a;
14
15
  if (!theme) return theme;
15
16
  const colorScheme = transformColorSchemeToMerge(theme.colorScheme), {series: series} = theme, {mark: markByType, markByName: markByName} = theme;
16
17
  let newSeriesTheme;
@@ -21,6 +22,7 @@ function transformThemeToMerge(theme) {
21
22
  newSeriesTheme;
22
23
  }), {})), Object.assign({}, theme, {
23
24
  colorScheme: colorScheme,
25
+ tokenMap: null !== (_a = theme.tokenMap) && void 0 !== _a ? _a : {},
24
26
  series: Object.assign({}, theme.series, newSeriesTheme)
25
27
  });
26
28
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/theme/merge-theme.ts"],"names":[],"mappings":";;;AAEA,6CAAyC;AAEzC,wDAAqF;AAKrF,wDAAiE;AACjE,mDAA+C;AAE/C,SAAgB,UAAU,CAAC,MAAqB,EAAE,GAAG,OAAwB;IAC3E,OAAO,IAAA,sBAAS,EAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACzF,CAAC;AAFD,gCAEC;AAED,SAAS,qBAAqB,CAAC,KAAqB;;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAGD,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAGnE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC/C,IAAI,cAAc,CAAC;IACnB,IAAI,UAAU,IAAI,UAAU,EAAE;QAC5B,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,EAAE;;YAC7E,MAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,CAAC,mCAAI,EAAE,CAAC;YAClC,cAAc,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACtF,OAAO,cAAc,CAAC;QACxB,CAAC,EAAE,EAAkB,CAAC,CAAC;KACxB;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;QAC9B,WAAW;QACX,QAAQ,EAAE,MAAA,KAAK,CAAC,QAAQ,mCAAI,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAGD,SAAgB,2BAA2B,CAAC,WAAsC;IAChF,IAAI,WAAW,EAAE;QACf,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,2CAAoC,EAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,EAAuB,CAAC,CAAC;KAC7B;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AATD,kEASC;AAGD,SAAgB,2BAA2B,CACzC,WAAgB,EAChB,UAAkB,EAClB,UAAkC,EAClC,UAAkC;IAElC,IAAI,CAAC,yBAAiB,CAAC,UAAU,CAAC,EAAE;QAClC,OAAO,WAAW,CAAC;KACpB;IACD,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,MAAM,CAAC,MAAM,CAAkB,yBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QACvF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAS,EAAC,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAA,cAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IACH,uCACK,WAAW,GACX,QAAQ,EACX;AACJ,CAAC;AAjBD,kEAiBC","file":"merge-theme.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array } from '@visactor/vutils';\nimport type { IGlobalMarkThemeByName, IGlobalMarkThemeByType, ITheme } from '../../theme';\nimport { transformColorSchemeToStandardStruct } from '../../theme/color-scheme/util';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\nimport type { ISeriesTheme } from '../../series/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeriesMarkInfo } from '../../series/interface/common';\nimport { seriesMarkInfoMap } from '../../series/interface/theme';\nimport { mergeSpec } from '../spec/merge-spec';\n\nexport function mergeTheme(target: Maybe<ITheme>, ...sources: Maybe<ITheme>[]): Maybe<ITheme> {\n return mergeSpec(transformThemeToMerge(target), ...sources.map(transformThemeToMerge));\n}\n\nfunction transformThemeToMerge(theme?: Maybe<ITheme>): Maybe<ITheme> {\n if (!theme) {\n return theme;\n }\n\n // 将色板转化为标准形式\n const colorScheme = transformColorSchemeToMerge(theme.colorScheme);\n\n // 将全局 mark 主题 merge 进系列主题\n const { series } = theme;\n const { mark: markByType, markByName } = theme;\n let newSeriesTheme;\n if (markByType || markByName) {\n newSeriesTheme = Object.keys(seriesMarkInfoMap).reduce((newSeriesTheme, key) => {\n const value = series?.[key] ?? {};\n newSeriesTheme[key] = transformSeriesThemeToMerge(value, key, markByType, markByName);\n return newSeriesTheme;\n }, {} as ISeriesTheme);\n }\n\n return Object.assign({}, theme, {\n colorScheme,\n tokenMap: theme.tokenMap ?? {},\n series: Object.assign({}, theme.series, newSeriesTheme)\n });\n}\n\n/** 将色板转化为标准形式 */\nexport function transformColorSchemeToMerge(colorScheme?: Maybe<IThemeColorScheme>): Maybe<IThemeColorScheme> {\n if (colorScheme) {\n colorScheme = Object.keys(colorScheme).reduce<IThemeColorScheme>((scheme, key) => {\n const value = colorScheme[key];\n scheme[key] = transformColorSchemeToStandardStruct(value);\n return scheme;\n }, {} as IThemeColorScheme);\n }\n return colorScheme;\n}\n\n/** 将全局 mark 主题 merge 进系列主题 */\nexport function transformSeriesThemeToMerge(\n seriesTheme: any,\n seriesType: string,\n markByType: IGlobalMarkThemeByType,\n markByName: IGlobalMarkThemeByName\n): any {\n if (!seriesMarkInfoMap[seriesType]) {\n return seriesTheme;\n }\n const newTheme: any = {};\n Object.values<ISeriesMarkInfo>(seriesMarkInfoMap[seriesType]).forEach(({ type, name }) => {\n newTheme[name] = mergeSpec({}, markByType?.[array(type)[0]], markByName?.[name], seriesTheme?.[name]);\n });\n return {\n ...seriesTheme,\n ...newTheme\n };\n}\n"]}
@@ -1,3 +1,4 @@
1
1
  import type { IThemeColorScheme } from '../../theme/color-scheme/interface';
2
2
  import type { ISeriesSpec } from '../../typings';
3
- export declare function preprocessTheme(obj: any, colorScheme?: IThemeColorScheme, seriesSpec?: ISeriesSpec): any;
3
+ import type { TokenMap } from '../../theme/token';
4
+ export declare function preprocessTheme(obj: any, colorScheme?: IThemeColorScheme, tokenMap?: TokenMap, seriesSpec?: ISeriesSpec): any;
@@ -4,15 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.preprocessTheme = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), util_1 = require("../../theme/color-scheme/util"), IGNORE_KEYS = [ "animationThreshold", "colorScheme", "fontFamily", "name", "padding" ];
7
+ const vutils_1 = require("@visactor/vutils"), util_1 = require("../../theme/color-scheme/util"), token_1 = require("../../theme/token"), IGNORE_KEYS = [ "animationThreshold", "colorScheme", "name", "padding" ];
8
8
 
9
- function preprocessTheme(obj, colorScheme, seriesSpec) {
9
+ function preprocessTheme(obj, colorScheme, tokenMap, seriesSpec) {
10
10
  if (!obj) return obj;
11
+ colorScheme || (colorScheme = obj.colorScheme), tokenMap || (tokenMap = obj.tokenMap);
11
12
  const newObj = {};
12
13
  return Object.keys(obj).forEach((key => {
13
14
  const value = obj[key];
14
15
  IGNORE_KEYS.includes(key) ? newObj[key] = value : (0, vutils_1.isPlainObject)(value) ? (0,
15
- util_1.isColorKey)(value) ? newObj[key] = (0, util_1.getActualColor)(value, colorScheme, seriesSpec) : newObj[key] = preprocessTheme(value, colorScheme, seriesSpec) : newObj[key] = value;
16
+ util_1.isColorKey)(value) ? newObj[key] = (0, util_1.getActualColor)(value, colorScheme, seriesSpec) : (0,
17
+ token_1.isTokenKey)(value) ? newObj[key] = (0, token_1.queryToken)(tokenMap, value) : newObj[key] = preprocessTheme(value, colorScheme, tokenMap, seriesSpec) : newObj[key] = value;
16
18
  })), newObj;
17
19
  }
18
20
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/theme/preprocess.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AAEjD,wDAA2E;AAI3E,6CAA2D;AAE3D,MAAM,WAAW,GAAG,CAAC,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAE7E,SAAgB,eAAe,CAC7B,GAAQ,EACR,WAA+B,EAC/B,QAAmB,EACnB,UAAwB;IAExB,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;KAC/B;IACD,IAAI,CAAC,QAAQ,EAAE;QACb,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;KACzB;IACD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACrB;aAAM,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;YAC/B,IAAI,IAAA,iBAAU,EAAC,KAAK,CAAC,EAAE;gBAErB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAc,EAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;aAC9D;iBAAM,IAAI,IAAA,kBAAU,EAAC,KAAK,CAAC,EAAE;gBAE5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,kBAAU,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC3C;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;aACzE;SACF;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AApCD,0CAoCC","file":"preprocess.js","sourcesContent":["import { isPlainObject } from '@visactor/vutils';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\nimport { getActualColor, isColorKey } from '../../theme/color-scheme/util';\nimport type { ISeriesSpec } from '../../typings';\nimport type { TokenMap } from '../../theme/token';\n// eslint-disable-next-line no-duplicate-imports\nimport { isTokenKey, queryToken } from '../../theme/token';\n\nconst IGNORE_KEYS = ['animationThreshold', 'colorScheme', 'name', 'padding'];\n\nexport function preprocessTheme(\n obj: any,\n colorScheme?: IThemeColorScheme,\n tokenMap?: TokenMap,\n seriesSpec?: ISeriesSpec\n): any {\n if (!obj) {\n return obj;\n }\n if (!colorScheme) {\n colorScheme = obj.colorScheme;\n }\n if (!tokenMap) {\n tokenMap = obj.tokenMap;\n }\n const newObj = {};\n Object.keys(obj).forEach(key => {\n const value = obj[key];\n if (IGNORE_KEYS.includes(key)) {\n newObj[key] = value;\n } else if (isPlainObject(value)) {\n if (isColorKey(value)) {\n // 查询、替换语义化颜色\n newObj[key] = getActualColor(value, colorScheme, seriesSpec);\n } else if (isTokenKey(value)) {\n // 查询、替换语义化 token\n newObj[key] = queryToken(tokenMap, value);\n } else {\n newObj[key] = preprocessTheme(value, colorScheme, tokenMap, seriesSpec);\n }\n } else {\n newObj[key] = value;\n }\n });\n\n return newObj;\n}\n"]}
@@ -3,4 +3,5 @@ import type { IBarChartSpec } from './interface';
3
3
  export declare class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {
4
4
  protected _getDefaultSeriesSpec(spec: T): any;
5
5
  transformSpec(spec: T): void;
6
+ protected _transformAxisSpec(spec: T): void;
6
7
  }
@@ -1,3 +1,5 @@
1
+ import { isArray, isNumber, isObject } from "@visactor/vutils";
2
+
1
3
  import { CartesianChartSpecTransformer } from "../cartesian";
2
4
 
3
5
  import { setDefaultCrosshairForCartesianChart } from "../util";
@@ -12,11 +14,27 @@ export class BarChartSpecTransformer extends CartesianChartSpecTransformer {
12
14
  barMinHeight: spec.barMinHeight,
13
15
  sampling: spec.sampling,
14
16
  samplingFactor: spec.samplingFactor,
15
- barBackground: spec.barBackground
17
+ barBackground: spec.barBackground,
18
+ stackCornerRadius: spec.stackCornerRadius
16
19
  });
17
20
  }
18
21
  transformSpec(spec) {
19
22
  super.transformSpec(spec), setDefaultCrosshairForCartesianChart(spec);
20
23
  }
24
+ _transformAxisSpec(spec) {
25
+ var _a, _b;
26
+ if (super._transformAxisSpec(spec), !spec.axes) return;
27
+ const isHorizontal = spec.series.some((series => "horizontal" === series.direction)), bandAxis = null !== (_a = spec.axes.find((axis => "band" === axis.type))) && void 0 !== _a ? _a : spec.axes.find((axis => (isHorizontal ? [ "left", "right" ] : [ "top", "bottom" ]).includes(axis.orient)));
28
+ if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize && spec.autoBandSize) {
29
+ const extend = isObject(spec.autoBandSize) && null !== (_b = spec.autoBandSize.extend) && void 0 !== _b ? _b : 0, {barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barWidth: barWidth, barGapInGroup: barGapInGroup} = spec.series.find((series => "bar" === series.type));
30
+ let hasBarWidth = !1;
31
+ isNumber(barMinWidth) ? (bandAxis.minBandSize = barMinWidth, hasBarWidth = !0) : isNumber(barWidth) ? (bandAxis.minBandSize = barWidth,
32
+ hasBarWidth = !0) : isNumber(barMaxWidth) && (bandAxis.minBandSize = barMaxWidth,
33
+ hasBarWidth = !0), hasBarWidth && (bandAxis.bandSizeLevel = Number.MAX_VALUE, bandAxis.bandSizeExtend = {
34
+ extend: extend,
35
+ gap: isArray(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup
36
+ });
37
+ }
38
+ }
21
39
  }
22
40
  //# sourceMappingURL=bar-transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/bar/bar-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAG/D,MAAM,OAAO,uBAAiE,SAAQ,6BAAgC;IAC1G,qBAAqB,CAAC,IAAO;QACrC,uCACK,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,aAAa,EAAE,IAAI,CAAC,aAAa,IACjC;IACJ,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF","file":"bar-transformer.js","sourcesContent":["import { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\n\nexport class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: spec.barWidth,\n barMaxWidth: spec.barMaxWidth,\n barMinWidth: spec.barMinWidth,\n barGapInGroup: spec.barGapInGroup,\n barMinHeight: spec.barMinHeight,\n sampling: spec.sampling,\n samplingFactor: spec.samplingFactor,\n barBackground: spec.barBackground\n };\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/bar/bar-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAI/D,MAAM,OAAO,uBAAiE,SAAQ,6BAAgC;IAC1G,qBAAqB,CAAC,IAAO;QACrC,OAAO,gCACF,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GACxB,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAES,kBAAkB,CAAC,IAAO;;QAClC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;QACnF,MAAM,QAAQ,GACZ,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,mCAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvG,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAEpF,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;gBACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,YAAY,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CACd,CAAC;gBAEpB,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;oBACzB,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;oBACnC,WAAW,GAAG,IAAI,CAAC;iBACpB;qBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAC7B,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC;oBAChC,WAAW,GAAG,IAAI,CAAC;iBACpB;qBAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAChC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;oBACnC,WAAW,GAAG,IAAI,CAAC;iBACpB;gBACD,IAAI,WAAW,EAAE;oBACf,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC;oBAC1C,QAAQ,CAAC,cAAc,GAAG;wBACxB,MAAM;wBACN,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;qBACtF,CAAC;iBACH;aACF;SACF;IACH,CAAC;CACF","file":"bar-transformer.js","sourcesContent":["import { isArray, isNumber, isObject } from '@visactor/vutils';\nimport type { IBarSeriesSpec } from '../../series';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\nimport type { ICartesianBandAxisSpec } from '../../component';\n\nexport class BarChartSpecTransformer<T extends IBarChartSpec = IBarChartSpec> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: spec.barWidth,\n barMaxWidth: spec.barMaxWidth,\n barMinWidth: spec.barMinWidth,\n barGapInGroup: spec.barGapInGroup,\n barMinHeight: spec.barMinHeight,\n sampling: spec.sampling,\n samplingFactor: spec.samplingFactor,\n barBackground: spec.barBackground,\n stackCornerRadius: spec.stackCornerRadius\n } as IBarSeriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n\n protected _transformAxisSpec(spec: T) {\n super._transformAxisSpec(spec);\n if (!spec.axes) {\n return;\n }\n const isHorizontal = spec.series.some(series => series.direction === 'horizontal');\n const bandAxis: ICartesianBandAxisSpec =\n spec.axes.find(axis => axis.type === 'band') ??\n spec.axes.find(axis => (isHorizontal ? ['left', 'right'] : ['top', 'bottom']).includes(axis.orient));\n if (bandAxis && !bandAxis.bandSize && !bandAxis.maxBandSize && !bandAxis.minBandSize) {\n // 将 autoBandSize 应用在轴上\n if (!!spec.autoBandSize) {\n const extend = isObject(spec.autoBandSize) ? spec.autoBandSize.extend ?? 0 : 0;\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = spec.series.find(\n series => series.type === 'bar'\n ) as IBarSeriesSpec;\n\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n bandAxis.minBandSize = barMinWidth;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n bandAxis.minBandSize = barWidth;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n bandAxis.minBandSize = barMaxWidth;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n bandAxis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n bandAxis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[barGapInGroup.length - 1] : barGapInGroup\n };\n }\n }\n }\n }\n}\n"]}
@@ -4,6 +4,9 @@ import type { ICartesianChartSpec } from '../cartesian/interface';
4
4
  export interface IBarChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IBarSeriesSpec> {
5
5
  type: 'bar';
6
6
  series?: IBarSeriesSpec[];
7
+ autoBandSize?: boolean | {
8
+ extend: number;
9
+ };
7
10
  }
8
11
  export interface IBar3dChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IBar3dSeriesSpec> {
9
12
  type: 'bar3d';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/bar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBarSeriesSpec, IBar3dSeriesSpec } from '../../series/bar/interface';\nimport type { IChartExtendsSeriesSpec } from '../../typings/spec/common';\nimport type { ICartesianChartSpec } from '../cartesian/interface';\n\nexport interface IBarChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IBarSeriesSpec> {\n type: 'bar';\n /** 系列配置 */\n series?: IBarSeriesSpec[];\n}\n\nexport interface IBar3dChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IBar3dSeriesSpec> {\n type: 'bar3d';\n /** 系列配置 */\n series?: IBar3dSeriesSpec[];\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/bar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBarSeriesSpec, IBar3dSeriesSpec } from '../../series/bar/interface';\nimport type { IChartExtendsSeriesSpec } from '../../typings/spec/common';\nimport type { ICartesianChartSpec } from '../cartesian/interface';\n\nexport interface IBarChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IBarSeriesSpec> {\n type: 'bar';\n /** 系列配置 */\n series?: IBarSeriesSpec[];\n /**\n * 是否开启自动 bandSize。如果开启,会根据传入的 barWidth 等配置自动计算 bandSize,从而影响轴实际长度\n * @since 1.10.0\n */\n autoBandSize?:\n | boolean\n | {\n /** 设置 bandSize 的在自动计算结果基础上的扩增值,单位为 px */\n extend: number;\n };\n}\n\nexport interface IBar3dChartSpec extends ICartesianChartSpec, IChartExtendsSeriesSpec<IBar3dSeriesSpec> {\n type: 'bar3d';\n /** 系列配置 */\n series?: IBar3dSeriesSpec[];\n}\n"]}
@@ -43,15 +43,15 @@ export class BaseChartSpecTransformer {
43
43
  return this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo), this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo),
44
44
  null === (_a = currentChartSpecInfo.series) || void 0 === _a || _a.forEach(((seriesSpecInfo, i) => {
45
45
  var _a, _b;
46
- const region = null !== (_a = getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo)) && void 0 !== _a ? _a : null === (_b = currentChartSpecInfo.region) || void 0 === _b ? void 0 : _b[0];
46
+ const region = (null !== (_b = null !== (_a = getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo)) && void 0 !== _a ? _a : currentChartSpecInfo.region) && void 0 !== _b ? _b : [])[0];
47
47
  region && (region.seriesIndexes || (region.seriesIndexes = []), region.seriesIndexes.push(i),
48
48
  seriesSpecInfo.regionIndexes = region.regionIndexes.slice());
49
49
  })), this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo), Object.values(null !== (_b = currentChartSpecInfo.component) && void 0 !== _b ? _b : {}).forEach((specInfoList => specInfoList.forEach(((componentSpecInfo, i) => {
50
50
  var _a, _b, _c;
51
51
  if (componentSpecInfo) {
52
52
  if (!componentSpecInfo.regionIndexes) {
53
- const region = null !== (_a = getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo)) && void 0 !== _a ? _a : null === (_b = currentChartSpecInfo.region) || void 0 === _b ? void 0 : _b[0];
54
- componentSpecInfo.regionIndexes = null == region ? void 0 : region.regionIndexes.slice();
53
+ const relatedRegion = null !== (_b = null !== (_a = getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo)) && void 0 !== _a ? _a : currentChartSpecInfo.region) && void 0 !== _b ? _b : [];
54
+ componentSpecInfo.regionIndexes = relatedRegion.map((region => region.regionIndexes[0]));
55
55
  }
56
56
  if (!componentSpecInfo.seriesIndexes) {
57
57
  const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { has, isValid } from '@visactor/vutils';\nimport type { IChartSpec, IRegionSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, IRegionSpecInfo } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (!has(chartSpec, 'tooltip')) {\n chartSpec.tooltip = {};\n }\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach(\n (r: IRegionSpec) => !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse)\n );\n }\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n const transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n type,\n getTheme: this._option.getTheme\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n setProperty(chartSpec, specPath, transformResult.spec);\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n ...transformResult\n });\n };\n return this.createSpecInfo(chartSpec, transform);\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n type,\n getTheme: this._option.getTheme\n });\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n theme: transformer.getTheme(spec, chartSpec)\n });\n };\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n // 预处理 region\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n // 预处理 series\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const region = getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region?.[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n // 预处理 component\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const region =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region?.[0];\n componentSpecInfo.regionIndexes = region?.regionIndexes.slice();\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.animation,\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.().animationThreshold,\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as IRegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let label: IComponentConstructor;\n let totalLabel: IComponentConstructor;\n const noAxisComponents = [];\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || chartSpec[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.label) {\n label = cmp;\n } else if (cmp.type === ComponentTypeEnum.totalLabel) {\n totalLabel = cmp;\n } else {\n noAxisComponents.push(cmp);\n }\n }\n }\n\n let hasInitAxis = false;\n // NOTE: 坐标轴组件需要在其他组件之前创建\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n if (label && chartSpecInfo) {\n label.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(label, info, chartSpecInfo));\n });\n }\n if (totalLabel && chartSpecInfo) {\n totalLabel.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(totalLabel, info, chartSpecInfo));\n });\n }\n\n noAxisComponents.forEach(C => {\n C.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n });\n });\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { array, has, isValid } from '@visactor/vutils';\nimport type { IChartSpec, IRegionSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (!has(chartSpec, 'tooltip')) {\n chartSpec.tooltip = {};\n }\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach(\n (r: IRegionSpec) => !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse)\n );\n }\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n const transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n type,\n getTheme: this._option.getTheme\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n setProperty(chartSpec, specPath, transformResult.spec);\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n ...transformResult\n });\n };\n return this.createSpecInfo(chartSpec, transform);\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n type,\n getTheme: this._option.getTheme\n });\n setProperty(chartSpecInfo, specInfoPath ?? specPath, {\n ...specInfo,\n theme: transformer.getTheme(spec, chartSpec)\n });\n };\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.animation,\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.().animationThreshold,\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as IRegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let label: IComponentConstructor;\n let totalLabel: IComponentConstructor;\n const noAxisComponents = [];\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || chartSpec[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.label) {\n label = cmp;\n } else if (cmp.type === ComponentTypeEnum.totalLabel) {\n totalLabel = cmp;\n } else {\n noAxisComponents.push(cmp);\n }\n }\n }\n\n let hasInitAxis = false;\n // NOTE: 坐标轴组件需要在其他组件之前创建\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n if (label && chartSpecInfo) {\n label.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(label, info, chartSpecInfo));\n });\n }\n if (totalLabel && chartSpecInfo) {\n totalLabel.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(totalLabel, info, chartSpecInfo));\n });\n }\n\n noAxisComponents.forEach(C => {\n C.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n });\n });\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n}\n"]}
@@ -10,7 +10,7 @@ import type { IComponent, IComponentConstructor } from '../../component/interfac
10
10
  import type { IMark } from '../../mark/interface';
11
11
  import type { IEvent } from '../../event/interface';
12
12
  import type { DataView } from '@visactor/vdataset';
13
- import type { DataSet } from '@visactor/vdataset/es/data-set';
13
+ import type { DataSet } from '@visactor/vdataset';
14
14
  import { Stack } from '../stack';
15
15
  import type { IParserOptions } from '@visactor/vdataset/es/parser';
16
16
  import type { IBoundsLike } from '@visactor/vutils';
@@ -284,7 +284,9 @@ export class BaseChart extends CompilableBase {
284
284
  this.getAllModels().forEach((element => element.onLayoutStart(this._layoutRect, this._viewRect, option)));
285
285
  }
286
286
  onLayoutEnd(option) {
287
- this.getAllModels().forEach((element => element.onLayoutEnd(option)));
287
+ this.getAllModels().forEach((element => {
288
+ "series" !== element.modelType && element.onLayoutEnd(option);
289
+ }));
288
290
  }
289
291
  onEvaluateEnd(option) {
290
292
  [ ...this._components, ...this._regions, ...this._series ].forEach((element => element.onEvaluateEnd(option)));
@@ -611,7 +613,7 @@ export class BaseChart extends CompilableBase {
611
613
  el && (pickElements = [ el ]);
612
614
  }
613
615
  pickElements.forEach((element => {
614
- r.interaction.addEventElement(stateKey, element);
616
+ r.interaction.startInteraction(stateKey, element);
615
617
  }));
616
618
  }
617
619
  }));