@visactor/vchart 1.4.0-alpha.4 → 1.4.0-alpha.6

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 (581) hide show
  1. package/build/es5/index.js +2 -2
  2. package/build/index.js +24905 -23999
  3. package/build/index.min.js +2 -2
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/animate-manager.js.map +1 -1
  6. package/cjs/animation/config.js +54 -56
  7. package/cjs/animation/config.js.map +1 -1
  8. package/cjs/animation/interface.d.ts +1 -1
  9. package/cjs/animation/interface.js.map +1 -1
  10. package/cjs/animation/spec.d.ts +2 -2
  11. package/cjs/animation/spec.js.map +1 -1
  12. package/cjs/animation/utils.d.ts +1 -1
  13. package/cjs/animation/utils.js.map +1 -1
  14. package/cjs/chart/base-chart.d.ts +1 -1
  15. package/cjs/chart/base-chart.js +11 -8
  16. package/cjs/chart/base-chart.js.map +1 -1
  17. package/cjs/chart/cartesian/cartesian.js +2 -1
  18. package/cjs/chart/cartesian/cartesian.js.map +1 -1
  19. package/cjs/chart/cartesian/interface.d.ts +3 -3
  20. package/cjs/chart/cartesian/interface.js.map +1 -1
  21. package/cjs/chart/interface/chart.d.ts +1 -1
  22. package/cjs/chart/interface/chart.js.map +1 -1
  23. package/cjs/chart/interface/common.d.ts +1 -1
  24. package/cjs/chart/interface/common.js.map +1 -1
  25. package/cjs/chart/polar/polar.js +4 -3
  26. package/cjs/chart/polar/polar.js.map +1 -1
  27. package/cjs/chart/sequence/sequence.js +5 -4
  28. package/cjs/chart/sequence/sequence.js.map +1 -1
  29. package/cjs/compile/compilable-base.d.ts +1 -1
  30. package/cjs/compile/compiler.d.ts +2 -2
  31. package/cjs/compile/compiler.js +7 -7
  32. package/cjs/compile/compiler.js.map +1 -1
  33. package/cjs/compile/data/compilable-data.d.ts +1 -1
  34. package/cjs/compile/data/compilable-data.js.map +1 -1
  35. package/cjs/compile/grammar-item.d.ts +1 -1
  36. package/cjs/compile/grammar-item.js.map +1 -1
  37. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  38. package/cjs/compile/interface/compilable-item.js.map +1 -1
  39. package/cjs/compile/mark/compilable-mark.d.ts +5 -5
  40. package/cjs/compile/mark/compilable-mark.js.map +1 -1
  41. package/cjs/compile/mark/interface.d.ts +1 -1
  42. package/cjs/compile/mark/interface.js.map +1 -1
  43. package/cjs/compile/mark/mark-state-manager.d.ts +1 -1
  44. package/cjs/compile/mark/mark-state-manager.js.map +1 -1
  45. package/cjs/compile/signal/compilable-signal.d.ts +1 -1
  46. package/cjs/compile/signal/compilable-signal.js.map +1 -1
  47. package/cjs/compile/signal/interface.d.ts +1 -1
  48. package/cjs/compile/signal/interface.js.map +1 -1
  49. package/cjs/compile/signal/signal-manager.d.ts +1 -1
  50. package/cjs/compile/signal/signal-manager.js.map +1 -1
  51. package/cjs/compile/util.js +3 -0
  52. package/cjs/compile/util.js.map +1 -1
  53. package/cjs/component/axis/base-axis.js +4 -2
  54. package/cjs/component/axis/base-axis.js.map +1 -1
  55. package/cjs/component/axis/cartesian/axis.js +2 -2
  56. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  57. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  58. package/cjs/component/axis/polar/axis.js +2 -2
  59. package/cjs/component/axis/polar/axis.js.map +1 -1
  60. package/cjs/component/axis/polar/interface/common.d.ts +2 -0
  61. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  62. package/cjs/component/base/base-component.d.ts +1 -1
  63. package/cjs/component/base/base-component.js.map +1 -1
  64. package/cjs/component/brush/brush.d.ts +1 -1
  65. package/cjs/component/brush/brush.js.map +1 -1
  66. package/cjs/component/crosshair/polar.js.map +1 -1
  67. package/cjs/component/data-zoom/constant.d.ts +4 -0
  68. package/cjs/component/data-zoom/constant.js +10 -0
  69. package/cjs/component/data-zoom/constant.js.map +1 -0
  70. package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -0
  71. package/cjs/component/data-zoom/data-filter-base-component.js +9 -8
  72. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  73. package/cjs/component/data-zoom/data-zoom/data-zoom.js +4 -3
  74. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  75. package/cjs/component/data-zoom/data-zoom/interface.d.ts +2 -0
  76. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  77. package/cjs/component/data-zoom/interface.d.ts +0 -1
  78. package/cjs/component/data-zoom/interface.js.map +1 -1
  79. package/cjs/component/data-zoom/scroll-bar/interface.d.ts +2 -0
  80. package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
  81. package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +2 -0
  82. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +15 -7
  83. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  84. package/cjs/component/geo/geo-coordinate.js +7 -5
  85. package/cjs/component/geo/geo-coordinate.js.map +1 -1
  86. package/cjs/component/geo/interface.d.ts +1 -1
  87. package/cjs/component/geo/interface.js.map +1 -1
  88. package/cjs/component/geo/projection.js.map +1 -1
  89. package/cjs/component/label/label.d.ts +1 -1
  90. package/cjs/component/label/label.js +2 -2
  91. package/cjs/component/label/label.js.map +1 -1
  92. package/cjs/component/label/totalLabel.js.map +1 -1
  93. package/cjs/component/marker/base-marker.d.ts +16 -3
  94. package/cjs/component/marker/base-marker.js +24 -17
  95. package/cjs/component/marker/base-marker.js.map +1 -1
  96. package/cjs/component/marker/interface.d.ts +4 -2
  97. package/cjs/component/marker/interface.js.map +1 -1
  98. package/cjs/component/marker/mark-area/mark-area.js +14 -11
  99. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  100. package/cjs/component/marker/mark-line/interface/spec.d.ts +26 -2
  101. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  102. package/cjs/component/marker/mark-line/interface/theme.d.ts +2 -2
  103. package/cjs/component/marker/mark-line/interface/theme.js.map +1 -1
  104. package/cjs/component/marker/mark-line/mark-line.js +60 -24
  105. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  106. package/cjs/component/marker/mark-line/util.d.ts +9 -0
  107. package/cjs/component/marker/mark-line/util.js +69 -0
  108. package/cjs/component/marker/mark-line/util.js.map +1 -0
  109. package/cjs/component/marker/mark-point/mark-point.js +16 -13
  110. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  111. package/cjs/component/tooltip/handler/base.d.ts +2 -2
  112. package/cjs/component/tooltip/handler/base.js.map +1 -1
  113. package/cjs/component/tooltip/handler/dom/interface.d.ts +0 -1
  114. package/cjs/component/tooltip/handler/dom/interface.js.map +1 -1
  115. package/cjs/component/tooltip/handler/dom/model/content-column-model.js +7 -5
  116. package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  117. package/cjs/component/tooltip/handler/dom/model/shape-model.d.ts +4 -2
  118. package/cjs/component/tooltip/handler/dom/model/shape-model.js +20 -11
  119. package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  120. package/cjs/component/tooltip/handler/dom/model/title-model.js +4 -4
  121. package/cjs/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  122. package/cjs/component/tooltip/handler/dom/model/tooltip-model.js +1 -7
  123. package/cjs/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
  124. package/cjs/component/tooltip/handler/dom/util.d.ts +1 -0
  125. package/cjs/component/tooltip/handler/dom/util.js +34 -25
  126. package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
  127. package/cjs/component/tooltip/handler/utils/attribute.js +22 -19
  128. package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
  129. package/cjs/component/tooltip/handler/utils/common.d.ts +1 -1
  130. package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
  131. package/cjs/component/tooltip/handler/utils/compose.js +12 -5
  132. package/cjs/component/tooltip/handler/utils/compose.js.map +1 -1
  133. package/cjs/component/tooltip/handler/utils/get-spec.js +2 -2
  134. package/cjs/component/tooltip/handler/utils/get-spec.js.map +1 -1
  135. package/cjs/component/tooltip/processor/interface.d.ts +1 -1
  136. package/cjs/component/tooltip/processor/interface.js.map +1 -1
  137. package/cjs/constant/event.d.ts +1 -1
  138. package/cjs/constant/event.js +2 -2
  139. package/cjs/constant/event.js.map +1 -1
  140. package/cjs/core/index.d.ts +1 -1
  141. package/cjs/core/index.js +1 -1
  142. package/cjs/core/index.js.map +1 -1
  143. package/cjs/core/vchart.js +32 -20
  144. package/cjs/core/vchart.js.map +1 -1
  145. package/cjs/data/transforms/aggregation.d.ts +10 -5
  146. package/cjs/data/transforms/aggregation.js +7 -5
  147. package/cjs/data/transforms/aggregation.js.map +1 -1
  148. package/cjs/data/transforms/dimension-data.js.map +1 -1
  149. package/cjs/event/interface.d.ts +1 -1
  150. package/cjs/event/interface.js.map +1 -1
  151. package/cjs/index.d.ts +1 -0
  152. package/cjs/index.js +10 -1
  153. package/cjs/index.js.map +1 -1
  154. package/cjs/interaction/dimension-trigger.d.ts +1 -1
  155. package/cjs/interaction/dimension-trigger.js.map +1 -1
  156. package/cjs/interaction/interaction.d.ts +1 -1
  157. package/cjs/interaction/interaction.js.map +1 -1
  158. package/cjs/interaction/interface.d.ts +1 -1
  159. package/cjs/interaction/interface.js.map +1 -1
  160. package/cjs/mark/box-plot.d.ts +1 -1
  161. package/cjs/mark/box-plot.js +2 -2
  162. package/cjs/mark/box-plot.js.map +1 -1
  163. package/cjs/mark/component.d.ts +1 -1
  164. package/cjs/mark/component.js +2 -2
  165. package/cjs/mark/component.js.map +1 -1
  166. package/cjs/mark/group.d.ts +1 -1
  167. package/cjs/mark/group.js.map +1 -1
  168. package/cjs/mark/link-path.d.ts +1 -1
  169. package/cjs/mark/link-path.js +2 -2
  170. package/cjs/mark/link-path.js.map +1 -1
  171. package/cjs/model/base-model.d.ts +1 -1
  172. package/cjs/model/base-model.js.map +1 -1
  173. package/cjs/model/interface.d.ts +1 -1
  174. package/cjs/model/interface.js.map +1 -1
  175. package/cjs/region/region.d.ts +1 -1
  176. package/cjs/region/region.js +8 -2
  177. package/cjs/region/region.js.map +1 -1
  178. package/cjs/series/area/animation.d.ts +1 -1
  179. package/cjs/series/area/animation.js.map +1 -1
  180. package/cjs/series/bar/animation.d.ts +1 -1
  181. package/cjs/series/bar/animation.js.map +1 -1
  182. package/cjs/series/base/base-series.js +2 -1
  183. package/cjs/series/base/base-series.js.map +1 -1
  184. package/cjs/series/base/tooltip-helper.d.ts +1 -1
  185. package/cjs/series/base/tooltip-helper.js +2 -0
  186. package/cjs/series/base/tooltip-helper.js.map +1 -1
  187. package/cjs/series/box-plot/tooltip-helper.js +7 -0
  188. package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
  189. package/cjs/series/circle-packing/animation.d.ts +1 -1
  190. package/cjs/series/circle-packing/animation.js.map +1 -1
  191. package/cjs/series/dot/tooltip-helper.js +6 -0
  192. package/cjs/series/dot/tooltip-helper.js.map +1 -1
  193. package/cjs/series/funnel/tooltip-helper.d.ts +1 -1
  194. package/cjs/series/funnel/tooltip-helper.js.map +1 -1
  195. package/cjs/series/gauge/constant.js +2 -2
  196. package/cjs/series/gauge/constant.js.map +1 -1
  197. package/cjs/series/gauge/gauge.d.ts +3 -3
  198. package/cjs/series/gauge/gauge.js +7 -4
  199. package/cjs/series/gauge/gauge.js.map +1 -1
  200. package/cjs/series/geo/geo.js +9 -3
  201. package/cjs/series/geo/geo.js.map +1 -1
  202. package/cjs/series/heatmap/animation.d.ts +1 -1
  203. package/cjs/series/heatmap/animation.js.map +1 -1
  204. package/cjs/series/line/animation.d.ts +1 -1
  205. package/cjs/series/line/animation.js.map +1 -1
  206. package/cjs/series/link/tooltip-helper.js +4 -0
  207. package/cjs/series/link/tooltip-helper.js.map +1 -1
  208. package/cjs/series/map/map.d.ts +2 -0
  209. package/cjs/series/map/map.js +41 -45
  210. package/cjs/series/map/map.js.map +1 -1
  211. package/cjs/series/mixin/line-mixin.js +2 -1
  212. package/cjs/series/mixin/line-mixin.js.map +1 -1
  213. package/cjs/series/pie/animation/animation.d.ts +1 -1
  214. package/cjs/series/pie/animation/animation.js.map +1 -1
  215. package/cjs/series/pie/animation/centerOffset.d.ts +1 -1
  216. package/cjs/series/pie/animation/centerOffset.js.map +1 -1
  217. package/cjs/series/pie/pie.js.map +1 -1
  218. package/cjs/series/polar/progress-like/animation.d.ts +1 -1
  219. package/cjs/series/polar/progress-like/animation.js.map +1 -1
  220. package/cjs/series/polar/progress-like/constant.d.ts +2 -0
  221. package/cjs/series/polar/progress-like/constant.js +15 -0
  222. package/cjs/series/polar/progress-like/constant.js.map +1 -0
  223. package/cjs/series/polar/progress-like/interface.d.ts +12 -0
  224. package/cjs/series/polar/progress-like/interface.js.map +1 -1
  225. package/cjs/series/polar/progress-like/progress-like.d.ts +19 -4
  226. package/cjs/series/polar/progress-like/progress-like.js +112 -5
  227. package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
  228. package/cjs/series/progress/circular/circular.d.ts +6 -4
  229. package/cjs/series/progress/circular/circular.js +49 -32
  230. package/cjs/series/progress/circular/circular.js.map +1 -1
  231. package/cjs/series/progress/circular/constant.js +2 -2
  232. package/cjs/series/progress/circular/constant.js.map +1 -1
  233. package/cjs/series/progress/linear/animation.d.ts +1 -1
  234. package/cjs/series/progress/linear/animation.js.map +1 -1
  235. package/cjs/series/progress/linear/linear.d.ts +6 -6
  236. package/cjs/series/progress/linear/linear.js +8 -8
  237. package/cjs/series/progress/linear/linear.js.map +1 -1
  238. package/cjs/series/radar/animation.d.ts +1 -1
  239. package/cjs/series/radar/animation.js.map +1 -1
  240. package/cjs/series/radar/radar.d.ts +1 -1
  241. package/cjs/series/radar/radar.js +10 -3
  242. package/cjs/series/radar/radar.js.map +1 -1
  243. package/cjs/series/range-area/tooltip-helper.js +2 -0
  244. package/cjs/series/range-area/tooltip-helper.js.map +1 -1
  245. package/cjs/series/range-column/animation.d.ts +1 -1
  246. package/cjs/series/range-column/animation.js.map +1 -1
  247. package/cjs/series/range-column/tooltip-helper.js +1 -0
  248. package/cjs/series/range-column/tooltip-helper.js.map +1 -1
  249. package/cjs/series/rose/animation.d.ts +1 -1
  250. package/cjs/series/rose/animation.js.map +1 -1
  251. package/cjs/series/sankey/animation.d.ts +1 -1
  252. package/cjs/series/sankey/animation.js.map +1 -1
  253. package/cjs/series/sankey/sankey.d.ts +1 -1
  254. package/cjs/series/sankey/sankey.js.map +1 -1
  255. package/cjs/series/sankey/tooltip-helper.js +3 -1
  256. package/cjs/series/sankey/tooltip-helper.js.map +1 -1
  257. package/cjs/series/scatter/animation.d.ts +1 -1
  258. package/cjs/series/scatter/animation.js.map +1 -1
  259. package/cjs/series/scatter/scatter.d.ts +3 -2
  260. package/cjs/series/scatter/scatter.js +13 -5
  261. package/cjs/series/scatter/scatter.js.map +1 -1
  262. package/cjs/series/sunburst/animation/enter.d.ts +1 -1
  263. package/cjs/series/sunburst/animation/enter.js.map +1 -1
  264. package/cjs/series/sunburst/animation/exit.d.ts +1 -1
  265. package/cjs/series/sunburst/animation/exit.js.map +1 -1
  266. package/cjs/series/sunburst/animation/preset.d.ts +1 -1
  267. package/cjs/series/sunburst/animation/preset.js.map +1 -1
  268. package/cjs/series/sunburst/animation/utils.d.ts +1 -1
  269. package/cjs/series/sunburst/animation/utils.js +2 -2
  270. package/cjs/series/sunburst/animation/utils.js.map +1 -1
  271. package/cjs/series/treemap/animation.d.ts +1 -1
  272. package/cjs/series/treemap/animation.js.map +1 -1
  273. package/cjs/series/treemap/treemap.js.map +1 -1
  274. package/cjs/series/waterfall/animation.d.ts +1 -1
  275. package/cjs/series/waterfall/animation.js.map +1 -1
  276. package/cjs/series/word-cloud/animation.d.ts +7 -1
  277. package/cjs/series/word-cloud/animation.js +27 -2
  278. package/cjs/series/word-cloud/animation.js.map +1 -1
  279. package/cjs/series/word-cloud/base.js +13 -2
  280. package/cjs/series/word-cloud/base.js.map +1 -1
  281. package/cjs/series/word-cloud/interface.d.ts +7 -2
  282. package/cjs/series/word-cloud/interface.js.map +1 -1
  283. package/cjs/typings/spec/common.d.ts +2 -1
  284. package/cjs/typings/spec/common.js +2 -1
  285. package/cjs/typings/spec/common.js.map +1 -1
  286. package/cjs/typings/tooltip/line.d.ts +2 -0
  287. package/cjs/typings/tooltip/line.js.map +1 -1
  288. package/cjs/typings/tooltip/shape.d.ts +10 -4
  289. package/cjs/typings/tooltip/shape.js.map +1 -1
  290. package/cjs/util/env.js +1 -1
  291. package/cjs/util/env.js.map +1 -1
  292. package/cjs/util/math.js.map +1 -1
  293. package/esm/animation/animate-manager.js.map +1 -1
  294. package/esm/animation/config.js +4 -4
  295. package/esm/animation/config.js.map +1 -1
  296. package/esm/animation/interface.d.ts +1 -1
  297. package/esm/animation/interface.js.map +1 -1
  298. package/esm/animation/spec.d.ts +2 -2
  299. package/esm/animation/spec.js.map +1 -1
  300. package/esm/animation/utils.d.ts +1 -1
  301. package/esm/animation/utils.js.map +1 -1
  302. package/esm/chart/base-chart.d.ts +1 -1
  303. package/esm/chart/base-chart.js +11 -8
  304. package/esm/chart/base-chart.js.map +1 -1
  305. package/esm/chart/cartesian/cartesian.js +2 -1
  306. package/esm/chart/cartesian/cartesian.js.map +1 -1
  307. package/esm/chart/cartesian/interface.d.ts +3 -3
  308. package/esm/chart/cartesian/interface.js.map +1 -1
  309. package/esm/chart/interface/chart.d.ts +1 -1
  310. package/esm/chart/interface/chart.js.map +1 -1
  311. package/esm/chart/interface/common.d.ts +1 -1
  312. package/esm/chart/interface/common.js.map +1 -1
  313. package/esm/chart/polar/polar.js +5 -2
  314. package/esm/chart/polar/polar.js.map +1 -1
  315. package/esm/chart/sequence/sequence.js +6 -3
  316. package/esm/chart/sequence/sequence.js.map +1 -1
  317. package/esm/compile/compilable-base.d.ts +1 -1
  318. package/esm/compile/compiler.d.ts +2 -2
  319. package/esm/compile/compiler.js +6 -6
  320. package/esm/compile/compiler.js.map +1 -1
  321. package/esm/compile/data/compilable-data.d.ts +1 -1
  322. package/esm/compile/data/compilable-data.js.map +1 -1
  323. package/esm/compile/grammar-item.d.ts +1 -1
  324. package/esm/compile/grammar-item.js.map +1 -1
  325. package/esm/compile/interface/compilable-item.d.ts +1 -1
  326. package/esm/compile/interface/compilable-item.js.map +1 -1
  327. package/esm/compile/mark/compilable-mark.d.ts +5 -5
  328. package/esm/compile/mark/compilable-mark.js.map +1 -1
  329. package/esm/compile/mark/interface.d.ts +1 -1
  330. package/esm/compile/mark/interface.js.map +1 -1
  331. package/esm/compile/mark/mark-state-manager.d.ts +1 -1
  332. package/esm/compile/mark/mark-state-manager.js.map +1 -1
  333. package/esm/compile/signal/compilable-signal.d.ts +1 -1
  334. package/esm/compile/signal/compilable-signal.js.map +1 -1
  335. package/esm/compile/signal/interface.d.ts +1 -1
  336. package/esm/compile/signal/interface.js.map +1 -1
  337. package/esm/compile/signal/signal-manager.d.ts +1 -1
  338. package/esm/compile/signal/signal-manager.js.map +1 -1
  339. package/esm/compile/util.js +3 -0
  340. package/esm/compile/util.js.map +1 -1
  341. package/esm/component/axis/base-axis.js +3 -1
  342. package/esm/component/axis/base-axis.js.map +1 -1
  343. package/esm/component/axis/cartesian/axis.js +1 -1
  344. package/esm/component/axis/cartesian/axis.js.map +1 -1
  345. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  346. package/esm/component/axis/polar/axis.js +1 -1
  347. package/esm/component/axis/polar/axis.js.map +1 -1
  348. package/esm/component/axis/polar/interface/common.d.ts +2 -0
  349. package/esm/component/axis/polar/interface/common.js.map +1 -1
  350. package/esm/component/base/base-component.d.ts +1 -1
  351. package/esm/component/base/base-component.js.map +1 -1
  352. package/esm/component/brush/brush.d.ts +1 -1
  353. package/esm/component/brush/brush.js.map +1 -1
  354. package/esm/component/crosshair/polar.js.map +1 -1
  355. package/esm/component/data-zoom/constant.d.ts +4 -0
  356. package/esm/component/data-zoom/constant.js +6 -0
  357. package/esm/component/data-zoom/constant.js.map +1 -0
  358. package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -0
  359. package/esm/component/data-zoom/data-filter-base-component.js +9 -7
  360. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  361. package/esm/component/data-zoom/data-zoom/data-zoom.js +5 -2
  362. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  363. package/esm/component/data-zoom/data-zoom/interface.d.ts +2 -0
  364. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  365. package/esm/component/data-zoom/interface.d.ts +0 -1
  366. package/esm/component/data-zoom/interface.js.map +1 -1
  367. package/esm/component/data-zoom/scroll-bar/interface.d.ts +2 -0
  368. package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
  369. package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +2 -0
  370. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +16 -6
  371. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  372. package/esm/component/geo/geo-coordinate.js +8 -6
  373. package/esm/component/geo/geo-coordinate.js.map +1 -1
  374. package/esm/component/geo/interface.d.ts +1 -1
  375. package/esm/component/geo/interface.js.map +1 -1
  376. package/esm/component/geo/projection.js.map +1 -1
  377. package/esm/component/label/label.d.ts +1 -1
  378. package/esm/component/label/label.js +3 -1
  379. package/esm/component/label/label.js.map +1 -1
  380. package/esm/component/label/totalLabel.js.map +1 -1
  381. package/esm/component/marker/base-marker.d.ts +16 -3
  382. package/esm/component/marker/base-marker.js +25 -18
  383. package/esm/component/marker/base-marker.js.map +1 -1
  384. package/esm/component/marker/interface.d.ts +4 -2
  385. package/esm/component/marker/interface.js.map +1 -1
  386. package/esm/component/marker/mark-area/mark-area.js +14 -11
  387. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  388. package/esm/component/marker/mark-line/interface/spec.d.ts +26 -2
  389. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  390. package/esm/component/marker/mark-line/interface/theme.d.ts +2 -2
  391. package/esm/component/marker/mark-line/interface/theme.js.map +1 -1
  392. package/esm/component/marker/mark-line/mark-line.js +60 -23
  393. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  394. package/esm/component/marker/mark-line/util.d.ts +9 -0
  395. package/esm/component/marker/mark-line/util.js +62 -0
  396. package/esm/component/marker/mark-line/util.js.map +1 -0
  397. package/esm/component/marker/mark-point/mark-point.js +16 -13
  398. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  399. package/esm/component/tooltip/handler/base.d.ts +2 -2
  400. package/esm/component/tooltip/handler/base.js.map +1 -1
  401. package/esm/component/tooltip/handler/dom/interface.d.ts +0 -1
  402. package/esm/component/tooltip/handler/dom/interface.js.map +1 -1
  403. package/esm/component/tooltip/handler/dom/model/content-column-model.js +7 -5
  404. package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
  405. package/esm/component/tooltip/handler/dom/model/shape-model.d.ts +4 -2
  406. package/esm/component/tooltip/handler/dom/model/shape-model.js +22 -11
  407. package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
  408. package/esm/component/tooltip/handler/dom/model/title-model.js +4 -4
  409. package/esm/component/tooltip/handler/dom/model/title-model.js.map +1 -1
  410. package/esm/component/tooltip/handler/dom/model/tooltip-model.js +1 -7
  411. package/esm/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
  412. package/esm/component/tooltip/handler/dom/util.d.ts +1 -0
  413. package/esm/component/tooltip/handler/dom/util.js +29 -23
  414. package/esm/component/tooltip/handler/dom/util.js.map +1 -1
  415. package/esm/component/tooltip/handler/utils/attribute.js +22 -19
  416. package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
  417. package/esm/component/tooltip/handler/utils/common.d.ts +1 -1
  418. package/esm/component/tooltip/handler/utils/common.js.map +1 -1
  419. package/esm/component/tooltip/handler/utils/compose.js +7 -4
  420. package/esm/component/tooltip/handler/utils/compose.js.map +1 -1
  421. package/esm/component/tooltip/handler/utils/get-spec.js +2 -2
  422. package/esm/component/tooltip/handler/utils/get-spec.js.map +1 -1
  423. package/esm/component/tooltip/processor/interface.d.ts +1 -1
  424. package/esm/component/tooltip/processor/interface.js.map +1 -1
  425. package/esm/constant/event.d.ts +1 -1
  426. package/esm/constant/event.js +1 -1
  427. package/esm/constant/event.js.map +1 -1
  428. package/esm/core/index.d.ts +1 -1
  429. package/esm/core/index.js +1 -1
  430. package/esm/core/index.js.map +1 -1
  431. package/esm/core/vchart.js +32 -20
  432. package/esm/core/vchart.js.map +1 -1
  433. package/esm/data/transforms/aggregation.d.ts +10 -5
  434. package/esm/data/transforms/aggregation.js +8 -6
  435. package/esm/data/transforms/aggregation.js.map +1 -1
  436. package/esm/data/transforms/dimension-data.js.map +1 -1
  437. package/esm/event/interface.d.ts +1 -1
  438. package/esm/event/interface.js.map +1 -1
  439. package/esm/index.d.ts +1 -0
  440. package/esm/index.js +3 -1
  441. package/esm/index.js.map +1 -1
  442. package/esm/interaction/dimension-trigger.d.ts +1 -1
  443. package/esm/interaction/dimension-trigger.js.map +1 -1
  444. package/esm/interaction/interaction.d.ts +1 -1
  445. package/esm/interaction/interaction.js.map +1 -1
  446. package/esm/interaction/interface.d.ts +1 -1
  447. package/esm/interaction/interface.js.map +1 -1
  448. package/esm/mark/box-plot.d.ts +1 -1
  449. package/esm/mark/box-plot.js +1 -1
  450. package/esm/mark/box-plot.js.map +1 -1
  451. package/esm/mark/component.d.ts +1 -1
  452. package/esm/mark/component.js +1 -1
  453. package/esm/mark/component.js.map +1 -1
  454. package/esm/mark/group.d.ts +1 -1
  455. package/esm/mark/group.js.map +1 -1
  456. package/esm/mark/link-path.d.ts +1 -1
  457. package/esm/mark/link-path.js +1 -1
  458. package/esm/mark/link-path.js.map +1 -1
  459. package/esm/model/base-model.d.ts +1 -1
  460. package/esm/model/base-model.js.map +1 -1
  461. package/esm/model/interface.d.ts +1 -1
  462. package/esm/model/interface.js.map +1 -1
  463. package/esm/region/region.d.ts +1 -1
  464. package/esm/region/region.js +9 -1
  465. package/esm/region/region.js.map +1 -1
  466. package/esm/series/area/animation.d.ts +1 -1
  467. package/esm/series/area/animation.js.map +1 -1
  468. package/esm/series/bar/animation.d.ts +1 -1
  469. package/esm/series/bar/animation.js.map +1 -1
  470. package/esm/series/base/base-series.js +2 -1
  471. package/esm/series/base/base-series.js.map +1 -1
  472. package/esm/series/base/tooltip-helper.d.ts +1 -1
  473. package/esm/series/base/tooltip-helper.js +2 -0
  474. package/esm/series/base/tooltip-helper.js.map +1 -1
  475. package/esm/series/box-plot/tooltip-helper.js +7 -0
  476. package/esm/series/box-plot/tooltip-helper.js.map +1 -1
  477. package/esm/series/circle-packing/animation.d.ts +1 -1
  478. package/esm/series/circle-packing/animation.js.map +1 -1
  479. package/esm/series/dot/tooltip-helper.js +6 -0
  480. package/esm/series/dot/tooltip-helper.js.map +1 -1
  481. package/esm/series/funnel/tooltip-helper.d.ts +1 -1
  482. package/esm/series/funnel/tooltip-helper.js.map +1 -1
  483. package/esm/series/gauge/constant.js +3 -1
  484. package/esm/series/gauge/constant.js.map +1 -1
  485. package/esm/series/gauge/gauge.d.ts +3 -3
  486. package/esm/series/gauge/gauge.js +7 -4
  487. package/esm/series/gauge/gauge.js.map +1 -1
  488. package/esm/series/geo/geo.js +9 -3
  489. package/esm/series/geo/geo.js.map +1 -1
  490. package/esm/series/heatmap/animation.d.ts +1 -1
  491. package/esm/series/heatmap/animation.js.map +1 -1
  492. package/esm/series/line/animation.d.ts +1 -1
  493. package/esm/series/line/animation.js.map +1 -1
  494. package/esm/series/link/tooltip-helper.js +4 -0
  495. package/esm/series/link/tooltip-helper.js.map +1 -1
  496. package/esm/series/map/map.d.ts +2 -0
  497. package/esm/series/map/map.js +43 -51
  498. package/esm/series/map/map.js.map +1 -1
  499. package/esm/series/mixin/line-mixin.js +4 -3
  500. package/esm/series/mixin/line-mixin.js.map +1 -1
  501. package/esm/series/pie/animation/animation.d.ts +1 -1
  502. package/esm/series/pie/animation/animation.js.map +1 -1
  503. package/esm/series/pie/animation/centerOffset.d.ts +1 -1
  504. package/esm/series/pie/animation/centerOffset.js.map +1 -1
  505. package/esm/series/pie/pie.js.map +1 -1
  506. package/esm/series/polar/progress-like/animation.d.ts +1 -1
  507. package/esm/series/polar/progress-like/animation.js.map +1 -1
  508. package/esm/series/polar/progress-like/constant.d.ts +2 -0
  509. package/esm/series/polar/progress-like/constant.js +13 -0
  510. package/esm/series/polar/progress-like/constant.js.map +1 -0
  511. package/esm/series/polar/progress-like/interface.d.ts +12 -0
  512. package/esm/series/polar/progress-like/interface.js.map +1 -1
  513. package/esm/series/polar/progress-like/progress-like.d.ts +19 -4
  514. package/esm/series/polar/progress-like/progress-like.js +117 -5
  515. package/esm/series/polar/progress-like/progress-like.js.map +1 -1
  516. package/esm/series/progress/circular/circular.d.ts +6 -4
  517. package/esm/series/progress/circular/circular.js +50 -31
  518. package/esm/series/progress/circular/circular.js.map +1 -1
  519. package/esm/series/progress/circular/constant.js +3 -3
  520. package/esm/series/progress/circular/constant.js.map +1 -1
  521. package/esm/series/progress/linear/animation.d.ts +1 -1
  522. package/esm/series/progress/linear/animation.js.map +1 -1
  523. package/esm/series/progress/linear/linear.d.ts +6 -6
  524. package/esm/series/progress/linear/linear.js +8 -8
  525. package/esm/series/progress/linear/linear.js.map +1 -1
  526. package/esm/series/radar/animation.d.ts +1 -1
  527. package/esm/series/radar/animation.js.map +1 -1
  528. package/esm/series/radar/radar.d.ts +1 -1
  529. package/esm/series/radar/radar.js +12 -4
  530. package/esm/series/radar/radar.js.map +1 -1
  531. package/esm/series/range-area/tooltip-helper.js +2 -0
  532. package/esm/series/range-area/tooltip-helper.js.map +1 -1
  533. package/esm/series/range-column/animation.d.ts +1 -1
  534. package/esm/series/range-column/animation.js.map +1 -1
  535. package/esm/series/range-column/tooltip-helper.js +1 -0
  536. package/esm/series/range-column/tooltip-helper.js.map +1 -1
  537. package/esm/series/rose/animation.d.ts +1 -1
  538. package/esm/series/rose/animation.js.map +1 -1
  539. package/esm/series/sankey/animation.d.ts +1 -1
  540. package/esm/series/sankey/animation.js.map +1 -1
  541. package/esm/series/sankey/sankey.d.ts +1 -1
  542. package/esm/series/sankey/sankey.js.map +1 -1
  543. package/esm/series/sankey/tooltip-helper.js +3 -1
  544. package/esm/series/sankey/tooltip-helper.js.map +1 -1
  545. package/esm/series/scatter/animation.d.ts +1 -1
  546. package/esm/series/scatter/animation.js.map +1 -1
  547. package/esm/series/scatter/scatter.d.ts +3 -2
  548. package/esm/series/scatter/scatter.js +15 -5
  549. package/esm/series/scatter/scatter.js.map +1 -1
  550. package/esm/series/sunburst/animation/enter.d.ts +1 -1
  551. package/esm/series/sunburst/animation/enter.js.map +1 -1
  552. package/esm/series/sunburst/animation/exit.d.ts +1 -1
  553. package/esm/series/sunburst/animation/exit.js.map +1 -1
  554. package/esm/series/sunburst/animation/preset.d.ts +1 -1
  555. package/esm/series/sunburst/animation/preset.js.map +1 -1
  556. package/esm/series/sunburst/animation/utils.d.ts +1 -1
  557. package/esm/series/sunburst/animation/utils.js +1 -1
  558. package/esm/series/sunburst/animation/utils.js.map +1 -1
  559. package/esm/series/treemap/animation.d.ts +1 -1
  560. package/esm/series/treemap/animation.js.map +1 -1
  561. package/esm/series/treemap/treemap.js.map +1 -1
  562. package/esm/series/waterfall/animation.d.ts +1 -1
  563. package/esm/series/waterfall/animation.js.map +1 -1
  564. package/esm/series/word-cloud/animation.d.ts +7 -1
  565. package/esm/series/word-cloud/animation.js +25 -0
  566. package/esm/series/word-cloud/animation.js.map +1 -1
  567. package/esm/series/word-cloud/base.js +12 -1
  568. package/esm/series/word-cloud/base.js.map +1 -1
  569. package/esm/series/word-cloud/interface.d.ts +7 -2
  570. package/esm/series/word-cloud/interface.js.map +1 -1
  571. package/esm/typings/spec/common.d.ts +2 -1
  572. package/esm/typings/spec/common.js +2 -1
  573. package/esm/typings/spec/common.js.map +1 -1
  574. package/esm/typings/tooltip/line.d.ts +2 -0
  575. package/esm/typings/tooltip/line.js.map +1 -1
  576. package/esm/typings/tooltip/shape.d.ts +10 -4
  577. package/esm/typings/tooltip/shape.js.map +1 -1
  578. package/esm/util/env.js +1 -1
  579. package/esm/util/env.js.map +1 -1
  580. package/esm/util/math.js.map +1 -1
  581. package/package.json +16 -16
@@ -26,7 +26,7 @@ class MarkArea extends base_marker_1.BaseMarker {
26
26
  })), markAreas;
27
27
  }
28
28
  _createMarkerComponent() {
29
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
29
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
30
30
  const markArea = new vrender_components_1.MarkArea({
31
31
  zIndex: this.layoutZIndex,
32
32
  interactive: null !== (_a = this._spec.interactive) && void 0 !== _a && _a,
@@ -44,27 +44,28 @@ class MarkArea extends base_marker_1.BaseMarker {
44
44
  visible: null === (_o = null === (_m = null === (_l = this._spec.label) || void 0 === _l ? void 0 : _l.labelBackground) || void 0 === _m ? void 0 : _m.visible) || void 0 === _o || _o
45
45
  }),
46
46
  textStyle: (0, style_1.transformToGraphic)(null === (_p = this._spec.label) || void 0 === _p ? void 0 : _p.style)
47
- })
47
+ }),
48
+ clipInRange: null !== (_q = this._spec.clip) && void 0 !== _q && _q
48
49
  });
49
- this._markerComponent = markArea, this._markerComponent.name = "markArea", this._markerComponent.id = null !== (_q = this._spec.id) && void 0 !== _q ? _q : `markArea-${this.id}`,
50
+ this._markerComponent = markArea, this._markerComponent.name = "markArea", this._markerComponent.id = null !== (_r = this._spec.id) && void 0 !== _r ? _r : `markArea-${this.id}`,
50
51
  this.getContainer().add(this._markerComponent);
51
52
  }
52
53
  _markerLayout() {
53
- var _a, _b, _c, _d, _e, _f;
54
+ var _a, _b, _c, _d, _e, _f, _g, _h;
54
55
  const spec = this._spec, data = this._markerData, startRelativeSeries = this._startRelativeSeries, endRelativeSeries = this._endRelativeSeries, relativeSeries = this._relativeSeries, isXLayout = (0,
55
56
  vutils_1.isValid)(spec.x) && (0, vutils_1.isValid)(spec.x1), isYLayout = (0, vutils_1.isValid)(spec.y) && (0,
56
57
  vutils_1.isValid)(spec.y1), isCoordinateLayout = (0, vutils_1.isValid)(spec.coordinates), isPositionLayout = (0,
57
- vutils_1.isValid)(spec.positions), autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a, isNeedClip = null !== (_b = null == spec ? void 0 : spec.clip) && void 0 !== _b && _b;
58
+ vutils_1.isValid)(spec.positions), autoRange = null !== (_a = spec.autoRange) && void 0 !== _a && _a;
58
59
  let points = [], lines = [];
59
60
  isXLayout ? (lines = (0, utils_1.xLayout)(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange),
60
61
  points = [ ...lines[0], lines[1][1], lines[1][0] ]) : isYLayout ? (lines = (0, utils_1.yLayout)(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange),
61
62
  points = [ ...lines[0], lines[1][1], lines[1][0] ]) : isCoordinateLayout ? points = (0,
62
63
  utils_1.coordinateLayout)(data, relativeSeries, autoRange) : isPositionLayout && (points = spec.positions);
63
64
  const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;
64
- let clipRange;
65
- if (isNeedClip) {
65
+ let limitRect;
66
+ if (spec.clip || (null === (_b = spec.label) || void 0 === _b ? void 0 : _b.confine)) {
66
67
  const {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = this._computeClipRange([ startRelativeSeries.getRegion(), endRelativeSeries.getRegion(), relativeSeries.getRegion() ]);
67
- clipRange = {
68
+ limitRect = {
68
69
  x: minX,
69
70
  y: minY,
70
71
  width: maxX - minX,
@@ -73,10 +74,12 @@ class MarkArea extends base_marker_1.BaseMarker {
73
74
  }
74
75
  null === (_c = this._markerComponent) || void 0 === _c || _c.setAttributes({
75
76
  points: points,
76
- label: Object.assign(Object.assign({}, null === (_d = this._markerComponent.attribute) || void 0 === _d ? void 0 : _d.label), {
77
- text: this._spec.label.formatMethod ? this._spec.label.formatMethod(dataPoints) : null === (_f = null === (_e = this._markerComponent.attribute) || void 0 === _e ? void 0 : _e.label) || void 0 === _f ? void 0 : _f.text
77
+ label: Object.assign(Object.assign({}, null === (_e = null === (_d = this._markerComponent) || void 0 === _d ? void 0 : _d.attribute) || void 0 === _e ? void 0 : _e.label), {
78
+ text: this._spec.label.formatMethod ? this._spec.label.formatMethod(dataPoints, this._relativeSeries.getViewData().latestData) : null === (_h = null === (_g = null === (_f = this._markerComponent) || void 0 === _f ? void 0 : _f.attribute) || void 0 === _g ? void 0 : _g.label) || void 0 === _h ? void 0 : _h.text
78
79
  }),
79
- clipRange: clipRange
80
+ limitRect: limitRect,
81
+ dx: this.layoutOffsetX,
82
+ dy: this.layoutOffsetY
80
83
  });
81
84
  }
82
85
  _initDataView() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-area/mark-area.ts"],"names":[],"mappings":"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","file":"mark-area.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkArea, IMarkAreaSpec, IMarkAreaTheme } from './interface';\nimport { isNil, isArray } from '../../../util';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport type { IOptionAggrs } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { xLayout, yLayout, coordinateLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { MarkArea as MarkAreaComponent } from '@visactor/vrender-components';\nimport type { IPointLike } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport type { INode } from '@visactor/vrender';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\n\nexport class MarkArea extends BaseMarker<IMarkAreaSpec & IMarkAreaTheme> implements IMarkArea {\n static type = ComponentTypeEnum.markArea;\n type = ComponentTypeEnum.markArea;\n name: string = ComponentTypeEnum.markArea;\n\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.MarkArea;\n\n static speckey = 'markArea';\n\n protected declare _theme: IMarkAreaTheme;\n\n // markArea组件\n protected declare _markerComponent: MarkAreaComponent;\n\n static createComponent(spec: any, options: IComponentOption) {\n const markAreaSpec = spec.markArea || options.defaultSpec;\n if (isNil(markAreaSpec)) {\n return undefined;\n }\n if (!isArray(markAreaSpec) && markAreaSpec.visible !== false) {\n return new MarkArea(markAreaSpec, { ...options, specKey: MarkArea.speckey });\n }\n const markAreas: MarkArea[] = [];\n markAreaSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n markAreas.push(new MarkArea(m, { ...options, specIndex: i, specKey: MarkArea.speckey }));\n }\n });\n return markAreas;\n }\n\n protected _createMarkerComponent() {\n const markArea = new MarkAreaComponent({\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n {\n x: 0,\n y: 0\n }\n ],\n areaStyle: transformToGraphic(this._spec.area?.style),\n label: {\n ...this._spec.label,\n padding: this._spec.label?.labelBackground?.padding,\n shape: {\n ...transformToGraphic(this._spec.label?.shape),\n visible: this._spec.label?.shape?.visible ?? false\n },\n panel: {\n ...transformToGraphic(this._spec.label?.labelBackground?.style),\n visible: this._spec.label?.labelBackground?.visible ?? true\n },\n textStyle: transformToGraphic(this._spec.label?.style)\n }\n });\n this._markerComponent = markArea;\n this._markerComponent.name = 'markArea';\n this._markerComponent.id = this._spec.id ?? `markArea-${this.id}`;\n this.getContainer().add(this._markerComponent as unknown as INode);\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isXLayout = isValid(spec.x) && isValid(spec.x1);\n const isYLayout = isValid(spec.y) && isValid(spec.y1);\n const isCoordinateLayout = isValid(spec.coordinates);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec?.autoRange ?? false;\n const isNeedClip = spec?.clip ?? false;\n\n let points: IPointLike[] = [];\n let lines: [IPointLike, IPointLike][] = [];\n if (isXLayout) {\n lines = xLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n points = [...lines[0], lines[1][1], lines[1][0]];\n } else if (isYLayout) {\n lines = yLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n points = [...lines[0], lines[1][1], lines[1][0]];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange);\n } else if (isPositionLayout) {\n points = spec.positions;\n }\n\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n let clipRange;\n if (isNeedClip) {\n const { minX, maxX, minY, maxY } = this._computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n clipRange = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n this._markerComponent?.setAttributes({\n points: points,\n label: {\n ...this._markerComponent.attribute?.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints)\n : this._markerComponent.attribute?.label?.text\n },\n clipRange\n });\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXProcess = isValid(spec.x) && isValid(spec.x1);\n const isYProcess = isValid(spec.y) && isValid(spec.y1);\n const isCoordinateProcess = isValid(spec.coordinates);\n if (!isXProcess && !isYProcess && !isCoordinateProcess) {\n return null;\n }\n\n let options: IOptionAggrs | IOptionRegr;\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n\n if (isXProcess) {\n options = [this._processSpecX(spec.x), this._processSpecX(spec.x1)];\n } else if (isYProcess) {\n options = [this._processSpecY(spec.y), this._processSpecY(spec.y1)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-area/mark-area.ts"],"names":[],"mappings":"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","file":"mark-area.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkArea, IMarkAreaSpec, IMarkAreaTheme } from './interface';\nimport { isNil, isArray } from '../../../util';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { xLayout, yLayout, coordinateLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { MarkArea as MarkAreaComponent } from '@visactor/vrender-components';\nimport type { IPointLike } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport type { INode } from '@visactor/vrender';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\n\nexport class MarkArea extends BaseMarker<IMarkAreaSpec & IMarkAreaTheme> implements IMarkArea {\n static type = ComponentTypeEnum.markArea;\n type = ComponentTypeEnum.markArea;\n name: string = ComponentTypeEnum.markArea;\n\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.MarkArea;\n\n static speckey = 'markArea';\n\n protected declare _theme: IMarkAreaTheme;\n\n // markArea组件\n protected declare _markerComponent: MarkAreaComponent;\n\n static createComponent(spec: any, options: IComponentOption) {\n const markAreaSpec = spec.markArea || options.defaultSpec;\n if (isNil(markAreaSpec)) {\n return undefined;\n }\n if (!isArray(markAreaSpec) && markAreaSpec.visible !== false) {\n return new MarkArea(markAreaSpec, { ...options, specKey: MarkArea.speckey });\n }\n const markAreas: MarkArea[] = [];\n markAreaSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n markAreas.push(new MarkArea(m, { ...options, specIndex: i, specKey: MarkArea.speckey }));\n }\n });\n return markAreas;\n }\n\n protected _createMarkerComponent() {\n const markArea = new MarkAreaComponent({\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n {\n x: 0,\n y: 0\n }\n ],\n areaStyle: transformToGraphic(this._spec.area?.style),\n label: {\n ...this._spec.label,\n padding: this._spec.label?.labelBackground?.padding,\n shape: {\n ...transformToGraphic(this._spec.label?.shape),\n visible: this._spec.label?.shape?.visible ?? false\n },\n panel: {\n ...transformToGraphic(this._spec.label?.labelBackground?.style),\n visible: this._spec.label?.labelBackground?.visible ?? true\n },\n textStyle: transformToGraphic(this._spec.label?.style)\n },\n clipInRange: this._spec.clip ?? false\n });\n this._markerComponent = markArea;\n this._markerComponent.name = 'markArea';\n this._markerComponent.id = this._spec.id ?? `markArea-${this.id}`;\n this.getContainer().add(this._markerComponent as unknown as INode);\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isXLayout = isValid(spec.x) && isValid(spec.x1);\n const isYLayout = isValid(spec.y) && isValid(spec.y1);\n const isCoordinateLayout = isValid(spec.coordinates);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPointLike[] = [];\n let lines: [IPointLike, IPointLike][] = [];\n if (isXLayout) {\n lines = xLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n points = [...lines[0], lines[1][1], lines[1][0]];\n } else if (isYLayout) {\n lines = yLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n points = [...lines[0], lines[1][1], lines[1][0]];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange);\n } else if (isPositionLayout) {\n points = spec.positions;\n }\n\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = this._computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n this._markerComponent?.setAttributes({\n points: points,\n label: {\n ...this._markerComponent?.attribute?.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, this._relativeSeries.getViewData().latestData)\n : this._markerComponent?.attribute?.label?.text\n },\n limitRect,\n dx: this.layoutOffsetX,\n dy: this.layoutOffsetY\n });\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXProcess = isValid(spec.x) && isValid(spec.x1);\n const isYProcess = isValid(spec.y) && isValid(spec.y1);\n const isCoordinateProcess = isValid(spec.coordinates);\n if (!isXProcess && !isYProcess && !isCoordinateProcess) {\n return null;\n }\n\n let options: IOptionAggr[];\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n\n if (isXProcess) {\n options = [this._processSpecX(spec.x), this._processSpecX(spec.x1)];\n } else if (isYProcess) {\n options = [this._processSpecY(spec.y), this._processSpecY(spec.y1)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n"]}
@@ -1,9 +1,11 @@
1
1
  import type { IComponent } from '../../../interface';
2
- import type { IAggrType, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IMarkerAxisSpec, IDataPos, IDataPosCallback } from '../../interface';
2
+ import type { IAggrType, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IMarkerAxisSpec, IDataPos, IDataPosCallback, IMarkerLabelSpec } from '../../interface';
3
3
  import type { IRegressType } from '../../mark-area/interface';
4
4
  import type { IMarkLineTheme } from './theme';
5
+ import type { ILineMarkSpec } from '../../../../typings';
6
+ import type { IPointLike } from '@visactor/vutils';
5
7
  export type IMarkLine = IComponent;
6
- export type IMarkLineSpec = IMarkerSpec & (IMarkLineXSpec | IMarkLineYSpec | IMarkLineCoordinateSpec | IMarkLinePositionsSpec) & IMarkLineTheme;
8
+ export type IMarkLineSpec = (IMarkerSpec & (IMarkLineXSpec | IMarkLineYSpec | IMarkLineCoordinateSpec | IMarkLinePositionsSpec) & IMarkLineTheme) | IStepMarkLineSpec;
7
9
  export interface IMarkLineXSpec extends IMarkerAxisSpec {
8
10
  x: IDataPos | IDataPosCallback;
9
11
  }
@@ -27,3 +29,25 @@ export type IMarkLineCoordinateSpec = {
27
29
  };
28
30
  };
29
31
  export type IMarkLinePositionsSpec = IMarkerPositionsSpec;
32
+ export type IStepMarkLineSpec = IMarkerSpec & {
33
+ type: 'type-step';
34
+ connectDirection: 'top' | 'bottom' | 'left' | 'right';
35
+ expandDistance?: number;
36
+ label?: IMarkerLabelSpec;
37
+ line?: {
38
+ multiSegment?: boolean;
39
+ mainSegmentIndex?: number;
40
+ style?: ILineMarkSpec | ILineMarkSpec[];
41
+ };
42
+ } & Omit<IMarkLineTheme, 'label' | 'line'> & ({
43
+ coordinates: [IDataPointSpec, IDataPointSpec];
44
+ process?: {
45
+ x: IAggrType;
46
+ } | {
47
+ y: IAggrType;
48
+ } | {
49
+ xy: IRegressType;
50
+ };
51
+ } | {
52
+ positions: [IPointLike, IPointLike];
53
+ });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../../interface';\nimport type {\n IAggrType,\n IMarkerPositionsSpec,\n IDataPointSpec,\n IMarkerSpec,\n IMarkerAxisSpec,\n IDataPos,\n IDataPosCallback\n} from '../../interface';\nimport type { IRegressType } from '../../mark-area/interface';\nimport type { IMarkLineTheme } from './theme';\n\nexport type IMarkLine = IComponent;\n\nexport type IMarkLineSpec = IMarkerSpec &\n (\n | IMarkLineXSpec // 标注目标:笛卡尔坐标系坐标空间\n | IMarkLineYSpec // 标注目标:笛卡尔坐标系坐标空间\n // | IMarkLineAngleSpec // TODO: 标注目标:极坐标系坐标空间\n // | IMarkLineRadiusSpec // TODO: 标注目标:极坐标系坐标空间\n | IMarkLineCoordinateSpec // 标注目标:数据元素\n | IMarkLinePositionsSpec\n ) &\n IMarkLineTheme; // 标注目标:任意位置\n\nexport interface IMarkLineXSpec extends IMarkerAxisSpec {\n /**\n * x轴上的参考线。可以配置参考线在x轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n x: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYSpec extends IMarkerAxisSpec {\n /**\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n y: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngleSpec extends IMarkerAxisSpec {\n /**\n * todo: angle轴上的参考线。可以配置参考线在angle轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n angle: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadiusSpec extends IMarkerAxisSpec {\n /**\n * todo: radius轴上的参考线。可以配置参考线在radius轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkLineCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n */\n coordinates: IDataPointSpec[];\n /**\n * 数据点的处理方法。 如果不配置则按照coordinate数组直接连接成line。\n */\n process?:\n | {\n x: IAggrType;\n }\n | {\n y: IAggrType;\n }\n | {\n xy: IRegressType; // FIXME: xy属性名称不太合理,可能需调整\n };\n};\n/**\n * 指定坐标点的参考线。基于指定坐标进行参考线的绘制\n */\nexport type IMarkLinePositionsSpec = IMarkerPositionsSpec;\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../../interface';\nimport type {\n IAggrType,\n IMarkerPositionsSpec,\n IDataPointSpec,\n IMarkerSpec,\n IMarkerAxisSpec,\n IDataPos,\n IDataPosCallback,\n IMarkerLabelSpec\n} from '../../interface';\nimport type { IRegressType } from '../../mark-area/interface';\nimport type { IMarkLineTheme } from './theme';\nimport type { ILineMarkSpec } from '../../../../typings';\nimport type { IPointLike } from '@visactor/vutils';\n\nexport type IMarkLine = IComponent;\n\nexport type IMarkLineSpec =\n | (IMarkerSpec &\n (\n | IMarkLineXSpec // 标注目标:笛卡尔坐标系坐标空间\n | IMarkLineYSpec // 标注目标:笛卡尔坐标系坐标空间\n // | IMarkLineAngleSpec // TODO: 标注目标:极坐标系坐标空间\n // | IMarkLineRadiusSpec // TODO: 标注目标:极坐标系坐标空间\n | IMarkLineCoordinateSpec // 标注目标:数据元素\n | IMarkLinePositionsSpec\n ) &\n IMarkLineTheme)\n | IStepMarkLineSpec; // 标注目标:任意位置\n\nexport interface IMarkLineXSpec extends IMarkerAxisSpec {\n /**\n * x轴上的参考线。可以配置参考线在x轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n x: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYSpec extends IMarkerAxisSpec {\n /**\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n y: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngleSpec extends IMarkerAxisSpec {\n /**\n * todo: angle轴上的参考线。可以配置参考线在angle轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n angle: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadiusSpec extends IMarkerAxisSpec {\n /**\n * todo: radius轴上的参考线。可以配置参考线在radius轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkLineCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n */\n coordinates: IDataPointSpec[];\n /**\n * 数据点的处理方法。 如果不配置则按照coordinate数组直接连接成line。\n */\n process?:\n | {\n x: IAggrType;\n }\n | {\n y: IAggrType;\n }\n | {\n xy: IRegressType; // FIXME: xy属性名称不太合理,可能需调整\n };\n};\n/**\n * 指定坐标点的参考线。基于指定坐标进行参考线的绘制\n */\nexport type IMarkLinePositionsSpec = IMarkerPositionsSpec;\n\nexport type IStepMarkLineSpec = IMarkerSpec & {\n /**\n * 指定辅助线的连接类型,step 的连接方式为由交替的水平线和处置线组成的\n */\n type: 'type-step';\n /**\n * 线的链接方向\n */\n connectDirection: 'top' | 'bottom' | 'left' | 'right';\n /**\n * 在连接方向的扩展距离\n */\n expandDistance?: number;\n\n label?: IMarkerLabelSpec;\n line?: {\n /**\n * 是否对 points 进行多段处理,默认为 false,即直接将所有的点连接成线。\n * 如果需要进行多段处理,需要将 points 属性配置为 Point[][] 类型\n * @default false\n */\n multiSegment?: boolean;\n /**\n * 在 `multiSegment` 属性开启的前提下,用于声明那一段线段用来作为主线段,如果不声明,默认全段为主线段\n */\n mainSegmentIndex?: number;\n /**\n * 当进行多段配置时,可以通过数组的方式传入\n */\n style?: ILineMarkSpec | ILineMarkSpec[];\n };\n} & Omit<IMarkLineTheme, 'label' | 'line'> &\n (\n | {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n */\n coordinates: [IDataPointSpec, IDataPointSpec];\n /**\n * 数据点的处理方法。 如果不配置则按照coordinate数组直接连接成line。\n */\n process?:\n | {\n x: IAggrType;\n }\n | {\n y: IAggrType;\n }\n | {\n xy: IRegressType; // FIXME: xy属性名称不太合理,可能需调整\n };\n }\n | {\n positions: [IPointLike, IPointLike];\n }\n );\n"]}
@@ -8,6 +8,6 @@ export interface IMarkLineTheme {
8
8
  label?: {
9
9
  position?: IMarkLineLabelPosition;
10
10
  } & IMarkerLabelSpec;
11
- startSymbol: IMarkerSymbol;
12
- endSymbol: IMarkerSymbol;
11
+ startSymbol?: IMarkerSymbol;
12
+ endSymbol?: IMarkerSymbol;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IMarkLineLabelPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerSymbol } from '../../interface';\n\nexport interface IMarkLineTheme {\n line?: {\n style?: ILineMarkSpec;\n };\n\n label?: {\n /**\n * label整体 - 相对line的位置\n */\n position?: IMarkLineLabelPosition;\n } & IMarkerLabelSpec;\n\n startSymbol: IMarkerSymbol;\n\n endSymbol: IMarkerSymbol;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IMarkLineLabelPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerSymbol } from '../../interface';\n\nexport interface IMarkLineTheme {\n line?: {\n style?: ILineMarkSpec;\n };\n\n label?: {\n /**\n * label整体 - 相对line的位置\n */\n position?: IMarkLineLabelPosition;\n } & IMarkerLabelSpec;\n\n startSymbol?: IMarkerSymbol;\n\n endSymbol?: IMarkerSymbol;\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.MarkLine = void 0;
6
6
 
7
- const vdataset_1 = require("@visactor/vdataset"), util_1 = require("../../../util"), interface_1 = require("../../interface"), aggregation_1 = require("../../../data/transforms/aggregation"), utils_1 = require("../utils"), register_1 = require("../../../data/register"), vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), style_1 = require("../../../util/style"), base_marker_1 = require("../base-marker"), regression_1 = require("../../../data/transforms/regression"), constant_1 = require("../../../constant");
7
+ const vdataset_1 = require("@visactor/vdataset"), util_1 = require("../../../util"), interface_1 = require("../../interface"), aggregation_1 = require("../../../data/transforms/aggregation"), utils_1 = require("../utils"), register_1 = require("../../../data/register"), vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), style_1 = require("../../../util/style"), base_marker_1 = require("../base-marker"), regression_1 = require("../../../data/transforms/regression"), constant_1 = require("../../../constant"), util_2 = require("./util");
8
8
 
9
9
  class MarkLine extends base_marker_1.BaseMarker {
10
10
  constructor() {
@@ -26,7 +26,7 @@ class MarkLine extends base_marker_1.BaseMarker {
26
26
  })), markLines;
27
27
  }
28
28
  _createMarkerComponent() {
29
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
29
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
30
30
  const markLine = new vrender_components_1.MarkLine({
31
31
  zIndex: this.layoutZIndex,
32
32
  interactive: null !== (_a = this._spec.interactive) && void 0 !== _a && _a,
@@ -37,7 +37,7 @@ class MarkLine extends base_marker_1.BaseMarker {
37
37
  x: 0,
38
38
  y: 0
39
39
  } ],
40
- lineStyle: (0, style_1.transformToGraphic)(null === (_b = this._spec) || void 0 === _b ? void 0 : _b.line.style),
40
+ lineStyle: null === (_b = this._spec) || void 0 === _b ? void 0 : _b.line.style,
41
41
  startSymbol: Object.assign(Object.assign({}, null === (_c = this._spec) || void 0 === _c ? void 0 : _c.startSymbol), {
42
42
  visible: null === (_d = this._spec.startSymbol) || void 0 === _d ? void 0 : _d.visible,
43
43
  style: (0, style_1.transformToGraphic)(null === (_e = this._spec.startSymbol) || void 0 === _e ? void 0 : _e.style)
@@ -55,52 +55,85 @@ class MarkLine extends base_marker_1.BaseMarker {
55
55
  visible: null === (_t = null === (_s = null === (_r = this._spec.label) || void 0 === _r ? void 0 : _r.labelBackground) || void 0 === _s ? void 0 : _s.visible) || void 0 === _t || _t
56
56
  }),
57
57
  textStyle: (0, style_1.transformToGraphic)(null === (_u = this._spec.label) || void 0 === _u ? void 0 : _u.style)
58
- })
58
+ }),
59
+ clipInRange: null !== (_v = this._spec.clip) && void 0 !== _v && _v
59
60
  });
60
- this._markerComponent = markLine, this._markerComponent.name = "markLine", this._markerComponent.id = null !== (_v = this._spec.id) && void 0 !== _v ? _v : `markLine-${this.id}`,
61
+ this._markerComponent = markLine, this._markerComponent.name = "markLine", this._markerComponent.id = null !== (_w = this._spec.id) && void 0 !== _w ? _w : `markLine-${this.id}`,
61
62
  this.getContainer().add(this._markerComponent);
62
63
  }
63
64
  _markerLayout() {
64
- var _a, _b, _c, _d, _e, _f;
65
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
65
66
  const spec = this._spec, data = this._markerData, startRelativeSeries = this._startRelativeSeries, endRelativeSeries = this._endRelativeSeries, relativeSeries = this._relativeSeries, isXLayout = (0,
66
67
  vutils_1.isValid)(spec.x) || (0, vutils_1.isValid)(spec.coordinates) && (0, vutils_1.isValid)(spec.process) && (0,
67
68
  vutils_1.isValid)(spec.process.x), isYLayout = (0, vutils_1.isValid)(spec.y) || (0,
68
69
  vutils_1.isValid)(spec.coordinates) && (0, vutils_1.isValid)(spec.process) && (0,
69
70
  vutils_1.isValid)(spec.process.y), isCoordinateLayout = (0, vutils_1.isValid)(spec.coordinates) && (!(0,
70
71
  vutils_1.isValid)(spec.process) || "process" in spec && "xy" in spec.process), isPositionLayout = (0,
71
- vutils_1.isValid)(spec.positions), autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a, isNeedClip = null !== (_b = null == spec ? void 0 : spec.clip) && void 0 !== _b && _b;
72
+ vutils_1.isValid)(spec.positions), autoRange = null !== (_a = spec.autoRange) && void 0 !== _a && _a;
72
73
  let points = [];
73
74
  isXLayout ? points = (0, utils_1.xLayout)(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange)[0] : isYLayout ? points = (0,
74
75
  utils_1.yLayout)(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange)[0] : isCoordinateLayout ? points = (0,
75
76
  utils_1.coordinateLayout)(data, relativeSeries, autoRange) : isPositionLayout && (points = spec.positions);
76
- const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;
77
- let clipRange;
78
- if (isNeedClip) {
77
+ const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData, seriesData = this._relativeSeries.getViewData().latestData;
78
+ let limitRect;
79
+ if (spec.clip || (null === (_b = spec.label) || void 0 === _b ? void 0 : _b.confine)) {
79
80
  const {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = this._computeClipRange([ startRelativeSeries.getRegion(), endRelativeSeries.getRegion(), relativeSeries.getRegion() ]);
80
- clipRange = {
81
+ limitRect = {
81
82
  x: minX,
82
83
  y: minY,
83
84
  width: maxX - minX,
84
85
  height: maxY - minY
85
86
  };
86
87
  }
87
- null === (_c = this._markerComponent) || void 0 === _c || _c.setAttributes({
88
+ const labelAttrs = Object.assign(Object.assign({}, null === (_d = null === (_c = this._markerComponent) || void 0 === _c ? void 0 : _c.attribute) || void 0 === _d ? void 0 : _d.label), {
89
+ text: this._spec.label.formatMethod ? this._spec.label.formatMethod(dataPoints, seriesData) : null === (_g = null === (_f = null === (_e = this._markerComponent) || void 0 === _e ? void 0 : _e.attribute) || void 0 === _f ? void 0 : _f.label) || void 0 === _g ? void 0 : _g.text
90
+ });
91
+ if ("type-step" === this._spec.type) {
92
+ const {multiSegment: multiSegment, mainSegmentIndex: mainSegmentIndex} = this._spec.line || {}, {connectDirection: connectDirection, expandDistance: expandDistance = 0} = this._spec, joinPoints = (0,
93
+ util_2.getInsertPoints)(points[0], points[1], connectDirection, expandDistance);
94
+ let labelPositionAttrs;
95
+ labelPositionAttrs = multiSegment && (0, vutils_1.isValid)(mainSegmentIndex) ? {
96
+ position: "middle",
97
+ autoRotate: !1,
98
+ refX: 0,
99
+ refY: 0
100
+ } : Object.assign(Object.assign({
101
+ position: "start",
102
+ autoRotate: !1
103
+ }, (0, util_2.getTextOffset)(points[0], points[1], connectDirection, expandDistance)), {
104
+ efX: 0,
105
+ refY: 0
106
+ }), null === (_h = this._markerComponent) || void 0 === _h || _h.setAttributes({
107
+ points: multiSegment ? [ [ joinPoints[0], joinPoints[1] ], [ joinPoints[1], joinPoints[2] ], [ joinPoints[2], joinPoints[3] ] ] : joinPoints,
108
+ label: Object.assign(Object.assign(Object.assign({}, labelAttrs), labelPositionAttrs), {
109
+ textStyle: Object.assign(Object.assign({}, null === (_k = null === (_j = this._markerComponent) || void 0 === _j ? void 0 : _j.attribute) || void 0 === _k ? void 0 : _k.label.textStyle), {
110
+ textAlign: "center",
111
+ textBaseline: "middle"
112
+ })
113
+ }),
114
+ limitRect: limitRect,
115
+ multiSegment: multiSegment,
116
+ mainSegmentIndex: mainSegmentIndex,
117
+ dx: this.layoutOffsetX,
118
+ dy: this.layoutOffsetY
119
+ });
120
+ } else null === (_l = this._markerComponent) || void 0 === _l || _l.setAttributes({
88
121
  points: points,
89
- label: Object.assign(Object.assign({}, null === (_d = this._markerComponent.attribute) || void 0 === _d ? void 0 : _d.label), {
90
- text: this._spec.label.formatMethod ? this._spec.label.formatMethod(dataPoints) : null === (_f = null === (_e = this._markerComponent.attribute) || void 0 === _e ? void 0 : _e.label) || void 0 === _f ? void 0 : _f.text
91
- }),
92
- clipRange: clipRange
122
+ label: labelAttrs,
123
+ limitRect: limitRect,
124
+ dx: this.layoutOffsetX,
125
+ dy: this.layoutOffsetY
93
126
  });
94
127
  }
95
128
  _initDataView() {
96
129
  const spec = this._spec, relativeSeries = this._relativeSeries, isXProcess = "x" in spec, isYProcess = "y" in spec, isCoordinateProcess = "coordinates" in spec;
97
130
  if (!isXProcess && !isYProcess && !isCoordinateProcess) return;
98
131
  let options, processData, needAgggr = !1, needRegr = !1;
99
- (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerAggregation", aggregation_1.markerAggregation),
132
+ if ((0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerAggregation", aggregation_1.markerAggregation),
100
133
  (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerRegression", regression_1.markerRegression),
101
- isXProcess ? (options = [ this._processSpecX(spec.x) ], processData = relativeSeries.getViewData(),
102
- needAgggr = !0) : isYProcess ? (options = [ this._processSpecY(spec.y) ], processData = relativeSeries.getViewData(),
103
- needAgggr = !0) : isCoordinateProcess && (options = this._processSpecCoo(spec),
134
+ isXProcess) options = [ this._processSpecX(spec.x) ], processData = relativeSeries.getViewData(),
135
+ needAgggr = !0; else if (isYProcess) options = [ this._processSpecY(spec.y) ], processData = relativeSeries.getViewData(),
136
+ needAgggr = !0; else if (isCoordinateProcess && (options = this._processSpecCoo(spec),
104
137
  processData = new vdataset_1.DataView(this._option.dataSet).parse([ relativeSeries.getViewData() ], {
105
138
  type: "dataview"
106
139
  }).transform({
@@ -108,10 +141,13 @@ class MarkLine extends base_marker_1.BaseMarker {
108
141
  options: options
109
142
  }), spec.process && "x" in spec.process && (options = [ this._processSpecX(spec.process.x) ],
110
143
  needAgggr = !0), spec.process && "y" in spec.process && (options = [ this._processSpecY(spec.process.y) ],
111
- needAgggr = !0), spec.process && "xy" in spec.process && (options = {
112
- fieldX: relativeSeries.getSpec().xField,
113
- fieldY: relativeSeries.getSpec().yField
114
- }, needRegr = !0));
144
+ needAgggr = !0), spec.process && "xy" in spec.process)) {
145
+ const {xField: xField, yField: yField} = relativeSeries.getSpec();
146
+ options = {
147
+ fieldX: xField,
148
+ fieldY: yField
149
+ }, needRegr = !0;
150
+ }
115
151
  const data = new vdataset_1.DataView(this._option.dataSet);
116
152
  data.parse([ processData ], {
117
153
  type: "dataview"
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/mark-line.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,wCAA+C;AAG/C,+CAAoD;AAGpD,sEAAyE;AACzE,oCAA8D;AAC9D,qDAA0E;AAC1E,qEAA6E;AAG7E,6CAA2C;AAC3C,+CAAyD;AACzD,gDAA4C;AAM5C,oEAAuE;AACvE,gDAAiD;AAGjD,MAAa,QAAS,SAAQ,wBAA0C;IAAxE;;QAEE,SAAI,GAAG,6BAAiB,CAAC,QAAQ,CAAC;QAClC,SAAI,GAAW,6BAAiB,CAAC,QAAQ,CAAC;QAE1C,iBAAY,GAA+B,uBAAY,CAAC,QAAQ,CAAC;IA8MnE,CAAC;IAtMC,MAAM,CAAC,eAAe,CAAC,IAAS,EAAE,OAAyB;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;QAC1D,IAAI,IAAA,YAAK,EAAC,YAAY,CAAC,EAAE;YACvB,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,IAAA,cAAO,EAAC,YAAY,CAAC,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5D,OAAO,IAAI,QAAQ,CAAC,YAAY,kCAAO,OAAO,KAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAG,CAAC;SAC9E;QACD,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,kCAAO,OAAO,KAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAG,CAAC,CAAC;aAC1F;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,sBAAsB;;QAC9B,MAAM,QAAQ,GAAG,IAAI,6BAAiB,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,KAAK;YAC5C,MAAM,EAAE;gBACN;oBACE,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACL;gBACD;oBACE,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACL;aACF;YACD,SAAS,EAAE,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,CAAC,KAAK,CAAC;YACrD,WAAW,kCACN,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,KAC1B,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,OAAO,EACxC,KAAK,EAAE,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,KAAK,CAAC,GACzD;YACD,SAAS,kCACJ,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,KACxB,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,OAAO,EACtC,KAAK,EAAE,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,KAAK,CAAC,GACvD;YACD,KAAK,kCACA,IAAI,CAAC,KAAK,CAAC,KAAK,KACnB,OAAO,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,eAAe,0CAAE,OAAO,EACnD,KAAK,kCACA,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,CAAC,KAC9C,OAAO,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,0CAAE,OAAO,mCAAI,KAAK,KAEpD,KAAK,kCACA,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,eAAe,CAAC,KAAK,CAAC,KAC9D,OAAO,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,eAAe,0CAAE,OAAO,mCAAI,IAAI,KAE7D,SAAS,EAAE,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,KAAK,CAAC,GACvD;SACF,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,UAAU,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,EAAE,mCAAI,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC;QAClE,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAoC,CAAC,CAAC;IACrE,CAAC;IAES,aAAa;;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAY,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAG5C,MAAM,SAAS,GACb,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAErG,MAAM,SAAS,GACb,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,kBAAkB,GACtB,IAAA,gBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACvG,MAAM,gBAAgB,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,KAAK,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,KAAK,CAAC;QAEvC,IAAI,MAAM,GAAiB,EAAE,CAAC;QAC9B,IAAI,SAAS,EAAE;YACb,MAAM,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9F;aAAM,IAAI,SAAS,EAAE;YACpB,MAAM,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9F;aAAM,IAAI,kBAAkB,EAAE;YAC7B,MAAM,GAAG,IAAA,wBAAgB,EAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;SAC5D;aAAM,IAAI,gBAAgB,EAAE;YAC3B,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;SACzB;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACnG,IAAI,SAAS,CAAC;QACd,IAAI,UAAU,EAAE;YACd,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACxD,mBAAmB,CAAC,SAAS,EAAE;gBAC/B,iBAAiB,CAAC,SAAS,EAAE;gBAC7B,cAAc,CAAC,SAAS,EAAE;aAC3B,CAAC,CAAC;YACH,SAAS,GAAG;gBACV,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,IAAI;gBACP,KAAK,EAAE,IAAI,GAAG,IAAI;gBAClB,MAAM,EAAE,IAAI,GAAG,IAAI;aACpB,CAAC;SACH;QAED,MAAA,IAAI,CAAC,gBAAgB,0CAAE,aAAa,CAAC;YACnC,MAAM,EAAE,MAAM;YACd,KAAK,kCACA,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,0CAAE,KAAK,KACzC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;oBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;oBAC3C,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,0CAAE,KAAK,0CAAE,IAAI,GACjD;YACD,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAES,aAAa;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC;QAC/B,MAAM,mBAAmB,GAAG,aAAa,IAAI,IAAI,CAAC;QAElD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,mBAAmB,EAAE;YACtD,OAAO;SACR;QAED,IAAI,OAAmC,CAAC;QACxC,IAAI,WAAqB,CAAC;QAC1B,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,QAAQ,GAAY,KAAK,CAAC;QAE9B,IAAA,2CAAgC,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,+BAAiB,CAAC,CAAC;QAE/F,IAAA,2CAAgC,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,6BAAgB,CAAC,CAAC;QAE7F,IAAI,UAAU,EAAE;YACd,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAwB,CAAC,CAAC,CAAC;YAC9D,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;YAC3C,SAAS,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,UAAU,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAwB,CAAC,CAAC,CAAC;YAC9D,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;YAC3C,SAAS,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,mBAAmB,EAAE;YAC9B,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAErC,WAAW,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;iBAC7C,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE;gBACrC,IAAI,EAAE,UAAU;aACjB,CAAC;iBACD,SAAS,CAAC;gBACT,IAAI,EAAE,mBAAmB;gBACzB,OAAO;aACR,CAAC,CAAC;YACL,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;gBACvC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAwB,CAAC,CAAC,CAAC;gBACtE,SAAS,GAAG,IAAI,CAAC;aAClB;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;gBACvC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAwB,CAAC,CAAC,CAAC;gBACtE,SAAS,GAAG,IAAI,CAAC;aAClB;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;gBACxC,OAAO,GAAG;oBACR,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM;oBACvC,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM;iBACxC,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC;aACjB;SACF;QAED,MAAM,IAAI,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE;YACxB,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QACH,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,mBAAmB;gBACzB,OAAO;aACR,CAAC,CAAC;SACJ;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,kBAAkB;gBACxB,OAAO;aACR,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;;AAlNH,4BAmNC;AAlNQ,aAAI,GAAG,6BAAiB,CAAC,QAAQ,CAAC;AAMlC,gBAAO,GAAG,UAAU,CAAC","file":"mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkLine, IMarkLineSpec, IMarkLineTheme } from './interface';\nimport { isNil, isArray } from '../../../util';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\nimport type { IOptionAggrs } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { xLayout, yLayout, coordinateLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { MarkLine as MarkLineComponent } from '@visactor/vrender-components';\nimport type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport type { INode } from '@visactor/vrender';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport type { IDataPos } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\nimport { LayoutZIndex } from '../../../constant';\nimport type { IRegion } from '../../../region/interface';\n\nexport class MarkLine extends BaseMarker<IMarkLineSpec & IMarkLineTheme> implements IMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.MarkLine;\n\n static speckey = 'markLine';\n\n protected declare _theme: IMarkLineTheme;\n\n protected declare _markerComponent: MarkLineComponent;\n\n static createComponent(spec: any, options: IComponentOption) {\n const markLineSpec = spec.markLine || options.defaultSpec;\n if (isNil(markLineSpec)) {\n return undefined;\n }\n if (!isArray(markLineSpec) && markLineSpec.visible !== false) {\n return new MarkLine(markLineSpec, { ...options, specKey: MarkLine.speckey });\n }\n const markLines: MarkLine[] = [];\n markLineSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n markLines.push(new MarkLine(m, { ...options, specIndex: i, specKey: MarkLine.speckey }));\n }\n });\n return markLines;\n }\n\n protected _createMarkerComponent() {\n const markLine = new MarkLineComponent({\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n {\n x: 0,\n y: 0\n },\n {\n x: 0,\n y: 0\n }\n ],\n lineStyle: transformToGraphic(this._spec?.line.style),\n startSymbol: {\n ...this._spec?.startSymbol,\n visible: this._spec.startSymbol?.visible,\n style: transformToGraphic(this._spec.startSymbol?.style)\n },\n endSymbol: {\n ...this._spec?.endSymbol,\n visible: this._spec.endSymbol?.visible,\n style: transformToGraphic(this._spec.endSymbol?.style)\n },\n label: {\n ...this._spec.label,\n padding: this._spec.label?.labelBackground?.padding,\n shape: {\n ...transformToGraphic(this._spec.label?.shape),\n visible: this._spec.label?.shape?.visible ?? false\n },\n panel: {\n ...transformToGraphic(this._spec.label?.labelBackground.style),\n visible: this._spec.label?.labelBackground?.visible ?? true\n },\n textStyle: transformToGraphic(this._spec.label?.style)\n }\n });\n this._markerComponent = markLine;\n this._markerComponent.name = 'markLine';\n this._markerComponent.id = this._spec.id ?? `markLine-${this.id}`;\n this.getContainer().add(this._markerComponent as unknown as INode);\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n // eslint-disable-next-line max-len\n const isXLayout =\n isValid(spec.x) || (isValid(spec.coordinates) && isValid(spec.process) && isValid(spec.process.x));\n // eslint-disable-next-line max-len\n const isYLayout =\n isValid(spec.y) || (isValid(spec.coordinates) && isValid(spec.process) && isValid(spec.process.y));\n const isCoordinateLayout =\n isValid(spec.coordinates) && (!isValid(spec.process) || ('process' in spec && 'xy' in spec.process));\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec?.autoRange ?? false;\n const isNeedClip = spec?.clip ?? false;\n\n let points: IPointLike[] = [];\n if (isXLayout) {\n points = xLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange)[0];\n } else if (isYLayout) {\n points = yLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange)[0];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange);\n } else if (isPositionLayout) {\n points = spec.positions;\n }\n\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n let clipRange;\n if (isNeedClip) {\n const { minX, maxX, minY, maxY } = this._computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n clipRange = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n this._markerComponent?.setAttributes({\n points: points,\n label: {\n ...this._markerComponent.attribute?.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints)\n : this._markerComponent.attribute?.label?.text\n },\n clipRange\n });\n }\n\n protected _initDataView(): void {\n const spec = this._spec;\n const relativeSeries = this._relativeSeries;\n const isXProcess = 'x' in spec;\n const isYProcess = 'y' in spec;\n const isCoordinateProcess = 'coordinates' in spec;\n\n if (!isXProcess && !isYProcess && !isCoordinateProcess) {\n return;\n }\n\n let options: IOptionAggrs | IOptionRegr;\n let processData: DataView;\n let needAgggr: boolean = false;\n let needRegr: boolean = false;\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n // eslint-disable-next-line no-undef\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n\n if (isXProcess) {\n options = [this._processSpecX(spec.x as unknown as IDataPos)];\n processData = relativeSeries.getViewData();\n needAgggr = true;\n } else if (isYProcess) {\n options = [this._processSpecY(spec.y as unknown as IDataPos)];\n processData = relativeSeries.getViewData();\n needAgggr = true;\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n\n processData = new DataView(this._option.dataSet)\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecX(spec.process.x as unknown as IDataPos)];\n needAgggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = [this._processSpecY(spec.process.y as unknown as IDataPos)];\n needAgggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n options = {\n fieldX: relativeSeries.getSpec().xField,\n fieldY: relativeSeries.getSpec().yField\n };\n needRegr = true;\n }\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([processData], {\n type: 'dataview'\n });\n if (needAgggr) {\n data.transform({\n type: 'markerAggregation',\n options\n });\n }\n if (needRegr) {\n data.transform({\n type: 'markerRegression',\n options\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/mark-line.ts"],"names":[],"mappings":"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","file":"mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkLine, IMarkLineSpec, IMarkLineTheme, IStepMarkLineSpec } from './interface';\nimport { isNil, isArray } from '../../../util';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { xLayout, yLayout, coordinateLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { MarkLine as MarkLineComponent } from '@visactor/vrender-components';\nimport type { IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport type { INode } from '@visactor/vrender';\nimport type { LayoutItem } from '../../../model/layout-item';\nimport type { IDataPos } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\nimport { LayoutZIndex } from '../../../constant';\nimport { getInsertPoints, getTextOffset } from './util';\n\nexport class MarkLine extends BaseMarker<IMarkLineSpec & IMarkLineTheme> implements IMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.MarkLine;\n\n static speckey = 'markLine';\n\n protected declare _theme: IMarkLineTheme;\n\n protected declare _markerComponent: MarkLineComponent;\n\n static createComponent(spec: any, options: IComponentOption) {\n const markLineSpec = spec.markLine || options.defaultSpec;\n if (isNil(markLineSpec)) {\n return undefined;\n }\n if (!isArray(markLineSpec) && markLineSpec.visible !== false) {\n return new MarkLine(markLineSpec, { ...options, specKey: MarkLine.speckey });\n }\n const markLines: MarkLine[] = [];\n markLineSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n markLines.push(new MarkLine(m, { ...options, specIndex: i, specKey: MarkLine.speckey }));\n }\n });\n return markLines;\n }\n\n protected _createMarkerComponent() {\n const markLine = new MarkLineComponent({\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n {\n x: 0,\n y: 0\n },\n {\n x: 0,\n y: 0\n }\n ],\n lineStyle: this._spec?.line.style as unknown as any,\n startSymbol: {\n ...this._spec?.startSymbol,\n visible: this._spec.startSymbol?.visible,\n style: transformToGraphic(this._spec.startSymbol?.style)\n },\n endSymbol: {\n ...this._spec?.endSymbol,\n visible: this._spec.endSymbol?.visible,\n style: transformToGraphic(this._spec.endSymbol?.style)\n },\n label: {\n ...this._spec.label,\n padding: this._spec.label?.labelBackground?.padding,\n shape: {\n ...transformToGraphic(this._spec.label?.shape),\n visible: this._spec.label?.shape?.visible ?? false\n },\n panel: {\n ...transformToGraphic(this._spec.label?.labelBackground.style),\n visible: this._spec.label?.labelBackground?.visible ?? true\n },\n textStyle: transformToGraphic(this._spec.label?.style)\n },\n clipInRange: this._spec.clip ?? false\n });\n this._markerComponent = markLine;\n this._markerComponent.name = 'markLine';\n this._markerComponent.id = this._spec.id ?? `markLine-${this.id}`;\n this.getContainer().add(this._markerComponent as unknown as INode);\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n // eslint-disable-next-line max-len\n const isXLayout =\n isValid(spec.x) || (isValid(spec.coordinates) && isValid(spec.process) && isValid(spec.process.x));\n // eslint-disable-next-line max-len\n const isYLayout =\n isValid(spec.y) || (isValid(spec.coordinates) && isValid(spec.process) && isValid(spec.process.y));\n const isCoordinateLayout =\n isValid(spec.coordinates) && (!isValid(spec.process) || ('process' in spec && 'xy' in spec.process));\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPointLike[] = [];\n if (isXLayout) {\n points = xLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange)[0];\n } else if (isYLayout) {\n points = yLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange)[0];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange);\n } else if (isPositionLayout) {\n points = spec.positions;\n }\n\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const seriesData = this._relativeSeries.getViewData().latestData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = this._computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n const labelAttrs = {\n ...this._markerComponent?.attribute?.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, seriesData)\n : this._markerComponent?.attribute?.label?.text\n };\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n const joinPoints = getInsertPoints(points[0], points[1], connectDirection, expandDistance);\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset(points[0], points[1], connectDirection, expandDistance),\n efX: 0,\n refY: 0\n };\n }\n\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...labelAttrs,\n ...labelPositionAttrs,\n textStyle: {\n ...this._markerComponent?.attribute?.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this.layoutOffsetX,\n dy: this.layoutOffsetY\n });\n } else {\n this._markerComponent?.setAttributes({\n points: points,\n label: labelAttrs,\n limitRect,\n dx: this.layoutOffsetX,\n dy: this.layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec;\n const relativeSeries = this._relativeSeries;\n const isXProcess = 'x' in spec;\n const isYProcess = 'y' in spec;\n const isCoordinateProcess = 'coordinates' in spec;\n\n if (!isXProcess && !isYProcess && !isCoordinateProcess) {\n return;\n }\n\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView;\n let needAgggr: boolean = false;\n let needRegr: boolean = false;\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n // eslint-disable-next-line no-undef\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n\n if (isXProcess) {\n options = [this._processSpecX(spec.x as unknown as IDataPos)];\n processData = relativeSeries.getViewData();\n needAgggr = true;\n } else if (isYProcess) {\n options = [this._processSpecY(spec.y as unknown as IDataPos)];\n processData = relativeSeries.getViewData();\n needAgggr = true;\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n\n processData = new DataView(this._option.dataSet)\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecX(spec.process.x as unknown as IDataPos)];\n needAgggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = [this._processSpecY(spec.process.y as unknown as IDataPos)];\n needAgggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([processData], {\n type: 'dataview'\n });\n if (needAgggr) {\n data.transform({\n type: 'markerAggregation',\n options\n });\n }\n if (needRegr) {\n data.transform({\n type: 'markerRegression',\n options\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { IPointLike } from '@visactor/vutils';
2
+ export declare function getInsertPoints(start: IPointLike, end: IPointLike, direction: 'top' | 'bottom' | 'left' | 'right', offset?: number): IPointLike[];
3
+ export declare function getTextOffset(start: IPointLike, end: IPointLike, direction: 'top' | 'bottom' | 'left' | 'right', offset?: number): {
4
+ dx: number;
5
+ dy: number;
6
+ } | {
7
+ dx?: undefined;
8
+ dy?: undefined;
9
+ };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ function getInsertPoints(start, end, direction, offset = 0) {
4
+ const points = [], dy = start.y - end.y, dx = start.x - end.x;
5
+ switch (direction) {
6
+ case "top":
7
+ points.push(start), points.push({
8
+ x: start.x,
9
+ y: dy > 0 ? start.y - offset - Math.abs(dy) : start.y - offset
10
+ }), points.push({
11
+ x: end.x,
12
+ y: dy > 0 ? end.y - offset : end.y - offset - Math.abs(dy)
13
+ }), points.push(end);
14
+ break;
15
+
16
+ case "bottom":
17
+ points.push(start), points.push({
18
+ x: start.x,
19
+ y: dy < 0 ? start.y + offset + Math.abs(dy) : start.y + offset
20
+ }), points.push({
21
+ x: end.x,
22
+ y: dy < 0 ? end.y + offset : end.y + offset + Math.abs(dy)
23
+ }), points.push(end);
24
+ break;
25
+
26
+ case "left":
27
+ points.push(start), points.push({
28
+ x: dx > 0 ? start.x - offset - Math.abs(dx) : start.x - offset,
29
+ y: start.y
30
+ }), points.push({
31
+ x: dx > 0 ? end.x - offset : end.x - offset - Math.abs(dx),
32
+ y: end.y
33
+ }), points.push(end);
34
+ break;
35
+
36
+ case "right":
37
+ points.push(start), points.push({
38
+ x: dx > 0 ? start.x + offset : start.x + offset + Math.abs(dx),
39
+ y: start.y
40
+ }), points.push({
41
+ x: dx > 0 ? end.x + offset + Math.abs(dx) : end.x + offset,
42
+ y: end.y
43
+ }), points.push(end);
44
+ }
45
+ return points;
46
+ }
47
+
48
+ function getTextOffset(start, end, direction, offset = 0) {
49
+ const dy = start.y - end.y, dx = start.x - end.x;
50
+ return "bottom" === direction ? {
51
+ dx: dx > 0 ? -dx / 2 : Math.abs(dx / 2),
52
+ dy: dy > 0 ? offset : Math.abs(dy) + offset
53
+ } : "top" === direction ? {
54
+ dx: dx > 0 ? -Math.abs(dx / 2) : +Math.abs(dx / 2),
55
+ dy: dy > 0 ? -(Math.abs(dy) + offset) : -offset
56
+ } : "left" === direction ? {
57
+ dx: dx > 0 ? -dx - offset : -offset,
58
+ dy: dy > 0 ? -dy / 2 : Math.abs(dy / 2)
59
+ } : "right" === direction ? {
60
+ dx: dx > 0 ? offset : Math.abs(dx) + offset,
61
+ dy: dy > 0 ? -dy / 2 : Math.abs(dy / 2)
62
+ } : {};
63
+ }
64
+
65
+ Object.defineProperty(exports, "__esModule", {
66
+ value: !0
67
+ }), exports.getTextOffset = exports.getInsertPoints = void 0, exports.getInsertPoints = getInsertPoints,
68
+ exports.getTextOffset = getTextOffset;
69
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/component/marker/mark-line/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\n\nexport function getInsertPoints(\n start: IPointLike,\n end: IPointLike,\n direction: 'top' | 'bottom' | 'left' | 'right',\n offset: number = 0\n) {\n const points: IPointLike[] = [];\n const dy = start.y - end.y;\n const dx = start.x - end.x;\n\n switch (direction) {\n case 'top':\n points.push(start);\n points.push({\n x: start.x,\n y: dy > 0 ? start.y - offset - Math.abs(dy) : start.y - offset\n });\n points.push({\n x: end.x,\n y: dy > 0 ? end.y - offset : end.y - offset - Math.abs(dy)\n });\n points.push(end);\n break;\n case 'bottom':\n points.push(start);\n points.push({ x: start.x, y: dy < 0 ? start.y + offset + Math.abs(dy) : start.y + offset });\n points.push({ x: end.x, y: dy < 0 ? end.y + offset : end.y + offset + Math.abs(dy) });\n points.push(end);\n break;\n case 'left':\n points.push(start);\n points.push({\n x: dx > 0 ? start.x - offset - Math.abs(dx) : start.x - offset,\n y: start.y\n });\n points.push({\n x: dx > 0 ? end.x - offset : end.x - offset - Math.abs(dx),\n y: end.y\n });\n points.push(end);\n break;\n case 'right':\n points.push(start);\n points.push({\n x: dx > 0 ? start.x + offset : start.x + offset + Math.abs(dx),\n y: start.y\n });\n points.push({\n x: dx > 0 ? end.x + offset + Math.abs(dx) : end.x + offset,\n y: end.y\n });\n points.push(end);\n break;\n default:\n break;\n }\n return points;\n}\n\nexport function getTextOffset(\n start: IPointLike,\n end: IPointLike,\n direction: 'top' | 'bottom' | 'left' | 'right',\n offset: number = 0\n) {\n const dy = start.y - end.y;\n const dx = start.x - end.x;\n\n if (direction === 'bottom') {\n return {\n dx: dx > 0 ? -dx / 2 : Math.abs(dx / 2),\n dy: dy > 0 ? offset : Math.abs(dy) + offset\n };\n }\n\n if (direction === 'top') {\n return {\n dx: dx > 0 ? -Math.abs(dx / 2) : +Math.abs(dx / 2),\n dy: dy > 0 ? -(Math.abs(dy) + offset) : -offset\n };\n }\n\n if (direction === 'left') {\n return {\n dx: dx > 0 ? -dx - offset : -offset,\n dy: dy > 0 ? -(dy / 2) : Math.abs(dy / 2)\n };\n }\n\n if (direction === 'right') {\n return {\n dx: dx > 0 ? offset : Math.abs(dx) + offset,\n dy: dy > 0 ? -(dy / 2) : Math.abs(dy / 2)\n };\n }\n\n return {};\n}\n"]}
@@ -26,7 +26,7 @@ class MarkPoint extends base_marker_1.BaseMarker {
26
26
  })), markPoints;
27
27
  }
28
28
  _createMarkerComponent() {
29
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
29
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
30
30
  const markPoint = new vrender_components_1.MarkPoint({
31
31
  zIndex: this.layoutZIndex,
32
32
  interactive: null !== (_a = this._spec.interactive) && void 0 !== _a && _a,
@@ -51,35 +51,38 @@ class MarkPoint extends base_marker_1.BaseMarker {
51
51
  textStyle: (0, style_1.transformToGraphic)(null === (_1 = null === (_0 = this._spec.itemContent) || void 0 === _0 ? void 0 : _0.text) || void 0 === _1 ? void 0 : _1.style)
52
52
  }),
53
53
  richTextStyle: null === (_3 = null === (_2 = this._spec.itemContent) || void 0 === _2 ? void 0 : _2.richText) || void 0 === _3 ? void 0 : _3.style
54
- }, this._spec.itemContent)
54
+ }, this._spec.itemContent),
55
+ clipInRange: null !== (_4 = this._spec.clip) && void 0 !== _4 && _4
55
56
  });
56
- this._markerComponent = markPoint, this._markerComponent.name = "markPoint", this._markerComponent.id = null !== (_4 = this._spec.id) && void 0 !== _4 ? _4 : `markPoint-${this.id}`,
57
+ this._markerComponent = markPoint, this._markerComponent.name = "markPoint", this._markerComponent.id = null !== (_5 = this._spec.id) && void 0 !== _5 ? _5 : `markPoint-${this.id}`,
57
58
  this.getContainer().add(this._markerComponent);
58
59
  }
59
60
  _markerLayout() {
60
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
61
- const spec = this._spec, data = this._markerData, relativeSeries = this._relativeSeries, isCoordinateLayout = "coordinate" in spec, isPositionLayout = "position" in spec, autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a, isNeedClip = null !== (_b = null == spec ? void 0 : spec.clip) && void 0 !== _b && _b;
61
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
62
+ const spec = this._spec, data = this._markerData, relativeSeries = this._relativeSeries, isCoordinateLayout = "coordinate" in spec, isPositionLayout = "position" in spec, autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a;
62
63
  let point;
63
64
  isCoordinateLayout ? point = (0, utils_1.coordinateLayout)(data, relativeSeries, autoRange)[0] : isPositionLayout && (point = spec.position);
64
65
  const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;
65
- let clipRange;
66
- if (isNeedClip) {
66
+ let limitRect;
67
+ if (spec.clip) {
67
68
  const {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = this._computeClipRange([ relativeSeries.getRegion() ]);
68
- clipRange = {
69
+ limitRect = {
69
70
  x: minX,
70
71
  y: minY,
71
72
  width: maxX - minX,
72
73
  height: maxY - minY
73
74
  };
74
75
  }
75
- null === (_c = this._markerComponent) || void 0 === _c || _c.setAttributes({
76
+ null === (_b = this._markerComponent) || void 0 === _b || _b.setAttributes({
76
77
  position: point,
77
- itemContent: Object.assign(Object.assign({}, null === (_d = this._markerComponent.attribute) || void 0 === _d ? void 0 : _d.itemContent), {
78
- textStyle: Object.assign(Object.assign({}, null === (_f = null === (_e = this._markerComponent.attribute) || void 0 === _e ? void 0 : _e.itemContent) || void 0 === _f ? void 0 : _f.textStyle), {
79
- text: (null === (_g = this._spec.itemContent.text) || void 0 === _g ? void 0 : _g.formatMethod) ? this._spec.itemContent.text.formatMethod(dataPoints) : null === (_k = null === (_j = null === (_h = this._markerComponent.attribute) || void 0 === _h ? void 0 : _h.itemContent) || void 0 === _j ? void 0 : _j.textStyle) || void 0 === _k ? void 0 : _k.text
78
+ itemContent: Object.assign(Object.assign({}, null === (_d = null === (_c = this._markerComponent) || void 0 === _c ? void 0 : _c.attribute) || void 0 === _d ? void 0 : _d.itemContent), {
79
+ textStyle: Object.assign(Object.assign({}, null === (_g = null === (_f = null === (_e = this._markerComponent) || void 0 === _e ? void 0 : _e.attribute) || void 0 === _f ? void 0 : _f.itemContent) || void 0 === _g ? void 0 : _g.textStyle), {
80
+ text: (null === (_h = this._spec.itemContent.text) || void 0 === _h ? void 0 : _h.formatMethod) ? this._spec.itemContent.text.formatMethod(dataPoints, this._relativeSeries.getViewData().latestData) : null === (_m = null === (_l = null === (_k = null === (_j = this._markerComponent) || void 0 === _j ? void 0 : _j.attribute) || void 0 === _k ? void 0 : _k.itemContent) || void 0 === _l ? void 0 : _l.textStyle) || void 0 === _m ? void 0 : _m.text
80
81
  })
81
82
  }),
82
- clipRange: clipRange
83
+ limitRect: limitRect,
84
+ dx: this.layoutOffsetX,
85
+ dy: this.layoutOffsetY
83
86
  });
84
87
  }
85
88
  _initDataView() {