@visactor/vchart 1.3.0-beta.6 → 1.3.0-beta.7

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 (409) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.js +1437 -909
  3. package/build/index.min.js +2 -2
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/spec.d.ts +1 -1
  6. package/cjs/animation/spec.js.map +1 -1
  7. package/cjs/chart/area/area.js +0 -1
  8. package/cjs/chart/area/area.js.map +1 -1
  9. package/cjs/chart/base-chart.d.ts +2 -1
  10. package/cjs/chart/base-chart.js +21 -30
  11. package/cjs/chart/base-chart.js.map +1 -1
  12. package/cjs/chart/cartesian/cartesian.js +2 -1
  13. package/cjs/chart/cartesian/cartesian.js.map +1 -1
  14. package/cjs/chart/interface/chart.d.ts +2 -1
  15. package/cjs/chart/interface/chart.js.map +1 -1
  16. package/cjs/chart/line/line.js +0 -1
  17. package/cjs/chart/line/line.js.map +1 -1
  18. package/cjs/chart/radar/radar.js +0 -1
  19. package/cjs/chart/radar/radar.js.map +1 -1
  20. package/cjs/chart/stack.d.ts +1 -0
  21. package/cjs/chart/stack.js +14 -0
  22. package/cjs/chart/stack.js.map +1 -1
  23. package/cjs/chart/util.d.ts +8 -0
  24. package/cjs/chart/util.js +33 -3
  25. package/cjs/chart/util.js.map +1 -1
  26. package/cjs/compile/compiler.js +2 -1
  27. package/cjs/compile/compiler.js.map +1 -1
  28. package/cjs/component/axis/base-axis.d.ts +1 -0
  29. package/cjs/component/axis/base-axis.js.map +1 -1
  30. package/cjs/component/axis/cartesian/axis.js +1 -0
  31. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  32. package/cjs/component/axis/cartesian/interface/common.d.ts +3 -1
  33. package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
  34. package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
  35. package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  36. package/cjs/component/axis/polar/axis.js +3 -2
  37. package/cjs/component/axis/polar/axis.js.map +1 -1
  38. package/cjs/component/base/base-component.d.ts +3 -2
  39. package/cjs/component/base/base-component.js +3 -3
  40. package/cjs/component/base/base-component.js.map +1 -1
  41. package/cjs/component/crosshair/base.d.ts +1 -0
  42. package/cjs/component/crosshair/base.js +3 -2
  43. package/cjs/component/crosshair/base.js.map +1 -1
  44. package/cjs/component/crosshair/cartesian.js +1 -1
  45. package/cjs/component/crosshair/cartesian.js.map +1 -1
  46. package/cjs/component/custom-mark/custom-mark.d.ts +1 -0
  47. package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -0
  48. package/cjs/component/geo/geo-coordinate.d.ts +7 -2
  49. package/cjs/component/geo/geo-coordinate.js +38 -14
  50. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  51. package/cjs/component/index.d.ts +2 -1
  52. package/cjs/component/index.js +10 -2
  53. package/cjs/component/index.js.map +1 -1
  54. package/cjs/component/indicator/indicator.js.map +1 -1
  55. package/cjs/component/interface/theme.d.ts +2 -0
  56. package/cjs/component/interface/theme.js.map +1 -1
  57. package/cjs/component/interface/type.d.ts +1 -0
  58. package/cjs/component/interface/type.js +2 -2
  59. package/cjs/component/interface/type.js.map +1 -1
  60. package/cjs/component/label/base-label.d.ts +40 -0
  61. package/cjs/component/label/base-label.js +44 -0
  62. package/cjs/component/label/base-label.js.map +1 -0
  63. package/cjs/component/label/interface.d.ts +4 -0
  64. package/cjs/component/label/interface.js.map +1 -1
  65. package/cjs/component/label/label.d.ts +5 -27
  66. package/cjs/component/label/label.js +30 -33
  67. package/cjs/component/label/label.js.map +1 -1
  68. package/cjs/component/label/pie.d.ts +5 -0
  69. package/cjs/component/label/pie.js +21 -0
  70. package/cjs/component/label/pie.js.map +1 -0
  71. package/cjs/component/label/totalLabel.d.ts +27 -0
  72. package/cjs/component/label/totalLabel.js +107 -0
  73. package/cjs/component/label/totalLabel.js.map +1 -0
  74. package/cjs/component/label/util.d.ts +3 -1
  75. package/cjs/component/label/util.js +5 -5
  76. package/cjs/component/label/util.js.map +1 -1
  77. package/cjs/component/legend/base-legend.d.ts +1 -0
  78. package/cjs/component/legend/continuous/legend.js +5 -2
  79. package/cjs/component/legend/continuous/legend.js.map +1 -1
  80. package/cjs/component/marker/base-marker.d.ts +6 -0
  81. package/cjs/component/marker/base-marker.js +14 -0
  82. package/cjs/component/marker/base-marker.js.map +1 -1
  83. package/cjs/component/marker/interface.d.ts +1 -0
  84. package/cjs/component/marker/interface.js.map +1 -1
  85. package/cjs/component/marker/mark-area/mark-area.js +17 -6
  86. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  87. package/cjs/component/marker/mark-line/mark-line.js +17 -6
  88. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  89. package/cjs/component/marker/mark-point/mark-point.js +18 -7
  90. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  91. package/cjs/component/title/title.d.ts +1 -0
  92. package/cjs/component/title/title.js +2 -1
  93. package/cjs/component/title/title.js.map +1 -1
  94. package/cjs/component/tooltip/handler/base.js +6 -3
  95. package/cjs/component/tooltip/handler/base.js.map +1 -1
  96. package/cjs/component/tooltip/handler/utils/attribute.js +2 -1
  97. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  98. package/cjs/component/tooltip/handler/utils/common.js +2 -2
  99. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  100. package/cjs/component/tooltip/tooltip.js +6 -6
  101. package/cjs/component/tooltip/tooltip.js.map +1 -1
  102. package/cjs/constant/index.d.ts +3 -0
  103. package/cjs/constant/index.js +4 -3
  104. package/cjs/constant/index.js.map +1 -1
  105. package/cjs/constant/marker.js +2 -1
  106. package/cjs/core/factory.js +1 -2
  107. package/cjs/core/index.d.ts +1 -1
  108. package/cjs/core/index.js +1 -1
  109. package/cjs/core/index.js.map +1 -1
  110. package/cjs/core/vchart.js +11 -11
  111. package/cjs/core/vchart.js.map +1 -1
  112. package/cjs/data/initialize.js.map +1 -1
  113. package/cjs/data/transforms/invalid-travel.js +1 -2
  114. package/cjs/data/transforms/invalid-travel.js.map +1 -1
  115. package/cjs/data/transforms/legend-data/continuous/continuous.js +1 -2
  116. package/cjs/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  117. package/cjs/event/event-dispatcher.js +4 -2
  118. package/cjs/event/event-dispatcher.js.map +1 -1
  119. package/cjs/event/interface.d.ts +3 -3
  120. package/cjs/event/interface.js.map +1 -1
  121. package/cjs/interaction/trigger.js +4 -0
  122. package/cjs/interaction/trigger.js.map +1 -1
  123. package/cjs/layout/label/arc-label.js.map +1 -1
  124. package/cjs/model/base-model.d.ts +2 -0
  125. package/cjs/model/base-model.js +2 -0
  126. package/cjs/model/base-model.js.map +1 -1
  127. package/cjs/model/interface.d.ts +6 -1
  128. package/cjs/model/interface.js.map +1 -1
  129. package/cjs/region/region.d.ts +1 -0
  130. package/cjs/series/area/area.d.ts +3 -2
  131. package/cjs/series/area/area.js +31 -10
  132. package/cjs/series/area/area.js.map +1 -1
  133. package/cjs/series/area/tooltip-helpter.d.ts +5 -0
  134. package/cjs/series/area/tooltip-helpter.js +24 -0
  135. package/cjs/series/area/tooltip-helpter.js.map +1 -0
  136. package/cjs/series/bar/bar.d.ts +1 -0
  137. package/cjs/series/base/base-series.d.ts +3 -0
  138. package/cjs/series/base/base-series.js +14 -8
  139. package/cjs/series/base/base-series.js.map +1 -1
  140. package/cjs/series/cartesian/cartesian.d.ts +1 -0
  141. package/cjs/series/cartesian/cartesian.js +12 -2
  142. package/cjs/series/cartesian/cartesian.js.map +1 -1
  143. package/cjs/series/dot/dot.d.ts +1 -0
  144. package/cjs/series/dot/dot.js +3 -0
  145. package/cjs/series/dot/dot.js.map +1 -1
  146. package/cjs/series/funnel/funnel.d.ts +1 -0
  147. package/cjs/series/geo/geo.d.ts +2 -0
  148. package/cjs/series/geo/geo.js +5 -1
  149. package/cjs/series/geo/geo.js.map +1 -1
  150. package/cjs/series/heatmap/heatmap.d.ts +1 -0
  151. package/cjs/series/interface/common.d.ts +1 -0
  152. package/cjs/series/interface/common.js.map +1 -1
  153. package/cjs/series/interface/series.d.ts +3 -2
  154. package/cjs/series/interface/series.js.map +1 -1
  155. package/cjs/series/line/interface.d.ts +0 -2
  156. package/cjs/series/line/interface.js.map +1 -1
  157. package/cjs/series/line/line.d.ts +1 -2
  158. package/cjs/series/line/line.js +3 -2
  159. package/cjs/series/line/line.js.map +1 -1
  160. package/cjs/series/map/map.d.ts +1 -2
  161. package/cjs/series/map/map.js +1 -5
  162. package/cjs/series/map/map.js.map +1 -1
  163. package/cjs/series/mixin/line-mixin.d.ts +2 -0
  164. package/cjs/series/mixin/line-mixin.js +8 -9
  165. package/cjs/series/mixin/line-mixin.js.map +1 -1
  166. package/cjs/series/pie/interface.d.ts +4 -7
  167. package/cjs/series/pie/interface.js.map +1 -1
  168. package/cjs/series/pie/pie.d.ts +2 -0
  169. package/cjs/series/pie/pie.js +19 -56
  170. package/cjs/series/pie/pie.js.map +1 -1
  171. package/cjs/series/polar/polar.d.ts +1 -0
  172. package/cjs/series/range-area/range-area.js +5 -2
  173. package/cjs/series/range-area/range-area.js.map +1 -1
  174. package/cjs/series/rose/interface.d.ts +3 -0
  175. package/cjs/series/rose/interface.js.map +1 -1
  176. package/cjs/series/rose/rose.d.ts +1 -2
  177. package/cjs/series/rose/rose.js +17 -36
  178. package/cjs/series/rose/rose.js.map +1 -1
  179. package/cjs/series/scatter/interface.d.ts +1 -2
  180. package/cjs/series/scatter/interface.js.map +1 -1
  181. package/cjs/series/scatter/scatter.d.ts +1 -2
  182. package/cjs/series/scatter/scatter.js +7 -6
  183. package/cjs/series/scatter/scatter.js.map +1 -1
  184. package/cjs/series/word-cloud/base.d.ts +1 -0
  185. package/cjs/series/word-cloud/base.js +1 -1
  186. package/cjs/series/word-cloud/base.js.map +1 -1
  187. package/cjs/series/word-cloud/interface.d.ts +3 -3
  188. package/cjs/series/word-cloud/interface.js.map +1 -1
  189. package/cjs/series/word-cloud/word-cloud-3d.js +1 -1
  190. package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
  191. package/cjs/theme/buildin-theme/light/component/index.js +3 -2
  192. package/cjs/theme/buildin-theme/light/component/index.js.map +1 -1
  193. package/cjs/theme/buildin-theme/light/component/total-label.d.ts +2 -0
  194. package/cjs/theme/buildin-theme/light/component/total-label.js +24 -0
  195. package/cjs/theme/buildin-theme/light/component/total-label.js.map +1 -0
  196. package/cjs/theme/buildin-theme/light/series/rose.js +0 -1
  197. package/cjs/theme/buildin-theme/light/series/rose.js.map +1 -1
  198. package/cjs/typings/spec/common.d.ts +2 -0
  199. package/cjs/typings/spec/common.js.map +1 -1
  200. package/cjs/typings/visual.d.ts +1 -1
  201. package/cjs/typings/visual.js.map +1 -1
  202. package/cjs/util/space.d.ts +2 -0
  203. package/cjs/util/space.js +12 -6
  204. package/cjs/util/space.js.map +1 -1
  205. package/cjs/vchart-all.js +1 -1
  206. package/cjs/vchart-all.js.map +1 -1
  207. package/esm/animation/spec.d.ts +1 -1
  208. package/esm/animation/spec.js.map +1 -1
  209. package/esm/chart/area/area.js +0 -1
  210. package/esm/chart/area/area.js.map +1 -1
  211. package/esm/chart/base-chart.d.ts +2 -1
  212. package/esm/chart/base-chart.js +24 -31
  213. package/esm/chart/base-chart.js.map +1 -1
  214. package/esm/chart/cartesian/cartesian.js +2 -1
  215. package/esm/chart/cartesian/cartesian.js.map +1 -1
  216. package/esm/chart/interface/chart.d.ts +2 -1
  217. package/esm/chart/interface/chart.js.map +1 -1
  218. package/esm/chart/line/line.js +0 -1
  219. package/esm/chart/line/line.js.map +1 -1
  220. package/esm/chart/radar/radar.js +0 -1
  221. package/esm/chart/radar/radar.js.map +1 -1
  222. package/esm/chart/stack.d.ts +1 -0
  223. package/esm/chart/stack.js +16 -2
  224. package/esm/chart/stack.js.map +1 -1
  225. package/esm/chart/util.d.ts +8 -0
  226. package/esm/chart/util.js +35 -2
  227. package/esm/chart/util.js.map +1 -1
  228. package/esm/compile/compiler.js +2 -1
  229. package/esm/compile/compiler.js.map +1 -1
  230. package/esm/component/axis/base-axis.d.ts +1 -0
  231. package/esm/component/axis/base-axis.js.map +1 -1
  232. package/esm/component/axis/cartesian/axis.js +1 -0
  233. package/esm/component/axis/cartesian/axis.js.map +1 -1
  234. package/esm/component/axis/cartesian/interface/common.d.ts +3 -1
  235. package/esm/component/axis/cartesian/interface/common.js.map +1 -1
  236. package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
  237. package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
  238. package/esm/component/axis/polar/axis.js +3 -2
  239. package/esm/component/axis/polar/axis.js.map +1 -1
  240. package/esm/component/base/base-component.d.ts +3 -2
  241. package/esm/component/base/base-component.js +3 -3
  242. package/esm/component/base/base-component.js.map +1 -1
  243. package/esm/component/crosshair/base.d.ts +1 -0
  244. package/esm/component/crosshair/base.js +3 -2
  245. package/esm/component/crosshair/base.js.map +1 -1
  246. package/esm/component/crosshair/cartesian.js +1 -1
  247. package/esm/component/crosshair/cartesian.js.map +1 -1
  248. package/esm/component/custom-mark/custom-mark.d.ts +1 -0
  249. package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -0
  250. package/esm/component/geo/geo-coordinate.d.ts +7 -2
  251. package/esm/component/geo/geo-coordinate.js +40 -14
  252. package/esm/component/geo/geo-coordinate.js.map +1 -1
  253. package/esm/component/index.d.ts +2 -1
  254. package/esm/component/index.js +3 -2
  255. package/esm/component/index.js.map +1 -1
  256. package/esm/component/indicator/indicator.js.map +1 -1
  257. package/esm/component/interface/theme.d.ts +2 -0
  258. package/esm/component/interface/theme.js.map +1 -1
  259. package/esm/component/interface/type.d.ts +1 -0
  260. package/esm/component/interface/type.js +2 -2
  261. package/esm/component/interface/type.js.map +1 -1
  262. package/esm/component/label/base-label.d.ts +40 -0
  263. package/esm/component/label/base-label.js +42 -0
  264. package/esm/component/label/base-label.js.map +1 -0
  265. package/esm/component/label/interface.d.ts +4 -0
  266. package/esm/component/label/interface.js.map +1 -1
  267. package/esm/component/label/label.d.ts +5 -27
  268. package/esm/component/label/label.js +32 -35
  269. package/esm/component/label/label.js.map +1 -1
  270. package/esm/component/label/pie.d.ts +5 -0
  271. package/esm/component/label/pie.js +13 -0
  272. package/esm/component/label/pie.js.map +1 -0
  273. package/esm/component/label/totalLabel.d.ts +27 -0
  274. package/esm/component/label/totalLabel.js +110 -0
  275. package/esm/component/label/totalLabel.js.map +1 -0
  276. package/esm/component/label/util.d.ts +3 -1
  277. package/esm/component/label/util.js +6 -4
  278. package/esm/component/label/util.js.map +1 -1
  279. package/esm/component/legend/base-legend.d.ts +1 -0
  280. package/esm/component/legend/continuous/legend.js +5 -2
  281. package/esm/component/legend/continuous/legend.js.map +1 -1
  282. package/esm/component/marker/base-marker.d.ts +6 -0
  283. package/esm/component/marker/base-marker.js +14 -0
  284. package/esm/component/marker/base-marker.js.map +1 -1
  285. package/esm/component/marker/interface.d.ts +1 -0
  286. package/esm/component/marker/interface.js.map +1 -1
  287. package/esm/component/marker/mark-area/mark-area.js +17 -6
  288. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  289. package/esm/component/marker/mark-line/mark-line.js +17 -6
  290. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  291. package/esm/component/marker/mark-point/mark-point.js +18 -7
  292. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  293. package/esm/component/title/title.d.ts +1 -0
  294. package/esm/component/title/title.js +2 -1
  295. package/esm/component/title/title.js.map +1 -1
  296. package/esm/component/tooltip/handler/base.js +6 -3
  297. package/esm/component/tooltip/handler/base.js.map +1 -1
  298. package/esm/component/tooltip/handler/utils/attribute.js +2 -1
  299. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  300. package/esm/component/tooltip/handler/utils/common.js +2 -2
  301. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  302. package/esm/component/tooltip/tooltip.js +6 -6
  303. package/esm/component/tooltip/tooltip.js.map +1 -1
  304. package/esm/constant/index.d.ts +3 -0
  305. package/esm/constant/index.js +6 -0
  306. package/esm/constant/index.js.map +1 -1
  307. package/esm/constant/marker.js +2 -1
  308. package/esm/core/factory.js +1 -2
  309. package/esm/core/index.d.ts +1 -1
  310. package/esm/core/index.js +1 -1
  311. package/esm/core/index.js.map +1 -1
  312. package/esm/core/vchart.js +14 -11
  313. package/esm/core/vchart.js.map +1 -1
  314. package/esm/data/initialize.js.map +1 -1
  315. package/esm/data/transforms/invalid-travel.js +1 -2
  316. package/esm/data/transforms/invalid-travel.js.map +1 -1
  317. package/esm/data/transforms/legend-data/continuous/continuous.js +1 -1
  318. package/esm/data/transforms/legend-data/continuous/continuous.js.map +1 -1
  319. package/esm/event/event-dispatcher.js +3 -2
  320. package/esm/event/event-dispatcher.js.map +1 -1
  321. package/esm/event/interface.d.ts +3 -3
  322. package/esm/event/interface.js.map +1 -1
  323. package/esm/interaction/trigger.js +4 -0
  324. package/esm/interaction/trigger.js.map +1 -1
  325. package/esm/layout/label/arc-label.js.map +1 -1
  326. package/esm/model/base-model.d.ts +2 -0
  327. package/esm/model/base-model.js +2 -0
  328. package/esm/model/base-model.js.map +1 -1
  329. package/esm/model/interface.d.ts +6 -1
  330. package/esm/model/interface.js.map +1 -1
  331. package/esm/region/region.d.ts +1 -0
  332. package/esm/series/area/area.d.ts +3 -2
  333. package/esm/series/area/area.js +34 -8
  334. package/esm/series/area/area.js.map +1 -1
  335. package/esm/series/area/tooltip-helpter.d.ts +5 -0
  336. package/esm/series/area/tooltip-helpter.js +18 -0
  337. package/esm/series/area/tooltip-helpter.js.map +1 -0
  338. package/esm/series/bar/bar.d.ts +1 -0
  339. package/esm/series/base/base-series.d.ts +3 -0
  340. package/esm/series/base/base-series.js +14 -9
  341. package/esm/series/base/base-series.js.map +1 -1
  342. package/esm/series/cartesian/cartesian.d.ts +1 -0
  343. package/esm/series/cartesian/cartesian.js +12 -2
  344. package/esm/series/cartesian/cartesian.js.map +1 -1
  345. package/esm/series/dot/dot.d.ts +1 -0
  346. package/esm/series/dot/dot.js +3 -0
  347. package/esm/series/dot/dot.js.map +1 -1
  348. package/esm/series/funnel/funnel.d.ts +1 -0
  349. package/esm/series/geo/geo.d.ts +2 -0
  350. package/esm/series/geo/geo.js +4 -1
  351. package/esm/series/geo/geo.js.map +1 -1
  352. package/esm/series/heatmap/heatmap.d.ts +1 -0
  353. package/esm/series/interface/common.d.ts +1 -0
  354. package/esm/series/interface/common.js.map +1 -1
  355. package/esm/series/interface/series.d.ts +3 -2
  356. package/esm/series/interface/series.js.map +1 -1
  357. package/esm/series/line/interface.d.ts +0 -2
  358. package/esm/series/line/interface.js.map +1 -1
  359. package/esm/series/line/line.d.ts +1 -2
  360. package/esm/series/line/line.js +3 -2
  361. package/esm/series/line/line.js.map +1 -1
  362. package/esm/series/map/map.d.ts +1 -2
  363. package/esm/series/map/map.js +1 -5
  364. package/esm/series/map/map.js.map +1 -1
  365. package/esm/series/mixin/line-mixin.d.ts +2 -0
  366. package/esm/series/mixin/line-mixin.js +9 -8
  367. package/esm/series/mixin/line-mixin.js.map +1 -1
  368. package/esm/series/pie/interface.d.ts +4 -7
  369. package/esm/series/pie/interface.js.map +1 -1
  370. package/esm/series/pie/pie.d.ts +2 -0
  371. package/esm/series/pie/pie.js +22 -54
  372. package/esm/series/pie/pie.js.map +1 -1
  373. package/esm/series/polar/polar.d.ts +1 -0
  374. package/esm/series/range-area/range-area.js +4 -3
  375. package/esm/series/range-area/range-area.js.map +1 -1
  376. package/esm/series/rose/interface.d.ts +3 -0
  377. package/esm/series/rose/interface.js.map +1 -1
  378. package/esm/series/rose/rose.d.ts +1 -2
  379. package/esm/series/rose/rose.js +17 -37
  380. package/esm/series/rose/rose.js.map +1 -1
  381. package/esm/series/scatter/interface.d.ts +1 -2
  382. package/esm/series/scatter/interface.js.map +1 -1
  383. package/esm/series/scatter/scatter.d.ts +1 -2
  384. package/esm/series/scatter/scatter.js +8 -7
  385. package/esm/series/scatter/scatter.js.map +1 -1
  386. package/esm/series/word-cloud/base.d.ts +1 -0
  387. package/esm/series/word-cloud/base.js +1 -1
  388. package/esm/series/word-cloud/base.js.map +1 -1
  389. package/esm/series/word-cloud/interface.d.ts +3 -3
  390. package/esm/series/word-cloud/interface.js.map +1 -1
  391. package/esm/series/word-cloud/word-cloud-3d.js +1 -1
  392. package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
  393. package/esm/theme/buildin-theme/light/component/index.js +4 -1
  394. package/esm/theme/buildin-theme/light/component/index.js.map +1 -1
  395. package/esm/theme/buildin-theme/light/component/total-label.d.ts +2 -0
  396. package/esm/theme/buildin-theme/light/component/total-label.js +20 -0
  397. package/esm/theme/buildin-theme/light/component/total-label.js.map +1 -0
  398. package/esm/theme/buildin-theme/light/series/rose.js +0 -1
  399. package/esm/theme/buildin-theme/light/series/rose.js.map +1 -1
  400. package/esm/typings/spec/common.d.ts +2 -0
  401. package/esm/typings/spec/common.js.map +1 -1
  402. package/esm/typings/visual.d.ts +1 -1
  403. package/esm/typings/visual.js.map +1 -1
  404. package/esm/util/space.d.ts +2 -0
  405. package/esm/util/space.js +8 -3
  406. package/esm/util/space.js.map +1 -1
  407. package/esm/vchart-all.js +2 -2
  408. package/esm/vchart-all.js.map +1 -1
  409. package/package.json +13 -12
@@ -68,6 +68,7 @@ class BaseModel extends layout_item_1.LayoutItem {
68
68
  return this.state.updateState(newState);
69
69
  }
70
70
  init(option) {}
71
+ afterInit() {}
71
72
  onLayoutStart(layoutRect, viewRect, ctx) {
72
73
  super.onLayoutStart(layoutRect, viewRect, ctx), this._isLayout = !0;
73
74
  }
@@ -94,6 +95,7 @@ class BaseModel extends layout_item_1.LayoutItem {
94
95
  return {
95
96
  change: !1,
96
97
  reMake: !1,
98
+ reMakeData: !1,
97
99
  reRender: !1,
98
100
  reSize: !1,
99
101
  reCompile: !1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/base-model.ts"],"names":[],"mappings":";;;AAAA,kCAA2D;AAC3D,0CAAuC;AAEvC,+CAA2C;AAiB3C,+DAA0D;AAC1D,0CAAqC;AAErC,6CAA+F;AAC/F,6CAA0C;AAC1C,qDAAwE;AAExE,+CAA2C;AAE3C,MAAsB,SAAU,SAAQ,wBAAU;IAgBhD,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAGD,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAOD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAKD,QAAQ;;QACN,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAC;IACvC,CAAC;IACD,cAAc;;QACZ,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,cAAc,EAAE,CAAC;IACvC,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAoB;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAID,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAQD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAKD,YAAY,IAAgB,EAAE,MAAoB;;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC;QAjFP,SAAI,GAAW,MAAM,CAAC;QACtB,cAAS,GAAW,MAAM,CAAC;QAIpC,WAAM,GAA+B,SAAS,CAAC;QASrC,UAAK,GAAmB,IAAI,CAAC;QAU7B,eAAU,GAAW,CAAC,CAAC;QAKxB,YAAO,GAAW,EAAE,CAAC;QAWpB,WAAM,GAAY,IAAI,kBAAO,EAAE,CAAC;QA8BhC,oBAAe,GAAgB,IAAI,CAAC;QAQpC,cAAS,GAAY,IAAI,CAAC;QAIlC,IAAI,CAAC,EAAE,GAAG,IAAA,eAAQ,GAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAA,MAAM,CAAC,GAAG,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,uCAAiB,iCAC7B,MAAM,KACT,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAC1D,CAAC;IACL,CAAC;IAGS,aAAa;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,QAAiC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,MAAwB;IAE7B,CAAC;IACD,aAAa,CAAC,UAAiB,EAAE,QAAqB,EAAE,GAAQ;QAC9D,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,WAAW,CAAC,GAAQ;QAElB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE;YACtE,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAES,YAAY;;QACpB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,0CAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,GAAyB;IAEvC,CAAC;IAGD,YAAY;IAEZ,CAAC;IAED,OAAO;;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,IAAS;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAW;QAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,UAAU,CAAC,KAAW;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAGS,eAAe;;QACvB,MAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,QAAQ,kDAAI,CAAC;QAC9C,IAAI,IAAA,cAAK,EAAC,WAAW,CAAC,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5C,OAAO;SACR;QAED,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC;QAC3E,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,cAAK,EACvB,EAAE,EACF,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,IAAA,cAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,EACvC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,IAAI,CAAC,mCAAI,EAAE,EAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAGS,eAAe,CAAC,GAAS;QACjC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACrB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;SAClB;QAED,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,EAAE;YAChB,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACvB,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,OAAO,CAAC,EAAE;oBAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;iBACtC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;SACJ;QACD,MAAM,MAAM,qBAAQ,GAAG,CAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;YAEhC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACxB,OAAO;aACR;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE;gBAEzC,IAAI,IAAA,iBAAU,EAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAc,EAC1B,KAAK,EACL,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,QAAQ,kDAAI,0CAAE,WAAW,EACtC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,IAAuB,CAAC,CAAC,CAAC,SAAS,CACxE,CAAC;iBACH;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;iBAC3C;aACF;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;SACrB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,KAAU,EAAE,QAAkB;IAE9C,CAAC;IAED,qBAAqB;IAErB,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrE,CAAC;IAGS,iBAAiB,CACzB,KAAyD;QAEzD,MAAM,QAAQ,qBAAa,KAAK,CAAE,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAY,CACV,IAAiB,EACjB,KAA0D,EAC1D,KAAsB,EACtB,KAAc;QAEd,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,EAAE;YACrC,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,qBAAqB,CAAC,IAAY,EAAE,IAAU,EAAE,GAAY;QAC1D,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE;YACpC,OAAO;SACR;QACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,OAAO,qBAAQ,IAAI,CAAE,CAAC;QAE5B,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC/C;QACD,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAES,oBAAoB,CAAC,GAAW,EAAE,GAAY;QACtD,IAAI,IAAI,GAAG,GAAG,iBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;QACxE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;;QACT,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,KAA2B;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC1B,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;;QACX,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,IAAc;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAgB,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAqB,CAAC,CAAC;IACtE,CAAC;IAES,WAAW,CAAkB,QAAwB,EAAE,SAA+B,EAAE;QAChG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAChC,MAAM,CAAC,GAAG,iBAAO,CAAC,UAAU,CAAC,IAAW,EAAE,IAAI,kBAC5C,KAAK,EAAE,IAAI,EACX,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EACrB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAClC,MAAM,EACJ,CAAC;QACR,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IAOS,aAAa;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA3VD,8BA2VC","file":"base-model.js","sourcesContent":["import { createID, isValid, cloneDeepSpec } from '../util';\nimport { Event } from '../event/event';\nimport type { IEvent } from '../event/interface';\nimport { LayoutItem } from './layout-item';\nimport type {\n IEffect,\n IModel,\n IModelInitOption,\n IModelOption,\n IModelRenderOption,\n IModelEvaluateOption,\n IModelSpec,\n ILayoutRect,\n IModelMarkInfo\n} from './interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IMark, IMarkOption, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { Datum, StateValueType, ConvertToMarkStyleSpec, ICommonSpec, StringOrNumber, IRect } from '../typings';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { CompilableData } from '../compile/data/compilable-data';\nimport { ModelStateManager } from './model-state-manager';\nimport { PREFIX } from '../constant';\nimport type { IElement, IGroupMark, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport { array, isArray, isEqual, isFunction, isNil, isObject, merge } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport { getActualColor, isColorKey } from '../theme/color-scheme/util';\nimport type { SeriesTypeEnum } from '../series/interface';\nimport { MarkSet } from '../mark/mark-set';\n\nexport abstract class BaseModel extends LayoutItem implements IModel {\n readonly type: string = 'null';\n readonly modelType: string = 'null';\n\n readonly id;\n\n userId: StringOrNumber | undefined = undefined;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // 数据\n protected _data: CompilableData = null;\n getData() {\n return this._data;\n }\n\n protected declare _spec: any;\n getSpec(): any {\n return this._spec;\n }\n\n protected _specIndex: number = 0;\n getSpecIndex() {\n return this._specIndex;\n }\n\n readonly specKey: string = '';\n\n protected _originalSpec: any;\n\n protected declare _option: IModelOption;\n getOption() {\n return this._option;\n }\n\n protected _sceneNodeMap: Map<string, IElement>;\n\n protected _marks: MarkSet = new MarkSet();\n getMarks(): IMark[] {\n return this._marks?.getMarks() ?? [];\n }\n getMarkNameMap() {\n return this._marks?.getMarkNameMap();\n }\n getMarkSet() {\n return this._marks;\n }\n getMarkInfoList(): IModelMarkInfo[] {\n return this.getMarks().map(mark => ({\n type: mark.type as MarkTypeEnum,\n name: mark.name\n }));\n }\n\n getChart() {\n return this._option.getChart();\n }\n\n /** 状态管理器 */\n state: ModelStateManager;\n getState() {\n return this.state._stateMap;\n }\n\n protected _theme?: any; // 非全局 theme,是对应于具体 model 的 theme 对象\n\n /** for layout diff */\n protected _lastLayoutRect: ILayoutRect = null;\n\n protected _tooltipHelper: ITooltipHelper | undefined;\n get tooltipHelper() {\n return this._tooltipHelper;\n }\n\n // TODO: 有些hack,这个tag是为了避免布局逻辑中,轴的数据变化,又由数据变化触发重新布局\n protected _isLayout: boolean = true;\n\n constructor(spec: IModelSpec, option: IModelOption) {\n super(option);\n this.id = createID();\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n this.userId = spec.id;\n this._specIndex = option.specIndex ?? 0;\n this.specKey = option.specKey ?? '';\n this.effect = {};\n this.event = new Event(option.eventDispatcher, option.mode);\n option.map?.set(this.id, this);\n this._sceneNodeMap = new Map();\n this.state = new ModelStateManager({\n ...option,\n stateKeyToSignalName: this.stateKeyToSignalName.bind(this)\n });\n }\n coordinate?: CoordinateType;\n\n protected _releaseEvent() {\n this.event.release();\n }\n\n created() {\n this._initTheme();\n this.setAttrFromSpec();\n }\n\n updateState(newState: Record<string, unknown>) {\n return this.state.updateState(newState);\n }\n\n init(option: IModelInitOption) {\n // do nothing\n }\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n super.onLayoutStart(layoutRect, viewRect, ctx);\n this._isLayout = true;\n }\n onLayoutEnd(ctx: any): void {\n // diff layoutRect\n const layoutRect = this.getLayoutRect();\n if (this._forceLayoutTag || !isEqual(this._lastLayoutRect, layoutRect)) {\n this.updateLayoutAttribute();\n }\n this._forceLayoutTag = false;\n this.getMarks().forEach(m => m.updateLayoutState(true, true));\n this._isLayout = false;\n }\n\n protected _forceLayout() {\n if (this._isLayout) {\n return;\n }\n this._forceLayoutTag = true;\n this._option.globalInstance.getChart()?.setLayoutTag(true);\n }\n\n onEvaluateEnd(ctx: IModelEvaluateOption) {\n // do nothing\n }\n abstract onRender(ctx: IModelRenderOption): void;\n\n onDataUpdate() {\n // do nothing\n }\n\n release() {\n this._releaseEvent();\n this._originalSpec = {};\n this._spec = {};\n this.getMarks().forEach(m => m.release());\n this.state.release();\n this._data?.release();\n this._data = this._specIndex = this._sceneNodeMap = null;\n this._marks.clear();\n super.release();\n }\n\n updateSpec(spec: any) {\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n const result = {\n change: false,\n reMake: false,\n reRender: false,\n reSize: false,\n reCompile: false\n };\n return result;\n }\n\n reInit(theme?: any) {\n this._initTheme(theme);\n this.setAttrFromSpec();\n }\n\n protected _initTheme(theme?: any) {\n this._theme = theme;\n\n this._mergeMarkTheme();\n }\n\n /** 将全局的 mark theme 合并进 model theme */\n protected _mergeMarkTheme() {\n const globalTheme = this._option.getTheme?.();\n if (isNil(globalTheme) || isNil(this._theme)) {\n return;\n }\n\n const { mark: markThemeByType, markByName: markThemeByName } = globalTheme;\n this.getMarkInfoList().forEach(({ type, name }) => {\n this._theme[name] = merge(\n {},\n markThemeByType?.[array(type)[0]] ?? {},\n markThemeByName?.[name] ?? {},\n this._theme[name]\n );\n });\n }\n\n /** 对 spec 进行遍历和转换 */\n protected _preprocessSpec(obj?: any): any {\n if (!arguments.length) {\n obj = this._spec;\n }\n\n if (isArray(obj)) {\n return obj.map(element => {\n if (isObject(element) && !isFunction(element)) {\n return this._preprocessSpec(element);\n }\n return element;\n });\n }\n const newObj = { ...obj };\n Object.keys(newObj).forEach(key => {\n // 绕过 DataView 对象\n if (key.includes('data')) {\n return;\n }\n const value = obj[key];\n if (isObject(value) && !isFunction(value)) {\n // 查询、替换语义化颜色\n if (isColorKey(value)) {\n newObj[key] = getActualColor(\n value,\n this._option.getTheme?.()?.colorScheme,\n this.modelType === 'series' ? (this.type as SeriesTypeEnum) : undefined\n );\n } else {\n newObj[key] = this._preprocessSpec(value);\n }\n }\n });\n\n if (!arguments.length) {\n this._spec = newObj;\n }\n return newObj;\n }\n\n setCurrentTheme(theme: any, noRender?: boolean) {\n // do nothing\n }\n\n updateLayoutAttribute() {\n // do nothing\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec(this._spec, this._option.getChartViewRect());\n }\n\n /** mark style 内部转换逻辑,override 使用 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle: any = { ...style };\n return newStyle;\n }\n\n setMarkStyle<T extends ICommonSpec>(\n mark: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) {\n if (!isValid(mark) || !isValid(style)) {\n return;\n }\n mark.setStyle(this._convertMarkStyle(style), state, level);\n }\n\n initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string) {\n if (!isValid(mark) || !isValid(spec)) {\n return;\n }\n const { style, state } = spec;\n const newSpec = { ...spec };\n\n if (style) {\n newSpec.style = this._convertMarkStyle(style);\n }\n if (state) {\n newSpec.state = {};\n Object.keys(state).forEach(key => {\n newSpec.state[key] = this._convertMarkStyle(state[key]);\n });\n }\n mark.initStyleWithSpec(newSpec, key);\n }\n\n protected stateKeyToSignalName(key: string, opt?: string) {\n let name = `${PREFIX}_${this.modelType}_${this.type}_${this.id}_${key}`;\n opt && (name += `_${opt}`);\n return name;\n }\n\n compileData() {\n this._data?.compile();\n }\n\n compileMarks(group?: string | IGroupMark) {\n this.getMarks().forEach(m => {\n m.compile({ group });\n });\n }\n\n compileSignal() {\n this.state?.compile();\n }\n\n bindSceneNode(node: IElement) {\n this._sceneNodeMap.set(node.mark.id(), node as IElement);\n }\n\n getSceneNodes() {\n return Array.from(this._sceneNodeMap.values());\n }\n\n getSceneNodeMarks() {\n return this.getSceneNodes().map(node => node.mark as IVGrammarMark);\n }\n\n protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option: Partial<IMarkOption> = {}): T {\n const { type, name } = markInfo;\n const m = Factory.createMark(type as any, name, {\n model: this,\n map: this._option.map,\n getCompiler: this.getCompiler,\n globalScale: this._option.globalScale,\n ...option\n }) as T;\n m?.created();\n return m;\n }\n\n /**\n * 数据唯一ID\n * 根据自身动画数据匹配需求设置返回值。\n * 默认返回 undefined 时,根据 VGrammar 默认数据 ID 进行索引和匹配。\n */\n protected _getDataIdKey(): string | ((datum: Datum) => string) | undefined {\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/model/base-model.ts"],"names":[],"mappings":"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","file":"base-model.js","sourcesContent":["import { createID, isValid, cloneDeepSpec } from '../util';\nimport { Event } from '../event/event';\nimport type { IEvent } from '../event/interface';\nimport { LayoutItem } from './layout-item';\nimport type {\n IEffect,\n IModel,\n IModelInitOption,\n IModelOption,\n IModelRenderOption,\n IModelEvaluateOption,\n IModelSpec,\n ILayoutRect,\n IModelMarkInfo\n} from './interface';\nimport type { CoordinateType } from '../typings/coordinate';\nimport type { IMark, IMarkOption, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { Datum, StateValueType, ConvertToMarkStyleSpec, ICommonSpec, StringOrNumber, IRect } from '../typings';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { CompilableData } from '../compile/data/compilable-data';\nimport { ModelStateManager } from './model-state-manager';\nimport { PREFIX } from '../constant';\nimport type { IElement, IGroupMark, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport { array, isArray, isEqual, isFunction, isNil, isObject, merge } from '@visactor/vutils';\nimport { Factory } from '../core/factory';\nimport { getActualColor, isColorKey } from '../theme/color-scheme/util';\nimport type { SeriesTypeEnum } from '../series/interface';\nimport { MarkSet } from '../mark/mark-set';\n\nexport abstract class BaseModel extends LayoutItem implements IModel {\n readonly type: string = 'null';\n readonly modelType: string = 'null';\n\n readonly id;\n\n userId: StringOrNumber | undefined = undefined;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // 数据\n protected _data: CompilableData = null;\n getData() {\n return this._data;\n }\n\n protected declare _spec: any;\n getSpec(): any {\n return this._spec;\n }\n\n protected _specIndex: number = 0;\n getSpecIndex() {\n return this._specIndex;\n }\n\n readonly specKey: string = '';\n\n protected _originalSpec: any;\n\n protected declare _option: IModelOption;\n getOption() {\n return this._option;\n }\n\n protected _sceneNodeMap: Map<string, IElement>;\n\n protected _marks: MarkSet = new MarkSet();\n getMarks(): IMark[] {\n return this._marks?.getMarks() ?? [];\n }\n getMarkNameMap() {\n return this._marks?.getMarkNameMap();\n }\n getMarkSet() {\n return this._marks;\n }\n getMarkInfoList(): IModelMarkInfo[] {\n return this.getMarks().map(mark => ({\n type: mark.type as MarkTypeEnum,\n name: mark.name\n }));\n }\n\n getChart() {\n return this._option.getChart();\n }\n\n /** 状态管理器 */\n state: ModelStateManager;\n getState() {\n return this.state._stateMap;\n }\n\n protected _theme?: any; // 非全局 theme,是对应于具体 model 的 theme 对象\n\n /** for layout diff */\n protected _lastLayoutRect: ILayoutRect = null;\n\n protected _tooltipHelper: ITooltipHelper | undefined;\n get tooltipHelper() {\n return this._tooltipHelper;\n }\n\n // TODO: 有些hack,这个tag是为了避免布局逻辑中,轴的数据变化,又由数据变化触发重新布局\n protected _isLayout: boolean = true;\n\n constructor(spec: IModelSpec, option: IModelOption) {\n super(option);\n this.id = createID();\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n this.userId = spec.id;\n this._specIndex = option.specIndex ?? 0;\n this.specKey = option.specKey ?? '';\n this.effect = {};\n this.event = new Event(option.eventDispatcher, option.mode);\n option.map?.set(this.id, this);\n this._sceneNodeMap = new Map();\n this.state = new ModelStateManager({\n ...option,\n stateKeyToSignalName: this.stateKeyToSignalName.bind(this)\n });\n }\n coordinate?: CoordinateType;\n\n protected _releaseEvent() {\n this.event.release();\n }\n\n created() {\n this._initTheme();\n this.setAttrFromSpec();\n }\n\n updateState(newState: Record<string, unknown>) {\n return this.state.updateState(newState);\n }\n\n init(option: IModelInitOption) {\n // do nothing\n }\n\n afterInit() {\n // do nothing\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void {\n super.onLayoutStart(layoutRect, viewRect, ctx);\n this._isLayout = true;\n }\n onLayoutEnd(ctx: any): void {\n // diff layoutRect\n const layoutRect = this.getLayoutRect();\n if (this._forceLayoutTag || !isEqual(this._lastLayoutRect, layoutRect)) {\n this.updateLayoutAttribute();\n }\n this._forceLayoutTag = false;\n this.getMarks().forEach(m => m.updateLayoutState(true, true));\n this._isLayout = false;\n }\n\n protected _forceLayout() {\n if (this._isLayout) {\n return;\n }\n this._forceLayoutTag = true;\n this._option.globalInstance.getChart()?.setLayoutTag(true);\n }\n\n onEvaluateEnd(ctx: IModelEvaluateOption) {\n // do nothing\n }\n abstract onRender(ctx: IModelRenderOption): void;\n\n onDataUpdate() {\n // do nothing\n }\n\n release() {\n this._releaseEvent();\n this._originalSpec = {};\n this._spec = {};\n this.getMarks().forEach(m => m.release());\n this.state.release();\n this._data?.release();\n this._data = this._specIndex = this._sceneNodeMap = null;\n this._marks.clear();\n super.release();\n }\n\n updateSpec(spec: any) {\n this._originalSpec = spec;\n this._spec = cloneDeepSpec(spec);\n const result = {\n change: false,\n reMake: false,\n reMakeData: false,\n reRender: false,\n reSize: false,\n reCompile: false\n };\n return result;\n }\n\n reInit(theme?: any) {\n this._initTheme(theme);\n this.setAttrFromSpec();\n }\n\n protected _initTheme(theme?: any) {\n this._theme = theme;\n\n this._mergeMarkTheme();\n }\n\n /** 将全局的 mark theme 合并进 model theme */\n protected _mergeMarkTheme() {\n const globalTheme = this._option.getTheme?.();\n if (isNil(globalTheme) || isNil(this._theme)) {\n return;\n }\n\n const { mark: markThemeByType, markByName: markThemeByName } = globalTheme;\n this.getMarkInfoList().forEach(({ type, name }) => {\n this._theme[name] = merge(\n {},\n markThemeByType?.[array(type)[0]] ?? {},\n markThemeByName?.[name] ?? {},\n this._theme[name]\n );\n });\n }\n\n /** 对 spec 进行遍历和转换 */\n protected _preprocessSpec(obj?: any): any {\n if (!arguments.length) {\n obj = this._spec;\n }\n\n if (isArray(obj)) {\n return obj.map(element => {\n if (isObject(element) && !isFunction(element)) {\n return this._preprocessSpec(element);\n }\n return element;\n });\n }\n const newObj = { ...obj };\n Object.keys(newObj).forEach(key => {\n // 绕过 DataView 对象\n if (key.includes('data')) {\n return;\n }\n const value = obj[key];\n if (isObject(value) && !isFunction(value)) {\n // 查询、替换语义化颜色\n if (isColorKey(value)) {\n newObj[key] = getActualColor(\n value,\n this._option.getTheme?.()?.colorScheme,\n this.modelType === 'series' ? (this.type as SeriesTypeEnum) : undefined\n );\n } else {\n newObj[key] = this._preprocessSpec(value);\n }\n }\n });\n\n if (!arguments.length) {\n this._spec = newObj;\n }\n return newObj;\n }\n\n setCurrentTheme(theme: any, noRender?: boolean) {\n // do nothing\n }\n\n updateLayoutAttribute() {\n // do nothing\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec(this._spec, this._option.getChartViewRect());\n }\n\n /** mark style 内部转换逻辑,override 使用 */\n protected _convertMarkStyle<T extends ICommonSpec = ICommonSpec>(\n style: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>\n ): Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>> {\n const newStyle: any = { ...style };\n return newStyle;\n }\n\n setMarkStyle<T extends ICommonSpec>(\n mark: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) {\n if (!isValid(mark) || !isValid(style)) {\n return;\n }\n mark.setStyle(this._convertMarkStyle(style), state, level);\n }\n\n initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string) {\n if (!isValid(mark) || !isValid(spec)) {\n return;\n }\n const { style, state } = spec;\n const newSpec = { ...spec };\n\n if (style) {\n newSpec.style = this._convertMarkStyle(style);\n }\n if (state) {\n newSpec.state = {};\n Object.keys(state).forEach(key => {\n newSpec.state[key] = this._convertMarkStyle(state[key]);\n });\n }\n mark.initStyleWithSpec(newSpec, key);\n }\n\n protected stateKeyToSignalName(key: string, opt?: string) {\n let name = `${PREFIX}_${this.modelType}_${this.type}_${this.id}_${key}`;\n opt && (name += `_${opt}`);\n return name;\n }\n\n compileData() {\n this._data?.compile();\n }\n\n compileMarks(group?: string | IGroupMark) {\n this.getMarks().forEach(m => {\n m.compile({ group });\n });\n }\n\n compileSignal() {\n this.state?.compile();\n }\n\n bindSceneNode(node: IElement) {\n this._sceneNodeMap.set(node.mark.id(), node as IElement);\n }\n\n getSceneNodes() {\n return Array.from(this._sceneNodeMap.values());\n }\n\n getSceneNodeMarks() {\n return this.getSceneNodes().map(node => node.mark as IVGrammarMark);\n }\n\n protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option: Partial<IMarkOption> = {}): T {\n const { type, name } = markInfo;\n const m = Factory.createMark(type as any, name, {\n model: this,\n map: this._option.map,\n getCompiler: this.getCompiler,\n globalScale: this._option.globalScale,\n ...option\n }) as T;\n m?.created();\n return m;\n }\n\n /**\n * 数据唯一ID\n * 根据自身动画数据匹配需求设置返回值。\n * 默认返回 undefined 时,根据 VGrammar 默认数据 ID 进行索引和匹配。\n */\n protected _getDataIdKey(): string | ((datum: Datum) => string) | undefined {\n return undefined;\n }\n}\n"]}
@@ -14,7 +14,7 @@ import type { ICompilable, ICompilableInitOption } from '../compile/interface';
14
14
  import type { ICompilableData } from '../compile/data';
15
15
  import type { IGlobalScale } from '../scale/interface';
16
16
  import type { IChart } from '../chart/interface';
17
- export type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number);
17
+ export type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number) | IPercentOffset;
18
18
  export interface ILayoutPoint {
19
19
  x: number;
20
20
  y: number;
@@ -28,6 +28,10 @@ export interface ILayoutRect {
28
28
  height: number;
29
29
  }
30
30
  export type IPercent = `${number}%`;
31
+ export type IPercentOffset = {
32
+ percent?: number;
33
+ offset?: number;
34
+ };
31
35
  export type ILayoutPercent = IPercent | number;
32
36
  type ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';
33
37
  export type ILayoutOrientPadding = {
@@ -104,6 +108,7 @@ export type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];
104
108
  export interface IUpdateSpecResult {
105
109
  change: boolean;
106
110
  reMake: boolean;
111
+ reMakeData?: boolean;
107
112
  reRender?: boolean;
108
113
  reSize?: boolean;
109
114
  reCompile?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData, IElement, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { ModelStateManager } from './model-state-manager';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number);\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否可见 */\n getVisible: () => boolean;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n /**\n * 元素内部布局信息更新\n */\n updateLayoutAttribute: () => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable, ILayoutItem {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // state如果绑定到mark的更新?\n // 组件的 mark 要怎么样描述,才能正确的基于组件状态进行样式更新?\n // 方案1: 组件的 state 关联到 mark 的状态。\n // 方案2: 组件设置 mark 属性,mark自身属性变化时,自己去更新。\n // react state\n readonly state: ModelStateManager;\n getState: () => ModelStateManager['_stateMap'];\n\n coordinate?: CoordinateType;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any) => void;\n\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n setCurrentTheme: (theme: any, noRender?: boolean) => void;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n\n // tooltip\n tooltipHelper: ITooltipHelper;\n\n /** 绑定场景结点 */\n bindSceneNode: (node: IElement) => void;\n /** 获取场景结点 */\n getSceneNodes: () => IElement[];\n /** 获取场景结点对应 mark */\n getSceneNodeMarks: () => IVGrammarMark[];\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getTheme?: () => ITheme;\n\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = ModelStateManager['_stateMap'];\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
1
+ {"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData, IElement, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { ModelStateManager } from './model-state-manager';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number) | IPercentOffset;\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type IPercentOffset = { percent?: number; offset?: number };\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否可见 */\n getVisible: () => boolean;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n /**\n * 元素内部布局信息更新\n */\n updateLayoutAttribute: () => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reMakeData?: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable, ILayoutItem {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // state如果绑定到mark的更新?\n // 组件的 mark 要怎么样描述,才能正确的基于组件状态进行样式更新?\n // 方案1: 组件的 state 关联到 mark 的状态。\n // 方案2: 组件设置 mark 属性,mark自身属性变化时,自己去更新。\n // react state\n readonly state: ModelStateManager;\n getState: () => ModelStateManager['_stateMap'];\n\n coordinate?: CoordinateType;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any) => void;\n\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n setCurrentTheme: (theme: any, noRender?: boolean) => void;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n\n // tooltip\n tooltipHelper: ITooltipHelper;\n\n /** 绑定场景结点 */\n bindSceneNode: (node: IElement) => void;\n /** 获取场景结点 */\n getSceneNodes: () => IElement[];\n /** 获取场景结点对应 mark */\n getSceneNodeMarks: () => IVGrammarMark[];\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getTheme?: () => ITheme;\n\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = ModelStateManager['_stateMap'];\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
@@ -34,6 +34,7 @@ export declare class Region extends BaseModel implements IRegion {
34
34
  updateSpec(spec: any): {
35
35
  change: boolean;
36
36
  reMake: boolean;
37
+ reMakeData: boolean;
37
38
  reRender: boolean;
38
39
  reSize: boolean;
39
40
  reCompile: boolean;
@@ -1,7 +1,7 @@
1
1
  import { LineLikeSeriesMixin } from '../mixin/line-mixin';
2
2
  import type { IAreaMark } from '../../mark/area';
3
3
  import { CartesianSeries } from '../cartesian/cartesian';
4
- import type { Maybe, IInvalidType } from '../../typings';
4
+ import type { Maybe } from '../../typings';
5
5
  import type { SeriesMarkMap } from '../interface';
6
6
  import { SeriesTypeEnum } from '../interface';
7
7
  import type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';
@@ -14,8 +14,9 @@ export declare class AreaSeries extends CartesianSeries<IAreaSeriesSpec> {
14
14
  protected _theme: Maybe<IAreaSeriesTheme>;
15
15
  protected _areaMark: IAreaMark;
16
16
  protected _stack: boolean;
17
- protected _invalidType: IInvalidType;
17
+ setAttrFromSpec(): void;
18
18
  initMark(): void;
19
19
  initMarkStyle(): void;
20
20
  initAnimation(): void;
21
+ protected initTooltip(): void;
21
22
  }
@@ -4,14 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.AreaSeries = void 0;
6
6
 
7
- const line_mixin_1 = require("../mixin/line-mixin"), space_1 = require("../../typings/space"), interface_1 = require("../../mark/interface"), cartesian_1 = require("../cartesian/cartesian"), constant_1 = require("../../constant"), util_1 = require("../../util"), interface_2 = require("../interface"), interface_3 = require("../interface"), vutils_1 = require("@visactor/vutils"), utils_1 = require("../../animation/utils"), config_1 = require("../../animation/config"), interpolate_1 = require("../../typings/interpolate"), base_series_1 = require("../base/base-series"), vchart_1 = require("../../core/vchart"), line_1 = require("../../mark/line"), area_1 = require("../../mark/area"), text_1 = require("../../mark/text"), symbol_1 = require("../../mark/symbol");
7
+ const vutils_1 = require("@visactor/vutils"), line_mixin_1 = require("../mixin/line-mixin"), space_1 = require("../../typings/space"), interface_1 = require("../../mark/interface"), cartesian_1 = require("../cartesian/cartesian"), constant_1 = require("../../constant"), util_1 = require("../../util"), interface_2 = require("../interface"), interface_3 = require("../interface"), vutils_2 = require("@visactor/vutils"), utils_1 = require("../../animation/utils"), config_1 = require("../../animation/config"), interpolate_1 = require("../../typings/interpolate"), base_series_1 = require("../base/base-series"), vchart_1 = require("../../core/vchart"), line_1 = require("../../mark/line"), area_1 = require("../../mark/area"), text_1 = require("../../mark/text"), symbol_1 = require("../../mark/symbol"), tooltip_helpter_1 = require("./tooltip-helpter");
8
8
 
9
9
  vchart_1.VChart.useMark([ line_1.LineMark, area_1.AreaMark, text_1.TextMark, symbol_1.SymbolMark ]);
10
10
 
11
11
  class AreaSeries extends cartesian_1.CartesianSeries {
12
12
  constructor() {
13
- super(...arguments), this.type = interface_3.SeriesTypeEnum.area, this._stack = !0,
14
- this._invalidType = "break";
13
+ super(...arguments), this.type = interface_3.SeriesTypeEnum.area, this._stack = !0;
14
+ }
15
+ setAttrFromSpec() {
16
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
17
+ super.setAttrFromSpec();
18
+ const isAreaVisible = !1 !== (null === (_a = this._spec.area) || void 0 === _a ? void 0 : _a.visible) && !1 !== (null === (_c = null === (_b = this._spec.area) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.visible), isLineVisible = !1 !== (null === (_d = this._spec.line) || void 0 === _d ? void 0 : _d.visible) && !1 !== (null === (_f = null === (_e = this._spec.line) || void 0 === _e ? void 0 : _e.style) || void 0 === _f ? void 0 : _f.visible), areaSpec = null !== (_g = this._spec.area) && void 0 !== _g ? _g : {}, lineSpec = null !== (_h = this._spec.line) && void 0 !== _h ? _h : {};
19
+ areaSpec.interactive = areaSpec.interactive || lineSpec.interactive, areaSpec.support3d = areaSpec.support3d || lineSpec.support3d,
20
+ areaSpec.zIndex = (0, vutils_1.isValid)(areaSpec.zIndex) || (0, vutils_1.isValid)(lineSpec.zIndex) ? Math.max(null !== (_j = areaSpec.zIndex) && void 0 !== _j ? _j : 0, null !== (_k = lineSpec.zIndex) && void 0 !== _k ? _k : 0) : void 0,
21
+ areaSpec.style && delete areaSpec.style.stroke, areaSpec.state && Object.keys(areaSpec.state).forEach((state => {
22
+ "style" in areaSpec.state[state] ? delete areaSpec.state[state].style.stroke : delete areaSpec.state[state].stroke;
23
+ }));
24
+ let mainSpec = areaSpec, subSpec = lineSpec;
25
+ ("line" === (null !== (_l = this._spec.seriesMark) && void 0 !== _l ? _l : "area") || isLineVisible && !isAreaVisible) && (mainSpec = lineSpec,
26
+ subSpec = areaSpec), areaSpec.style = (0, vutils_1.merge)({}, subSpec.style, mainSpec.style),
27
+ areaSpec.state = (0, vutils_1.merge)({}, subSpec.state, mainSpec.state), isAreaVisible || (areaSpec.style.fill = !1),
28
+ isLineVisible || (areaSpec.style.stroke = !1), areaSpec.visible = !(!isAreaVisible && !isLineVisible);
15
29
  }
16
30
  initMark() {
17
31
  var _a, _b, _c, _d;
@@ -25,9 +39,8 @@ class AreaSeries extends cartesian_1.CartesianSeries {
25
39
  groupKey: this._seriesField,
26
40
  defaultMorphElementKey: this.getDimensionField()[0],
27
41
  progressive: progressive,
28
- isSeriesMark: isAreaVisible && "area" === seriesMark
29
- }), this.initLineMark(progressive, "line" === seriesMark || "area" === seriesMark && !isAreaVisible),
30
- this.initSymbolMark(progressive, "point" === seriesMark);
42
+ isSeriesMark: isAreaVisible && "point" !== seriesMark
43
+ }), this.initSymbolMark(progressive, "point" === seriesMark);
31
44
  }
32
45
  initMarkStyle() {
33
46
  var _a, _b, _c, _d, _e;
@@ -51,12 +64,17 @@ class AreaSeries extends cartesian_1.CartesianSeries {
51
64
  orient: this._direction
52
65
  }, "normal", constant_1.AttributeLevel.Series), this.setMarkStyle(areaMark, {
53
66
  fill: this.getColorAttribute(),
54
- defined: datum => "break" !== this._invalidType || (0, util_1.couldBeValidNumber)(datum[this.getStackValueField()])
67
+ stroke: this.getColorAttribute()
68
+ }, "normal", constant_1.AttributeLevel.Series), "zero" !== this._invalidType && this.setMarkStyle(areaMark, {
69
+ defined: this._getInvalidDefined,
70
+ connectedType: this._getInvalidConnectType()
55
71
  }, "normal", constant_1.AttributeLevel.Series), this.setMarkStyle(areaMark, {
56
72
  curveType: curveType
57
73
  }, "normal", constant_1.AttributeLevel.Built_In), this._trigger.registerMark(areaMark),
58
- this._tooltipHelper.activeTriggerSet.dimension.add(areaMark)), this.initLineMarkStyle(this._direction, userCurveType),
59
- this.initSymbolMarkStyle(), this.initLabelMarkStyle();
74
+ this._tooltipHelper.activeTriggerSet.dimension.add(areaMark), Object.keys(areaMark.stateStyle).forEach((state => {
75
+ areaMark.stateStyle[state].stroke && areaMark.setPostProcess("stroke", (result => [ result, !1, !1, !1 ]), state);
76
+ }))), this.initLineMarkStyle(this._direction, userCurveType), this.initSymbolMarkStyle(),
77
+ this.initLabelMarkStyle();
60
78
  }
61
79
  initAnimation() {
62
80
  var _a, _b;
@@ -70,6 +88,9 @@ class AreaSeries extends cartesian_1.CartesianSeries {
70
88
  this._symbolMark && this._symbolMark.setAnimationConfig((0, utils_1.animationConfig)(config_1.DEFAULT_MARK_ANIMATION.symbol(), (0,
71
89
  utils_1.userAnimationConfig)(interface_2.SeriesMarkNameEnum.point, this._spec)));
72
90
  }
91
+ initTooltip() {
92
+ this._tooltipHelper = new tooltip_helpter_1.AreaSeriesTooltipHelper(this);
93
+ }
73
94
  }
74
95
 
75
96
  exports.AreaSeries = AreaSeries, AreaSeries.type = interface_3.SeriesTypeEnum.area,
@@ -78,5 +99,5 @@ AreaSeries.mark = Object.assign(Object.assign(Object.assign({}, base_series_1.Ba
78
99
  name: interface_2.SeriesMarkNameEnum.area,
79
100
  type: interface_1.MarkTypeEnum.area
80
101
  }
81
- }), (0, vutils_1.mixin)(AreaSeries, line_mixin_1.LineLikeSeriesMixin);
102
+ }), (0, vutils_2.mixin)(AreaSeries, line_mixin_1.LineLikeSeriesMixin);
82
103
  //# sourceMappingURL=area.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin, lineLikeSeriesMarkMap } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, IInvalidType } from '../../typings';\nimport { valueInScaleRange, couldBeValidNumber } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { BaseSeries } from '../base/base-series';\n\nimport { VChart } from '../../core/vchart';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nVChart.useMark([LineMark, AreaMark, TextMark, SymbolMark]);\n\nexport interface AreaSeries\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | '_lineMark'\n | '_symbolMark'\n >,\n CartesianSeries<IAreaSeriesSpec> {}\n\nexport class AreaSeries extends CartesianSeries<IAreaSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n ...lineLikeSeriesMarkMap,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.area }\n };\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _stack: boolean = true;\n protected _invalidType: IInvalidType = 'break';\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 const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark === 'area'\n }) as IAreaMark;\n\n this.initLineMark(progressive, seriesMark === 'line' || (seriesMark === 'area' && !isAreaVisible));\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = this.getSpec().area?.style?.curveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this),\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper.activeTriggerSet.dimension.add(areaMark);\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.line(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.area(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.symbol(), userAnimationConfig(SeriesMarkNameEnum.point, this._spec))\n );\n }\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n"]}
1
+ {"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import { isValid, merge } from '@visactor/vutils';\n/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin, lineLikeSeriesMarkMap } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, ConvertToMarkStyleSpec, IAreaMarkSpec } from '../../typings';\nimport { valueInScaleRange, couldBeValidNumber } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { BaseSeries } from '../base/base-series';\n\nimport { VChart } from '../../core/vchart';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nimport { AreaSeriesTooltipHelper } from './tooltip-helpter';\nVChart.useMark([LineMark, AreaMark, TextMark, SymbolMark]);\n\nexport interface AreaSeries\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | '_lineMark'\n | '_symbolMark'\n >,\n CartesianSeries<IAreaSeriesSpec> {}\n\nexport class AreaSeries extends CartesianSeries<IAreaSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n ...lineLikeSeriesMarkMap,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.area }\n };\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _stack: boolean = true;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isLineVisible = this._spec.line?.visible !== false && this._spec.line?.style?.visible !== false;\n // merge line to area\n const areaSpec = this._spec.area ?? {};\n const lineSpec = this._spec.line ?? {};\n areaSpec.interactive = areaSpec.interactive || lineSpec.interactive;\n areaSpec.support3d = areaSpec.support3d || lineSpec.support3d;\n areaSpec.zIndex =\n isValid(areaSpec.zIndex) || isValid(lineSpec.zIndex)\n ? Math.max(areaSpec.zIndex ?? 0, lineSpec.zIndex ?? 0)\n : undefined;\n\n // remove area stroke\n if (areaSpec.style) {\n delete areaSpec.style.stroke;\n }\n if (areaSpec.state) {\n Object.keys(areaSpec.state).forEach(state => {\n if ('style' in areaSpec.state[state]) {\n delete areaSpec.state[state].style.stroke;\n } else {\n delete (<ConvertToMarkStyleSpec<IAreaMarkSpec>>areaSpec.state[state]).stroke;\n }\n });\n }\n // check which one is main\n let mainSpec = areaSpec;\n let subSpec = lineSpec;\n const seriesMark = this._spec.seriesMark ?? 'area';\n if (seriesMark === 'line' || (isLineVisible && !isAreaVisible)) {\n mainSpec = lineSpec;\n subSpec = areaSpec;\n }\n areaSpec.style = merge({}, subSpec.style, mainSpec.style);\n areaSpec.state = merge({}, subSpec.state, mainSpec.state);\n if (!isAreaVisible) {\n areaSpec.style.fill = false;\n }\n if (!isLineVisible) {\n areaSpec.style.stroke = false;\n }\n areaSpec.visible = !(!isAreaVisible && !isLineVisible);\n }\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 const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark !== 'point'\n }) as IAreaMark;\n\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = this.getSpec().area?.style?.curveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this),\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper.activeTriggerSet.dimension.add(areaMark);\n\n // change stroke to area stoke = [lineStroke,false,false,false]\n Object.keys(areaMark.stateStyle).forEach(state => {\n if (areaMark.stateStyle[state].stroke) {\n areaMark.setPostProcess(\n 'stroke',\n result => {\n return [result, false, false, false];\n },\n state\n );\n }\n });\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.line(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.area(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.symbol(), userAnimationConfig(SeriesMarkNameEnum.point, this._spec))\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new AreaSeriesTooltipHelper(this);\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n"]}
@@ -0,0 +1,5 @@
1
+ import type { ISeriesTooltipHelper } from '../interface';
2
+ import { BaseSeriesTooltipHelper } from '../base/tooltip-helper';
3
+ export declare class AreaSeriesTooltipHelper extends BaseSeriesTooltipHelper implements ISeriesTooltipHelper {
4
+ protected _getSeriesStyle: (datum: any, styleKey: string | string[], defaultValue?: any) => any;
5
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.AreaSeriesTooltipHelper = void 0;
6
+
7
+ const tooltip_helper_1 = require("../base/tooltip-helper"), util_1 = require("../../util");
8
+
9
+ class AreaSeriesTooltipHelper extends tooltip_helper_1.BaseSeriesTooltipHelper {
10
+ constructor() {
11
+ super(...arguments), this._getSeriesStyle = (datum, styleKey, defaultValue) => {
12
+ var _a, _b, _c, _d;
13
+ for (const key of (0, util_1.array)(styleKey)) {
14
+ let value = null === (_a = this.series.getSeriesStyle(datum)) || void 0 === _a ? void 0 : _a(key);
15
+ if (!1 !== value || "fill" !== key && "stroke" !== key || (value = "fill" === key ? null === (_c = null === (_b = this.series.getSeriesStyle(datum)) || void 0 === _b ? void 0 : _b("stroke")) || void 0 === _c ? void 0 : _c[0] : null === (_d = this.series.getSeriesStyle(datum)) || void 0 === _d ? void 0 : _d("fill")),
16
+ (0, util_1.isValid)(value)) return value;
17
+ }
18
+ return defaultValue;
19
+ };
20
+ }
21
+ }
22
+
23
+ exports.AreaSeriesTooltipHelper = AreaSeriesTooltipHelper;
24
+ //# sourceMappingURL=tooltip-helpter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/series/area/tooltip-helpter.ts"],"names":[],"mappings":";;;AACA,2DAAiE;AACjE,qCAA4C;AAE5C,MAAa,uBAAwB,SAAQ,wCAAuB;IAApE;;QACY,oBAAe,GAAG,CAAC,KAAU,EAAE,QAA2B,EAAE,YAAkB,EAAE,EAAE;;YAC1F,KAAK,MAAM,GAAG,IAAI,IAAA,YAAK,EAAC,QAAQ,CAAC,EAAE;gBACjC,IAAI,KAAK,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0CAAG,GAAG,CAAC,CAAC;gBAGrD,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,CAAC,EAAE;oBAC3D,IAAI,GAAG,KAAK,MAAM,EAAE;wBAClB,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0CAAG,QAAQ,CAAC,0CAAG,CAAC,CAAC,CAAC;qBAC5D;yBAAM;wBACL,KAAK,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,0CAAG,MAAM,CAAC,CAAC;qBACrD;iBACF;gBACD,IAAI,IAAA,cAAO,EAAC,KAAK,CAAC,EAAE;oBAClB,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC;CAAA;AAnBD,0DAmBC","file":"tooltip-helpter.js","sourcesContent":["import type { ISeriesTooltipHelper } from '../interface';\nimport { BaseSeriesTooltipHelper } from '../base/tooltip-helper';\nimport { array, isValid } from '../../util';\n\nexport class AreaSeriesTooltipHelper extends BaseSeriesTooltipHelper implements ISeriesTooltipHelper {\n protected _getSeriesStyle = (datum: any, styleKey: string | string[], defaultValue?: any) => {\n for (const key of array(styleKey)) {\n let value = this.series.getSeriesStyle(datum)?.(key);\n // because of line mark merge into area mark\n // TODO: if tooltip symbol use mark fill & stroke ,remove this code\n if (value === false && (key === 'fill' || key === 'stroke')) {\n if (key === 'fill') {\n value = this.series.getSeriesStyle(datum)?.('stroke')?.[0];\n } else {\n value = this.series.getSeriesStyle(datum)?.('fill');\n }\n }\n if (isValid(value)) {\n return value;\n }\n }\n return defaultValue;\n };\n}\n"]}
@@ -32,6 +32,7 @@ export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extend
32
32
  updateSpec(spec: IBarSeriesSpec): {
33
33
  change: boolean;
34
34
  reMake: boolean;
35
+ reMakeData: boolean;
35
36
  reRender: boolean;
36
37
  reSize: boolean;
37
38
  reCompile: boolean;
@@ -123,6 +123,7 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
123
123
  updateSpec(spec: any): {
124
124
  change: boolean;
125
125
  reMake: boolean;
126
+ reMakeData: boolean;
126
127
  reRender: boolean;
127
128
  reSize: boolean;
128
129
  reCompile: boolean;
@@ -174,4 +175,6 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
174
175
  getDefaultShapeType(): string;
175
176
  getFieldAlias(field: string): any;
176
177
  getMarkInfoList(): import("../../model/interface").IModelMarkInfo[];
178
+ protected _getInvalidConnectType(): "none" | "zero" | "connect";
179
+ protected _getInvalidDefined: (datum: Datum) => boolean;
177
180
  }
@@ -101,6 +101,7 @@ class BaseSeries extends base_model_1.BaseModel {
101
101
  this.modelType = "series", this.name = void 0, this.coordinate = "none", this._region = null,
102
102
  this._rootMark = null, this._seriesMark = null, this._viewDataMap = new Map, this._viewDataFilter = null,
103
103
  this._data = null, this._stack = !1, this._percent = !1, this._stackOffsetSilhouette = !1,
104
+ this._invalidType = "break", this._getInvalidDefined = datum => (0, util_1.couldBeValidNumber)(datum[this.getStackValueField()]),
104
105
  this._region = options.region, this._dataSet = options.dataSet, (null === (_a = this._spec) || void 0 === _a ? void 0 : _a.name) && (this.name = this._spec.name);
105
106
  }
106
107
  created() {
@@ -132,12 +133,12 @@ class BaseSeries extends base_model_1.BaseModel {
132
133
  var _a;
133
134
  super.setAttrFromSpec(), this.setSeriesField(this._spec.seriesField), (0, util_1.isBoolean)(this._spec.stack) && (this._stack = this._spec.stack),
134
135
  (0, util_1.isBoolean)(this._spec.percent) && (this._percent = this._spec.percent,
135
- this._stack = this._spec.stack || this._spec.percent), (0, util_1.isBoolean)(this._spec.stackOffsetSilhouette) && (this._stackOffsetSilhouette = this._spec.stackOffsetSilhouette,
136
- this._stack = this._spec.stack || this._spec.stackOffsetSilhouette), (0, util_1.isValid)(this._spec.invalidType) && (this._invalidType = this._spec.invalidType),
136
+ this._stack = this._spec.percent || this._stack), (0, util_1.isBoolean)(this._spec.stackOffsetSilhouette) && (this._stackOffsetSilhouette = this._spec.stackOffsetSilhouette,
137
+ this._stack = this._spec.stackOffsetSilhouette || this._stack), (0, util_1.isValid)(this._spec.invalidType) && (this._invalidType = this._spec.invalidType),
137
138
  null === (_a = this._tooltipHelper) || void 0 === _a || _a.updateTooltipSpec();
138
139
  }
139
140
  initData() {
140
- var _a, _b;
141
+ var _a, _b, _c;
141
142
  if (this._rawData = this._spec.data, null === (_a = this._rawData) || void 0 === _a || _a.target.addListener("change", this.rawDataUpdate.bind(this)),
142
143
  this._addDataIndexAndKey(), this._rawData) {
143
144
  this._viewDataFilter = (0, initialize_1.dataViewFromDataView)(this._rawData, this._dataSet, {
@@ -148,8 +149,9 @@ class BaseSeries extends base_model_1.BaseModel {
148
149
  });
149
150
  this._data = new series_data_1.SeriesData(this._option, viewData), this._viewDataFilter.target.removeListener("change", viewData.reRunAllTransform);
150
151
  }
151
- "link" !== this._invalidType && "zero" !== this._invalidType || ((0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "invalidTravel", invalid_travel_1.invalidTravel),
152
- null === (_b = this.getViewData()) || void 0 === _b || _b.transform({
152
+ "zero" === this._invalidType && (null === (_b = this._rawData) || void 0 === _b ? void 0 : _b.dataSet) && ((0,
153
+ register_1.registerDataSetInstanceTransform)(this._rawData.dataSet, "invalidTravel", invalid_travel_1.invalidTravel),
154
+ null === (_c = this._rawData) || void 0 === _c || _c.transform({
153
155
  type: "invalidTravel",
154
156
  options: {
155
157
  config: () => ({
@@ -400,8 +402,8 @@ class BaseSeries extends base_model_1.BaseModel {
400
402
  const result = super.updateSpec(spec);
401
403
  spec.type !== this.type && (result.reMake = !0);
402
404
  const {invalidType: invalidType} = this._originalSpec;
403
- return spec.invalidType !== invalidType && (result.change = !0, result.reRender = !0),
404
- result;
405
+ return spec.invalidType !== invalidType && (result.change = !0, result.reRender = !0,
406
+ result.reMake = !0), result;
405
407
  }
406
408
  reInit(theme) {
407
409
  super.reInit(theme), this.initMarkStyle(), this.getMarksWithoutRoot().forEach((mark => {
@@ -532,7 +534,8 @@ class BaseSeries extends base_model_1.BaseModel {
532
534
  key;
533
535
  }
534
536
  addViewDataFilter(option) {
535
- this._viewDataFilter.transform(option, !1);
537
+ var _a;
538
+ null === (_a = this._viewDataFilter) || void 0 === _a || _a.transform(option, !1);
536
539
  }
537
540
  reFilterViewData() {
538
541
  var _a;
@@ -566,6 +569,9 @@ class BaseSeries extends base_model_1.BaseModel {
566
569
  }
567
570
  return list;
568
571
  }
572
+ _getInvalidConnectType() {
573
+ return "zero" === this._invalidType ? "zero" : "link" === this._invalidType ? "connect" : "none";
574
+ }
569
575
  }
570
576
 
571
577
  exports.BaseSeries = BaseSeries, BaseSeries.mark = {