@visactor/vchart 1.10.3 → 1.10.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 (333) hide show
  1. package/build/es5/index.js +2 -2
  2. package/build/index.js +729 -682
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.js +2 -2
  6. package/cjs/animation/utils.js.map +1 -1
  7. package/cjs/chart/base/base-chart-transformer.js +5 -2
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +2 -1
  10. package/cjs/chart/base/base-chart.js +14 -6
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/cartesian/cartesian-transformer.js +2 -2
  13. package/cjs/chart/cartesian/cartesian-transformer.js.map +1 -1
  14. package/cjs/chart/common/common-transformer.js +3 -2
  15. package/cjs/chart/common/common-transformer.js.map +1 -1
  16. package/cjs/chart/common/interface.d.ts +2 -2
  17. package/cjs/chart/common/interface.js.map +1 -1
  18. package/cjs/chart/interface/chart.d.ts +4 -1
  19. package/cjs/chart/interface/chart.js.map +1 -1
  20. package/cjs/chart/polar/progress-like/progress-like-transformer.js +3 -3
  21. package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  22. package/cjs/chart/radar/radar-transformer.js +3 -3
  23. package/cjs/chart/radar/radar-transformer.js.map +1 -1
  24. package/cjs/chart/rose/rose-transformer.js +2 -2
  25. package/cjs/chart/rose/rose-transformer.js.map +1 -1
  26. package/cjs/chart/stack.js +1 -2
  27. package/cjs/chart/util.js +2 -2
  28. package/cjs/chart/util.js.map +1 -1
  29. package/cjs/compile/grammar-item.js +2 -1
  30. package/cjs/component/axis/base-axis.js +6 -6
  31. package/cjs/component/axis/base-axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/axis.js +14 -13
  33. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  34. package/cjs/component/axis/cartesian/interface/common.d.ts +1 -0
  35. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  36. package/cjs/component/axis/cartesian/time-axis.js +2 -2
  37. package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
  38. package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +4 -0
  39. package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -2
  40. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  41. package/cjs/component/axis/polar/axis.js +3 -3
  42. package/cjs/component/axis/polar/axis.js.map +1 -1
  43. package/cjs/component/axis/util.js +3 -3
  44. package/cjs/component/axis/util.js.map +1 -1
  45. package/cjs/component/base/util.js +12 -12
  46. package/cjs/component/base/util.js.map +1 -1
  47. package/cjs/component/crosshair/cartesian.js +1 -3
  48. package/cjs/component/crosshair/cartesian.js.map +1 -1
  49. package/cjs/component/crosshair/interface/cartesian.d.ts +11 -24
  50. package/cjs/component/crosshair/interface/cartesian.js.map +1 -1
  51. package/cjs/component/crosshair/interface/polar.d.ts +7 -5
  52. package/cjs/component/crosshair/interface/polar.js.map +1 -1
  53. package/cjs/component/crosshair/polar.js +2 -5
  54. package/cjs/component/crosshair/polar.js.map +1 -1
  55. package/cjs/component/crosshair/utils/cartesian.js +14 -14
  56. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  57. package/cjs/component/crosshair/utils/common.js +6 -5
  58. package/cjs/component/crosshair/utils/common.js.map +1 -1
  59. package/cjs/component/crosshair/utils/polar.js +17 -11
  60. package/cjs/component/crosshair/utils/polar.js.map +1 -1
  61. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -0
  62. package/cjs/component/data-zoom/data-filter-base-component.js +9 -7
  63. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  64. package/cjs/component/data-zoom/data-zoom/data-zoom-transformer.js +2 -2
  65. package/cjs/component/data-zoom/data-zoom/data-zoom-transformer.js.map +1 -1
  66. package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -3
  67. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  68. package/cjs/component/data-zoom/util.js.map +1 -1
  69. package/cjs/component/geo/geo-coordinate.js +2 -2
  70. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  71. package/cjs/component/indicator/indicator.js +2 -2
  72. package/cjs/component/indicator/indicator.js.map +1 -1
  73. package/cjs/component/label/label.js +4 -5
  74. package/cjs/component/label/label.js.map +1 -1
  75. package/cjs/component/label/total-label.js +2 -2
  76. package/cjs/component/label/total-label.js.map +1 -1
  77. package/cjs/component/legend/base-legend.js +6 -5
  78. package/cjs/component/legend/base-legend.js.map +1 -1
  79. package/cjs/component/legend/continuous/util.js +3 -3
  80. package/cjs/component/legend/continuous/util.js.map +1 -1
  81. package/cjs/component/legend/discrete/legend.js.map +1 -1
  82. package/cjs/component/legend/discrete/util.js +2 -2
  83. package/cjs/component/legend/discrete/util.js.map +1 -1
  84. package/cjs/component/legend/util.js +2 -2
  85. package/cjs/component/legend/util.js.map +1 -1
  86. package/cjs/component/tooltip/tooltip-transformer.js +3 -2
  87. package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
  88. package/cjs/component/tooltip/tooltip.js +4 -2
  89. package/cjs/component/tooltip/tooltip.js.map +1 -1
  90. package/cjs/core/index.d.ts +1 -1
  91. package/cjs/core/index.js +1 -1
  92. package/cjs/core/index.js.map +1 -1
  93. package/cjs/core/interface.d.ts +2 -0
  94. package/cjs/core/interface.js.map +1 -1
  95. package/cjs/core/vchart.d.ts +2 -2
  96. package/cjs/core/vchart.js +30 -14
  97. package/cjs/core/vchart.js.map +1 -1
  98. package/cjs/event/interface.d.ts +2 -0
  99. package/cjs/event/interface.js.map +1 -1
  100. package/cjs/layout/grid-layout/grid-layout.d.ts +1 -1
  101. package/cjs/layout/grid-layout/grid-layout.js +4 -4
  102. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  103. package/cjs/mark/base/base-mark.js +2 -2
  104. package/cjs/mark/base/base-mark.js.map +1 -1
  105. package/cjs/model/base-model-transformer.js +2 -2
  106. package/cjs/model/base-model-transformer.js.map +1 -1
  107. package/cjs/plugin/chart/media-query/media-query.js +4 -4
  108. package/cjs/plugin/chart/media-query/media-query.js.map +1 -1
  109. package/cjs/plugin/chart/media-query/util/action.js +4 -3
  110. package/cjs/plugin/chart/media-query/util/action.js.map +1 -1
  111. package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  112. package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js +5 -5
  113. package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
  114. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js +2 -2
  115. package/cjs/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  116. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js +2 -2
  117. package/cjs/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  118. package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.js +2 -2
  119. package/cjs/plugin/components/tooltip-handler/dom/model/tooltip-model.js.map +1 -1
  120. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js +4 -4
  121. package/cjs/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -1
  122. package/cjs/plugin/components/tooltip-handler/utils/attribute.js +4 -4
  123. package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  124. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js +2 -2
  125. package/cjs/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  126. package/cjs/region/interface.d.ts +2 -0
  127. package/cjs/region/interface.js.map +1 -1
  128. package/cjs/region/region.d.ts +1 -0
  129. package/cjs/region/region.js +5 -1
  130. package/cjs/region/region.js.map +1 -1
  131. package/cjs/series/area/area-transformer.js +6 -5
  132. package/cjs/series/area/area-transformer.js.map +1 -1
  133. package/cjs/series/bar/bar.js.map +1 -1
  134. package/cjs/series/base/base-series-transformer.js +4 -4
  135. package/cjs/series/base/base-series-transformer.js.map +1 -1
  136. package/cjs/series/base/base-series.js +4 -4
  137. package/cjs/series/base/base-series.js.map +1 -1
  138. package/cjs/series/dot/dot.js +2 -2
  139. package/cjs/series/dot/dot.js.map +1 -1
  140. package/cjs/series/mixin/line-mixin.js +2 -2
  141. package/cjs/series/mixin/line-mixin.js.map +1 -1
  142. package/cjs/series/pie/pie-transformer.js +4 -4
  143. package/cjs/series/pie/pie-transformer.js.map +1 -1
  144. package/cjs/series/util/stack.js +29 -15
  145. package/cjs/series/util/stack.js.map +1 -1
  146. package/cjs/typings/spec/common.d.ts +1 -0
  147. package/cjs/typings/spec/common.js.map +1 -1
  148. package/cjs/util/data.d.ts +21 -4
  149. package/cjs/util/data.js +42 -14
  150. package/cjs/util/data.js.map +1 -1
  151. package/cjs/util/index.d.ts +1 -0
  152. package/cjs/util/index.js +4 -4
  153. package/cjs/util/index.js.map +1 -1
  154. package/cjs/util/spec/index.d.ts +0 -5
  155. package/cjs/util/spec/index.js +1 -4
  156. package/cjs/util/spec/index.js.map +1 -1
  157. package/cjs/util/spec/transform.js.map +1 -1
  158. package/cjs/util/theme/merge-theme.js +3 -3
  159. package/cjs/util/theme/merge-theme.js.map +1 -1
  160. package/esm/animation/utils.js +1 -1
  161. package/esm/animation/utils.js.map +1 -1
  162. package/esm/chart/base/base-chart-transformer.js +5 -1
  163. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  164. package/esm/chart/base/base-chart.d.ts +2 -1
  165. package/esm/chart/base/base-chart.js +14 -6
  166. package/esm/chart/base/base-chart.js.map +1 -1
  167. package/esm/chart/cartesian/cartesian-transformer.js +3 -1
  168. package/esm/chart/cartesian/cartesian-transformer.js.map +1 -1
  169. package/esm/chart/common/common-transformer.js +3 -1
  170. package/esm/chart/common/common-transformer.js.map +1 -1
  171. package/esm/chart/common/interface.d.ts +2 -2
  172. package/esm/chart/common/interface.js.map +1 -1
  173. package/esm/chart/interface/chart.d.ts +4 -1
  174. package/esm/chart/interface/chart.js.map +1 -1
  175. package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
  176. package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
  177. package/esm/chart/radar/radar-transformer.js +3 -1
  178. package/esm/chart/radar/radar-transformer.js.map +1 -1
  179. package/esm/chart/rose/rose-transformer.js +1 -1
  180. package/esm/chart/rose/rose-transformer.js.map +1 -1
  181. package/esm/chart/stack.js +1 -2
  182. package/esm/chart/util.js +3 -1
  183. package/esm/chart/util.js.map +1 -1
  184. package/esm/compile/grammar-item.js +2 -1
  185. package/esm/component/axis/base-axis.js +1 -1
  186. package/esm/component/axis/base-axis.js.map +1 -1
  187. package/esm/component/axis/cartesian/axis.js +13 -10
  188. package/esm/component/axis/cartesian/axis.js.map +1 -1
  189. package/esm/component/axis/cartesian/interface/common.d.ts +1 -0
  190. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  191. package/esm/component/axis/cartesian/time-axis.js +2 -2
  192. package/esm/component/axis/cartesian/time-axis.js.map +1 -1
  193. package/esm/component/axis/mixin/linear-axis-mixin.d.ts +4 -0
  194. package/esm/component/axis/mixin/linear-axis-mixin.js +7 -2
  195. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  196. package/esm/component/axis/polar/axis.js +2 -2
  197. package/esm/component/axis/polar/axis.js.map +1 -1
  198. package/esm/component/axis/util.js +1 -1
  199. package/esm/component/axis/util.js.map +1 -1
  200. package/esm/component/base/util.js +2 -2
  201. package/esm/component/base/util.js.map +1 -1
  202. package/esm/component/crosshair/cartesian.js +3 -5
  203. package/esm/component/crosshair/cartesian.js.map +1 -1
  204. package/esm/component/crosshair/interface/cartesian.d.ts +11 -24
  205. package/esm/component/crosshair/interface/cartesian.js.map +1 -1
  206. package/esm/component/crosshair/interface/polar.d.ts +7 -5
  207. package/esm/component/crosshair/interface/polar.js.map +1 -1
  208. package/esm/component/crosshair/polar.js +4 -7
  209. package/esm/component/crosshair/polar.js.map +1 -1
  210. package/esm/component/crosshair/utils/cartesian.js +14 -14
  211. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  212. package/esm/component/crosshair/utils/common.js +2 -2
  213. package/esm/component/crosshair/utils/common.js.map +1 -1
  214. package/esm/component/crosshair/utils/polar.js +15 -9
  215. package/esm/component/crosshair/utils/polar.js.map +1 -1
  216. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -0
  217. package/esm/component/data-zoom/data-filter-base-component.js +9 -7
  218. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  219. package/esm/component/data-zoom/data-zoom/data-zoom-transformer.js +3 -1
  220. package/esm/component/data-zoom/data-zoom/data-zoom-transformer.js.map +1 -1
  221. package/esm/component/data-zoom/data-zoom/data-zoom.js +1 -1
  222. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  223. package/esm/component/data-zoom/util.js.map +1 -1
  224. package/esm/component/geo/geo-coordinate.js +1 -1
  225. package/esm/component/geo/geo-coordinate.js.map +1 -1
  226. package/esm/component/indicator/indicator.js +1 -1
  227. package/esm/component/indicator/indicator.js.map +1 -1
  228. package/esm/component/label/label.js +3 -4
  229. package/esm/component/label/label.js.map +1 -1
  230. package/esm/component/label/total-label.js +1 -1
  231. package/esm/component/label/total-label.js.map +1 -1
  232. package/esm/component/legend/base-legend.js +3 -2
  233. package/esm/component/legend/base-legend.js.map +1 -1
  234. package/esm/component/legend/continuous/util.js +1 -1
  235. package/esm/component/legend/continuous/util.js.map +1 -1
  236. package/esm/component/legend/discrete/legend.js.map +1 -1
  237. package/esm/component/legend/discrete/util.js +1 -1
  238. package/esm/component/legend/discrete/util.js.map +1 -1
  239. package/esm/component/legend/util.js +1 -1
  240. package/esm/component/legend/util.js.map +1 -1
  241. package/esm/component/tooltip/tooltip-transformer.js +3 -1
  242. package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
  243. package/esm/component/tooltip/tooltip.js +4 -2
  244. package/esm/component/tooltip/tooltip.js.map +1 -1
  245. package/esm/core/index.d.ts +1 -1
  246. package/esm/core/index.js +1 -1
  247. package/esm/core/index.js.map +1 -1
  248. package/esm/core/interface.d.ts +2 -0
  249. package/esm/core/interface.js.map +1 -1
  250. package/esm/core/vchart.d.ts +2 -2
  251. package/esm/core/vchart.js +25 -11
  252. package/esm/core/vchart.js.map +1 -1
  253. package/esm/event/interface.d.ts +2 -0
  254. package/esm/event/interface.js.map +1 -1
  255. package/esm/layout/grid-layout/grid-layout.d.ts +1 -1
  256. package/esm/layout/grid-layout/grid-layout.js +4 -4
  257. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  258. package/esm/mark/base/base-mark.js +1 -1
  259. package/esm/mark/base/base-mark.js.map +1 -1
  260. package/esm/model/base-model-transformer.js +3 -1
  261. package/esm/model/base-model-transformer.js.map +1 -1
  262. package/esm/plugin/chart/media-query/media-query.js +3 -1
  263. package/esm/plugin/chart/media-query/media-query.js.map +1 -1
  264. package/esm/plugin/chart/media-query/util/action.js +2 -2
  265. package/esm/plugin/chart/media-query/util/action.js.map +1 -1
  266. package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
  267. package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js +1 -1
  268. package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
  269. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js +1 -1
  270. package/esm/plugin/components/tooltip-handler/dom/model/content-model.js.map +1 -1
  271. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js +1 -1
  272. package/esm/plugin/components/tooltip-handler/dom/model/title-model.js.map +1 -1
  273. package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.js +1 -1
  274. package/esm/plugin/components/tooltip-handler/dom/model/tooltip-model.js.map +1 -1
  275. package/esm/plugin/components/tooltip-handler/dom/utils/style.js +1 -1
  276. package/esm/plugin/components/tooltip-handler/dom/utils/style.js.map +1 -1
  277. package/esm/plugin/components/tooltip-handler/utils/attribute.js +1 -1
  278. package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
  279. package/esm/plugin/components/tooltip-handler/utils/get-spec.js +1 -1
  280. package/esm/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
  281. package/esm/region/interface.d.ts +2 -0
  282. package/esm/region/interface.js.map +1 -1
  283. package/esm/region/region.d.ts +1 -0
  284. package/esm/region/region.js +5 -1
  285. package/esm/region/region.js.map +1 -1
  286. package/esm/series/area/area-transformer.js +1 -1
  287. package/esm/series/area/area-transformer.js.map +1 -1
  288. package/esm/series/bar/bar.js.map +1 -1
  289. package/esm/series/base/base-series-transformer.js +3 -1
  290. package/esm/series/base/base-series-transformer.js.map +1 -1
  291. package/esm/series/base/base-series.js +1 -1
  292. package/esm/series/base/base-series.js.map +1 -1
  293. package/esm/series/dot/dot.js +1 -1
  294. package/esm/series/dot/dot.js.map +1 -1
  295. package/esm/series/mixin/line-mixin.js +1 -1
  296. package/esm/series/mixin/line-mixin.js.map +1 -1
  297. package/esm/series/pie/pie-transformer.js +1 -1
  298. package/esm/series/pie/pie-transformer.js.map +1 -1
  299. package/esm/series/util/stack.js +28 -15
  300. package/esm/series/util/stack.js.map +1 -1
  301. package/esm/typings/spec/common.d.ts +1 -0
  302. package/esm/typings/spec/common.js.map +1 -1
  303. package/esm/util/data.d.ts +21 -4
  304. package/esm/util/data.js +39 -10
  305. package/esm/util/data.js.map +1 -1
  306. package/esm/util/index.d.ts +1 -0
  307. package/esm/util/index.js +2 -0
  308. package/esm/util/index.js.map +1 -1
  309. package/esm/util/spec/index.d.ts +0 -5
  310. package/esm/util/spec/index.js +0 -10
  311. package/esm/util/spec/index.js.map +1 -1
  312. package/esm/util/spec/transform.js.map +1 -1
  313. package/esm/util/theme/merge-theme.js +1 -1
  314. package/esm/util/theme/merge-theme.js.map +1 -1
  315. package/package.json +4 -4
  316. package/cjs/util/spec/clone-deep.d.ts +0 -1
  317. package/cjs/util/spec/clone-deep.js +0 -27
  318. package/cjs/util/spec/clone-deep.js.map +0 -1
  319. package/cjs/util/spec/common.d.ts +0 -3
  320. package/cjs/util/spec/common.js +0 -23
  321. package/cjs/util/spec/common.js.map +0 -1
  322. package/cjs/util/spec/merge-spec.d.ts +0 -5
  323. package/cjs/util/spec/merge-spec.js +0 -69
  324. package/cjs/util/spec/merge-spec.js.map +0 -1
  325. package/esm/util/spec/clone-deep.d.ts +0 -1
  326. package/esm/util/spec/clone-deep.js +0 -20
  327. package/esm/util/spec/clone-deep.js.map +0 -1
  328. package/esm/util/spec/common.d.ts +0 -3
  329. package/esm/util/spec/common.js +0 -15
  330. package/esm/util/spec/common.js.map +0 -1
  331. package/esm/util/spec/merge-spec.d.ts +0 -5
  332. package/esm/util/spec/merge-spec.js +0 -57
  333. package/esm/util/spec/merge-spec.js.map +0 -1
package/build/index.js CHANGED
@@ -41787,6 +41787,96 @@
41787
41787
  };
41788
41788
  }
41789
41789
 
41790
+ function isDataView(obj) {
41791
+ return obj instanceof DataView;
41792
+ }
41793
+ function isHTMLElement(obj) {
41794
+ try {
41795
+ return obj instanceof Element;
41796
+ } catch (_a) {
41797
+ const htmlElementKeys = ["children", "innerHTML", "classList", "setAttribute", "tagName", "getBoundingClientRect"],
41798
+ keys = Object.keys(obj);
41799
+ return htmlElementKeys.every(key => keys.includes(key));
41800
+ }
41801
+ }
41802
+
41803
+ function cloneDeepSpec(spec) {
41804
+ let excludeKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ["data"];
41805
+ const value = spec;
41806
+ let result;
41807
+ if (!isValid$3(value) || "object" != typeof value) return value;
41808
+ if (isDataView(value) || isHTMLElement(value)) return value;
41809
+ const isArr = isArray$3(value),
41810
+ length = value.length;
41811
+ result = isArr ? new Array(length) : "object" == typeof value ? {} : isBoolean$1(value) || isNumber$3(value) || isString$1(value) ? value : isDate$1(value) ? new Date(+value) : void 0;
41812
+ const props = isArr ? void 0 : Object.keys(Object(value));
41813
+ let index = -1;
41814
+ if (result) for (; ++index < (props || value).length;) {
41815
+ const key = props ? props[index] : index,
41816
+ subValue = value[key];
41817
+ (null == excludeKeys ? void 0 : excludeKeys.includes(key.toString())) ? result[key] = subValue : result[key] = cloneDeepSpec(subValue, excludeKeys);
41818
+ }
41819
+ return result;
41820
+ }
41821
+
41822
+ function baseMerge(target, source) {
41823
+ let shallowArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;
41824
+ if (source) {
41825
+ if (target === source) return;
41826
+ if (isValid$3(source) && "object" == typeof source) {
41827
+ const iterable = Object(source),
41828
+ props = [];
41829
+ for (const key in iterable) props.push(key);
41830
+ let {
41831
+ length: length
41832
+ } = props,
41833
+ propIndex = -1;
41834
+ for (; length--;) {
41835
+ const key = props[++propIndex];
41836
+ isValid$3(iterable[key]) && "object" == typeof iterable[key] && !isArray$3(target[key]) ? baseMergeDeep(target, source, key, shallowArray) : assignMergeValue(target, key, iterable[key]);
41837
+ }
41838
+ }
41839
+ }
41840
+ }
41841
+ function baseMergeDeep(target, source, key) {
41842
+ let shallowArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : !1;
41843
+ const objValue = target[key],
41844
+ srcValue = source[key];
41845
+ let newValue = source[key],
41846
+ isCommon = !0;
41847
+ if (isArray$3(srcValue)) {
41848
+ if (shallowArray) newValue = [];else if (isArray$3(objValue)) newValue = objValue;else if (isArrayLike$1(objValue)) {
41849
+ newValue = new Array(objValue.length);
41850
+ let index = -1;
41851
+ const length = objValue.length;
41852
+ for (; ++index < length;) newValue[index] = objValue[index];
41853
+ }
41854
+ } else isPlainObject$1(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
41855
+ isCommon && baseMerge(newValue, srcValue, shallowArray), assignMergeValue(target, key, newValue);
41856
+ }
41857
+ function assignMergeValue(target, key, value) {
41858
+ (void 0 !== value && !eq(target[key], value) || void 0 === value && !(key in target)) && (target[key] = value);
41859
+ }
41860
+ function eq(value, other) {
41861
+ return value === other || Number.isNaN(value) && Number.isNaN(other);
41862
+ }
41863
+ function mergeSpec(target) {
41864
+ let sourceIndex = -1;
41865
+ const length = arguments.length <= 1 ? 0 : arguments.length - 1;
41866
+ for (; ++sourceIndex < length;) {
41867
+ baseMerge(target, sourceIndex + 1 < 1 || arguments.length <= sourceIndex + 1 ? undefined : arguments[sourceIndex + 1], !0);
41868
+ }
41869
+ return target;
41870
+ }
41871
+ function mergeSpecWithFilter(target, filter, spec, forceMerge) {
41872
+ Object.keys(target).forEach(k => {
41873
+ if (isObject$2(filter)) filter.type === k && (isArray$3(target[k]) ? target[k].length >= filter.index && (target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec) : target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec);else if (isArray$3(target[k])) {
41874
+ const index = target[k].findIndex(_s => _s.id === filter);
41875
+ index >= 0 && (target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec);
41876
+ } else target.id === filter && (target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec);
41877
+ });
41878
+ }
41879
+
41790
41880
  const isClose = isNumberClose;
41791
41881
  function polarToCartesian(point) {
41792
41882
  if (!point.radius) {
@@ -51112,609 +51202,6 @@
51112
51202
  return originNumValue;
51113
51203
  };
51114
51204
 
51115
- function convertBackgroundSpec(bg) {
51116
- if (!bg) {
51117
- return null;
51118
- }
51119
- if (typeof bg === 'string') {
51120
- return {
51121
- fill: bg,
51122
- fillOpacity: 1
51123
- };
51124
- }
51125
- if (typeof bg !== 'object') {
51126
- return null;
51127
- }
51128
- const result = pickWithout(bg, ['x', 'y', 'width', 'height', 'x1', 'y1', 'image']);
51129
- result.background = bg.image;
51130
- return result;
51131
- }
51132
-
51133
- function isDataView(obj) {
51134
- return obj instanceof DataView;
51135
- }
51136
- function isHTMLElement(obj) {
51137
- try {
51138
- return obj instanceof Element;
51139
- }
51140
- catch (_a) {
51141
- const htmlElementKeys = [
51142
- 'children',
51143
- 'innerHTML',
51144
- 'classList',
51145
- 'setAttribute',
51146
- 'tagName',
51147
- 'getBoundingClientRect'
51148
- ];
51149
- const keys = Object.keys(obj);
51150
- return htmlElementKeys.every(key => keys.includes(key));
51151
- }
51152
- }
51153
-
51154
- function cloneDeepSpec(spec, excludeKeys = ['data']) {
51155
- const value = spec;
51156
- let result;
51157
- if (!isValid$3(value) || typeof value !== 'object') {
51158
- return value;
51159
- }
51160
- if (isDataView(value) || isHTMLElement(value)) {
51161
- return value;
51162
- }
51163
- const isArr = isArray$3(value);
51164
- const length = value.length;
51165
- if (isArr) {
51166
- result = new Array(length);
51167
- }
51168
- else if (typeof value === 'object') {
51169
- result = {};
51170
- }
51171
- else if (isBoolean$1(value) || isNumber$3(value) || isString$1(value)) {
51172
- result = value;
51173
- }
51174
- else if (isDate$1(value)) {
51175
- result = new Date(+value);
51176
- }
51177
- else {
51178
- result = undefined;
51179
- }
51180
- const props = isArr ? undefined : Object.keys(Object(value));
51181
- let index = -1;
51182
- if (result) {
51183
- while (++index < (props || value).length) {
51184
- const key = props ? props[index] : index;
51185
- const subValue = value[key];
51186
- if (excludeKeys === null || excludeKeys === void 0 ? void 0 : excludeKeys.includes(key.toString())) {
51187
- result[key] = subValue;
51188
- }
51189
- else {
51190
- result[key] = cloneDeepSpec(subValue, excludeKeys);
51191
- }
51192
- }
51193
- }
51194
- return result;
51195
- }
51196
-
51197
- function baseMerge(target, source, shallowArray = false) {
51198
- if (source) {
51199
- if (target === source) {
51200
- return;
51201
- }
51202
- if (isValid$3(source) && typeof source === 'object') {
51203
- const iterable = Object(source);
51204
- const props = [];
51205
- for (const key in iterable) {
51206
- props.push(key);
51207
- }
51208
- let { length } = props;
51209
- let propIndex = -1;
51210
- while (length--) {
51211
- const key = props[++propIndex];
51212
- if (isValid$3(iterable[key]) &&
51213
- typeof iterable[key] === 'object' &&
51214
- !isArray$3(target[key])) {
51215
- baseMergeDeep(target, source, key, shallowArray);
51216
- }
51217
- else {
51218
- assignMergeValue(target, key, iterable[key]);
51219
- }
51220
- }
51221
- }
51222
- }
51223
- }
51224
- function baseMergeDeep(target, source, key, shallowArray = false) {
51225
- const objValue = target[key];
51226
- const srcValue = source[key];
51227
- let newValue = source[key];
51228
- let isCommon = true;
51229
- if (isArray$3(srcValue)) {
51230
- if (shallowArray) {
51231
- newValue = [];
51232
- }
51233
- else if (isArray$3(objValue)) {
51234
- newValue = objValue;
51235
- }
51236
- else if (isArrayLike$1(objValue)) {
51237
- newValue = new Array(objValue.length);
51238
- let index = -1;
51239
- const length = objValue.length;
51240
- while (++index < length) {
51241
- newValue[index] = objValue[index];
51242
- }
51243
- }
51244
- }
51245
- else if (isPlainObject$1(srcValue)) {
51246
- newValue = objValue !== null && objValue !== void 0 ? objValue : {};
51247
- if (typeof objValue === 'function' || typeof objValue !== 'object') {
51248
- newValue = {};
51249
- }
51250
- }
51251
- else {
51252
- isCommon = false;
51253
- }
51254
- if (isCommon) {
51255
- baseMerge(newValue, srcValue, shallowArray);
51256
- }
51257
- assignMergeValue(target, key, newValue);
51258
- }
51259
- function assignMergeValue(target, key, value) {
51260
- if ((value !== undefined && !eq(target[key], value)) || (value === undefined && !(key in target))) {
51261
- target[key] = value;
51262
- }
51263
- }
51264
- function eq(value, other) {
51265
- return value === other || (Number.isNaN(value) && Number.isNaN(other));
51266
- }
51267
- function mergeSpec(target, ...sources) {
51268
- let sourceIndex = -1;
51269
- const length = sources.length;
51270
- while (++sourceIndex < length) {
51271
- const source = sources[sourceIndex];
51272
- baseMerge(target, source, true);
51273
- }
51274
- return target;
51275
- }
51276
- function mergeSpecWithFilter(target, filter, spec, forceMerge) {
51277
- Object.keys(target).forEach(k => {
51278
- if (isObject$2(filter)) {
51279
- if (filter.type === k) {
51280
- if (isArray$3(target[k])) {
51281
- if (target[k].length >= filter.index) {
51282
- target[k][filter.index] = forceMerge ? mergeSpec({}, target[k][filter.index], spec) : spec;
51283
- }
51284
- }
51285
- else {
51286
- target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;
51287
- }
51288
- }
51289
- }
51290
- else {
51291
- if (isArray$3(target[k])) {
51292
- const index = target[k].findIndex((_s) => _s.id === filter);
51293
- if (index >= 0) {
51294
- target[k][index] = forceMerge ? mergeSpec({}, target[k][index], spec) : spec;
51295
- }
51296
- }
51297
- else if (target.id === filter) {
51298
- target[k] = forceMerge ? mergeSpec({}, target[k], spec) : spec;
51299
- }
51300
- }
51301
- });
51302
- }
51303
-
51304
- function mergeTheme(target, ...sources) {
51305
- return mergeSpec(transformThemeToMerge(target), ...sources.map(transformThemeToMerge));
51306
- }
51307
- function transformThemeToMerge(theme) {
51308
- var _a;
51309
- if (!theme) {
51310
- return theme;
51311
- }
51312
- const colorScheme = transformColorSchemeToMerge(theme.colorScheme);
51313
- const { series } = theme;
51314
- const { mark: markByType, markByName } = theme;
51315
- let newSeriesTheme;
51316
- if (markByType || markByName) {
51317
- newSeriesTheme = Object.keys(seriesMarkInfoMap).reduce((newSeriesTheme, key) => {
51318
- var _a;
51319
- const value = (_a = series === null || series === void 0 ? void 0 : series[key]) !== null && _a !== void 0 ? _a : {};
51320
- newSeriesTheme[key] = transformSeriesThemeToMerge(value, key, markByType, markByName);
51321
- return newSeriesTheme;
51322
- }, {});
51323
- }
51324
- return Object.assign({}, theme, {
51325
- colorScheme,
51326
- token: (_a = theme.token) !== null && _a !== void 0 ? _a : {},
51327
- series: Object.assign({}, theme.series, newSeriesTheme)
51328
- });
51329
- }
51330
- function transformColorSchemeToMerge(colorScheme) {
51331
- if (colorScheme) {
51332
- colorScheme = Object.keys(colorScheme).reduce((scheme, key) => {
51333
- const value = colorScheme[key];
51334
- scheme[key] = transformColorSchemeToStandardStruct(value);
51335
- return scheme;
51336
- }, {});
51337
- }
51338
- return colorScheme;
51339
- }
51340
- function transformSeriesThemeToMerge(seriesTheme, seriesType, markByType, markByName) {
51341
- if (!seriesMarkInfoMap[seriesType]) {
51342
- return seriesTheme;
51343
- }
51344
- const newTheme = {};
51345
- Object.values(seriesMarkInfoMap[seriesType]).forEach(({ type, name }) => {
51346
- newTheme[name] = mergeSpec({}, markByType === null || markByType === void 0 ? void 0 : markByType[array(type)[0]], markByName === null || markByName === void 0 ? void 0 : markByName[name], seriesTheme === null || seriesTheme === void 0 ? void 0 : seriesTheme[name]);
51347
- });
51348
- return Object.assign(Object.assign({}, seriesTheme), newTheme);
51349
- }
51350
-
51351
- function queryToken(tokenMap, tokenKey) {
51352
- if (tokenMap && tokenKey.key in tokenMap) {
51353
- return tokenMap[tokenKey.key];
51354
- }
51355
- return tokenKey.default;
51356
- }
51357
- function isTokenKey(obj) {
51358
- return obj && obj.type === 'token' && !!obj.key;
51359
- }
51360
-
51361
- const token = {
51362
- fontFamily: 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol',
51363
- fontSize: 14,
51364
- l1FontSize: 32,
51365
- l1LineHeight: '150%',
51366
- l2FontSize: 20,
51367
- l2LineHeight: '140%',
51368
- l3FontSize: 16,
51369
- l3LineHeight: '150%',
51370
- l4FontSize: 14,
51371
- l4LineHeight: '150%',
51372
- l5FontSize: 12,
51373
- l5LineHeight: '130%',
51374
- l6FontSize: 10,
51375
- l6LineHeight: '120%'
51376
- };
51377
-
51378
- const IGNORE_KEYS = ['animationThreshold', 'colorScheme', 'name', 'padding'];
51379
- function preprocessTheme(obj, colorScheme, tokenMap, seriesSpec) {
51380
- if (!obj) {
51381
- return obj;
51382
- }
51383
- if (!colorScheme) {
51384
- colorScheme = obj.colorScheme;
51385
- }
51386
- if (!tokenMap) {
51387
- tokenMap = obj.token;
51388
- }
51389
- const newObj = {};
51390
- Object.keys(obj).forEach(key => {
51391
- const value = obj[key];
51392
- if (IGNORE_KEYS.includes(key)) {
51393
- newObj[key] = value;
51394
- }
51395
- else if (isPlainObject$1(value)) {
51396
- if (isColorKey(value)) {
51397
- newObj[key] = getActualColor(value, colorScheme, seriesSpec);
51398
- }
51399
- else if (isTokenKey(value)) {
51400
- newObj[key] = queryToken(tokenMap, value);
51401
- }
51402
- else {
51403
- newObj[key] = preprocessTheme(value, colorScheme, tokenMap, seriesSpec);
51404
- }
51405
- }
51406
- else {
51407
- newObj[key] = value;
51408
- }
51409
- });
51410
- return newObj;
51411
- }
51412
-
51413
- function specTransform(spec, special = {
51414
- data: v => v
51415
- }) {
51416
- if (!spec) {
51417
- return spec;
51418
- }
51419
- if (spec.constructor === Object) {
51420
- const result = {};
51421
- for (const key in spec) {
51422
- if (Object.prototype.hasOwnProperty.call(spec, key)) {
51423
- if (special[key]) {
51424
- result[key] = special[key](spec[key]);
51425
- continue;
51426
- }
51427
- result[key] = specTransform(spec[key], special);
51428
- }
51429
- }
51430
- return result;
51431
- }
51432
- if (isArray$3(spec)) {
51433
- return spec.map(s => specTransform(s, special));
51434
- }
51435
- return spec;
51436
- }
51437
- function functionTransform(spec, VChart) {
51438
- if (!spec) {
51439
- return spec;
51440
- }
51441
- if (isPlainObject$1(spec)) {
51442
- const result = {};
51443
- for (const key in spec) {
51444
- if (Object.prototype.hasOwnProperty.call(spec, key)) {
51445
- if (isString$1(spec[key]) && VChart.getFunction(spec[key])) {
51446
- result[key] = VChart.getFunction(spec[key]);
51447
- continue;
51448
- }
51449
- result[key] = functionTransform(spec[key], VChart);
51450
- }
51451
- }
51452
- return result;
51453
- }
51454
- if (isArray$3(spec)) {
51455
- return spec.map((s) => functionTransform(s, VChart));
51456
- }
51457
- return spec;
51458
- }
51459
-
51460
- const initTextMeasure = (textSpec, option, useNaiveCanvas) => {
51461
- return initTextMeasure$2(textSpec, option, useNaiveCanvas, {
51462
- fontFamily: token.fontFamily,
51463
- fontSize: token.fontSize
51464
- });
51465
- };
51466
- const measureText = (text, textSpec, option, useNaiveCanvas) => {
51467
- return initTextMeasure(textSpec, option, useNaiveCanvas).measure(text);
51468
- };
51469
-
51470
- function mergeFields(targetFields, mergeFields) {
51471
- for (let i = 0; i < mergeFields.length; i++) {
51472
- const element = mergeFields[i];
51473
- const _target = findFields(targetFields, element.key);
51474
- if (!_target) {
51475
- targetFields.push(element);
51476
- }
51477
- else {
51478
- _target.operations = [...new Set(_target.operations.concat(element.operations))];
51479
- }
51480
- }
51481
- return targetFields;
51482
- }
51483
- function findFields(list, fieldKey) {
51484
- return list.find(i => i.key === fieldKey);
51485
- }
51486
- function getFieldAlias(dataView, field) {
51487
- var _a;
51488
- if (!dataView) {
51489
- return field !== null && field !== void 0 ? field : null;
51490
- }
51491
- const fields = dataView.getFields();
51492
- if (!fields) {
51493
- return field !== null && field !== void 0 ? field : null;
51494
- }
51495
- if (!fields[field]) {
51496
- return field !== null && field !== void 0 ? field : null;
51497
- }
51498
- return (_a = fields[field].alias) !== null && _a !== void 0 ? _a : field;
51499
- }
51500
- function getRegionStackGroup(region, setInitialValue, filter) {
51501
- const stackValueGroup = {};
51502
- region.getSeries().forEach(s => {
51503
- var _a;
51504
- const stackData = s.getStackData();
51505
- const stackValue = s.getStackValue();
51506
- const stackValueField = s.getStackValueField();
51507
- const filterEnable = filter ? filter(s) : true;
51508
- if (stackData && stackValueField && filterEnable) {
51509
- stackValueGroup[stackValue] = (_a = stackValueGroup[stackValue]) !== null && _a !== void 0 ? _a : {
51510
- nodes: {}
51511
- };
51512
- stackGroup(s, stackData, stackValueGroup[stackValue], stackValueField, setInitialValue);
51513
- }
51514
- });
51515
- return stackValueGroup;
51516
- }
51517
- function stackTotal(stackData, valueField) {
51518
- if ('values' in stackData && stackData.values.length) {
51519
- const total = sum$1(stackData.values, valueField);
51520
- const percent = max(stackData.values, STACK_FIELD_END_PERCENT);
51521
- stackData.values.forEach(v => {
51522
- v[STACK_FIELD_TOTAL] = total;
51523
- v[STACK_FIELD_TOTAL_PERCENT] = percent;
51524
- delete v[STACK_FIELD_TOTAL_TOP];
51525
- });
51526
- const maxNode = stackData.values.reduce((max, current) => {
51527
- return current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max;
51528
- });
51529
- maxNode[STACK_FIELD_TOTAL_TOP] = true;
51530
- return;
51531
- }
51532
- for (const key in stackData.nodes) {
51533
- stackTotal(stackData.nodes[key], valueField);
51534
- }
51535
- }
51536
- function stackOffsetSilhouette(stackCache) {
51537
- if (!stackCache.values.length) {
51538
- return;
51539
- }
51540
- const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;
51541
- for (let j = 0; j < stackCache.values.length; j++) {
51542
- stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;
51543
- stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;
51544
- }
51545
- }
51546
- function stack(stackCache, stackInverse, hasPercent) {
51547
- if (stackCache.values.length > 0) {
51548
- let positiveStart = 0;
51549
- let negativeStart = 0;
51550
- let sign = 1;
51551
- let value = 0;
51552
- const maxLength = stackCache.values.length;
51553
- for (let index = 0; index < maxLength; index++) {
51554
- const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
51555
- value = v[STACK_FIELD_END];
51556
- if (value >= 0) {
51557
- v[STACK_FIELD_START] = positiveStart;
51558
- positiveStart += v[STACK_FIELD_END];
51559
- v[STACK_FIELD_END] = positiveStart;
51560
- }
51561
- else {
51562
- v[STACK_FIELD_START] = negativeStart;
51563
- negativeStart += v[STACK_FIELD_END];
51564
- v[STACK_FIELD_END] = negativeStart;
51565
- }
51566
- v[STACK_FIELD_KEY] = stackCache.key;
51567
- }
51568
- if (hasPercent) {
51569
- for (let index = 0; index < maxLength; index++) {
51570
- const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
51571
- value = v[STACK_FIELD_END];
51572
- const denominator = value >= 0 ? positiveStart : negativeStart;
51573
- sign = value >= 0 ? 1 : -1;
51574
- v[STACK_FIELD_START_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign;
51575
- v[STACK_FIELD_END_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;
51576
- }
51577
- }
51578
- }
51579
- for (const key in stackCache.nodes) {
51580
- stack(stackCache.nodes[key], stackInverse, hasPercent);
51581
- }
51582
- }
51583
- function stackGroup(s, stackData, stackCache, valueField, setInitialValue, stackKey) {
51584
- if ('values' in stackData) {
51585
- setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));
51586
- stackCache.values.push(...stackData.values);
51587
- stackCache.series.push({ s: s, values: stackData.values });
51588
- return;
51589
- }
51590
- for (const key in stackData.nodes) {
51591
- const newStackKey = stackKey ? `${stackKey}_${key}` : key;
51592
- !stackCache.nodes[key] &&
51593
- (stackCache.nodes[key] = {
51594
- values: [],
51595
- series: [],
51596
- nodes: {},
51597
- key: newStackKey
51598
- });
51599
- stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, newStackKey);
51600
- }
51601
- }
51602
-
51603
- const findHierarchyNode = (hierarchyData, key, keyField = 'key', childrenField = 'children') => {
51604
- for (let i = 0; i < hierarchyData.length; i++) {
51605
- const node = hierarchyData[i];
51606
- if (node[keyField] === key) {
51607
- return node;
51608
- }
51609
- if (node[childrenField]) {
51610
- const result = findHierarchyNode(node[childrenField], key, keyField, childrenField);
51611
- if (result) {
51612
- return result;
51613
- }
51614
- }
51615
- }
51616
- return null;
51617
- };
51618
- const findHierarchyNodeParent = (hierarchyData, key, keyField = 'key', childrenField = 'children') => {
51619
- for (let i = 0; i < hierarchyData.length; i++) {
51620
- const node = hierarchyData[i];
51621
- if (node[childrenField]) {
51622
- for (let j = 0; j < node[childrenField].length; j++) {
51623
- const childNode = node[childrenField][j];
51624
- if (childNode[keyField] === key) {
51625
- return node;
51626
- }
51627
- const result = findHierarchyNodeParent([childNode], key, keyField, childrenField);
51628
- if (result) {
51629
- return result;
51630
- }
51631
- }
51632
- }
51633
- }
51634
- return null;
51635
- };
51636
- const findHierarchyPath = (hierarchyData, key, keyField = 'key', childrenField = 'children') => {
51637
- const result = [];
51638
- const dfs = (data, path) => {
51639
- for (const item of data) {
51640
- if (item[keyField] === key) {
51641
- result.push(...path, item[keyField].toString());
51642
- return true;
51643
- }
51644
- if (item[childrenField]) {
51645
- const res = dfs(item[childrenField], [...path, item[keyField]]);
51646
- if (res === true) {
51647
- return res;
51648
- }
51649
- }
51650
- }
51651
- return false;
51652
- };
51653
- dfs(hierarchyData, []);
51654
- return result;
51655
- };
51656
-
51657
- function transformComponentStyle(cfg = {}) {
51658
- const newConfig = Object.assign({}, cfg);
51659
- if (isFunction$1(cfg.style)) {
51660
- newConfig.style = (item, isSelected, index, allItems) => transformToGraphic(cfg.style(item, isSelected, index, allItems));
51661
- }
51662
- else if (!isEmpty(cfg.style)) {
51663
- newConfig.style = transformToGraphic(cfg.style);
51664
- }
51665
- if (!isEmpty(cfg.state)) {
51666
- const newStateStyle = {};
51667
- Object.keys(cfg.state).forEach(key => {
51668
- if (isFunction$1(cfg.state[key])) {
51669
- newStateStyle[key] = (item, isSelected, index, allItems) => transformToGraphic(cfg.state[key](item, isSelected, index, allItems));
51670
- }
51671
- else if (!isEmpty(cfg.state[key])) {
51672
- newStateStyle[key] = transformToGraphic(cfg.state[key]);
51673
- }
51674
- });
51675
- newConfig.state = newStateStyle;
51676
- }
51677
- return newConfig;
51678
- }
51679
- function transformStateStyle(stateStyle) {
51680
- if (isEmpty(stateStyle)) {
51681
- return null;
51682
- }
51683
- const newStateStyle = {};
51684
- Object.keys(stateStyle).forEach(key => {
51685
- if (isFunction$1(stateStyle[key])) {
51686
- newStateStyle[key] = (value, index, datum, data) => transformToGraphic(stateStyle[key](value, index, datum, data));
51687
- }
51688
- else if (!isEmpty(stateStyle[key])) {
51689
- newStateStyle[key] = transformToGraphic(stateStyle[key]);
51690
- }
51691
- });
51692
- return newStateStyle;
51693
- }
51694
- function transformAxisLabelStateStyle(stateStyle) {
51695
- if (isEmpty(stateStyle)) {
51696
- return null;
51697
- }
51698
- const newStateStyle = {};
51699
- Object.keys(stateStyle).forEach(key => {
51700
- if (isFunction$1(stateStyle[key])) {
51701
- newStateStyle[key] = (datum, index, data, layer) => {
51702
- return transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer));
51703
- };
51704
- }
51705
- else if (!isEmpty(stateStyle[key])) {
51706
- newStateStyle[key] = transformToGraphic(stateStyle[key]);
51707
- }
51708
- });
51709
- return newStateStyle;
51710
- }
51711
- function transformToGraphic(style) {
51712
- if (style === null || style === void 0 ? void 0 : style.angle) {
51713
- style.angle = degreeToRadian(style.angle);
51714
- }
51715
- return style;
51716
- }
51717
-
51718
51205
  const dataScheme = [
51719
51206
  {
51720
51207
  maxDomainLength: 10,
@@ -53424,6 +52911,33 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
53424
52911
  scrollBar
53425
52912
  };
53426
52913
 
52914
+ function queryToken(tokenMap, tokenKey) {
52915
+ if (tokenMap && tokenKey.key in tokenMap) {
52916
+ return tokenMap[tokenKey.key];
52917
+ }
52918
+ return tokenKey.default;
52919
+ }
52920
+ function isTokenKey(obj) {
52921
+ return obj && obj.type === 'token' && !!obj.key;
52922
+ }
52923
+
52924
+ const token = {
52925
+ fontFamily: 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol',
52926
+ fontSize: 14,
52927
+ l1FontSize: 32,
52928
+ l1LineHeight: '150%',
52929
+ l2FontSize: 20,
52930
+ l2LineHeight: '140%',
52931
+ l3FontSize: 16,
52932
+ l3LineHeight: '150%',
52933
+ l4FontSize: 14,
52934
+ l4LineHeight: '150%',
52935
+ l5FontSize: 12,
52936
+ l5LineHeight: '130%',
52937
+ l6FontSize: 10,
52938
+ l6LineHeight: '120%'
52939
+ };
52940
+
53427
52941
  const lightTheme = {
53428
52942
  name: 'light',
53429
52943
  background: { type: 'palette', key: 'backgroundColor' },
@@ -53490,6 +53004,88 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
53490
53004
  }
53491
53005
  };
53492
53006
 
53007
+ function mergeTheme(target, ...sources) {
53008
+ return mergeSpec(transformThemeToMerge(target), ...sources.map(transformThemeToMerge));
53009
+ }
53010
+ function transformThemeToMerge(theme) {
53011
+ var _a;
53012
+ if (!theme) {
53013
+ return theme;
53014
+ }
53015
+ const colorScheme = transformColorSchemeToMerge(theme.colorScheme);
53016
+ const { series } = theme;
53017
+ const { mark: markByType, markByName } = theme;
53018
+ let newSeriesTheme;
53019
+ if (markByType || markByName) {
53020
+ newSeriesTheme = Object.keys(seriesMarkInfoMap).reduce((newSeriesTheme, key) => {
53021
+ var _a;
53022
+ const value = (_a = series === null || series === void 0 ? void 0 : series[key]) !== null && _a !== void 0 ? _a : {};
53023
+ newSeriesTheme[key] = transformSeriesThemeToMerge(value, key, markByType, markByName);
53024
+ return newSeriesTheme;
53025
+ }, {});
53026
+ }
53027
+ return Object.assign({}, theme, {
53028
+ colorScheme,
53029
+ token: (_a = theme.token) !== null && _a !== void 0 ? _a : {},
53030
+ series: Object.assign({}, theme.series, newSeriesTheme)
53031
+ });
53032
+ }
53033
+ function transformColorSchemeToMerge(colorScheme) {
53034
+ if (colorScheme) {
53035
+ colorScheme = Object.keys(colorScheme).reduce((scheme, key) => {
53036
+ const value = colorScheme[key];
53037
+ scheme[key] = transformColorSchemeToStandardStruct(value);
53038
+ return scheme;
53039
+ }, {});
53040
+ }
53041
+ return colorScheme;
53042
+ }
53043
+ function transformSeriesThemeToMerge(seriesTheme, seriesType, markByType, markByName) {
53044
+ if (!seriesMarkInfoMap[seriesType]) {
53045
+ return seriesTheme;
53046
+ }
53047
+ const newTheme = {};
53048
+ Object.values(seriesMarkInfoMap[seriesType]).forEach(({ type, name }) => {
53049
+ newTheme[name] = mergeSpec({}, markByType === null || markByType === void 0 ? void 0 : markByType[array(type)[0]], markByName === null || markByName === void 0 ? void 0 : markByName[name], seriesTheme === null || seriesTheme === void 0 ? void 0 : seriesTheme[name]);
53050
+ });
53051
+ return Object.assign(Object.assign({}, seriesTheme), newTheme);
53052
+ }
53053
+
53054
+ const IGNORE_KEYS = ['animationThreshold', 'colorScheme', 'name', 'padding'];
53055
+ function preprocessTheme(obj, colorScheme, tokenMap, seriesSpec) {
53056
+ if (!obj) {
53057
+ return obj;
53058
+ }
53059
+ if (!colorScheme) {
53060
+ colorScheme = obj.colorScheme;
53061
+ }
53062
+ if (!tokenMap) {
53063
+ tokenMap = obj.token;
53064
+ }
53065
+ const newObj = {};
53066
+ Object.keys(obj).forEach(key => {
53067
+ const value = obj[key];
53068
+ if (IGNORE_KEYS.includes(key)) {
53069
+ newObj[key] = value;
53070
+ }
53071
+ else if (isPlainObject$1(value)) {
53072
+ if (isColorKey(value)) {
53073
+ newObj[key] = getActualColor(value, colorScheme, seriesSpec);
53074
+ }
53075
+ else if (isTokenKey(value)) {
53076
+ newObj[key] = queryToken(tokenMap, value);
53077
+ }
53078
+ else {
53079
+ newObj[key] = preprocessTheme(value, colorScheme, tokenMap, seriesSpec);
53080
+ }
53081
+ }
53082
+ else {
53083
+ newObj[key] = value;
53084
+ }
53085
+ });
53086
+ return newObj;
53087
+ }
53088
+
53493
53089
  const builtinThemes = {
53494
53090
  [lightTheme.name]: lightTheme
53495
53091
  };
@@ -53602,6 +53198,379 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
53602
53198
  return {};
53603
53199
  }
53604
53200
 
53201
+ function convertBackgroundSpec(bg) {
53202
+ if (!bg) {
53203
+ return null;
53204
+ }
53205
+ if (typeof bg === 'string') {
53206
+ return {
53207
+ fill: bg,
53208
+ fillOpacity: 1
53209
+ };
53210
+ }
53211
+ if (typeof bg !== 'object') {
53212
+ return null;
53213
+ }
53214
+ const result = pickWithout(bg, ['x', 'y', 'width', 'height', 'x1', 'y1', 'image']);
53215
+ result.background = bg.image;
53216
+ return result;
53217
+ }
53218
+
53219
+ function specTransform(spec, special = {
53220
+ data: v => v
53221
+ }) {
53222
+ if (!spec) {
53223
+ return spec;
53224
+ }
53225
+ if (spec.constructor === Object) {
53226
+ const result = {};
53227
+ for (const key in spec) {
53228
+ if (Object.prototype.hasOwnProperty.call(spec, key)) {
53229
+ if (special[key]) {
53230
+ result[key] = special[key](spec[key]);
53231
+ continue;
53232
+ }
53233
+ result[key] = specTransform(spec[key], special);
53234
+ }
53235
+ }
53236
+ return result;
53237
+ }
53238
+ if (isArray$3(spec)) {
53239
+ return spec.map(s => specTransform(s, special));
53240
+ }
53241
+ return spec;
53242
+ }
53243
+ function functionTransform(spec, VChart) {
53244
+ if (!spec) {
53245
+ return spec;
53246
+ }
53247
+ if (isPlainObject$1(spec)) {
53248
+ const result = {};
53249
+ for (const key in spec) {
53250
+ if (Object.prototype.hasOwnProperty.call(spec, key)) {
53251
+ if (isString$1(spec[key]) && VChart.getFunction(spec[key])) {
53252
+ result[key] = VChart.getFunction(spec[key]);
53253
+ continue;
53254
+ }
53255
+ result[key] = functionTransform(spec[key], VChart);
53256
+ }
53257
+ }
53258
+ return result;
53259
+ }
53260
+ if (isArray$3(spec)) {
53261
+ return spec.map((s) => functionTransform(s, VChart));
53262
+ }
53263
+ return spec;
53264
+ }
53265
+
53266
+ const initTextMeasure = (textSpec, option, useNaiveCanvas) => {
53267
+ return initTextMeasure$2(textSpec, option, useNaiveCanvas, {
53268
+ fontFamily: token.fontFamily,
53269
+ fontSize: token.fontSize
53270
+ });
53271
+ };
53272
+ const measureText = (text, textSpec, option, useNaiveCanvas) => {
53273
+ return initTextMeasure(textSpec, option, useNaiveCanvas).measure(text);
53274
+ };
53275
+
53276
+ function mergeFields(targetFields, mergeFields) {
53277
+ for (let i = 0; i < mergeFields.length; i++) {
53278
+ const element = mergeFields[i];
53279
+ const _target = findFields(targetFields, element.key);
53280
+ if (!_target) {
53281
+ targetFields.push(element);
53282
+ }
53283
+ else {
53284
+ _target.operations = [...new Set(_target.operations.concat(element.operations))];
53285
+ }
53286
+ }
53287
+ return targetFields;
53288
+ }
53289
+ function findFields(list, fieldKey) {
53290
+ return list.find(i => i.key === fieldKey);
53291
+ }
53292
+ function getFieldAlias(dataView, field) {
53293
+ var _a;
53294
+ if (!dataView) {
53295
+ return field !== null && field !== void 0 ? field : null;
53296
+ }
53297
+ const fields = dataView.getFields();
53298
+ if (!fields) {
53299
+ return field !== null && field !== void 0 ? field : null;
53300
+ }
53301
+ if (!fields[field]) {
53302
+ return field !== null && field !== void 0 ? field : null;
53303
+ }
53304
+ return (_a = fields[field].alias) !== null && _a !== void 0 ? _a : field;
53305
+ }
53306
+ function getRegionStackGroup(region, setInitialValue, filter) {
53307
+ const stackSort = region.getStackSort();
53308
+ const stackValueGroup = {};
53309
+ let stackSortCache = null;
53310
+ if (stackSort) {
53311
+ stackSortCache = {};
53312
+ region.getSeries().forEach(s => {
53313
+ const seriesField = s.getSeriesField();
53314
+ if (seriesField) {
53315
+ const fieldInfo = s.getRawDataStatisticsByField(seriesField);
53316
+ if (fieldInfo.values) {
53317
+ if (!stackSortCache[seriesField]) {
53318
+ stackSortCache[seriesField] = { lastIndex: 0, sort: {} };
53319
+ }
53320
+ fieldInfo.values.forEach((v, i) => {
53321
+ if (!(v in stackSortCache[seriesField].sort)) {
53322
+ stackSortCache[seriesField].sort[v] = stackSortCache[seriesField].lastIndex;
53323
+ stackSortCache[seriesField].lastIndex++;
53324
+ }
53325
+ });
53326
+ }
53327
+ }
53328
+ });
53329
+ }
53330
+ region.getSeries().forEach(s => {
53331
+ var _a;
53332
+ const stackData = s.getStackData();
53333
+ const stackValue = s.getStackValue();
53334
+ const stackValueField = s.getStackValueField();
53335
+ const filterEnable = filter ? filter(s) : true;
53336
+ if (stackData && stackValueField && filterEnable) {
53337
+ stackValueGroup[stackValue] = (_a = stackValueGroup[stackValue]) !== null && _a !== void 0 ? _a : {
53338
+ nodes: {}
53339
+ };
53340
+ stackGroup(s, stackData, stackValueGroup[stackValue], stackValueField, setInitialValue, stackSortCache);
53341
+ }
53342
+ });
53343
+ return stackSort
53344
+ ? sortStackValueGroup(stackValueGroup)
53345
+ : stackValueGroup;
53346
+ }
53347
+ function sortStackValueGroup(stackValueGroup, stackSortCache) {
53348
+ var _a;
53349
+ for (const key in stackValueGroup) {
53350
+ if ((_a = stackValueGroup[key].sortDatums) === null || _a === void 0 ? void 0 : _a.length) {
53351
+ stackValueGroup[key].sortDatums.sort((a, b) => a.index - b.index);
53352
+ stackValueGroup[key].values = stackValueGroup[key].sortDatums.map(sd => sd.datum);
53353
+ }
53354
+ else {
53355
+ sortStackValueGroup(stackValueGroup[key].nodes);
53356
+ }
53357
+ }
53358
+ return stackValueGroup;
53359
+ }
53360
+ function stackTotal(stackData, valueField) {
53361
+ if ('values' in stackData && stackData.values.length) {
53362
+ const total = sum$1(stackData.values, valueField);
53363
+ const percent = max(stackData.values, STACK_FIELD_END_PERCENT);
53364
+ stackData.values.forEach(v => {
53365
+ v[STACK_FIELD_TOTAL] = total;
53366
+ v[STACK_FIELD_TOTAL_PERCENT] = percent;
53367
+ delete v[STACK_FIELD_TOTAL_TOP];
53368
+ });
53369
+ const maxNode = stackData.values.reduce((max, current) => {
53370
+ return current[STACK_FIELD_END] > max[STACK_FIELD_END] ? current : max;
53371
+ });
53372
+ maxNode[STACK_FIELD_TOTAL_TOP] = true;
53373
+ return;
53374
+ }
53375
+ for (const key in stackData.nodes) {
53376
+ stackTotal(stackData.nodes[key], valueField);
53377
+ }
53378
+ }
53379
+ function stackOffsetSilhouette(stackCache) {
53380
+ if (!stackCache.values.length) {
53381
+ return;
53382
+ }
53383
+ const centerValue = stackCache.values[stackCache.values.length - 1][STACK_FIELD_END] / 2;
53384
+ for (let j = 0; j < stackCache.values.length; j++) {
53385
+ stackCache.values[j][STACK_FIELD_START_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_START] - centerValue;
53386
+ stackCache.values[j][STACK_FIELD_END_OffsetSilhouette] = stackCache.values[j][STACK_FIELD_END] - centerValue;
53387
+ }
53388
+ }
53389
+ function stack(stackCache, stackInverse, hasPercent) {
53390
+ if (stackCache.values.length > 0) {
53391
+ let positiveStart = 0;
53392
+ let negativeStart = 0;
53393
+ let sign = 1;
53394
+ let value = 0;
53395
+ const maxLength = stackCache.values.length;
53396
+ for (let index = 0; index < maxLength; index++) {
53397
+ const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
53398
+ value = v[STACK_FIELD_END];
53399
+ if (value >= 0) {
53400
+ v[STACK_FIELD_START] = positiveStart;
53401
+ positiveStart += v[STACK_FIELD_END];
53402
+ v[STACK_FIELD_END] = positiveStart;
53403
+ }
53404
+ else {
53405
+ v[STACK_FIELD_START] = negativeStart;
53406
+ negativeStart += v[STACK_FIELD_END];
53407
+ v[STACK_FIELD_END] = negativeStart;
53408
+ }
53409
+ v[STACK_FIELD_KEY] = stackCache.key;
53410
+ }
53411
+ if (hasPercent) {
53412
+ for (let index = 0; index < maxLength; index++) {
53413
+ const v = stackCache.values[stackInverse ? maxLength - 1 - index : index];
53414
+ value = v[STACK_FIELD_END];
53415
+ const denominator = value >= 0 ? positiveStart : negativeStart;
53416
+ sign = value >= 0 ? 1 : -1;
53417
+ v[STACK_FIELD_START_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_START] / denominator) * sign;
53418
+ v[STACK_FIELD_END_PERCENT] = denominator === 0 ? 0 : Math.min(1, v[STACK_FIELD_END] / denominator) * sign;
53419
+ }
53420
+ }
53421
+ }
53422
+ for (const key in stackCache.nodes) {
53423
+ stack(stackCache.nodes[key], stackInverse, hasPercent);
53424
+ }
53425
+ }
53426
+ function stackGroup(s, stackData, stackCache, valueField, setInitialValue, stackSortCache, stackKey) {
53427
+ if ('values' in stackData) {
53428
+ setInitialValue && stackData.values.forEach(v => (v[STACK_FIELD_END] = toValidNumber(v[valueField])));
53429
+ stackCache.series.push({ s: s, values: stackData.values });
53430
+ if (stackSortCache) {
53431
+ const seriesField = s.getSeriesField();
53432
+ stackData.values.forEach(d => {
53433
+ stackCache.sortDatums.push({
53434
+ series: s,
53435
+ datum: d,
53436
+ index: seriesField ? stackSortCache[seriesField].sort[d[seriesField]] : 0
53437
+ });
53438
+ });
53439
+ }
53440
+ else {
53441
+ stackCache.values.push(...stackData.values);
53442
+ }
53443
+ return;
53444
+ }
53445
+ for (const key in stackData.nodes) {
53446
+ const newStackKey = stackKey ? `${stackKey}_${key}` : key;
53447
+ !stackCache.nodes[key] &&
53448
+ (stackCache.nodes[key] = {
53449
+ values: [],
53450
+ series: [],
53451
+ nodes: {},
53452
+ sortDatums: [],
53453
+ key: newStackKey
53454
+ });
53455
+ stackGroup(s, stackData.nodes[key], stackCache.nodes[key], valueField, setInitialValue, stackSortCache, newStackKey);
53456
+ }
53457
+ }
53458
+
53459
+ const findHierarchyNode = (hierarchyData, key, keyField = 'key', childrenField = 'children') => {
53460
+ for (let i = 0; i < hierarchyData.length; i++) {
53461
+ const node = hierarchyData[i];
53462
+ if (node[keyField] === key) {
53463
+ return node;
53464
+ }
53465
+ if (node[childrenField]) {
53466
+ const result = findHierarchyNode(node[childrenField], key, keyField, childrenField);
53467
+ if (result) {
53468
+ return result;
53469
+ }
53470
+ }
53471
+ }
53472
+ return null;
53473
+ };
53474
+ const findHierarchyNodeParent = (hierarchyData, key, keyField = 'key', childrenField = 'children') => {
53475
+ for (let i = 0; i < hierarchyData.length; i++) {
53476
+ const node = hierarchyData[i];
53477
+ if (node[childrenField]) {
53478
+ for (let j = 0; j < node[childrenField].length; j++) {
53479
+ const childNode = node[childrenField][j];
53480
+ if (childNode[keyField] === key) {
53481
+ return node;
53482
+ }
53483
+ const result = findHierarchyNodeParent([childNode], key, keyField, childrenField);
53484
+ if (result) {
53485
+ return result;
53486
+ }
53487
+ }
53488
+ }
53489
+ }
53490
+ return null;
53491
+ };
53492
+ const findHierarchyPath = (hierarchyData, key, keyField = 'key', childrenField = 'children') => {
53493
+ const result = [];
53494
+ const dfs = (data, path) => {
53495
+ for (const item of data) {
53496
+ if (item[keyField] === key) {
53497
+ result.push(...path, item[keyField].toString());
53498
+ return true;
53499
+ }
53500
+ if (item[childrenField]) {
53501
+ const res = dfs(item[childrenField], [...path, item[keyField]]);
53502
+ if (res === true) {
53503
+ return res;
53504
+ }
53505
+ }
53506
+ }
53507
+ return false;
53508
+ };
53509
+ dfs(hierarchyData, []);
53510
+ return result;
53511
+ };
53512
+
53513
+ function transformComponentStyle(cfg = {}) {
53514
+ const newConfig = Object.assign({}, cfg);
53515
+ if (isFunction$1(cfg.style)) {
53516
+ newConfig.style = (item, isSelected, index, allItems) => transformToGraphic(cfg.style(item, isSelected, index, allItems));
53517
+ }
53518
+ else if (!isEmpty(cfg.style)) {
53519
+ newConfig.style = transformToGraphic(cfg.style);
53520
+ }
53521
+ if (!isEmpty(cfg.state)) {
53522
+ const newStateStyle = {};
53523
+ Object.keys(cfg.state).forEach(key => {
53524
+ if (isFunction$1(cfg.state[key])) {
53525
+ newStateStyle[key] = (item, isSelected, index, allItems) => transformToGraphic(cfg.state[key](item, isSelected, index, allItems));
53526
+ }
53527
+ else if (!isEmpty(cfg.state[key])) {
53528
+ newStateStyle[key] = transformToGraphic(cfg.state[key]);
53529
+ }
53530
+ });
53531
+ newConfig.state = newStateStyle;
53532
+ }
53533
+ return newConfig;
53534
+ }
53535
+ function transformStateStyle(stateStyle) {
53536
+ if (isEmpty(stateStyle)) {
53537
+ return null;
53538
+ }
53539
+ const newStateStyle = {};
53540
+ Object.keys(stateStyle).forEach(key => {
53541
+ if (isFunction$1(stateStyle[key])) {
53542
+ newStateStyle[key] = (value, index, datum, data) => transformToGraphic(stateStyle[key](value, index, datum, data));
53543
+ }
53544
+ else if (!isEmpty(stateStyle[key])) {
53545
+ newStateStyle[key] = transformToGraphic(stateStyle[key]);
53546
+ }
53547
+ });
53548
+ return newStateStyle;
53549
+ }
53550
+ function transformAxisLabelStateStyle(stateStyle) {
53551
+ if (isEmpty(stateStyle)) {
53552
+ return null;
53553
+ }
53554
+ const newStateStyle = {};
53555
+ Object.keys(stateStyle).forEach(key => {
53556
+ if (isFunction$1(stateStyle[key])) {
53557
+ newStateStyle[key] = (datum, index, data, layer) => {
53558
+ return transformToGraphic(stateStyle[key](datum.rawValue, index, datum, data, layer));
53559
+ };
53560
+ }
53561
+ else if (!isEmpty(stateStyle[key])) {
53562
+ newStateStyle[key] = transformToGraphic(stateStyle[key]);
53563
+ }
53564
+ });
53565
+ return newStateStyle;
53566
+ }
53567
+ function transformToGraphic(style) {
53568
+ if (style === null || style === void 0 ? void 0 : style.angle) {
53569
+ style.angle = degreeToRadian(style.angle);
53570
+ }
53571
+ return style;
53572
+ }
53573
+
53605
53574
  class Factory {
53606
53575
  static registerChart(key, chart) {
53607
53576
  Factory._charts[key] = chart;
@@ -56842,6 +56811,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
56842
56811
  getStackInverse() {
56843
56812
  return this._spec.stackInverse === true;
56844
56813
  }
56814
+ getStackSort() {
56815
+ return this._spec.stackSort === true;
56816
+ }
56845
56817
  constructor(spec, ctx) {
56846
56818
  var _a;
56847
56819
  super(spec, ctx);
@@ -56854,7 +56826,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
56854
56826
  this.layoutZIndex = exports.LayoutZIndex.Region;
56855
56827
  this.interaction = new Interaction();
56856
56828
  this.seriesDataFilterOver = () => {
56857
- this.event.emit(exports.ChartEvent.regionSeriesDataFilterOver, { model: this });
56829
+ this.event.emit(exports.ChartEvent.regionSeriesDataFilterOver, { model: this, chart: this.getChart() });
56858
56830
  this._series.forEach(s => {
56859
56831
  if (s.getViewDataFilter()) {
56860
56832
  s.reTransformViewData();
@@ -59388,7 +59360,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
59388
59360
  this._chart.setCanvasRect(this._currentSize.width, this._currentSize.height);
59389
59361
  this._chart.created();
59390
59362
  this._chart.init();
59391
- this._event.emit(exports.ChartEvent.initialized, {});
59363
+ this._event.emit(exports.ChartEvent.initialized, {
59364
+ chart,
59365
+ vchart: this
59366
+ });
59392
59367
  }
59393
59368
  _releaseData() {
59394
59369
  if (this._dataSet) {
@@ -59401,10 +59376,16 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
59401
59376
  return;
59402
59377
  }
59403
59378
  this._compiler.getVGrammarView().addEventListener(exports.VGRAMMAR_HOOK_EVENT.ALL_ANIMATION_END, () => {
59404
- this._event.emit(exports.ChartEvent.animationFinished, {});
59379
+ this._event.emit(exports.ChartEvent.animationFinished, {
59380
+ chart: this._chart,
59381
+ vchart: this
59382
+ });
59405
59383
  });
59406
59384
  this._compiler.getVGrammarView().addEventListener(exports.VGRAMMAR_HOOK_EVENT.AFTER_VRENDER_NEXT_RENDER, () => {
59407
- this._event.emit(exports.ChartEvent.renderFinished, {});
59385
+ this._event.emit(exports.ChartEvent.renderFinished, {
59386
+ chart: this._chart,
59387
+ vchart: this
59388
+ });
59408
59389
  });
59409
59390
  }
59410
59391
  _bindResizeEvent() {
@@ -59541,7 +59522,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
59541
59522
  return false;
59542
59523
  }
59543
59524
  this._updateAnimateState();
59544
- this._event.emit(exports.ChartEvent.rendered, {});
59525
+ this._event.emit(exports.ChartEvent.rendered, {
59526
+ chart: this._chart,
59527
+ vchart: this
59528
+ });
59545
59529
  return true;
59546
59530
  }
59547
59531
  renderSync(morphConfig) {
@@ -60165,6 +60149,11 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
60165
60149
  getComponents() {
60166
60150
  return this._chart.getAllComponents();
60167
60151
  }
60152
+ getScale(scaleId) {
60153
+ var _a;
60154
+ const globalScale = (_a = this._chart) === null || _a === void 0 ? void 0 : _a.getGlobalScale();
60155
+ return globalScale === null || globalScale === void 0 ? void 0 : globalScale.getScale(scaleId);
60156
+ }
60168
60157
  setDimensionIndex(value, opt = {}) {
60169
60158
  var _a;
60170
60159
  return (_a = this._chart) === null || _a === void 0 ? void 0 : _a.setDimensionIndex(value, opt);
@@ -61467,7 +61456,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61467
61456
  };
61468
61457
 
61469
61458
  const layoutByValue$1 = (tag = 3, series, layoutStartPoint, currValueX, currValueY, xHair, yHair, enableRemain = false, cacheXCrossHairInfo, cacheYCrossHairInfo) => {
61470
- var _a;
61471
61459
  const layoutX = tag & 1;
61472
61460
  const layoutY = tag & 2;
61473
61461
  if (!layoutStartPoint) {
@@ -61531,6 +61519,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61531
61519
  currValueX.forEach(({ axis, value }) => {
61532
61520
  var _a;
61533
61521
  value = value !== null && value !== void 0 ? value : '';
61522
+ let niceLabelFormatter = null;
61534
61523
  const xScale = axis.getScale();
61535
61524
  if (isDiscrete(xScale.type)) {
61536
61525
  bandWidth = xScale.bandwidth();
@@ -61553,17 +61542,20 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61553
61542
  }
61554
61543
  x = startX;
61555
61544
  }
61545
+ niceLabelFormatter = axis.niceLabelFormatter;
61556
61546
  }
61557
61547
  if (xCrossHairInfo && ((_a = xHair.label) === null || _a === void 0 ? void 0 : _a.visible) && !xUseCache) {
61558
61548
  const labelOffset = getAxisLabelOffset(axis.getSpec());
61559
61549
  if (axis.getOrient() === 'bottom') {
61560
61550
  xCrossHairInfo.bottom.visible = true;
61551
+ xCrossHairInfo.bottom.defaultFormatter = niceLabelFormatter;
61561
61552
  xCrossHairInfo.bottom.text = value;
61562
61553
  xCrossHairInfo.bottom.dx = 0;
61563
61554
  xCrossHairInfo.bottom.dy = labelOffset;
61564
61555
  }
61565
61556
  else if (axis.getOrient() === 'top') {
61566
61557
  xCrossHairInfo.top.visible = true;
61558
+ xCrossHairInfo.top.defaultFormatter = niceLabelFormatter;
61567
61559
  xCrossHairInfo.top.text = value;
61568
61560
  xCrossHairInfo.top.dx = 0;
61569
61561
  xCrossHairInfo.top.dy = -labelOffset;
@@ -61575,6 +61567,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61575
61567
  currValueY.forEach(({ axis, value }) => {
61576
61568
  var _a;
61577
61569
  value = value !== null && value !== void 0 ? value : '';
61570
+ let niceLabelFormatter = null;
61578
61571
  const yScale = axis.getScale();
61579
61572
  if (isDiscrete(yScale.type)) {
61580
61573
  bandHeight = yScale.bandwidth();
@@ -61597,17 +61590,20 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61597
61590
  }
61598
61591
  y = startY;
61599
61592
  }
61593
+ niceLabelFormatter = axis.niceLabelFormatter;
61600
61594
  }
61601
61595
  if (yCrossHairInfo && ((_a = yHair.label) === null || _a === void 0 ? void 0 : _a.visible) && !yUseCache) {
61602
61596
  const labelOffset = getAxisLabelOffset(axis.getSpec());
61603
61597
  if (axis.getOrient() === 'left') {
61604
61598
  yCrossHairInfo.left.visible = true;
61599
+ yCrossHairInfo.left.defaultFormatter = niceLabelFormatter;
61605
61600
  yCrossHairInfo.left.text = value;
61606
61601
  yCrossHairInfo.left.dx = -labelOffset;
61607
61602
  yCrossHairInfo.left.dy = 0;
61608
61603
  }
61609
61604
  else if (axis.getOrient() === 'right') {
61610
61605
  yCrossHairInfo.right.visible = true;
61606
+ yCrossHairInfo.right.defaultFormatter = niceLabelFormatter;
61611
61607
  yCrossHairInfo.right.text = value;
61612
61608
  yCrossHairInfo.right.dx = labelOffset;
61613
61609
  yCrossHairInfo.right.dy = 0;
@@ -61623,11 +61619,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61623
61619
  xCrossHairInfo.topPos = xRegion.y1;
61624
61620
  xCrossHairInfo.height = xRegion.y2 - xRegion.y1;
61625
61621
  xCrossHairInfo.x = x + layoutStartPoint.x;
61626
- if ((_a = xHair === null || xHair === void 0 ? void 0 : xHair.label) === null || _a === void 0 ? void 0 : _a.formatMethod) {
61627
- const { top, bottom } = xCrossHairInfo;
61628
- bottom.visible && (bottom.text = xHair.label.formatMethod(bottom.text, 'bottom'));
61629
- top.visible && (top.text = xHair.label.formatMethod(top.text, 'top'));
61630
- }
61631
61622
  if (xHair && xHair.label) {
61632
61623
  const { top, bottom } = xCrossHairInfo;
61633
61624
  if (top.visible) {
@@ -61674,6 +61665,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
61674
61665
  if (formatFunc) {
61675
61666
  labelInfo.text = formatFunc(...args);
61676
61667
  }
61668
+ else if (labelInfo.defaultFormatter) {
61669
+ labelInfo.text = labelInfo.defaultFormatter(labelInfo.text);
61670
+ }
61677
61671
  };
61678
61672
  const setRegionArea = (outRegion, currentValue) => {
61679
61673
  currentValue.forEach(({ axis }) => {
@@ -64578,7 +64572,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
64578
64572
  registerComponentPlugin(CanvasTooltipHandler);
64579
64573
  };
64580
64574
 
64581
- const version = "1.10.3";
64575
+ const version = "1.10.4";
64582
64576
 
64583
64577
  const addVChartProperty = (data, op) => {
64584
64578
  const context = op.beforeCall();
@@ -67531,15 +67525,18 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
67531
67525
  getLayoutTag() {
67532
67526
  return this._layoutTag;
67533
67527
  }
67534
- setLayoutTag(tag, morphConfig, reLayout = true) {
67528
+ setLayoutTag(tag, morphConfig, renderNextTick = true) {
67535
67529
  var _a;
67536
67530
  this._layoutTag = tag;
67537
67531
  if ((_a = this.getCompiler()) === null || _a === void 0 ? void 0 : _a.getVGrammarView()) {
67538
67532
  this.getCompiler().getVGrammarView().updateLayoutTag();
67539
- tag && reLayout && this.getCompiler().renderNextTick(morphConfig);
67533
+ tag && renderNextTick && this.getCompiler().renderNextTick(morphConfig);
67540
67534
  }
67541
67535
  return this._layoutTag;
67542
67536
  }
67537
+ getGlobalScale() {
67538
+ return this._globalScale;
67539
+ }
67543
67540
  getEvent() {
67544
67541
  return this._event;
67545
67542
  }
@@ -67832,14 +67829,14 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
67832
67829
  var _a, _b, _c, _d;
67833
67830
  (_b = (_a = this._option.performanceHook) === null || _a === void 0 ? void 0 : _a.beforeLayoutWithSceneGraph) === null || _b === void 0 ? void 0 : _b.call(_a);
67834
67831
  if (this.getLayoutTag()) {
67835
- this._event.emit(exports.ChartEvent.layoutStart, { chart: this });
67832
+ this._event.emit(exports.ChartEvent.layoutStart, { chart: this, vchart: this._option.globalInstance });
67836
67833
  this.onLayoutStart(params);
67837
67834
  const elements = this.getLayoutElements();
67838
67835
  this._layoutFunc(this, elements, this._layoutRect, this._viewBox);
67839
- this._event.emit(exports.ChartEvent.afterLayout, { elements });
67836
+ this._event.emit(exports.ChartEvent.afterLayout, { elements, chart: this });
67840
67837
  this.setLayoutTag(false);
67841
67838
  this.onLayoutEnd(params);
67842
- this._event.emit(exports.ChartEvent.layoutEnd, { chart: this });
67839
+ this._event.emit(exports.ChartEvent.layoutEnd, { chart: this, vchart: this._option.globalInstance });
67843
67840
  }
67844
67841
  (_d = (_c = this._option.performanceHook) === null || _c === void 0 ? void 0 : _c.afterLayoutWithSceneGraph) === null || _d === void 0 ? void 0 : _d.call(_c);
67845
67842
  }
@@ -68138,7 +68135,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
68138
68135
  this._layoutRect.height = viewRect.height - this.padding.top - this.padding.bottom;
68139
68136
  this._layoutRect.x = this.padding.left;
68140
68137
  this._layoutRect.y = this.padding.top;
68141
- this._event.emit(exports.ChartEvent.layoutRectUpdate, {});
68138
+ this._event.emit(exports.ChartEvent.layoutRectUpdate, { chart: this });
68142
68139
  }
68143
68140
  setCurrentTheme() {
68144
68141
  this.updateChartConfig({ change: true, reMake: false }, this._spec);
@@ -68467,7 +68464,14 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
68467
68464
  chartSpec.tooltip = {};
68468
68465
  }
68469
68466
  if (isValid$3(chartSpec.stackInverse)) {
68470
- chartSpec.region.forEach((r) => !isValid$3(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse));
68467
+ chartSpec.region.forEach((r) => {
68468
+ !isValid$3(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);
68469
+ });
68470
+ }
68471
+ if (isValid$3(chartSpec.stackSort)) {
68472
+ chartSpec.region.forEach((r) => {
68473
+ !isValid$3(r.stackSort) && (r.stackSort = chartSpec.stackSort);
68474
+ });
68471
68475
  }
68472
68476
  }
68473
68477
  transformModelSpec(chartSpec) {
@@ -69193,46 +69197,61 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
69193
69197
  };
69194
69198
 
69195
69199
  function stackWithMinHeight(stackCache, stackInverse, context) {
69200
+ var _a, _b;
69196
69201
  if (stackCache.values.length > 0) {
69197
- let seriesInfo = stackCache.series;
69198
- if (stackInverse) {
69199
- seriesInfo = seriesInfo.slice().reverse();
69200
- }
69201
69202
  let lastY;
69202
- seriesInfo.forEach(({ s, values }, sIndex) => {
69203
- var _a, _b;
69204
- const barMinHeight = s.getSpec().barMinHeight;
69205
- const seriesScale = (_b = (_a = s[context.axisHelper]).getScale) === null || _b === void 0 ? void 0 : _b.call(_a, 0);
69206
- const inverse = s[context.axisHelper].isInverse();
69207
- for (let index = 0; index < values.length; index++) {
69208
- const obj = values[stackInverse ? values.length - 1 - index : index];
69209
- const y1 = valueInScaleRange(s[context.startMethod](obj), seriesScale);
69210
- let y = valueInScaleRange(s[context.endMethod](obj), seriesScale);
69211
- if (index === 0 && sIndex === 0) {
69212
- lastY = y1;
69213
- }
69214
- let height = Math.abs(y1 - y);
69215
- if (height < barMinHeight) {
69216
- height = barMinHeight;
69217
- }
69218
- let flag = 1;
69219
- if (y < y1) {
69220
- flag = -1;
69221
- }
69222
- else if (y === y1) {
69223
- flag = context.isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;
69224
- }
69225
- y = lastY + flag * height;
69226
- obj[context.start] = lastY;
69227
- obj[context.end] = y;
69228
- lastY = y;
69203
+ if (stackCache.sortDatums.length) {
69204
+ let sortDatums = stackCache.sortDatums;
69205
+ if (stackInverse) {
69206
+ sortDatums = stackCache.sortDatums.slice().reverse();
69229
69207
  }
69230
- });
69208
+ for (let index = 0; index < sortDatums.length; index++) {
69209
+ lastY = computeOneDatumY(sortDatums[index].datum, lastY, sortDatums[index].series, context, (_b = (_a = sortDatums[index].series[context.axisHelper]).getScale) === null || _b === void 0 ? void 0 : _b.call(_a, 0), index === 0);
69210
+ }
69211
+ }
69212
+ else {
69213
+ let seriesInfo = stackCache.series;
69214
+ if (stackInverse) {
69215
+ seriesInfo = seriesInfo.slice().reverse();
69216
+ }
69217
+ seriesInfo.forEach(({ s, values }, sIndex) => {
69218
+ var _a, _b;
69219
+ const seriesScale = (_b = (_a = s[context.axisHelper]).getScale) === null || _b === void 0 ? void 0 : _b.call(_a, 0);
69220
+ for (let index = 0; index < values.length; index++) {
69221
+ const obj = values[stackInverse ? values.length - 1 - index : index];
69222
+ lastY = computeOneDatumY(obj, lastY, s, context, seriesScale, index === 0 && sIndex === 0);
69223
+ }
69224
+ });
69225
+ }
69231
69226
  }
69232
69227
  for (const key in stackCache.nodes) {
69233
69228
  stackWithMinHeight(stackCache.nodes[key], stackInverse, context);
69234
69229
  }
69235
69230
  }
69231
+ function computeOneDatumY(obj, lastY, s, context, seriesScale, isFirst) {
69232
+ const barMinHeight = s.getSpec().barMinHeight;
69233
+ const inverse = s[context.axisHelper].isInverse();
69234
+ const y1 = valueInScaleRange(s[context.startMethod](obj), seriesScale);
69235
+ let y = valueInScaleRange(s[context.endMethod](obj), seriesScale);
69236
+ if (isFirst) {
69237
+ lastY = y1;
69238
+ }
69239
+ let height = Math.abs(y1 - y);
69240
+ if (height < barMinHeight) {
69241
+ height = barMinHeight;
69242
+ }
69243
+ let flag = 1;
69244
+ if (y < y1) {
69245
+ flag = -1;
69246
+ }
69247
+ else if (y === y1) {
69248
+ flag = context.isVertical ? (inverse ? 1 : -1) : inverse ? -1 : 1;
69249
+ }
69250
+ y = lastY + flag * height;
69251
+ obj[context.start] = lastY;
69252
+ obj[context.end] = y;
69253
+ return y;
69254
+ }
69236
69255
 
69237
69256
  class BarSeriesSpecTransformer extends BaseSeriesSpecTransformer {
69238
69257
  constructor() {
@@ -86844,15 +86863,15 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
86844
86863
  }
86845
86864
  this._delegateAxisContainerEvent(product.getGroupGraphicItem());
86846
86865
  if (this._unitText) {
86847
- const bounds = product.graphicItem.AABBBounds;
86866
+ const { x, y } = this.getLayoutStartPoint();
86848
86867
  const pos = isXAxis(this._orient)
86849
86868
  ? {
86850
- x: bounds.x2,
86851
- y: this.getLayoutStartPoint().y
86869
+ x: maxInArray(this._scale.range()) + x,
86870
+ y
86852
86871
  }
86853
86872
  : {
86854
- x: this.getLayoutStartPoint().x,
86855
- y: bounds.y1
86873
+ x,
86874
+ y: minInArray(this._scale.range()) + y
86856
86875
  };
86857
86876
  this._unitText.setAttributes(pos);
86858
86877
  }
@@ -87181,10 +87200,11 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
87181
87200
  const { text, style } = this._spec.unit;
87182
87201
  let pos;
87183
87202
  let unitTextStyle;
87203
+ const { x, y } = this.getLayoutStartPoint();
87184
87204
  if (isX) {
87185
87205
  pos = {
87186
- x: bounds.x2,
87187
- y: this.getLayoutStartPoint().y
87206
+ x: maxInArray(this._scale.range()) + x,
87207
+ y
87188
87208
  };
87189
87209
  unitTextStyle = {
87190
87210
  textAlign: 'left',
@@ -87193,8 +87213,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
87193
87213
  }
87194
87214
  else {
87195
87215
  pos = {
87196
- x: this.getLayoutStartPoint().x,
87197
- y: bounds.y1
87216
+ x,
87217
+ y: minInArray(this._scale.range()) + y
87198
87218
  };
87199
87219
  unitTextStyle = {
87200
87220
  textAlign: this._orient === 'left' ? 'left' : 'right',
@@ -87236,6 +87256,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
87236
87256
  class LinearAxisMixin {
87237
87257
  constructor() {
87238
87258
  this._extend = {};
87259
+ this.niceLabelFormatter = null;
87239
87260
  }
87240
87261
  setExtraAttrFromSpec() {
87241
87262
  isValid$3(this._spec.nice) && (this._nice = this._spec.nice);
@@ -87449,9 +87470,21 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
87449
87470
  this.niceDomain(domain);
87450
87471
  this._scale.domain(domain, this._nice);
87451
87472
  this.setScaleNice();
87473
+ this._updateNiceLabelFormatter(domain);
87452
87474
  this.event.emit(exports.ChartEvent.scaleDomainUpdate, { model: this });
87453
87475
  this.event.emit(exports.ChartEvent.scaleUpdate, { model: this, value: 'domain' });
87454
87476
  }
87477
+ _updateNiceLabelFormatter(domain) {
87478
+ const domainSpan = Math.abs(domain[1] - domain[0]);
87479
+ const n = Math.max(-Math.floor(Math.log10(domainSpan)), 0) + 2;
87480
+ const unit = Math.pow(10, n);
87481
+ this.niceLabelFormatter = (value) => {
87482
+ if (isValidNumber$1(+value)) {
87483
+ return Math.round(+value * unit) / unit;
87484
+ }
87485
+ return value;
87486
+ };
87487
+ }
87455
87488
  }
87456
87489
 
87457
87490
  class CartesianLinearAxis extends CartesianAxis {
@@ -88730,7 +88763,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
88730
88763
  return result;
88731
88764
  }
88732
88765
  onDataUpdate() {
88733
- var _a, _b;
88766
+ var _a, _b, _c;
88734
88767
  if (JSON.stringify(this._preSelectedData) === JSON.stringify(this._selectedData)) {
88735
88768
  return;
88736
88769
  }
@@ -88743,6 +88776,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
88743
88776
  }
88744
88777
  }
88745
88778
  (_b = (_a = this.effect).onSelectedDataChange) === null || _b === void 0 ? void 0 : _b.call(_a);
88779
+ (_c = this.getChart()) === null || _c === void 0 ? void 0 : _c.setLayoutTag(true, null, false);
88746
88780
  this.event.emit(exports.ChartEvent.legendSelectedDataChange, { model: this });
88747
88781
  }
88748
88782
  _getNeedClearVRenderComponents() {
@@ -89654,10 +89688,12 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
89654
89688
  }
89655
89689
  beforeRelease() {
89656
89690
  this.event.emit(exports.ChartEvent.tooltipHide, {
89657
- tooltip: this
89691
+ tooltip: this,
89692
+ chart: this.getChart()
89658
89693
  });
89659
89694
  this.event.emit(exports.ChartEvent.tooltipRelease, {
89660
- tooltip: this
89695
+ tooltip: this,
89696
+ chart: this.getChart()
89661
89697
  });
89662
89698
  }
89663
89699
  _initHandler() {
@@ -90282,10 +90318,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
90282
90318
  };
90283
90319
  }
90284
90320
  _getValueAt(axis, p) {
90285
- let value = axis.getScale().invert(p);
90286
- if (isContinuous(axis.getScale().type) && isValidNumber$1(+value)) {
90287
- value = (+value).toFixed(2);
90288
- }
90321
+ const value = axis.getScale().invert(p);
90289
90322
  return value;
90290
90323
  }
90291
90324
  clearAxisValue() {
@@ -90539,8 +90572,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
90539
90572
  mergeSpec(angleCrossHairInfo, rest);
90540
90573
  const angle = series.angleAxisHelper.dataToPosition([value]);
90541
90574
  angleCrossHairInfo.angle = angle;
90575
+ const niceLabelFormatter = axis.niceLabelFormatter;
90542
90576
  if ((_b = angleHair.label) === null || _b === void 0 ? void 0 : _b.visible) {
90543
90577
  angleCrossHairInfo.label.visible = true;
90578
+ angleCrossHairInfo.label.defaultFormatter = niceLabelFormatter;
90544
90579
  angleCrossHairInfo.label.text = value;
90545
90580
  angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());
90546
90581
  }
@@ -90554,8 +90589,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
90554
90589
  var _b;
90555
90590
  var { axis, value, coord } = _a, rest = __rest$7(_a, ["axis", "value", "coord"]);
90556
90591
  value = value !== null && value !== void 0 ? value : '';
90592
+ const niceLabelFormatter = axis.niceLabelFormatter;
90557
90593
  if ((_b = radiusHair.label) === null || _b === void 0 ? void 0 : _b.visible) {
90558
90594
  radiusCrossHairInfo.label.visible = true;
90595
+ radiusCrossHairInfo.label.defaultFormatter = niceLabelFormatter;
90559
90596
  radiusCrossHairInfo.label.text = value;
90560
90597
  radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());
90561
90598
  }
@@ -90579,6 +90616,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
90579
90616
  if (formatFunc) {
90580
90617
  label.text = formatFunc(...args);
90581
90618
  }
90619
+ else if (label.defaultFormatter) {
90620
+ label.text = label.defaultFormatter(label.text);
90621
+ }
90582
90622
  }
90583
90623
  }
90584
90624
  }
@@ -90597,6 +90637,9 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
90597
90637
  if (formatFunc) {
90598
90638
  label.text = formatFunc(...args);
90599
90639
  }
90640
+ else if (label.defaultFormatter) {
90641
+ label.text = label.defaultFormatter(label.text);
90642
+ }
90600
90643
  }
90601
90644
  }
90602
90645
  }
@@ -90767,13 +90810,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
90767
90810
  _getValueByAxis(axis, point) {
90768
90811
  const { x: axisStartX, y: axisStartY } = axis.getLayoutStartPoint();
90769
90812
  const { x, y } = this.getLayoutStartPoint();
90770
- let value = axis.positionToData({
90813
+ const value = axis.positionToData({
90771
90814
  x: point.x - (axisStartX - x),
90772
90815
  y: point.y - (axisStartY - y)
90773
90816
  });
90774
- if (isContinuous(axis.getScale().type) && isValidNumber$1(+value)) {
90775
- value = (+value).toFixed(2);
90776
- }
90777
90817
  const center = {
90778
90818
  x: axis.getCenter().x + this.getLayoutStartPoint().x,
90779
90819
  y: axis.getCenter().y + this.getLayoutStartPoint().y
@@ -91101,6 +91141,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
91101
91141
  this.layoutType = 'none';
91102
91142
  this._orient = 'left';
91103
91143
  this._cacheVisibility = undefined;
91144
+ this._dataUpdating = false;
91104
91145
  this._shouldChange = true;
91105
91146
  this._stateField = 'x';
91106
91147
  this._activeRoam = true;
@@ -91311,9 +91352,14 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
91311
91352
  return;
91312
91353
  }
91313
91354
  onDataUpdate() {
91355
+ var _a;
91314
91356
  const domain = this._computeDomainOfStateScale(isContinuous(this._stateScale.type));
91315
91357
  this._stateScale.domain(domain, true);
91316
91358
  this._handleChange(this._start, this._end, true);
91359
+ if (this._spec.auto) {
91360
+ this._dataUpdating = true;
91361
+ (_a = this.getChart()) === null || _a === void 0 ? void 0 : _a.setLayoutTag(true, null, false);
91362
+ }
91317
91363
  }
91318
91364
  _computeDomainOfStateScale(isContinuous) {
91319
91365
  if (this._spec.customDomain) {
@@ -91379,7 +91425,6 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
91379
91425
  this._originalStateFields = originalStateFields;
91380
91426
  }
91381
91427
  else {
91382
- isNil$3(this._spec.valueField);
91383
91428
  eachSeries(this._regions, s => {
91384
91429
  dataCollection.push(s.getRawData());
91385
91430
  stateFields.push(this._field);
@@ -91630,6 +91675,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
91630
91675
  }, {
91631
91676
  [sizeKey]: exports.AttributeLevel.Built_In
91632
91677
  });
91678
+ this._dataUpdating = false;
91633
91679
  }
91634
91680
  getBoundsInRect(rect) {
91635
91681
  const result = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };
@@ -91670,7 +91716,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
91670
91716
  const axisSpec = axis === null || axis === void 0 ? void 0 : axis.getSpec();
91671
91717
  const axisScale = axis === null || axis === void 0 ? void 0 : axis.getScale();
91672
91718
  const bandSizeResult = this._getAxisBandSize(axisSpec);
91673
- if (isDiscrete(axisScale.type) &&
91719
+ if (!this._dataUpdating &&
91720
+ isDiscrete(axisScale.type) &&
91674
91721
  (rect === null || rect === void 0 ? void 0 : rect.height) === ((_a = this._cacheRect) === null || _a === void 0 ? void 0 : _a.height) &&
91675
91722
  (rect === null || rect === void 0 ? void 0 : rect.width) === ((_b = this._cacheRect) === null || _b === void 0 ? void 0 : _b.width) &&
91676
91723
  this._fixedBandSize === (bandSizeResult === null || bandSizeResult === void 0 ? void 0 : bandSizeResult.bandSize)) {
@@ -94391,7 +94438,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
94391
94438
  const { markLabelSpec = {} } = seriesInfo;
94392
94439
  return Object.values(markLabelSpec).some(labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList));
94393
94440
  });
94394
- if (chartSpec.labelLayout !== 'region' || hasVisibleLabel) {
94441
+ if (hasVisibleLabel) {
94395
94442
  specInfo.push({
94396
94443
  spec: chartSpec,
94397
94444
  type: ComponentTypeEnum.label,
@@ -96321,7 +96368,7 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
96321
96368
  this._elementMap.set(item, result);
96322
96369
  return result;
96323
96370
  }
96324
- getSizeFromGird(spec, type) {
96371
+ getSizeFromGrid(spec, type) {
96325
96372
  var _a;
96326
96373
  const sizeList = type === 'col' ? this._colSize : this._rowSize;
96327
96374
  let result = 0;
@@ -96401,10 +96448,10 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
96401
96448
  var _a, _b;
96402
96449
  const gridSpec = this.getItemGridInfo(item);
96403
96450
  const rect = {
96404
- width: ((_a = this.getSizeFromGird(gridSpec, 'col')) !== null && _a !== void 0 ? _a : this._chartLayoutRect.width) -
96451
+ width: ((_a = this.getSizeFromGrid(gridSpec, 'col')) !== null && _a !== void 0 ? _a : this._chartLayoutRect.width) -
96405
96452
  item.layoutPaddingLeft -
96406
96453
  item.layoutPaddingRight,
96407
- height: ((_b = this.getSizeFromGird(gridSpec, 'row')) !== null && _b !== void 0 ? _b : this._chartLayoutRect.height) -
96454
+ height: ((_b = this.getSizeFromGrid(gridSpec, 'row')) !== null && _b !== void 0 ? _b : this._chartLayoutRect.height) -
96408
96455
  item.layoutPaddingTop -
96409
96456
  item.layoutPaddingBottom
96410
96457
  };
@@ -96454,8 +96501,8 @@ C0.3-1.4,0.3-1.4,0.3-1.4z;`;
96454
96501
  }
96455
96502
  layoutOneItem(item, sizeType, ignoreTag) {
96456
96503
  var _a, _b;
96457
- const sizeCallRow = sizeType === 'rowGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);
96458
- const sizeCallCol = sizeType === 'colGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);
96504
+ const sizeCallRow = sizeType === 'rowGrid' || sizeType === 'grid' ? this.getSizeFromGrid.bind(this) : this.getSizeFromUser.bind(this);
96505
+ const sizeCallCol = sizeType === 'colGrid' || sizeType === 'grid' ? this.getSizeFromGrid.bind(this) : this.getSizeFromUser.bind(this);
96459
96506
  const gridSpec = this.getItemGridInfo(item);
96460
96507
  const computeRect = {
96461
96508
  width: ((_a = sizeCallCol(gridSpec, 'col')) !== null && _a !== void 0 ? _a : this._chartLayoutRect.width) -