@visactor/vchart 1.4.0-alpha.7 → 1.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +1045 -672
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/base-chart.d.ts +7 -5
  6. package/cjs/chart/base-chart.js +42 -71
  7. package/cjs/chart/base-chart.js.map +1 -1
  8. package/cjs/chart/chart-meta/data.d.ts +15 -0
  9. package/cjs/chart/chart-meta/data.js +52 -0
  10. package/cjs/chart/chart-meta/data.js.map +1 -0
  11. package/cjs/chart/interface/chart.d.ts +0 -1
  12. package/cjs/chart/interface/chart.js.map +1 -1
  13. package/cjs/chart/progress/circular/circular.js +2 -1
  14. package/cjs/chart/progress/circular/circular.js.map +1 -1
  15. package/cjs/chart/sequence/sequence.d.ts +1 -0
  16. package/cjs/chart/sequence/sequence.js +24 -20
  17. package/cjs/chart/sequence/sequence.js.map +1 -1
  18. package/cjs/chart/util.d.ts +2 -0
  19. package/cjs/chart/util.js +8 -2
  20. package/cjs/chart/util.js.map +1 -1
  21. package/cjs/compile/compiler.d.ts +1 -1
  22. package/cjs/compile/compiler.js +3 -3
  23. package/cjs/compile/compiler.js.map +1 -1
  24. package/cjs/compile/data/compilable-data.js +2 -2
  25. package/cjs/compile/data/compilable-data.js.map +1 -1
  26. package/cjs/component/axis/base-axis.d.ts +1 -2
  27. package/cjs/component/axis/base-axis.js +3 -3
  28. package/cjs/component/axis/base-axis.js.map +1 -1
  29. package/cjs/component/axis/cartesian/axis.d.ts +1 -8
  30. package/cjs/component/axis/cartesian/axis.js +3 -6
  31. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  32. package/cjs/component/axis/interface.d.ts +1 -0
  33. package/cjs/component/axis/interface.js.map +1 -1
  34. package/cjs/component/base/base-component.d.ts +2 -2
  35. package/cjs/component/base/base-component.js +10 -6
  36. package/cjs/component/base/base-component.js.map +1 -1
  37. package/cjs/component/brush/brush.d.ts +1 -2
  38. package/cjs/component/brush/brush.js +3 -3
  39. package/cjs/component/brush/brush.js.map +1 -1
  40. package/cjs/component/crosshair/base.d.ts +1 -2
  41. package/cjs/component/crosshair/base.js +4 -3
  42. package/cjs/component/crosshair/base.js.map +1 -1
  43. package/cjs/component/crosshair/interface/spec.d.ts +1 -1
  44. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  45. package/cjs/component/custom-mark/custom-mark.d.ts +1 -2
  46. package/cjs/component/custom-mark/custom-mark.js +4 -4
  47. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  48. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -2
  49. package/cjs/component/data-zoom/data-filter-base-component.js +4 -3
  50. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  51. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  52. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +5 -0
  53. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  54. package/cjs/component/label/base-label.d.ts +1 -2
  55. package/cjs/component/label/base-label.js +5 -4
  56. package/cjs/component/label/base-label.js.map +1 -1
  57. package/cjs/component/label/label.js +3 -2
  58. package/cjs/component/label/label.js.map +1 -1
  59. package/cjs/component/legend/base-legend.d.ts +1 -2
  60. package/cjs/component/legend/base-legend.js +5 -4
  61. package/cjs/component/legend/base-legend.js.map +1 -1
  62. package/cjs/component/legend/interface.d.ts +1 -0
  63. package/cjs/component/legend/interface.js.map +1 -1
  64. package/cjs/component/title/title.d.ts +1 -2
  65. package/cjs/component/title/title.js +4 -4
  66. package/cjs/component/title/title.js.map +1 -1
  67. package/cjs/component/tooltip/handler/base.d.ts +2 -1
  68. package/cjs/component/tooltip/handler/base.js +127 -49
  69. package/cjs/component/tooltip/handler/base.js.map +1 -1
  70. package/cjs/component/tooltip/handler/utils/position.d.ts +6 -0
  71. package/cjs/component/tooltip/handler/utils/position.js +31 -3
  72. package/cjs/component/tooltip/handler/utils/position.js.map +1 -1
  73. package/cjs/core/index.d.ts +1 -1
  74. package/cjs/core/index.js +1 -1
  75. package/cjs/core/index.js.map +1 -1
  76. package/cjs/core/interface.d.ts +4 -4
  77. package/cjs/core/interface.js.map +1 -1
  78. package/cjs/core/vchart.d.ts +3 -2
  79. package/cjs/core/vchart.js +52 -30
  80. package/cjs/core/vchart.js.map +1 -1
  81. package/cjs/data/initialize.d.ts +1 -0
  82. package/cjs/data/initialize.js +6 -2
  83. package/cjs/data/initialize.js.map +1 -1
  84. package/cjs/data/transforms/link-dot-info.d.ts +13 -0
  85. package/cjs/data/transforms/link-dot-info.js +26 -0
  86. package/cjs/data/transforms/link-dot-info.js.map +1 -0
  87. package/cjs/data/transforms/obj-flat.js +2 -1
  88. package/cjs/data/transforms/obj-flat.js.map +1 -1
  89. package/cjs/event/events/dimension/util/common.js +16 -6
  90. package/cjs/event/events/dimension/util/common.js.map +1 -1
  91. package/cjs/mark/base/base-mark.d.ts +0 -1
  92. package/cjs/mark/base/base-mark.js +1 -4
  93. package/cjs/mark/base/base-mark.js.map +1 -1
  94. package/cjs/model/base-model.d.ts +8 -1
  95. package/cjs/model/base-model.js +14 -9
  96. package/cjs/model/base-model.js.map +1 -1
  97. package/cjs/model/interface.d.ts +0 -1
  98. package/cjs/model/interface.js.map +1 -1
  99. package/cjs/region/region.d.ts +1 -2
  100. package/cjs/region/region.js +4 -4
  101. package/cjs/region/region.js.map +1 -1
  102. package/cjs/series/bar/bar.d.ts +0 -8
  103. package/cjs/series/bar/bar.js +0 -5
  104. package/cjs/series/bar/bar.js.map +1 -1
  105. package/cjs/series/base/base-series.d.ts +4 -2
  106. package/cjs/series/base/base-series.js +26 -17
  107. package/cjs/series/base/base-series.js.map +1 -1
  108. package/cjs/series/cartesian/cartesian.d.ts +0 -8
  109. package/cjs/series/cartesian/cartesian.js +0 -5
  110. package/cjs/series/cartesian/cartesian.js.map +1 -1
  111. package/cjs/series/dot/dot.d.ts +2 -0
  112. package/cjs/series/dot/dot.js +8 -3
  113. package/cjs/series/dot/dot.js.map +1 -1
  114. package/cjs/series/funnel/funnel.d.ts +0 -8
  115. package/cjs/series/funnel/funnel.js +0 -15
  116. package/cjs/series/funnel/funnel.js.map +1 -1
  117. package/cjs/series/heatmap/heatmap.d.ts +0 -8
  118. package/cjs/series/heatmap/heatmap.js +0 -5
  119. package/cjs/series/heatmap/heatmap.js.map +1 -1
  120. package/cjs/series/interface/common.d.ts +1 -0
  121. package/cjs/series/interface/common.js.map +1 -1
  122. package/cjs/series/link/link.d.ts +1 -0
  123. package/cjs/series/link/link.js +18 -20
  124. package/cjs/series/link/link.js.map +1 -1
  125. package/cjs/series/map/map.d.ts +0 -8
  126. package/cjs/series/map/map.js +0 -5
  127. package/cjs/series/map/map.js.map +1 -1
  128. package/cjs/series/pie/pie.d.ts +3 -2
  129. package/cjs/series/pie/pie.js +9 -3
  130. package/cjs/series/pie/pie.js.map +1 -1
  131. package/cjs/series/polar/polar.d.ts +0 -8
  132. package/cjs/series/polar/polar.js +0 -5
  133. package/cjs/series/polar/polar.js.map +1 -1
  134. package/cjs/series/polar/progress-like/progress-like.js +18 -24
  135. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  136. package/cjs/series/sankey/interface.d.ts +1 -0
  137. package/cjs/series/sankey/interface.js.map +1 -1
  138. package/cjs/series/sankey/sankey.d.ts +2 -0
  139. package/cjs/series/sankey/sankey.js +25 -13
  140. package/cjs/series/sankey/sankey.js.map +1 -1
  141. package/cjs/series/word-cloud/base.d.ts +0 -8
  142. package/cjs/series/word-cloud/base.js +2 -7
  143. package/cjs/series/word-cloud/base.js.map +1 -1
  144. package/cjs/series/word-cloud/config.d.ts +1 -1
  145. package/cjs/series/word-cloud/config.js +1 -1
  146. package/cjs/series/word-cloud/config.js.map +1 -1
  147. package/cjs/theme/builtin/common/component/tooltip.js +1 -0
  148. package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
  149. package/cjs/theme/builtin/common/series/circular-progress.js +6 -0
  150. package/cjs/theme/builtin/common/series/circular-progress.js.map +1 -1
  151. package/cjs/theme/builtin/common/series/gauge.js +6 -0
  152. package/cjs/theme/builtin/common/series/gauge.js.map +1 -1
  153. package/cjs/theme/builtin/common/series/pie.js +1 -0
  154. package/cjs/theme/builtin/common/series/pie.js.map +1 -1
  155. package/cjs/theme/builtin/common/series/rose.js +1 -0
  156. package/cjs/theme/builtin/common/series/rose.js.map +1 -1
  157. package/cjs/typings/tooltip/position.d.ts +13 -1
  158. package/cjs/typings/tooltip/position.js +11 -5
  159. package/cjs/typings/tooltip/position.js.map +1 -1
  160. package/cjs/typings/tooltip/tooltip.d.ts +2 -1
  161. package/cjs/typings/tooltip/tooltip.js.map +1 -1
  162. package/cjs/typings/visual.d.ts +1 -0
  163. package/cjs/typings/visual.js.map +1 -1
  164. package/esm/chart/base-chart.d.ts +7 -5
  165. package/esm/chart/base-chart.js +44 -74
  166. package/esm/chart/base-chart.js.map +1 -1
  167. package/esm/chart/chart-meta/data.d.ts +15 -0
  168. package/esm/chart/chart-meta/data.js +48 -0
  169. package/esm/chart/chart-meta/data.js.map +1 -0
  170. package/esm/chart/interface/chart.d.ts +0 -1
  171. package/esm/chart/interface/chart.js.map +1 -1
  172. package/esm/chart/progress/circular/circular.js +2 -1
  173. package/esm/chart/progress/circular/circular.js.map +1 -1
  174. package/esm/chart/sequence/sequence.d.ts +1 -0
  175. package/esm/chart/sequence/sequence.js +25 -21
  176. package/esm/chart/sequence/sequence.js.map +1 -1
  177. package/esm/chart/util.d.ts +2 -0
  178. package/esm/chart/util.js +6 -0
  179. package/esm/chart/util.js.map +1 -1
  180. package/esm/compile/compiler.d.ts +1 -1
  181. package/esm/compile/compiler.js +3 -3
  182. package/esm/compile/compiler.js.map +1 -1
  183. package/esm/compile/data/compilable-data.js +2 -2
  184. package/esm/compile/data/compilable-data.js.map +1 -1
  185. package/esm/component/axis/base-axis.d.ts +1 -2
  186. package/esm/component/axis/base-axis.js +3 -3
  187. package/esm/component/axis/base-axis.js.map +1 -1
  188. package/esm/component/axis/cartesian/axis.d.ts +1 -8
  189. package/esm/component/axis/cartesian/axis.js +3 -6
  190. package/esm/component/axis/cartesian/axis.js.map +1 -1
  191. package/esm/component/axis/interface.d.ts +1 -0
  192. package/esm/component/axis/interface.js.map +1 -1
  193. package/esm/component/base/base-component.d.ts +2 -2
  194. package/esm/component/base/base-component.js +11 -5
  195. package/esm/component/base/base-component.js.map +1 -1
  196. package/esm/component/brush/brush.d.ts +1 -2
  197. package/esm/component/brush/brush.js +3 -3
  198. package/esm/component/brush/brush.js.map +1 -1
  199. package/esm/component/crosshair/base.d.ts +1 -2
  200. package/esm/component/crosshair/base.js +5 -4
  201. package/esm/component/crosshair/base.js.map +1 -1
  202. package/esm/component/crosshair/interface/spec.d.ts +1 -1
  203. package/esm/component/crosshair/interface/spec.js.map +1 -1
  204. package/esm/component/custom-mark/custom-mark.d.ts +1 -2
  205. package/esm/component/custom-mark/custom-mark.js +3 -3
  206. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  207. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -2
  208. package/esm/component/data-zoom/data-filter-base-component.js +5 -4
  209. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  210. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
  211. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +5 -0
  212. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  213. package/esm/component/label/base-label.d.ts +1 -2
  214. package/esm/component/label/base-label.js +6 -3
  215. package/esm/component/label/base-label.js.map +1 -1
  216. package/esm/component/label/label.js +4 -3
  217. package/esm/component/label/label.js.map +1 -1
  218. package/esm/component/legend/base-legend.d.ts +1 -2
  219. package/esm/component/legend/base-legend.js +4 -4
  220. package/esm/component/legend/base-legend.js.map +1 -1
  221. package/esm/component/legend/interface.d.ts +1 -0
  222. package/esm/component/legend/interface.js.map +1 -1
  223. package/esm/component/title/title.d.ts +1 -2
  224. package/esm/component/title/title.js +4 -4
  225. package/esm/component/title/title.js.map +1 -1
  226. package/esm/component/tooltip/handler/base.d.ts +2 -1
  227. package/esm/component/tooltip/handler/base.js +122 -49
  228. package/esm/component/tooltip/handler/base.js.map +1 -1
  229. package/esm/component/tooltip/handler/utils/position.d.ts +6 -0
  230. package/esm/component/tooltip/handler/utils/position.js +28 -0
  231. package/esm/component/tooltip/handler/utils/position.js.map +1 -1
  232. package/esm/core/index.d.ts +1 -1
  233. package/esm/core/index.js +1 -1
  234. package/esm/core/index.js.map +1 -1
  235. package/esm/core/interface.d.ts +4 -4
  236. package/esm/core/interface.js.map +1 -1
  237. package/esm/core/vchart.d.ts +3 -2
  238. package/esm/core/vchart.js +53 -31
  239. package/esm/core/vchart.js.map +1 -1
  240. package/esm/data/initialize.d.ts +1 -0
  241. package/esm/data/initialize.js +4 -0
  242. package/esm/data/initialize.js.map +1 -1
  243. package/esm/data/transforms/link-dot-info.d.ts +13 -0
  244. package/esm/data/transforms/link-dot-info.js +18 -0
  245. package/esm/data/transforms/link-dot-info.js.map +1 -0
  246. package/esm/data/transforms/obj-flat.js +2 -1
  247. package/esm/data/transforms/obj-flat.js.map +1 -1
  248. package/esm/event/events/dimension/util/common.js +17 -7
  249. package/esm/event/events/dimension/util/common.js.map +1 -1
  250. package/esm/mark/base/base-mark.d.ts +0 -1
  251. package/esm/mark/base/base-mark.js +2 -5
  252. package/esm/mark/base/base-mark.js.map +1 -1
  253. package/esm/model/base-model.d.ts +8 -1
  254. package/esm/model/base-model.js +13 -8
  255. package/esm/model/base-model.js.map +1 -1
  256. package/esm/model/interface.d.ts +0 -1
  257. package/esm/model/interface.js.map +1 -1
  258. package/esm/region/region.d.ts +1 -2
  259. package/esm/region/region.js +5 -5
  260. package/esm/region/region.js.map +1 -1
  261. package/esm/series/bar/bar.d.ts +0 -8
  262. package/esm/series/bar/bar.js +0 -5
  263. package/esm/series/bar/bar.js.map +1 -1
  264. package/esm/series/base/base-series.d.ts +4 -2
  265. package/esm/series/base/base-series.js +24 -17
  266. package/esm/series/base/base-series.js.map +1 -1
  267. package/esm/series/cartesian/cartesian.d.ts +0 -8
  268. package/esm/series/cartesian/cartesian.js +1 -6
  269. package/esm/series/cartesian/cartesian.js.map +1 -1
  270. package/esm/series/dot/dot.d.ts +2 -0
  271. package/esm/series/dot/dot.js +8 -3
  272. package/esm/series/dot/dot.js.map +1 -1
  273. package/esm/series/funnel/funnel.d.ts +0 -8
  274. package/esm/series/funnel/funnel.js +1 -16
  275. package/esm/series/funnel/funnel.js.map +1 -1
  276. package/esm/series/heatmap/heatmap.d.ts +0 -8
  277. package/esm/series/heatmap/heatmap.js +0 -5
  278. package/esm/series/heatmap/heatmap.js.map +1 -1
  279. package/esm/series/interface/common.d.ts +1 -0
  280. package/esm/series/interface/common.js.map +1 -1
  281. package/esm/series/link/link.d.ts +1 -0
  282. package/esm/series/link/link.js +19 -19
  283. package/esm/series/link/link.js.map +1 -1
  284. package/esm/series/map/map.d.ts +0 -8
  285. package/esm/series/map/map.js +0 -5
  286. package/esm/series/map/map.js.map +1 -1
  287. package/esm/series/pie/pie.d.ts +3 -2
  288. package/esm/series/pie/pie.js +9 -3
  289. package/esm/series/pie/pie.js.map +1 -1
  290. package/esm/series/polar/polar.d.ts +0 -8
  291. package/esm/series/polar/polar.js +1 -6
  292. package/esm/series/polar/polar.js.map +1 -1
  293. package/esm/series/polar/progress-like/progress-like.js +18 -25
  294. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  295. package/esm/series/sankey/interface.d.ts +1 -0
  296. package/esm/series/sankey/interface.js.map +1 -1
  297. package/esm/series/sankey/sankey.d.ts +2 -0
  298. package/esm/series/sankey/sankey.js +22 -12
  299. package/esm/series/sankey/sankey.js.map +1 -1
  300. package/esm/series/word-cloud/base.d.ts +0 -8
  301. package/esm/series/word-cloud/base.js +3 -8
  302. package/esm/series/word-cloud/base.js.map +1 -1
  303. package/esm/series/word-cloud/config.d.ts +1 -1
  304. package/esm/series/word-cloud/config.js +1 -1
  305. package/esm/series/word-cloud/config.js.map +1 -1
  306. package/esm/theme/builtin/common/component/tooltip.js +1 -0
  307. package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
  308. package/esm/theme/builtin/common/series/circular-progress.js +6 -0
  309. package/esm/theme/builtin/common/series/circular-progress.js.map +1 -1
  310. package/esm/theme/builtin/common/series/gauge.js +6 -0
  311. package/esm/theme/builtin/common/series/gauge.js.map +1 -1
  312. package/esm/theme/builtin/common/series/pie.js +1 -0
  313. package/esm/theme/builtin/common/series/pie.js.map +1 -1
  314. package/esm/theme/builtin/common/series/rose.js +1 -0
  315. package/esm/theme/builtin/common/series/rose.js.map +1 -1
  316. package/esm/typings/tooltip/position.d.ts +13 -1
  317. package/esm/typings/tooltip/position.js +11 -2
  318. package/esm/typings/tooltip/position.js.map +1 -1
  319. package/esm/typings/tooltip/tooltip.d.ts +2 -1
  320. package/esm/typings/tooltip/tooltip.js.map +1 -1
  321. package/esm/typings/visual.d.ts +1 -0
  322. package/esm/typings/visual.js.map +1 -1
  323. package/package.json +8 -8
@@ -33,13 +33,5 @@ export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extend
33
33
  protected _getBarWidth(axisHelper: IAxisHelper): number;
34
34
  protected _getPosition(direction: DirectionType, datum: Datum): number;
35
35
  onLayoutEnd(ctx: any): void;
36
- updateSpec(spec: IBarSeriesSpec): {
37
- change: boolean;
38
- reMake: boolean;
39
- reMakeData: boolean;
40
- reRender: boolean;
41
- reSize: boolean;
42
- reCompile: boolean;
43
- };
44
36
  getDefaultShapeType(): string;
45
37
  }
@@ -223,11 +223,6 @@ export class BarSeries extends CartesianSeries {
223
223
  super.onLayoutEnd(ctx);
224
224
  this.getRegion()._bar_series_position_calculated = !1;
225
225
  }
226
- updateSpec(spec) {
227
- const {direction: direction} = this._spec, result = super.updateSpec(spec);
228
- return spec.direction !== direction && (result.change = !0, result.reRender = !0,
229
- result.reMake = !0), result;
230
- }
231
226
  getDefaultShapeType() {
232
227
  return "square";
233
228
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/bar/bar.ts"],"names":[],"mappings":"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","file":"bar.js","sourcesContent":["import { PREFIX, STACK_FIELD_START } from './../../constant/index';\n/* eslint-disable no-duplicate-imports */\nimport { isContinuous } from '@visactor/vscale';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, DirectionType, StringOrNumber } from '../../typings';\nimport { mergeSpec, valueInScaleRange, getActualNumValue } from '../../util';\nimport type { BarAppearPreset, IBarAnimationParams } from './animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport type { IBarSeriesSpec, IBarSeriesTheme } from './interface';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { IRectMark } from '../../mark/rect';\nimport type { IModelInitOption } from '../../model/interface';\nimport type { ITextMark } from '../../mark/text';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface/type';\nimport { SeriesTypeEnum } from '../interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { VChart } from '../../core/vchart';\nimport { RectMark } from '../../mark/rect';\nimport { TextMark } from '../../mark/text';\nimport { array, isValid, last } from '@visactor/vutils';\nimport { barSeriesMark } from './constant';\n\nVChart.useMark([RectMark, TextMark]);\n\nexport const DefaultBandWidth = 6; // 默认的bandWidth,避免连续轴没有bandWidth\nconst RECT_X = `${PREFIX}_rect_x`;\nconst RECT_X1 = `${PREFIX}_rect_x1`;\nconst RECT_Y = `${PREFIX}_rect_y`;\nconst RECT_Y1 = `${PREFIX}_rect_y1`;\n\nexport class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.bar;\n type = SeriesTypeEnum.bar;\n protected _barMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.bar;\n protected _barMarkType: MarkTypeEnum = MarkTypeEnum.rect;\n\n static readonly mark: SeriesMarkMap = barSeriesMark;\n\n protected declare _theme: Maybe<IBarSeriesTheme>;\n\n protected _stack: boolean = true;\n protected _bandPosition = 0;\n protected _rectMark!: IRectMark;\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n this._rectMark = this._createMark(\n {\n ...BarSeries.mark.bar,\n name: this._barMarkName,\n type: this._barMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: true,\n label: mergeSpec({ animation: this._spec.animation }, this._spec.label),\n progressive\n }\n ) as IRectMark;\n }\n\n initMarkStyle(): void {\n const rectMark = this._rectMark;\n if (rectMark) {\n this.setMarkStyle(\n rectMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n this._trigger.registerMark(rectMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(rectMark);\n }\n }\n\n initLabelMarkStyle(textMark: ITextMark) {\n if (!textMark) {\n return;\n }\n this.setMarkStyle(textMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n });\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n if (this.direction === 'vertical') {\n this._xAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n } else {\n this._yAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n }\n }\n\n private _shouldDoPreCalculate() {\n const region = this.getRegion();\n return (\n this._stack && region.getSeries().filter(s => s.type === SeriesTypeEnum.bar && s.getSpec().barMinHeight).length\n );\n }\n\n private _calculateStackRectPosition(isVertical: boolean) {\n const region = this.getRegion();\n\n // @ts-ignore\n if (region._bar_series_position_calculated) {\n return;\n }\n // @ts-ignore\n region._bar_series_position_calculated = true; // 因为是 region 内堆叠矩形的计算,所以加一个 hack 标识位用于避免重复计算\n let start: string;\n let end: string;\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n start = RECT_Y1;\n end = RECT_Y;\n startMethod = 'dataToPositionY1';\n endMethod = 'dataToPositionY';\n axisHelper = '_yAxisHelper';\n } else {\n start = RECT_X1;\n end = RECT_X;\n startMethod = 'dataToPositionX1';\n endMethod = 'dataToPositionX';\n axisHelper = '_xAxisHelper';\n }\n\n const barSeriesArr = region.getSeries().filter(s => s.type === SeriesTypeEnum.bar && s.getStackData());\n const groupedStackData = {};\n\n const iterateStackData = (data: any, preKey: string, seriesId: StringOrNumber) => {\n Object.keys(data.nodes).forEach(key => {\n const currentKey = preKey ? `${preKey}_${key}` : key;\n if (data.nodes[key].nodes) {\n iterateStackData(data.nodes[key], currentKey, seriesId);\n } else {\n if (!groupedStackData[currentKey]) {\n groupedStackData[currentKey] = [];\n }\n\n data.nodes[key].values.forEach((obj: Datum) => {\n obj.seriesId = seriesId;\n groupedStackData[currentKey].push(obj);\n });\n }\n });\n };\n\n barSeriesArr.forEach(s => {\n const stackData = s.getStackData();\n iterateStackData(stackData, '', s.id);\n });\n\n Object.keys(groupedStackData).forEach(key => {\n const values = groupedStackData[key];\n // 保证堆叠顺序\n values.sort((a: Datum, b: Datum) => Math.abs(a[STACK_FIELD_START]) - Math.abs(b[STACK_FIELD_START]));\n\n let lastY: number;\n values.forEach((obj: Datum, index: number) => {\n const series = barSeriesArr.find(s => s.id === obj.seriesId);\n const barMinHeight = series.getSpec().barMinHeight;\n const seriesScale = series[axisHelper].getScale?.(0);\n const inverse = series[axisHelper].isInverse();\n const y1 = valueInScaleRange(series[startMethod](obj), seriesScale);\n let y = valueInScaleRange(series[endMethod](obj), seriesScale);\n\n if (index === 0) {\n lastY = y1;\n }\n\n let height = Math.abs(y1 - y);\n if (height < barMinHeight) {\n height = barMinHeight;\n }\n\n let flag = 1;\n if (y < y1) {\n flag = -1;\n } else if (y === y1) {\n flag = isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;\n }\n y = lastY + flag * height;\n obj[start] = lastY;\n obj[end] = y;\n lastY = y;\n });\n });\n }\n\n private _calculateRectPosition(datum: Datum, isVertical: boolean) {\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n startMethod = 'dataToPositionY1';\n endMethod = 'dataToPositionY';\n axisHelper = '_yAxisHelper';\n } else {\n startMethod = 'dataToPositionX1';\n endMethod = 'dataToPositionX';\n axisHelper = '_xAxisHelper';\n }\n\n const seriesScale = this[axisHelper].getScale?.(0);\n const inverse = this[axisHelper].isInverse();\n const barMinHeight = this._spec.barMinHeight;\n const y1 = valueInScaleRange(this[startMethod](datum), seriesScale);\n const y = valueInScaleRange(this[endMethod](datum), seriesScale);\n\n let height = Math.abs(y1 - y);\n if (height < barMinHeight) {\n height = barMinHeight;\n }\n\n let flag = 1;\n if (y < y1) {\n flag = -1;\n } else if (y === y1) {\n flag = isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;\n }\n return y1 + flag * height;\n }\n\n initBandRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n // guess the direction which the user want\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, false);\n }\n\n return valueInScaleRange(this.dataToPositionX(datum), xScale);\n },\n x1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X1];\n }\n\n return valueInScaleRange(this.dataToPositionX1(datum), xScale);\n },\n y: (datum: Datum) => this._getPosition(this.direction, datum),\n height: () => this._getBarWidth(this._yAxisHelper)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => this._getPosition(this.direction, datum),\n y: (datum: Datum, ctx, opt, dataView) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, true);\n }\n\n return valueInScaleRange(this.dataToPositionY(datum), yScale);\n },\n y1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y1];\n }\n return valueInScaleRange(this.dataToPositionY1(datum), yScale);\n },\n width: () => {\n return this._getBarWidth(this._xAxisHelper);\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initLinearRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n if (this.direction === Direction.vertical) {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => valueInScaleRange(this.dataToPositionX(datum), xScale),\n x1: (datum: Datum) => valueInScaleRange(this.dataToPositionX1(datum), xScale),\n y: (datum: Datum, ctx, opt, dataView) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, true);\n }\n\n return valueInScaleRange(this.dataToPositionY(datum), yScale);\n },\n y1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y1];\n }\n return valueInScaleRange(this.dataToPositionY1(datum), yScale);\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n\n return datum[RECT_X];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, false);\n }\n\n return valueInScaleRange(this.dataToPositionX(datum), xScale);\n },\n x1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X1];\n }\n return valueInScaleRange(this.dataToPositionX1(datum), xScale);\n },\n y: (datum: Datum) => valueInScaleRange(this.dataToPositionY(datum), yScale),\n y1: (datum: Datum) => valueInScaleRange(this.dataToPositionY1(datum), yScale)\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n // 这个数据在这个时候拿不到,因为组件还没创建结束,统计和筛选也还没添加。\n // 而且这个值理论上是动态的,建议 监听 viewDataStatisticsUpdate 消息动态更新\n const animationParams: IBarAnimationParams = {\n yField: this._fieldY[0],\n xField: this._fieldX[0],\n direction: this.direction,\n growFrom: () =>\n this.direction === 'horizontal'\n ? this._xAxisHelper?.getScale(0).scale(0)\n : this._yAxisHelper?.getScale(0).scale(0)\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<BarAppearPreset>)?.preset;\n // 分组数据的dataIndex应该与x轴顺序一致,而非data[DEFAULT_DATA_INDEX]顺序\n const dataIndex = (datum: any) => {\n const xValue = datum?.[this._fieldX[0]];\n const xIndex = this.getViewDataStatistics()?.latestData?.[this._fieldX[0]]?.values.indexOf(xValue);\n // 不应该出现xIndex === -1 || undefined的情况\n return xIndex || 0;\n };\n\n this._rectMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.bar(animationParams, appearPreset),\n userAnimationConfig(this._barMarkName, this._spec),\n { dataIndex }\n )\n );\n }\n\n protected _getBarWidth(axisHelper: IAxisHelper) {\n const hasBarWidth = this._spec.barWidth !== undefined;\n const bandWidth = axisHelper.getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0) ?? DefaultBandWidth;\n\n if (hasBarWidth) {\n return getActualNumValue(this._spec.barWidth, bandWidth);\n }\n const hasBarMinWidth = this._spec.barMinWidth !== undefined;\n const hasBarMaxWidth = this._spec.barMaxWidth !== undefined;\n let width = bandWidth;\n if (hasBarMinWidth) {\n width = Math.max(width, getActualNumValue(this._spec.barMinWidth, bandWidth));\n }\n if (hasBarMaxWidth) {\n width = Math.min(width, getActualNumValue(this._spec.barMaxWidth, bandWidth));\n }\n return width;\n }\n\n protected _getPosition(direction: DirectionType, datum: Datum) {\n let axisHelper;\n let sizeAttribute;\n let dataToPosition;\n if (direction === Direction.horizontal) {\n axisHelper = this.getYAxisHelper();\n sizeAttribute = 'height';\n dataToPosition = this.dataToPositionY.bind(this);\n } else {\n axisHelper = this.getXAxisHelper();\n sizeAttribute = 'width';\n dataToPosition = this.dataToPositionX.bind(this);\n }\n const scale = axisHelper.getScale(0);\n const size = this._rectMark.getAttribute(sizeAttribute, datum) as number;\n const bandWidth = axisHelper.getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0) ?? DefaultBandWidth;\n if (this._groups?.fields?.length > 1 && isValid(this._spec.barGapInGroup)) {\n // 自里向外计算,沿着第一层分组的中心点进行位置调整\n const groupFields = this._groups.fields;\n const barInGroup = array(this._spec.barGapInGroup);\n let totalWidth: number = 0;\n let offSet: number = 0;\n\n for (let index = groupFields.length - 1; index >= 1; index--) {\n const groupField = groupFields[index];\n const groupValues = this.getViewDataStatistics()?.latestData?.[groupField]?.values ?? [];\n const groupCount = groupValues.length;\n const gap = getActualNumValue(barInGroup[index - 1] ?? last(barInGroup), bandWidth);\n const i = groupValues.indexOf(datum[groupField]);\n if (index === groupFields.length - 1) {\n totalWidth += groupCount * size + (groupCount - 1) * gap;\n offSet += i * (size + gap);\n } else {\n offSet += i * (totalWidth + gap);\n totalWidth += totalWidth + (groupCount - 1) * gap;\n }\n }\n\n const center = scale.scale(datum[groupFields[0]]) + axisHelper.getBandwidth(0) / 2;\n return center - totalWidth / 2 + offSet;\n }\n\n const continuous = isContinuous(scale.type || 'band');\n const pos = dataToPosition(datum);\n return pos + (bandWidth - size) * 0.5 + (continuous ? -bandWidth / 2 : 0);\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const region = this.getRegion();\n // @ts-ignore\n region._bar_series_position_calculated = false;\n }\n\n /**\n * spec 更新\n * @param spec\n * @returns\n */\n updateSpec(spec: IBarSeriesSpec) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const { direction } = this._spec;\n const result = super.updateSpec(spec);\n if (spec.direction !== direction) {\n result.change = true;\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/bar/bar.ts"],"names":[],"mappings":"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","file":"bar.js","sourcesContent":["import { PREFIX, STACK_FIELD_START } from './../../constant/index';\n/* eslint-disable no-duplicate-imports */\nimport { isContinuous } from '@visactor/vscale';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, DirectionType, StringOrNumber } from '../../typings';\nimport { mergeSpec, valueInScaleRange, getActualNumValue } from '../../util';\nimport type { BarAppearPreset, IBarAnimationParams } from './animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport type { IBarSeriesSpec, IBarSeriesTheme } from './interface';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { IRectMark } from '../../mark/rect';\nimport type { IModelInitOption } from '../../model/interface';\nimport type { ITextMark } from '../../mark/text';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface/type';\nimport { SeriesTypeEnum } from '../interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport { VChart } from '../../core/vchart';\nimport { RectMark } from '../../mark/rect';\nimport { TextMark } from '../../mark/text';\nimport { array, isValid, last } from '@visactor/vutils';\nimport { barSeriesMark } from './constant';\n\nVChart.useMark([RectMark, TextMark]);\n\nexport const DefaultBandWidth = 6; // 默认的bandWidth,避免连续轴没有bandWidth\nconst RECT_X = `${PREFIX}_rect_x`;\nconst RECT_X1 = `${PREFIX}_rect_x1`;\nconst RECT_Y = `${PREFIX}_rect_y`;\nconst RECT_Y1 = `${PREFIX}_rect_y1`;\n\nexport class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.bar;\n type = SeriesTypeEnum.bar;\n protected _barMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.bar;\n protected _barMarkType: MarkTypeEnum = MarkTypeEnum.rect;\n\n static readonly mark: SeriesMarkMap = barSeriesMark;\n\n protected declare _theme: Maybe<IBarSeriesTheme>;\n\n protected _stack: boolean = true;\n protected _bandPosition = 0;\n protected _rectMark!: IRectMark;\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n this._rectMark = this._createMark(\n {\n ...BarSeries.mark.bar,\n name: this._barMarkName,\n type: this._barMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: true,\n label: mergeSpec({ animation: this._spec.animation }, this._spec.label),\n progressive\n }\n ) as IRectMark;\n }\n\n initMarkStyle(): void {\n const rectMark = this._rectMark;\n if (rectMark) {\n this.setMarkStyle(\n rectMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n this._trigger.registerMark(rectMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(rectMark);\n }\n }\n\n initLabelMarkStyle(textMark: ITextMark) {\n if (!textMark) {\n return;\n }\n this.setMarkStyle(textMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n });\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n if (this.direction === 'vertical') {\n this._xAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n } else {\n this._yAxisHelper?.getScale(0).type === 'band' ? this.initBandRectMarkStyle() : this.initLinearRectMarkStyle();\n }\n }\n\n private _shouldDoPreCalculate() {\n const region = this.getRegion();\n return (\n this._stack && region.getSeries().filter(s => s.type === SeriesTypeEnum.bar && s.getSpec().barMinHeight).length\n );\n }\n\n private _calculateStackRectPosition(isVertical: boolean) {\n const region = this.getRegion();\n\n // @ts-ignore\n if (region._bar_series_position_calculated) {\n return;\n }\n // @ts-ignore\n region._bar_series_position_calculated = true; // 因为是 region 内堆叠矩形的计算,所以加一个 hack 标识位用于避免重复计算\n let start: string;\n let end: string;\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n start = RECT_Y1;\n end = RECT_Y;\n startMethod = 'dataToPositionY1';\n endMethod = 'dataToPositionY';\n axisHelper = '_yAxisHelper';\n } else {\n start = RECT_X1;\n end = RECT_X;\n startMethod = 'dataToPositionX1';\n endMethod = 'dataToPositionX';\n axisHelper = '_xAxisHelper';\n }\n\n const barSeriesArr = region.getSeries().filter(s => s.type === SeriesTypeEnum.bar && s.getStackData());\n const groupedStackData = {};\n\n const iterateStackData = (data: any, preKey: string, seriesId: StringOrNumber) => {\n Object.keys(data.nodes).forEach(key => {\n const currentKey = preKey ? `${preKey}_${key}` : key;\n if (data.nodes[key].nodes) {\n iterateStackData(data.nodes[key], currentKey, seriesId);\n } else {\n if (!groupedStackData[currentKey]) {\n groupedStackData[currentKey] = [];\n }\n\n data.nodes[key].values.forEach((obj: Datum) => {\n obj.seriesId = seriesId;\n groupedStackData[currentKey].push(obj);\n });\n }\n });\n };\n\n barSeriesArr.forEach(s => {\n const stackData = s.getStackData();\n iterateStackData(stackData, '', s.id);\n });\n\n Object.keys(groupedStackData).forEach(key => {\n const values = groupedStackData[key];\n // 保证堆叠顺序\n values.sort((a: Datum, b: Datum) => Math.abs(a[STACK_FIELD_START]) - Math.abs(b[STACK_FIELD_START]));\n\n let lastY: number;\n values.forEach((obj: Datum, index: number) => {\n const series = barSeriesArr.find(s => s.id === obj.seriesId);\n const barMinHeight = series.getSpec().barMinHeight;\n const seriesScale = series[axisHelper].getScale?.(0);\n const inverse = series[axisHelper].isInverse();\n const y1 = valueInScaleRange(series[startMethod](obj), seriesScale);\n let y = valueInScaleRange(series[endMethod](obj), seriesScale);\n\n if (index === 0) {\n lastY = y1;\n }\n\n let height = Math.abs(y1 - y);\n if (height < barMinHeight) {\n height = barMinHeight;\n }\n\n let flag = 1;\n if (y < y1) {\n flag = -1;\n } else if (y === y1) {\n flag = isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;\n }\n y = lastY + flag * height;\n obj[start] = lastY;\n obj[end] = y;\n lastY = y;\n });\n });\n }\n\n private _calculateRectPosition(datum: Datum, isVertical: boolean) {\n let startMethod: string;\n let endMethod: string;\n let axisHelper: string;\n if (isVertical) {\n startMethod = 'dataToPositionY1';\n endMethod = 'dataToPositionY';\n axisHelper = '_yAxisHelper';\n } else {\n startMethod = 'dataToPositionX1';\n endMethod = 'dataToPositionX';\n axisHelper = '_xAxisHelper';\n }\n\n const seriesScale = this[axisHelper].getScale?.(0);\n const inverse = this[axisHelper].isInverse();\n const barMinHeight = this._spec.barMinHeight;\n const y1 = valueInScaleRange(this[startMethod](datum), seriesScale);\n const y = valueInScaleRange(this[endMethod](datum), seriesScale);\n\n let height = Math.abs(y1 - y);\n if (height < barMinHeight) {\n height = barMinHeight;\n }\n\n let flag = 1;\n if (y < y1) {\n flag = -1;\n } else if (y === y1) {\n flag = isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;\n }\n return y1 + flag * height;\n }\n\n initBandRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n // guess the direction which the user want\n if (this.direction === Direction.horizontal) {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, false);\n }\n\n return valueInScaleRange(this.dataToPositionX(datum), xScale);\n },\n x1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X1];\n }\n\n return valueInScaleRange(this.dataToPositionX1(datum), xScale);\n },\n y: (datum: Datum) => this._getPosition(this.direction, datum),\n height: () => this._getBarWidth(this._yAxisHelper)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => this._getPosition(this.direction, datum),\n y: (datum: Datum, ctx, opt, dataView) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, true);\n }\n\n return valueInScaleRange(this.dataToPositionY(datum), yScale);\n },\n y1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y1];\n }\n return valueInScaleRange(this.dataToPositionY1(datum), yScale);\n },\n width: () => {\n return this._getBarWidth(this._xAxisHelper);\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initLinearRectMarkStyle() {\n const xScale = this._xAxisHelper?.getScale?.(0);\n const yScale = this._yAxisHelper?.getScale?.(0);\n\n if (this.direction === Direction.vertical) {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => valueInScaleRange(this.dataToPositionX(datum), xScale),\n x1: (datum: Datum) => valueInScaleRange(this.dataToPositionX1(datum), xScale),\n y: (datum: Datum, ctx, opt, dataView) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, true);\n }\n\n return valueInScaleRange(this.dataToPositionY(datum), yScale);\n },\n y1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(true);\n return datum[RECT_Y1];\n }\n return valueInScaleRange(this.dataToPositionY1(datum), yScale);\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._rectMark,\n {\n x: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n\n return datum[RECT_X];\n }\n\n if (this._spec.barMinHeight) {\n return this._calculateRectPosition(datum, false);\n }\n\n return valueInScaleRange(this.dataToPositionX(datum), xScale);\n },\n x1: (datum: Datum) => {\n if (this._shouldDoPreCalculate()) {\n this._calculateStackRectPosition(false);\n return datum[RECT_X1];\n }\n return valueInScaleRange(this.dataToPositionX1(datum), xScale);\n },\n y: (datum: Datum) => valueInScaleRange(this.dataToPositionY(datum), yScale),\n y1: (datum: Datum) => valueInScaleRange(this.dataToPositionY1(datum), yScale)\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n initAnimation() {\n // 这个数据在这个时候拿不到,因为组件还没创建结束,统计和筛选也还没添加。\n // 而且这个值理论上是动态的,建议 监听 viewDataStatisticsUpdate 消息动态更新\n const animationParams: IBarAnimationParams = {\n yField: this._fieldY[0],\n xField: this._fieldX[0],\n direction: this.direction,\n growFrom: () =>\n this.direction === 'horizontal'\n ? this._xAxisHelper?.getScale(0).scale(0)\n : this._yAxisHelper?.getScale(0).scale(0)\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<BarAppearPreset>)?.preset;\n // 分组数据的dataIndex应该与x轴顺序一致,而非data[DEFAULT_DATA_INDEX]顺序\n const dataIndex = (datum: any) => {\n const xValue = datum?.[this._fieldX[0]];\n const xIndex = this.getViewDataStatistics()?.latestData?.[this._fieldX[0]]?.values.indexOf(xValue);\n // 不应该出现xIndex === -1 || undefined的情况\n return xIndex || 0;\n };\n\n this._rectMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.bar(animationParams, appearPreset),\n userAnimationConfig(this._barMarkName, this._spec),\n { dataIndex }\n )\n );\n }\n\n protected _getBarWidth(axisHelper: IAxisHelper) {\n const hasBarWidth = this._spec.barWidth !== undefined;\n const bandWidth = axisHelper.getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0) ?? DefaultBandWidth;\n\n if (hasBarWidth) {\n return getActualNumValue(this._spec.barWidth, bandWidth);\n }\n const hasBarMinWidth = this._spec.barMinWidth !== undefined;\n const hasBarMaxWidth = this._spec.barMaxWidth !== undefined;\n let width = bandWidth;\n if (hasBarMinWidth) {\n width = Math.max(width, getActualNumValue(this._spec.barMinWidth, bandWidth));\n }\n if (hasBarMaxWidth) {\n width = Math.min(width, getActualNumValue(this._spec.barMaxWidth, bandWidth));\n }\n return width;\n }\n\n protected _getPosition(direction: DirectionType, datum: Datum) {\n let axisHelper;\n let sizeAttribute;\n let dataToPosition;\n if (direction === Direction.horizontal) {\n axisHelper = this.getYAxisHelper();\n sizeAttribute = 'height';\n dataToPosition = this.dataToPositionY.bind(this);\n } else {\n axisHelper = this.getXAxisHelper();\n sizeAttribute = 'width';\n dataToPosition = this.dataToPositionX.bind(this);\n }\n const scale = axisHelper.getScale(0);\n const size = this._rectMark.getAttribute(sizeAttribute, datum) as number;\n const bandWidth = axisHelper.getBandwidth?.(this._groups ? this._groups.fields.length - 1 : 0) ?? DefaultBandWidth;\n if (this._groups?.fields?.length > 1 && isValid(this._spec.barGapInGroup)) {\n // 自里向外计算,沿着第一层分组的中心点进行位置调整\n const groupFields = this._groups.fields;\n const barInGroup = array(this._spec.barGapInGroup);\n let totalWidth: number = 0;\n let offSet: number = 0;\n\n for (let index = groupFields.length - 1; index >= 1; index--) {\n const groupField = groupFields[index];\n const groupValues = this.getViewDataStatistics()?.latestData?.[groupField]?.values ?? [];\n const groupCount = groupValues.length;\n const gap = getActualNumValue(barInGroup[index - 1] ?? last(barInGroup), bandWidth);\n const i = groupValues.indexOf(datum[groupField]);\n if (index === groupFields.length - 1) {\n totalWidth += groupCount * size + (groupCount - 1) * gap;\n offSet += i * (size + gap);\n } else {\n offSet += i * (totalWidth + gap);\n totalWidth += totalWidth + (groupCount - 1) * gap;\n }\n }\n\n const center = scale.scale(datum[groupFields[0]]) + axisHelper.getBandwidth(0) / 2;\n return center - totalWidth / 2 + offSet;\n }\n\n const continuous = isContinuous(scale.type || 'band');\n const pos = dataToPosition(datum);\n return pos + (bandWidth - size) * 0.5 + (continuous ? -bandWidth / 2 : 0);\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const region = this.getRegion();\n // @ts-ignore\n region._bar_series_position_calculated = false;\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n}\n"]}
@@ -119,14 +119,16 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
119
119
  protected initEvent(): void;
120
120
  protected _releaseEvent(): void;
121
121
  protected initTooltip(): void;
122
- updateSpec(spec: any): {
122
+ _compareSpec(ignoreCheckKeys?: {
123
+ [key: string]: true;
124
+ }): {
123
125
  change: boolean;
124
126
  reMake: boolean;
125
- reMakeData: boolean;
126
127
  reRender: boolean;
127
128
  reSize: boolean;
128
129
  reCompile: boolean;
129
130
  };
131
+ _updateSpecData(): void;
130
132
  reInit(theme?: any, lastSpec?: any): void;
131
133
  onEvaluateEnd(ctx: IModelEvaluateOption): void;
132
134
  onRender(ctx: IModelRenderOption): void;
@@ -36,7 +36,7 @@ import { MarkTypeEnum } from "../../mark/interface";
36
36
 
37
37
  import { BaseModel } from "../../model/base-model";
38
38
 
39
- import { dataViewFromDataView } from "../../data/initialize";
39
+ import { dataToDataView, dataViewFromDataView, updateDataViewInData } from "../../data/initialize";
40
40
 
41
41
  import { isNil, isValid, isBoolean, isString, mergeSpec, isFunction, isArray, mergeFields, getFieldAlias, couldBeValidNumber } from "../../util";
42
42
 
@@ -169,8 +169,10 @@ export class BaseSeries extends BaseModel {
169
169
  null === (_a = this._tooltipHelper) || void 0 === _a || _a.updateTooltipSpec();
170
170
  }
171
171
  initData() {
172
- var _a, _b, _c;
173
- if (this._rawData = this._spec.data, null === (_a = this._rawData) || void 0 === _a || _a.target.addListener("change", this.rawDataUpdate.bind(this)),
172
+ var _a, _b, _c, _d;
173
+ if (this._spec.data && (this._rawData = dataToDataView(this._spec.data, this._dataSet, this._option.sourceDataList, {
174
+ onError: null === (_a = this._option) || void 0 === _a ? void 0 : _a.onError
175
+ })), null === (_b = this._rawData) || void 0 === _b || _b.target.addListener("change", this.rawDataUpdate.bind(this)),
174
176
  this._addDataIndexAndKey(), this._rawData) {
175
177
  this._viewDataFilter = dataViewFromDataView(this._rawData, this._dataSet, {
176
178
  name: `${PREFIX}_series_${this.id}_viewDataFilter`
@@ -180,8 +182,8 @@ export class BaseSeries extends BaseModel {
180
182
  });
181
183
  this._data = new SeriesData(this._option, viewData), this._viewDataFilter.target.removeListener("change", viewData.reRunAllTransform);
182
184
  }
183
- "zero" === this._invalidType && (null === (_b = this._rawData) || void 0 === _b ? void 0 : _b.dataSet) && (registerDataSetInstanceTransform(this._rawData.dataSet, "invalidTravel", invalidTravel),
184
- null === (_c = this._rawData) || void 0 === _c || _c.transform({
185
+ "zero" === this._invalidType && (null === (_c = this._rawData) || void 0 === _c ? void 0 : _c.dataSet) && (registerDataSetInstanceTransform(this._rawData.dataSet, "invalidTravel", invalidTravel),
186
+ null === (_d = this._rawData) || void 0 === _d || _d.transform({
185
187
  type: "invalidTravel",
186
188
  options: {
187
189
  config: () => ({
@@ -385,8 +387,8 @@ export class BaseSeries extends BaseModel {
385
387
  const mark = this._marks.getMarkWithInfo({
386
388
  name: `${PREFIX}_series_${this.id}_extensionMark_${i}`
387
389
  });
388
- lastSpec && isEqual(null === (_a = lastSpec.extensionMark) || void 0 === _a ? void 0 : _a[i], spec) || (this.initMarkStyleWithSpec(mark, spec),
389
- mark.updateStaticEncode(), mark.updateLayoutState());
390
+ mark && (lastSpec && isEqual(null === (_a = lastSpec.extensionMark) || void 0 === _a ? void 0 : _a[i], spec) || (this.initMarkStyleWithSpec(mark, spec),
391
+ mark.updateStaticEncode(), mark.updateLayoutState()));
390
392
  }));
391
393
  }
392
394
  getStackData() {
@@ -479,23 +481,28 @@ export class BaseSeries extends BaseModel {
479
481
  initTooltip() {
480
482
  this._tooltipHelper = new BaseSeriesTooltipHelper(this);
481
483
  }
482
- updateSpec(spec) {
484
+ _compareSpec(ignoreCheckKeys) {
483
485
  var _a, _b;
484
- const originalSpec = this._spec, result = super.updateSpec(spec);
485
- spec.type !== this.type && (result.reMake = !0);
486
- const {invalidType: invalidType} = this._originalSpec;
487
- return spec.invalidType !== invalidType && (result.reMake = !0), (array(originalSpec.extensionMark).length !== array(this._spec.extensionMark).length || (null === (_a = originalSpec.extensionMark) || void 0 === _a ? void 0 : _a.some(((mark, index) => mark.type !== this._spec.extensionMark[index].type || mark.id !== this._spec.extensionMark[index].id)))) && (result.reMake = !0),
488
- result.reMake || (this._marks.getMarks().some((m => {
486
+ const result = super._compareSpec(), currentKeys = Object.keys(this._originalSpec).sort(), nextKeys = Object.keys(this._spec).sort();
487
+ return isEqual(currentKeys, nextKeys) ? ((ignoreCheckKeys = null != ignoreCheckKeys ? ignoreCheckKeys : {
488
+ data: !0
489
+ }).invalidType = !0, this._spec.invalidType !== this._originalSpec.invalidType && (result.reCompile = !0),
490
+ ignoreCheckKeys.extensionMark = !0, (array(this._spec.extensionMark).length !== array(this._originalSpec.extensionMark).length || (null === (_a = this._originalSpec.extensionMark) || void 0 === _a ? void 0 : _a.some(((mark, index) => mark.type !== this._spec.extensionMark[index].type || mark.id !== this._spec.extensionMark[index].id)))) && (result.reMake = !0),
491
+ result.reMake ? result : ((null === (_b = this._originalSpec.extensionMark) || void 0 === _b ? void 0 : _b.some(((mark, index) => mark.visible !== this._spec.extensionMark[index].visible))) && (result.reCompile = !0),
492
+ this._marks.getMarks().some((m => {
489
493
  var _a, _b;
490
- return (null === (_a = originalSpec[m.name]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = this._spec[m.name]) || void 0 === _b ? void 0 : _b.visible);
491
- })) && (result.reCompile = !0), (null === (_b = originalSpec.extensionMark) || void 0 === _b ? void 0 : _b.some(((mark, index) => mark.visible !== this._spec.extensionMark[index].visible))) && (result.reCompile = !0)),
492
- result;
494
+ return ignoreCheckKeys[m.name] = !0, (null === (_a = this._originalSpec[m.name]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = this._spec[m.name]) || void 0 === _b ? void 0 : _b.visible);
495
+ })) && (result.reCompile = !0), currentKeys.some((k => !ignoreCheckKeys[k] && !isEqual(this._spec[k], this._originalSpec[k]))) ? (result.reMake = !0,
496
+ result) : result)) : (result.reMake = !0, result);
497
+ }
498
+ _updateSpecData() {
499
+ !this._rawData || !this._spec.data || this._spec.data instanceof DataView || updateDataViewInData(this._rawData, this._spec.data, !0);
493
500
  }
494
501
  reInit(theme, lastSpec) {
495
502
  super.reInit(theme), this.initMarkStyle(), this.getMarksWithoutRoot().forEach((mark => {
496
503
  lastSpec && isEqual(lastSpec[mark.name], this._spec[mark.name]) || (this._spec[mark.name] && this.initMarkStyleWithSpec(mark, this._spec[mark.name]),
497
504
  mark.updateStaticEncode(), mark.updateLayoutState(!0));
498
- })), this._updateExtensionMarkSpec(lastSpec);
505
+ })), this._updateExtensionMarkSpec(lastSpec), this._updateSpecData();
499
506
  }
500
507
  onEvaluateEnd(ctx) {
501
508
  this._data.updateData();