@visactor/vchart 2.1.0-alpha.2 → 2.1.0-alpha.20

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 (320) hide show
  1. package/build/es5/index.js +3 -3
  2. package/build/index.es.js +19187 -25472
  3. package/build/index.js +19189 -25474
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/base/base-chart-transformer.d.ts +0 -3
  7. package/cjs/chart/base/base-chart-transformer.js +1 -21
  8. package/cjs/chart/base/base-chart-transformer.js.map +1 -1
  9. package/cjs/chart/base/base-chart.d.ts +9 -15
  10. package/cjs/chart/base/base-chart.js +24 -115
  11. package/cjs/chart/base/base-chart.js.map +1 -1
  12. package/cjs/chart/interface/chart.d.ts +0 -1
  13. package/cjs/chart/interface/chart.js.map +1 -1
  14. package/cjs/chart/pie/base/pie-transformer.js +2 -2
  15. package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
  16. package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -2
  17. package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  18. package/cjs/chart/util.d.ts +1 -4
  19. package/cjs/chart/util.js +4 -40
  20. package/cjs/chart/util.js.map +1 -1
  21. package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
  22. package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
  23. package/cjs/compile/compiler.d.ts +0 -2
  24. package/cjs/compile/compiler.js +40 -53
  25. package/cjs/compile/compiler.js.map +1 -1
  26. package/cjs/compile/data/compilable-data.d.ts +1 -1
  27. package/cjs/compile/data/compilable-data.js +1 -1
  28. package/cjs/compile/data/compilable-data.js.map +1 -1
  29. package/cjs/compile/grammar-item.d.ts +1 -1
  30. package/cjs/compile/grammar-item.js.map +1 -1
  31. package/cjs/compile/interface/compilable-item.d.ts +1 -1
  32. package/cjs/compile/interface/compilable-item.js.map +1 -1
  33. package/cjs/compile/interface/compiler.d.ts +1 -2
  34. package/cjs/compile/interface/compiler.js.map +1 -1
  35. package/cjs/component/axis/base-axis.d.ts +7 -2
  36. package/cjs/component/axis/base-axis.js +3 -25
  37. package/cjs/component/axis/base-axis.js.map +1 -1
  38. package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
  39. package/cjs/component/base/base-component.d.ts +7 -7
  40. package/cjs/component/base/base-component.js +6 -41
  41. package/cjs/component/base/base-component.js.map +1 -1
  42. package/cjs/component/brush/brush.d.ts +7 -2
  43. package/cjs/component/brush/brush.js +12 -16
  44. package/cjs/component/brush/brush.js.map +1 -1
  45. package/cjs/component/crosshair/base.d.ts +7 -1
  46. package/cjs/component/custom-mark/custom-mark.d.ts +7 -1
  47. package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -1
  48. package/cjs/component/geo/geo-coordinate.d.ts +7 -1
  49. package/cjs/component/index.js +2 -1
  50. package/cjs/component/label/base-label.d.ts +7 -1
  51. package/cjs/component/label/label.js +1 -1
  52. package/cjs/component/label/label.js.map +1 -1
  53. package/cjs/component/legend/base-legend.d.ts +7 -2
  54. package/cjs/component/legend/base-legend.js +4 -21
  55. package/cjs/component/legend/base-legend.js.map +1 -1
  56. package/cjs/component/marker/base-marker.d.ts +7 -7
  57. package/cjs/component/marker/base-marker.js +6 -23
  58. package/cjs/component/marker/base-marker.js.map +1 -1
  59. package/cjs/component/marker/mark-line/base-mark-line.js +4 -2
  60. package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
  61. package/cjs/component/marker/mark-line/cartesian-mark-line.js +18 -7
  62. package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  63. package/cjs/component/marker/mark-line/interface/spec.d.ts +9 -2
  64. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  65. package/cjs/component/title/title.d.ts +7 -1
  66. package/cjs/component/title/title.js +2 -6
  67. package/cjs/component/title/title.js.map +1 -1
  68. package/cjs/component/util.js +1 -2
  69. package/cjs/constant/scatter.js +2 -1
  70. package/cjs/constant/scroll-bar.js +1 -2
  71. package/cjs/core/instance-manager.js +1 -1
  72. package/cjs/core/vchart.d.ts +1 -5
  73. package/cjs/core/vchart.js +12 -28
  74. package/cjs/core/vchart.js.map +1 -1
  75. package/cjs/interaction/interaction.js +8 -11
  76. package/cjs/interaction/interaction.js.map +1 -1
  77. package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
  78. package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
  79. package/cjs/interaction/triggers/element-active.js +3 -4
  80. package/cjs/interaction/triggers/element-active.js.map +1 -1
  81. package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
  82. package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
  83. package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
  84. package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  85. package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
  86. package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
  87. package/cjs/interaction/triggers/element-highlight.js +2 -2
  88. package/cjs/interaction/triggers/element-highlight.js.map +1 -1
  89. package/cjs/interaction/triggers/element-select.js +3 -3
  90. package/cjs/interaction/triggers/element-select.js.map +1 -1
  91. package/cjs/mark/base/base-line.js +2 -2
  92. package/cjs/mark/base/base-line.js.map +1 -1
  93. package/cjs/mark/base/base-mark.d.ts +2 -13
  94. package/cjs/mark/base/base-mark.js +23 -101
  95. package/cjs/mark/base/base-mark.js.map +1 -1
  96. package/cjs/mark/component.d.ts +0 -9
  97. package/cjs/mark/component.js +3 -51
  98. package/cjs/mark/component.js.map +1 -1
  99. package/cjs/mark/group.js +1 -1
  100. package/cjs/mark/group.js.map +1 -1
  101. package/cjs/mark/interface/mark.d.ts +0 -2
  102. package/cjs/mark/interface/mark.js.map +1 -1
  103. package/cjs/mark/utils/glyph.js +2 -3
  104. package/cjs/mark/utils/glyph.js.map +1 -1
  105. package/cjs/model/base-model.d.ts +15 -3
  106. package/cjs/model/base-model.js.map +1 -1
  107. package/cjs/model/interface.d.ts +0 -13
  108. package/cjs/model/interface.js.map +1 -1
  109. package/cjs/region/region.d.ts +7 -1
  110. package/cjs/series/area/area.d.ts +0 -2
  111. package/cjs/series/area/area.js +0 -6
  112. package/cjs/series/area/area.js.map +1 -1
  113. package/cjs/series/bar/bar.d.ts +0 -3
  114. package/cjs/series/bar/bar.js +4 -30
  115. package/cjs/series/bar/bar.js.map +1 -1
  116. package/cjs/series/base/base-series.d.ts +7 -8
  117. package/cjs/series/base/base-series.js +13 -54
  118. package/cjs/series/base/base-series.js.map +1 -1
  119. package/cjs/series/base/constant.d.ts +0 -3
  120. package/cjs/series/base/constant.js +1 -9
  121. package/cjs/series/base/constant.js.map +1 -1
  122. package/cjs/series/box-plot/box-plot.d.ts +0 -2
  123. package/cjs/series/box-plot/box-plot.js +2 -14
  124. package/cjs/series/box-plot/box-plot.js.map +1 -1
  125. package/cjs/series/heatmap/heatmap.d.ts +0 -2
  126. package/cjs/series/heatmap/heatmap.js +0 -10
  127. package/cjs/series/heatmap/heatmap.js.map +1 -1
  128. package/cjs/series/line/line.d.ts +0 -2
  129. package/cjs/series/line/line.js +0 -6
  130. package/cjs/series/line/line.js.map +1 -1
  131. package/cjs/series/mixin/line-mixin.d.ts +0 -1
  132. package/cjs/series/mixin/line-mixin.js +1 -6
  133. package/cjs/series/mixin/line-mixin.js.map +1 -1
  134. package/cjs/series/pie/pie.d.ts +7 -3
  135. package/cjs/series/pie/pie.js +1 -16
  136. package/cjs/series/pie/pie.js.map +1 -1
  137. package/cjs/series/progress/circular/circular.d.ts +0 -2
  138. package/cjs/series/progress/circular/circular.js +1 -9
  139. package/cjs/series/progress/circular/circular.js.map +1 -1
  140. package/cjs/series/progress/linear/linear.d.ts +0 -2
  141. package/cjs/series/progress/linear/linear.js +1 -17
  142. package/cjs/series/progress/linear/linear.js.map +1 -1
  143. package/cjs/series/sankey/sankey.js +24 -32
  144. package/cjs/series/sankey/sankey.js.map +1 -1
  145. package/cjs/series/scatter/scatter.d.ts +0 -2
  146. package/cjs/series/scatter/scatter.js +1 -9
  147. package/cjs/series/scatter/scatter.js.map +1 -1
  148. package/cjs/series/waterfall/waterfall.d.ts +2 -2
  149. package/cjs/series/waterfall/waterfall.js +12 -14
  150. package/cjs/series/waterfall/waterfall.js.map +1 -1
  151. package/esm/chart/base/base-chart-transformer.d.ts +0 -3
  152. package/esm/chart/base/base-chart-transformer.js +0 -22
  153. package/esm/chart/base/base-chart-transformer.js.map +1 -1
  154. package/esm/chart/base/base-chart.d.ts +9 -15
  155. package/esm/chart/base/base-chart.js +23 -111
  156. package/esm/chart/base/base-chart.js.map +1 -1
  157. package/esm/chart/interface/chart.d.ts +0 -1
  158. package/esm/chart/interface/chart.js.map +1 -1
  159. package/esm/chart/pie/base/pie-transformer.js +2 -2
  160. package/esm/chart/pie/base/pie-transformer.js.map +1 -1
  161. package/esm/chart/progress/circular/circular-progress-transformer.js +2 -2
  162. package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
  163. package/esm/chart/util.d.ts +1 -4
  164. package/esm/chart/util.js +1 -34
  165. package/esm/chart/util.js.map +1 -1
  166. package/esm/chart/waterfall/waterfall-transformer.js +1 -2
  167. package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
  168. package/esm/compile/compiler.d.ts +0 -2
  169. package/esm/compile/compiler.js +39 -55
  170. package/esm/compile/compiler.js.map +1 -1
  171. package/esm/compile/data/compilable-data.d.ts +1 -1
  172. package/esm/compile/data/compilable-data.js +1 -1
  173. package/esm/compile/data/compilable-data.js.map +1 -1
  174. package/esm/compile/grammar-item.d.ts +1 -1
  175. package/esm/compile/grammar-item.js.map +1 -1
  176. package/esm/compile/interface/compilable-item.d.ts +1 -1
  177. package/esm/compile/interface/compilable-item.js.map +1 -1
  178. package/esm/compile/interface/compiler.d.ts +1 -2
  179. package/esm/compile/interface/compiler.js.map +1 -1
  180. package/esm/component/axis/base-axis.d.ts +7 -2
  181. package/esm/component/axis/base-axis.js +2 -25
  182. package/esm/component/axis/base-axis.js.map +1 -1
  183. package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
  184. package/esm/component/base/base-component.d.ts +7 -7
  185. package/esm/component/base/base-component.js +5 -41
  186. package/esm/component/base/base-component.js.map +1 -1
  187. package/esm/component/brush/brush.d.ts +7 -2
  188. package/esm/component/brush/brush.js +7 -12
  189. package/esm/component/brush/brush.js.map +1 -1
  190. package/esm/component/crosshair/base.d.ts +7 -1
  191. package/esm/component/custom-mark/custom-mark.d.ts +7 -1
  192. package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -1
  193. package/esm/component/geo/geo-coordinate.d.ts +7 -1
  194. package/esm/component/index.js +2 -1
  195. package/esm/component/label/base-label.d.ts +7 -1
  196. package/esm/component/label/label.js +1 -1
  197. package/esm/component/label/label.js.map +1 -1
  198. package/esm/component/legend/base-legend.d.ts +7 -2
  199. package/esm/component/legend/base-legend.js +3 -21
  200. package/esm/component/legend/base-legend.js.map +1 -1
  201. package/esm/component/marker/base-marker.d.ts +7 -7
  202. package/esm/component/marker/base-marker.js +5 -24
  203. package/esm/component/marker/base-marker.js.map +1 -1
  204. package/esm/component/marker/mark-line/base-mark-line.js +4 -2
  205. package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
  206. package/esm/component/marker/mark-line/cartesian-mark-line.js +18 -8
  207. package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
  208. package/esm/component/marker/mark-line/interface/spec.d.ts +9 -2
  209. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  210. package/esm/component/title/title.d.ts +7 -1
  211. package/esm/component/title/title.js +2 -6
  212. package/esm/component/title/title.js.map +1 -1
  213. package/esm/component/util.js +1 -2
  214. package/esm/constant/scatter.js +2 -1
  215. package/esm/constant/scroll-bar.js +1 -2
  216. package/esm/core/instance-manager.js +1 -1
  217. package/esm/core/vchart.d.ts +1 -5
  218. package/esm/core/vchart.js +12 -29
  219. package/esm/core/vchart.js.map +1 -1
  220. package/esm/interaction/interaction.js +8 -10
  221. package/esm/interaction/interaction.js.map +1 -1
  222. package/esm/interaction/triggers/element-active-by-legend.js +1 -3
  223. package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
  224. package/esm/interaction/triggers/element-active.js +2 -4
  225. package/esm/interaction/triggers/element-active.js.map +1 -1
  226. package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
  227. package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
  228. package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
  229. package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
  230. package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
  231. package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
  232. package/esm/interaction/triggers/element-highlight.js +1 -3
  233. package/esm/interaction/triggers/element-highlight.js.map +1 -1
  234. package/esm/interaction/triggers/element-select.js +2 -4
  235. package/esm/interaction/triggers/element-select.js.map +1 -1
  236. package/esm/mark/base/base-line.js +2 -2
  237. package/esm/mark/base/base-line.js.map +1 -1
  238. package/esm/mark/base/base-mark.d.ts +2 -13
  239. package/esm/mark/base/base-mark.js +22 -102
  240. package/esm/mark/base/base-mark.js.map +1 -1
  241. package/esm/mark/component.d.ts +0 -9
  242. package/esm/mark/component.js +2 -51
  243. package/esm/mark/component.js.map +1 -1
  244. package/esm/mark/group.js +1 -1
  245. package/esm/mark/group.js.map +1 -1
  246. package/esm/mark/interface/mark.d.ts +0 -2
  247. package/esm/mark/interface/mark.js.map +1 -1
  248. package/esm/mark/utils/glyph.js +1 -3
  249. package/esm/mark/utils/glyph.js.map +1 -1
  250. package/esm/model/base-model.d.ts +15 -3
  251. package/esm/model/base-model.js.map +1 -1
  252. package/esm/model/interface.d.ts +0 -13
  253. package/esm/model/interface.js.map +1 -1
  254. package/esm/region/region.d.ts +7 -1
  255. package/esm/series/area/area.d.ts +0 -2
  256. package/esm/series/area/area.js +1 -7
  257. package/esm/series/area/area.js.map +1 -1
  258. package/esm/series/bar/bar.d.ts +0 -3
  259. package/esm/series/bar/bar.js +4 -30
  260. package/esm/series/bar/bar.js.map +1 -1
  261. package/esm/series/base/base-series.d.ts +7 -8
  262. package/esm/series/base/base-series.js +11 -50
  263. package/esm/series/base/base-series.js.map +1 -1
  264. package/esm/series/base/constant.d.ts +0 -3
  265. package/esm/series/base/constant.js +0 -10
  266. package/esm/series/base/constant.js.map +1 -1
  267. package/esm/series/box-plot/box-plot.d.ts +0 -2
  268. package/esm/series/box-plot/box-plot.js +2 -13
  269. package/esm/series/box-plot/box-plot.js.map +1 -1
  270. package/esm/series/heatmap/heatmap.d.ts +0 -2
  271. package/esm/series/heatmap/heatmap.js +0 -10
  272. package/esm/series/heatmap/heatmap.js.map +1 -1
  273. package/esm/series/line/line.d.ts +0 -2
  274. package/esm/series/line/line.js +1 -7
  275. package/esm/series/line/line.js.map +1 -1
  276. package/esm/series/mixin/line-mixin.d.ts +0 -1
  277. package/esm/series/mixin/line-mixin.js +0 -5
  278. package/esm/series/mixin/line-mixin.js.map +1 -1
  279. package/esm/series/pie/pie.d.ts +7 -3
  280. package/esm/series/pie/pie.js +0 -17
  281. package/esm/series/pie/pie.js.map +1 -1
  282. package/esm/series/progress/circular/circular.d.ts +0 -2
  283. package/esm/series/progress/circular/circular.js +0 -10
  284. package/esm/series/progress/circular/circular.js.map +1 -1
  285. package/esm/series/progress/linear/linear.d.ts +0 -2
  286. package/esm/series/progress/linear/linear.js +0 -18
  287. package/esm/series/progress/linear/linear.js.map +1 -1
  288. package/esm/series/sankey/sankey.js +21 -25
  289. package/esm/series/sankey/sankey.js.map +1 -1
  290. package/esm/series/scatter/scatter.d.ts +0 -2
  291. package/esm/series/scatter/scatter.js +0 -10
  292. package/esm/series/scatter/scatter.js.map +1 -1
  293. package/esm/series/waterfall/waterfall.d.ts +2 -2
  294. package/esm/series/waterfall/waterfall.js +12 -14
  295. package/esm/series/waterfall/waterfall.js.map +1 -1
  296. package/package.json +8 -10
  297. package/cjs/compile/stage-app.d.ts +0 -9
  298. package/cjs/compile/stage-app.js +0 -39
  299. package/cjs/compile/stage-app.js.map +0 -1
  300. package/cjs/component/base/release-vrender-component.d.ts +0 -10
  301. package/cjs/component/base/release-vrender-component.js +0 -37
  302. package/cjs/component/base/release-vrender-component.js.map +0 -1
  303. package/cjs/data/data-view-utils.d.ts +0 -5
  304. package/cjs/data/data-view-utils.js +0 -58
  305. package/cjs/data/data-view-utils.js.map +0 -1
  306. package/cjs/util/graphic-state.d.ts +0 -4
  307. package/cjs/util/graphic-state.js +0 -40
  308. package/cjs/util/graphic-state.js.map +0 -1
  309. package/esm/compile/stage-app.d.ts +0 -9
  310. package/esm/compile/stage-app.js +0 -35
  311. package/esm/compile/stage-app.js.map +0 -1
  312. package/esm/component/base/release-vrender-component.d.ts +0 -10
  313. package/esm/component/base/release-vrender-component.js +0 -24
  314. package/esm/component/base/release-vrender-component.js.map +0 -1
  315. package/esm/data/data-view-utils.d.ts +0 -5
  316. package/esm/data/data-view-utils.js +0 -46
  317. package/esm/data/data-view-utils.js.map +0 -1
  318. package/esm/util/graphic-state.d.ts +0 -4
  319. package/esm/util/graphic-state.js +0 -30
  320. package/esm/util/graphic-state.js.map +0 -1
@@ -1,9 +1,11 @@
1
+ import type { DataView } from '@visactor/vdataset';
1
2
  import type { IComponent } from '../../../interface';
2
- import type { IAggrType, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IDataPos, IDataPosCallback, IMarkerLabelSpec, IMarkerCrossSeriesSpec, OffsetPoint, MarkerStateValue, MarkerStateCallback, IMarkerSupportSeries } from '../../interface';
3
+ import type { IAggrType, IMarkerAttributeContext, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IDataPos, IDataPosCallback, IMarkerLabelSpec, IMarkerCrossSeriesSpec, OffsetPoint, MarkerStateValue, MarkerStateCallback, IMarkerSupportSeries } from '../../interface';
3
4
  import type { IRegressType } from '../../mark-area/interface';
4
5
  import type { IMarkLineTheme } from './theme';
5
6
  import type { Datum, ILineMarkSpec, IPoint } from '../../../../typings';
6
7
  import type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components';
8
+ import type { IRegion } from '../../../../region/interface';
7
9
  export type IMarkLine = IComponent;
8
10
  export type IMarkLineSpec = (IMarkerSpec & (IMarkLineXSpec | IMarkLineYSpec | IMarkLineXYSpec | IMarkLineXYY1Spec | IMarkLineYXX1Spec | IMarkLineAngleSpec | IMarkLineRadiusSpec | IMarkLineAngRadRad1Spec | IMarkLineRadAngAng1Spec | IMarkLineAngRadSpec | IMarkLineCoordinateSpec | IMarkerPositionsSpec) & IMarkLineTheme & BaseMarkerAnimation<MarkCommonLineAnimationType>) | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>);
9
11
  export interface IMarkLineXSpec extends IMarkerCrossSeriesSpec {
@@ -64,7 +66,12 @@ export type IMarkLineCoordinateSpec = {
64
66
  export type IStepMarkLineSpec = IMarkerSpec & {
65
67
  type: 'type-step';
66
68
  connectDirection: 'top' | 'bottom' | 'left' | 'right';
67
- expandDistance?: number | string;
69
+ expandDistance?: number | string | ((markerData: DataView, context: IMarkerAttributeContext & {
70
+ region: IRegion;
71
+ startRegion: IRegion;
72
+ endRegion: IRegion;
73
+ coordinatePoints: IPoint[];
74
+ }) => number | string);
68
75
  label?: IMarkerLabelSpec;
69
76
  line?: {
70
77
  multiSegment?: boolean;
@@ -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 IDataPos,\n IDataPosCallback,\n IMarkerLabelSpec,\n IMarkerCrossSeriesSpec,\n OffsetPoint,\n MarkerStateValue,\n MarkerStateCallback,\n IMarkerSupportSeries\n} from '../../interface';\nimport type { IRegressType } from '../../mark-area/interface';\nimport type { IMarkLineTheme } from './theme';\nimport type { Datum, ILineMarkSpec, IPoint } from '../../../../typings';\nimport type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components';\n\nexport type IMarkLine = IComponent;\n\n/**\n * 辅助线配置,一般用于展示图表的趋势线、平均线等\n */\nexport type IMarkLineSpec =\n | (IMarkerSpec &\n /**\n * 标注目标:笛卡尔坐标系坐标空间\n */\n (| IMarkLineXSpec\n | IMarkLineYSpec\n | IMarkLineXYSpec\n | IMarkLineXYY1Spec\n | IMarkLineYXX1Spec\n /**\n * 标注目标: 极坐标系\n * @since 1.11.0\n */\n | IMarkLineAngleSpec\n | IMarkLineRadiusSpec\n | IMarkLineAngRadRad1Spec\n | IMarkLineRadAngAng1Spec\n | IMarkLineAngRadSpec\n // 标注目标:数据元素\n | IMarkLineCoordinateSpec\n // 标注目标: 任意位置\n | IMarkerPositionsSpec\n ) &\n IMarkLineTheme &\n /**\n * 动画配置\n * @since 1.11.0\n */\n BaseMarkerAnimation<MarkCommonLineAnimationType>)\n | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>); // 标注目标:任意位置\n\nexport interface IMarkLineXSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 x 属性,可以绘制一条贯穿 y 轴的标注线\n * x 轴上的参考线。可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYY1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 y 属性,可以绘制一条贯穿 x 轴的标注线\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYXX1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 y 轴上位置,可以配置参考线在 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的起点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线起始点在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线起始点在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngleSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadRad1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadAngAng1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkLineCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]);\n /**\n * 对每个数据点转化后的画布坐标点进行偏移,该偏移值可以是像素值,也可以是 string 类型,如 '20%' 代表百分比\n * 每个元素对应一个坐标点的偏移量\n * @since 1.7.3\n */\n coordinatesOffset?: OffsetPoint[];\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\nexport type IStepMarkLineSpec = IMarkerSpec & {\n /**\n * 指定辅助线的连接类型,step 的连接方式为由交替的水平线和处置线组成的\n */\n type: 'type-step';\n /**\n * 线的链接方向\n */\n connectDirection: 'top' | 'bottom' | 'left' | 'right';\n /**\n * 在连接方向的扩展距离。\n * number 类型为像素值\n * string 类型为百分比,相对于 region 区域宽度/高度的百分比,如 '30%'\n */\n expandDistance?: number | string;\n /**\n * 标注线的标签样式\n */\n label?: IMarkerLabelSpec;\n /**\n * 标注线的线配置\n */\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 state?: Record<\n MarkerStateValue,\n ILineMarkSpec | ILineMarkSpec[] | MarkerStateCallback<ILineMarkSpec | ILineMarkSpec[]>\n >;\n };\n} & Omit<IMarkLineTheme, 'label' | 'line'> &\n (\n | {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates:\n | [IDataPointSpec, IDataPointSpec]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [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 /**\n * 画布坐标\n * `positions` 自 1.12.0 版本开始支持回调函数\n */\n positions: [IPoint, IPoint] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [IPoint, IPoint]);\n /**\n * 是否为相对 region 的坐标,默认为 false,即相对画布的坐标\n * @default false\n * @since 1.7.0\n */\n regionRelative?: boolean;\n }\n );\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IComponent } from '../../../interface';\nimport type {\n IAggrType,\n IMarkerAttributeContext,\n IMarkerPositionsSpec,\n IDataPointSpec,\n IMarkerSpec,\n IDataPos,\n IDataPosCallback,\n IMarkerLabelSpec,\n IMarkerCrossSeriesSpec,\n OffsetPoint,\n MarkerStateValue,\n MarkerStateCallback,\n IMarkerSupportSeries\n} from '../../interface';\nimport type { IRegressType } from '../../mark-area/interface';\nimport type { IMarkLineTheme } from './theme';\nimport type { Datum, ILineMarkSpec, IPoint } from '../../../../typings';\nimport type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components';\nimport type { IRegion } from '../../../../region/interface';\n\nexport type IMarkLine = IComponent;\n\n/**\n * 辅助线配置,一般用于展示图表的趋势线、平均线等\n */\nexport type IMarkLineSpec =\n | (IMarkerSpec &\n /**\n * 标注目标:笛卡尔坐标系坐标空间\n */\n (| IMarkLineXSpec\n | IMarkLineYSpec\n | IMarkLineXYSpec\n | IMarkLineXYY1Spec\n | IMarkLineYXX1Spec\n /**\n * 标注目标: 极坐标系\n * @since 1.11.0\n */\n | IMarkLineAngleSpec\n | IMarkLineRadiusSpec\n | IMarkLineAngRadRad1Spec\n | IMarkLineRadAngAng1Spec\n | IMarkLineAngRadSpec\n // 标注目标:数据元素\n | IMarkLineCoordinateSpec\n // 标注目标: 任意位置\n | IMarkerPositionsSpec\n ) &\n IMarkLineTheme &\n /**\n * 动画配置\n * @since 1.11.0\n */\n BaseMarkerAnimation<MarkCommonLineAnimationType>)\n | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>); // 标注目标:任意位置\n\nexport interface IMarkLineXSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 x 属性,可以绘制一条贯穿 y 轴的标注线\n * x 轴上的参考线。可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYY1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 单独声明 y 属性,可以绘制一条贯穿 x 轴的标注线\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineYXX1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线在 y 轴上位置,可以配置参考线在 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的起点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineXYSpec extends IMarkerCrossSeriesSpec {\n /**\n * 参考线起始点在 x 轴上位置,可以配置参考线在 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 该参考线起始点在 y 轴的起点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 x 轴的终点位置,可以配置 x 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 x 配置为 '15%' 百分比的形式,表示该位置位于 region 横轴(从左往右)的百分之 15 位置处。\n * @since 1.7.3\n */\n x1: IDataPos | IDataPosCallback;\n /**\n * 该参考线终点在 y 轴的终点位置,可以配置 y 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * 可以将 y 配置为 '15%' 百分比的形式,表示该位置位于 region 纵轴(从上到下)的百分之 15 位置处。\n * @since 1.7.3\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngleSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadRad1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineRadAngAng1Spec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkLineAngRadSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 angle 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, 参考线在 radius 轴上位置,可以配置参考线在 angle 轴上的值,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkLineCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]);\n /**\n * 对每个数据点转化后的画布坐标点进行偏移,该偏移值可以是像素值,也可以是 string 类型,如 '20%' 代表百分比\n * 每个元素对应一个坐标点的偏移量\n * @since 1.7.3\n */\n coordinatesOffset?: OffsetPoint[];\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\nexport type IStepMarkLineSpec = IMarkerSpec & {\n /**\n * 指定辅助线的连接类型,step 的连接方式为由交替的水平线和处置线组成的\n */\n type: 'type-step';\n /**\n * 线的链接方向\n */\n connectDirection: 'top' | 'bottom' | 'left' | 'right';\n /**\n * 在连接方向的扩展距离。\n * number 类型为像素值\n * string 类型为百分比,相对于 region 区域宽度/高度的百分比,如 '30%'\n * 回调函数参数同 marker 其他回调,支持拿到 markerData 与上下文,\n * 并额外补充了 region/startRegion/endRegion 便于跨 region 计算,以及当前差异标注的坐标点。\n */\n expandDistance?:\n | number\n | string\n | ((\n markerData: DataView,\n context: IMarkerAttributeContext & {\n region: IRegion;\n startRegion: IRegion;\n endRegion: IRegion;\n coordinatePoints: IPoint[];\n }\n ) => number | string);\n /**\n * 标注线的标签样式\n */\n label?: IMarkerLabelSpec;\n /**\n * 标注线的线配置\n */\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 state?: Record<\n MarkerStateValue,\n ILineMarkSpec | ILineMarkSpec[] | MarkerStateCallback<ILineMarkSpec | ILineMarkSpec[]>\n >;\n };\n} & Omit<IMarkLineTheme, 'label' | 'line'> &\n (\n | {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates:\n | [IDataPointSpec, IDataPointSpec]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [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 /**\n * 画布坐标\n * `positions` 自 1.12.0 版本开始支持回调函数\n */\n positions: [IPoint, IPoint] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [IPoint, IPoint]);\n /**\n * 是否为相对 region 的坐标,默认为 false,即相对画布的坐标\n * @default false\n * @since 1.7.0\n */\n regionRelative?: boolean;\n }\n );\n"]}
@@ -24,7 +24,13 @@ export declare class Title<T extends ITitleSpec = ITitleSpec> extends BaseCompon
24
24
  constructor(spec: T, options: IComponentOption);
25
25
  initLayout(): void;
26
26
  static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
27
- _compareSpec(spec: T, prevSpec: T): import("../../model/interface").IUpdateSpecResult;
27
+ _compareSpec(spec: T, prevSpec: T): {
28
+ change: boolean;
29
+ reMake: boolean;
30
+ reRender: boolean;
31
+ reSize: boolean;
32
+ reCompile: boolean;
33
+ };
28
34
  afterSetLayoutStartPoint(pos: IPoint): void;
29
35
  getBoundsInRect(rect: ILayoutRect): {
30
36
  x1: number;
@@ -22,13 +22,9 @@ class Title extends base_component_1.BaseComponent {
22
22
  return (0, util_1.getSpecInfo)(chartSpec, this.specKey, type_1.ComponentTypeEnum.title, (s => !1 !== s.visible));
23
23
  }
24
24
  _compareSpec(spec, prevSpec) {
25
- const result = super._compareSpec(spec, prevSpec), specChanged = !(0, vutils_1.isEqual)(prevSpec, spec);
25
+ const result = super._compareSpec(spec, prevSpec);
26
26
  return (null == prevSpec ? void 0 : prevSpec.orient) === (null == spec ? void 0 : spec.orient) && (null == prevSpec ? void 0 : prevSpec.visible) === spec.visible || (result.reMake = !0),
27
- result.change = !0, result.reRender = !0, specChanged && !result.reMake && (result.effects = Object.assign(Object.assign({}, result.effects), {
28
- component: !0,
29
- layout: !0,
30
- render: !0
31
- })), result;
27
+ result.change = !0, result.reRender = !0, result;
32
28
  }
33
29
  afterSetLayoutStartPoint(pos) {
34
30
  (0, vutils_1.isValidNumber)(pos.x) && this._titleComponent && this._titleComponent.setAttribute("x", pos.x),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["import { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IPoint, IOrientType, ILayoutType, ILayoutRect } from '../../typings';\nimport { calcLayoutNumber, isValidOrient } from '../../util/space';\nimport { BaseComponent } from '../base/base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ITitle, ITitleSpec } from './interface';\nimport { Title as TitleComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TitleAttrs } from '@visactor/vrender-components';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual, isValidNumber, pickWithout, isValid } from '@visactor/vutils';\nimport { getSpecInfo } from '../util';\nimport { title } from '../../theme/builtin/common/component/title';\n\nexport class Title<T extends ITitleSpec = ITitleSpec> extends BaseComponent<T> implements ITitle {\n static type = ComponentTypeEnum.title;\n type = ComponentTypeEnum.title;\n static specKey = ComponentTypeEnum.title;\n specKey: string = ComponentTypeEnum.title;\n\n layoutType: ILayoutType = 'normal';\n layoutZIndex: number = LayoutZIndex.Title;\n layoutLevel: number = LayoutLevel.Title;\n\n static readonly builtInTheme = {\n title\n };\n\n protected _orient: IOrientType = 'top';\n\n private _titleComponent: TitleComponents;\n private _cacheAttrs: TitleAttrs;\n\n get orient() {\n return this._orient;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = isValidOrient(spec.orient) ? spec.orient : 'top';\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout && (this._layout.layoutOrient = this._orient);\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<ITitleSpec>(chartSpec, this.specKey, ComponentTypeEnum.title, (s: ITitleSpec) => {\n return s.visible !== false;\n });\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n const specChanged = !isEqual(prevSpec, spec);\n\n if (prevSpec?.orient !== spec?.orient || (prevSpec as any)?.visible !== (spec as any).visible) {\n // title 组件切换visible会影响布局,所以需要重新remake\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n if (specChanged && !result.reMake) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n }\n return result;\n }\n\n afterSetLayoutStartPoint(pos: IPoint): void {\n if (isValidNumber(pos.x)) {\n this._titleComponent && this._titleComponent.setAttribute('x', pos.x);\n }\n if (isValidNumber(pos.y)) {\n this._titleComponent && this._titleComponent.setAttribute('y', pos.y);\n }\n super.afterSetLayoutStartPoint(pos);\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n let result: Partial<ILayoutRect> = {};\n this.setLayoutRect(rect);\n\n const attrs = this._getTitleAttrs();\n this._createOrUpdateTitleComponent(attrs);\n\n result = this._getTitleLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n private _getTitleLayoutRect() {\n const titleBounds = this._titleComponent.AABBBounds;\n const width = this._spec.width ? this._spec.width : isValidNumber(titleBounds.width()) ? titleBounds.width() : 0;\n const height = this._spec.height\n ? this._spec.height\n : isValidNumber(titleBounds.height())\n ? titleBounds.height()\n : 0;\n return {\n width,\n height\n };\n }\n\n private _getTitleAttrs() {\n /**\n * 生成标题组件的渲染属性,统一计算宽高与对齐参数,\n * 并在仅副标题场景下避免主标题宽度影响副标题布局。\n */\n if (this._spec.visible === false) {\n return { visible: false };\n }\n const layoutRect = this.getLayoutRect();\n const titleWidth = calcLayoutNumber(this._spec.width, layoutRect.width, null, layoutRect.width);\n const titleMaxWidth = calcLayoutNumber(this._spec.maxWidth, layoutRect.width, null, layoutRect.width);\n const maxWidth = Math.max(Math.min(titleWidth, titleMaxWidth, layoutRect.width), 0);\n const hasText = isValid(this._spec.text) && this._spec.text !== '';\n const hasSubtext = isValid(this._spec.subtext) && this._spec.subtext !== '';\n\n const attrs = {\n ...(pickWithout(this._spec, ['padding']) as any),\n textType: this._spec.textType ?? 'text',\n text: hasText ? this._spec.text : undefined,\n subtextType: this._spec.subtextType ?? 'text',\n subtext: hasSubtext ? this._spec.subtext : undefined,\n x: this._spec.x ?? 0,\n y: this._spec.y ?? 0,\n height: this._spec.height,\n minWidth: this._spec.minWidth,\n maxWidth,\n minHeight: this._spec.minHeight,\n maxHeight: this._spec.maxHeight,\n padding: this._spec.innerPadding,\n align: this._spec.align ?? 'left',\n verticalAlign: this._spec.verticalAlign ?? 'top',\n textStyle: {\n maxLineWidth: maxWidth,\n ...this._spec.textStyle\n },\n subtextStyle: {\n maxLineWidth: maxWidth,\n ...this._spec.subtextStyle\n }\n } as TitleAttrs;\n\n // 仅在对应文本存在时设置 width,避免空主标题影响副标题的对齐与宽度计算\n if (hasText) {\n (attrs.textStyle as any).width = maxWidth;\n }\n if (hasSubtext) {\n (attrs.subtextStyle as any).width = maxWidth;\n }\n\n if (isValid(this._spec.width)) {\n const clampedWidth = Math.max(Math.min(titleWidth, layoutRect.width), 0);\n if (hasText) {\n (attrs.textStyle as any).width = clampedWidth;\n } else {\n // 主标题不存在时,不设置其 width\n delete (attrs.textStyle as any).width;\n }\n if (hasSubtext) {\n (attrs.subtextStyle as any).width = clampedWidth;\n }\n }\n return attrs;\n }\n\n private _createOrUpdateTitleComponent(attrs: TitleAttrs): TitleComponents {\n if (this._titleComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._titleComponent.setAttributes(attrs);\n }\n } else {\n const container = this.getContainer();\n const title = new TitleComponents(attrs);\n title.name = 'title';\n container.add(title as unknown as INode);\n this._titleComponent = title;\n // 代理 title 组件上的事件\n title.on('*', (event: any, type: string) => this._delegateEvent(title as unknown as IGraphic, event, type));\n }\n this._cacheAttrs = attrs;\n return this._titleComponent;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._titleComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n super.clear();\n this._cacheAttrs = null;\n }\n}\n\nexport const registerTitle = () => {\n Factory.registerComponent(Title.type, Title);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["import { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IPoint, IOrientType, ILayoutType, ILayoutRect } from '../../typings';\nimport { calcLayoutNumber, isValidOrient } from '../../util/space';\nimport { BaseComponent } from '../base/base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ITitle, ITitleSpec } from './interface';\nimport { Title as TitleComponents } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { TitleAttrs } from '@visactor/vrender-components';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual, isValidNumber, pickWithout, isValid } from '@visactor/vutils';\nimport { getSpecInfo } from '../util';\nimport { title } from '../../theme/builtin/common/component/title';\n\nexport class Title<T extends ITitleSpec = ITitleSpec> extends BaseComponent<T> implements ITitle {\n static type = ComponentTypeEnum.title;\n type = ComponentTypeEnum.title;\n static specKey = ComponentTypeEnum.title;\n specKey: string = ComponentTypeEnum.title;\n\n layoutType: ILayoutType = 'normal';\n layoutZIndex: number = LayoutZIndex.Title;\n layoutLevel: number = LayoutLevel.Title;\n\n static readonly builtInTheme = {\n title\n };\n\n protected _orient: IOrientType = 'top';\n\n private _titleComponent: TitleComponents;\n private _cacheAttrs: TitleAttrs;\n\n get orient() {\n return this._orient;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._orient = isValidOrient(spec.orient) ? spec.orient : 'top';\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout && (this._layout.layoutOrient = this._orient);\n }\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<ITitleSpec>(chartSpec, this.specKey, ComponentTypeEnum.title, (s: ITitleSpec) => {\n return s.visible !== false;\n });\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n\n if (prevSpec?.orient !== spec?.orient || (prevSpec as any)?.visible !== (spec as any).visible) {\n // title 组件切换visible会影响布局,所以需要重新remake\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n afterSetLayoutStartPoint(pos: IPoint): void {\n if (isValidNumber(pos.x)) {\n this._titleComponent && this._titleComponent.setAttribute('x', pos.x);\n }\n if (isValidNumber(pos.y)) {\n this._titleComponent && this._titleComponent.setAttribute('y', pos.y);\n }\n super.afterSetLayoutStartPoint(pos);\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n let result: Partial<ILayoutRect> = {};\n this.setLayoutRect(rect);\n\n const attrs = this._getTitleAttrs();\n this._createOrUpdateTitleComponent(attrs);\n\n result = this._getTitleLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n private _getTitleLayoutRect() {\n const titleBounds = this._titleComponent.AABBBounds;\n const width = this._spec.width ? this._spec.width : isValidNumber(titleBounds.width()) ? titleBounds.width() : 0;\n const height = this._spec.height\n ? this._spec.height\n : isValidNumber(titleBounds.height())\n ? titleBounds.height()\n : 0;\n return {\n width,\n height\n };\n }\n\n private _getTitleAttrs() {\n /**\n * 生成标题组件的渲染属性,统一计算宽高与对齐参数,\n * 并在仅副标题场景下避免主标题宽度影响副标题布局。\n */\n if (this._spec.visible === false) {\n return { visible: false };\n }\n const layoutRect = this.getLayoutRect();\n const titleWidth = calcLayoutNumber(this._spec.width, layoutRect.width, null, layoutRect.width);\n const titleMaxWidth = calcLayoutNumber(this._spec.maxWidth, layoutRect.width, null, layoutRect.width);\n const maxWidth = Math.max(Math.min(titleWidth, titleMaxWidth, layoutRect.width), 0);\n const hasText = isValid(this._spec.text) && this._spec.text !== '';\n const hasSubtext = isValid(this._spec.subtext) && this._spec.subtext !== '';\n\n const attrs = {\n ...(pickWithout(this._spec, ['padding']) as any),\n textType: this._spec.textType ?? 'text',\n text: hasText ? this._spec.text : undefined,\n subtextType: this._spec.subtextType ?? 'text',\n subtext: hasSubtext ? this._spec.subtext : undefined,\n x: this._spec.x ?? 0,\n y: this._spec.y ?? 0,\n height: this._spec.height,\n minWidth: this._spec.minWidth,\n maxWidth,\n minHeight: this._spec.minHeight,\n maxHeight: this._spec.maxHeight,\n padding: this._spec.innerPadding,\n align: this._spec.align ?? 'left',\n verticalAlign: this._spec.verticalAlign ?? 'top',\n textStyle: {\n maxLineWidth: maxWidth,\n ...this._spec.textStyle\n },\n subtextStyle: {\n maxLineWidth: maxWidth,\n ...this._spec.subtextStyle\n }\n } as TitleAttrs;\n\n // 仅在对应文本存在时设置 width,避免空主标题影响副标题的对齐与宽度计算\n if (hasText) {\n (attrs.textStyle as any).width = maxWidth;\n }\n if (hasSubtext) {\n (attrs.subtextStyle as any).width = maxWidth;\n }\n\n if (isValid(this._spec.width)) {\n const clampedWidth = Math.max(Math.min(titleWidth, layoutRect.width), 0);\n if (hasText) {\n (attrs.textStyle as any).width = clampedWidth;\n } else {\n // 主标题不存在时,不设置其 width\n delete (attrs.textStyle as any).width;\n }\n if (hasSubtext) {\n (attrs.subtextStyle as any).width = clampedWidth;\n }\n }\n return attrs;\n }\n\n private _createOrUpdateTitleComponent(attrs: TitleAttrs): TitleComponents {\n if (this._titleComponent) {\n if (!isEqual(attrs, this._cacheAttrs)) {\n this._titleComponent.setAttributes(attrs);\n }\n } else {\n const container = this.getContainer();\n const title = new TitleComponents(attrs);\n title.name = 'title';\n container.add(title as unknown as INode);\n this._titleComponent = title;\n // 代理 title 组件上的事件\n title.on('*', (event: any, type: string) => this._delegateEvent(title as unknown as IGraphic, event, type));\n }\n this._cacheAttrs = attrs;\n return this._titleComponent;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._titleComponent] as unknown as IGroup[];\n }\n\n clear(): void {\n super.clear();\n this._cacheAttrs = null;\n }\n}\n\nexport const registerTitle = () => {\n Factory.registerComponent(Title.type, Title);\n};\n"]}
@@ -37,5 +37,4 @@ const getSpecInfo = (chartSpec, specKey, compType, filter) => {
37
37
  })), specInfos;
38
38
  };
39
39
 
40
- exports.getSpecInfo = getSpecInfo;
41
- //# sourceMappingURL=util.js.map
40
+ exports.getSpecInfo = getSpecInfo;
@@ -8,4 +8,5 @@ const vscale_1 = require("@visactor/vscale");
8
8
 
9
9
  exports.SCATTER_DEFAULT_SIZE = 10, exports.SCATTER_DEFAULT_RANGE_SIZE = [ 10, 20 ],
10
10
  exports.SCATTER_DEFAULT_SIZE_SCALE_TYPE = vscale_1.ScaleEnum.Linear, exports.SCATTER_DEFAULT_SHAPE = "circle",
11
- exports.SCATTER_DEFAULT_SHAPE_SCALE_TYPE = vscale_1.ScaleEnum.Ordinal, exports.SCATTER_DEFAULT_RANGE_SHAPE = [ "circle", "square", "triangle", "diamond", "star" ];
11
+ exports.SCATTER_DEFAULT_SHAPE_SCALE_TYPE = vscale_1.ScaleEnum.Ordinal, exports.SCATTER_DEFAULT_RANGE_SHAPE = [ "circle", "square", "triangle", "diamond", "star" ];
12
+ //# sourceMappingURL=scatter.js.map
@@ -2,5 +2,4 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.SCROLL_BAR_DEFAULT_SIZE = void 0, exports.SCROLL_BAR_DEFAULT_SIZE = 12;
6
- //# sourceMappingURL=scroll-bar.js.map
5
+ }), exports.SCROLL_BAR_DEFAULT_SIZE = void 0, exports.SCROLL_BAR_DEFAULT_SIZE = 12;
@@ -28,4 +28,4 @@ class InstanceManager {
28
28
  }
29
29
 
30
30
  exports.InstanceManager = InstanceManager, InstanceManager.instances = new Map;
31
- //# sourceMappingURL=instance-manager.js.map
31
+ //# sourceMappingURL=instance-manager.js.map
@@ -8,7 +8,7 @@ import type { IComponentConstructor } from '../component/interface';
8
8
  import type { EventCallback, EventQuery, EventType, ExtendEventParam, IEvent } from '../event/interface';
9
9
  import type { IParserOptions, Transform } from '@visactor/vdataset';
10
10
  import { DataSet, DataView } from '@visactor/vdataset';
11
- import type { IGraphic, IStage } from '@visactor/vrender-core';
11
+ import type { IStage } from '@visactor/vrender-core';
12
12
  import type { GeoSourceType } from '../typings/geo';
13
13
  import type { GeoSourceOption } from '../series/map/geo-source';
14
14
  import type { IMark, MarkConstructor } from '../mark/interface';
@@ -78,7 +78,6 @@ export declare class VChart implements IVChart {
78
78
  private _onError?;
79
79
  private _context;
80
80
  private _isReleased;
81
- private _exitingVRenderComponents?;
82
81
  private _chartPlugin?;
83
82
  private _vChartPlugin?;
84
83
  private _onResize?;
@@ -111,9 +110,6 @@ export declare class VChart implements IVChart {
111
110
  protected _renderAsync(option?: IVChartRenderOption): Promise<IVChart>;
112
111
  private _updateAnimateState;
113
112
  release(): void;
114
- _registerExitingVRenderComponent(component: IGraphic): void;
115
- _unregisterExitingVRenderComponent(component: IGraphic): void;
116
- private _forceReleaseExitingVRenderComponents;
117
113
  updateData(id: StringOrNumber, data: DataView | Datum[] | string, parserOptions?: IParserOptions, userUpdateOptions?: IUpdateDataResult): Promise<IVChart>;
118
114
  private _updateDataById;
119
115
  updateDataInBatches(list: {
@@ -38,7 +38,7 @@ Object.defineProperty(exports, "__esModule", {
38
38
  value: !0
39
39
  }), exports.registerVChartCore = exports.VChart = void 0;
40
40
 
41
- const array_1 = require("../data/parser/array"), common_1 = require("../typings/spec/common"), type_1 = require("../component/interface/type"), vdataset_1 = require("@visactor/vdataset"), vrender_core_1 = require("@visactor/vrender-core"), util_1 = require("../util"), id_1 = require("../util/id"), space_1 = require("../util/space"), env_1 = require("../util/env"), debug_1 = require("../util/debug"), common_2 = require("../util/theme/common"), vutils_extension_1 = require("@visactor/vutils-extension"), factory_1 = require("./factory"), event_1 = require("../event/event"), event_dispatcher_1 = require("../event/event-dispatcher"), geo_source_1 = require("../series/map/geo-source"), register_1 = require("../data/register"), initialize_1 = require("../data/initialize"), copy_data_view_1 = require("../data/transforms/copy-data-view"), interface_1 = require("../animation/interface"), theme_manager_1 = require("../theme/theme-manager"), compiler_1 = require("../compile/compiler"), image_1 = require("../util/image"), event_2 = require("../constant/event"), base_1 = require("../constant/base"), vutils_1 = require("@visactor/vutils"), instance_manager_1 = require("./instance-manager"), vrender_components_1 = require("@visactor/vrender-components"), util_2 = require("../chart/util"), region_1 = require("../region/region"), base_layout_1 = require("../layout/base-layout"), group_1 = require("../mark/group"), util_3 = require("./util"), expression_function_1 = require("./expression-function"), env_2 = require("../env"), theme_1 = require("../util/theme"), builtin_1 = require("../theme/builtin"), plugin_service_1 = require("../plugin/chart/plugin-service"), other_1 = require("../plugin/other"), element_highlight_1 = require("../interaction/triggers/element-highlight"), element_select_1 = require("../interaction/triggers/element-select"), plugin_service_2 = require("../plugin/vchart/plugin-service"), animate_1 = require("../constant/animate"), release_vrender_component_1 = require("../component/base/release-vrender-component");
41
+ const array_1 = require("../data/parser/array"), common_1 = require("../typings/spec/common"), type_1 = require("../component/interface/type"), vdataset_1 = require("@visactor/vdataset"), vrender_core_1 = require("@visactor/vrender-core"), util_1 = require("../util"), id_1 = require("../util/id"), space_1 = require("../util/space"), env_1 = require("../util/env"), debug_1 = require("../util/debug"), common_2 = require("../util/theme/common"), vutils_extension_1 = require("@visactor/vutils-extension"), factory_1 = require("./factory"), event_1 = require("../event/event"), event_dispatcher_1 = require("../event/event-dispatcher"), geo_source_1 = require("../series/map/geo-source"), register_1 = require("../data/register"), initialize_1 = require("../data/initialize"), copy_data_view_1 = require("../data/transforms/copy-data-view"), interface_1 = require("../animation/interface"), theme_manager_1 = require("../theme/theme-manager"), compiler_1 = require("../compile/compiler"), image_1 = require("../util/image"), event_2 = require("../constant/event"), base_1 = require("../constant/base"), vutils_1 = require("@visactor/vutils"), instance_manager_1 = require("./instance-manager"), vrender_components_1 = require("@visactor/vrender-components"), util_2 = require("../chart/util"), region_1 = require("../region/region"), base_layout_1 = require("../layout/base-layout"), group_1 = require("../mark/group"), util_3 = require("./util"), expression_function_1 = require("./expression-function"), env_2 = require("../env"), theme_1 = require("../util/theme"), builtin_1 = require("../theme/builtin"), plugin_service_1 = require("../plugin/chart/plugin-service"), other_1 = require("../plugin/other"), element_highlight_1 = require("../interaction/triggers/element-highlight"), element_select_1 = require("../interaction/triggers/element-select"), plugin_service_2 = require("../plugin/vchart/plugin-service"), animate_1 = require("../constant/animate");
42
42
 
43
43
  class VChart {
44
44
  static useRegisters(comps) {
@@ -297,14 +297,14 @@ class VChart {
297
297
  updateCustomConfigAndRerender(updateSpecResult, sync, option = {}) {
298
298
  if (!this._isReleased && updateSpecResult) return (0, vutils_1.isFunction)(updateSpecResult) && (updateSpecResult = updateSpecResult()),
299
299
  updateSpecResult.reAnimate && (this.stopAnimation(), this._updateAnimateState(!0)),
300
- this._reCompile(updateSpecResult), (0, util_2.isUpdateSpecResultLocalOnly)(updateSpecResult) ? this : sync ? this._renderSync(option) : this._renderAsync(option);
300
+ this._reCompile(updateSpecResult), sync ? this._renderSync(option) : this._renderAsync(option);
301
301
  }
302
302
  _updateCustomConfigAndRecompile(updateSpecResult, option = {}) {
303
303
  return !!updateSpecResult && (this._reCompile(updateSpecResult), this._beforeRender(option));
304
304
  }
305
305
  _reCompile(updateResult, morphConfig) {
306
306
  var _a, _b, _c, _d, _e, _f, _g;
307
- if (updateResult.reMake && (this._releaseData(), this._initDataSet(), null === (_a = this._chart) || void 0 === _a || _a.release(!1),
307
+ if (updateResult.reMake && (this._releaseData(), this._initDataSet(), null === (_a = this._chart) || void 0 === _a || _a.release(),
308
308
  this._chart = null), updateResult.reTransformSpec && (this._chartSpecTransformer = null),
309
309
  updateResult.changeTheme ? (this._setCurrentTheme(), this._setFontFamilyTheme(this.getTheme("fontFamily"))) : updateResult.changeBackground && (null === (_b = this._compiler) || void 0 === _b || _b.setBackground(this._getBackground())),
310
310
  updateResult.reMake ? (null === (_c = this._compiler) || void 0 === _c || _c.releaseGrammar(!0),
@@ -388,28 +388,13 @@ class VChart {
388
388
  var _a, _b, _c, _d;
389
389
  (null === (_a = this._onResize) || void 0 === _a ? void 0 : _a.cancel) && this._onResize.cancel(),
390
390
  this._chartPluginApply("releaseAll"), this._chartPlugin = null, this._chartSpecTransformer = null,
391
- this._forceReleaseExitingVRenderComponents(), null === (_b = this._chart) || void 0 === _b || _b.release(),
392
- null === (_c = this._eventDispatcher) || void 0 === _c || _c.release(), null === (_d = this._compiler) || void 0 === _d || _d.release(),
393
- this._unBindResizeEvent(), this._releaseData(), this._onError = null, this._onResize = null,
394
- this._container = null, this._currentTheme = null, this._cachedProcessedTheme = null,
395
- this._option = null, this._chart = null, this._compiler = null, this._spec = null,
396
- this._specInfo = null, this._originalSpec = null, this._userEvents = null, this._event = null,
397
- this._eventDispatcher = null, this._isReleased = !0, instance_manager_1.InstanceManager.unregisterInstance(this);
398
- }
399
- _registerExitingVRenderComponent(component) {
400
- var _a;
401
- this._exitingVRenderComponents = null !== (_a = this._exitingVRenderComponents) && void 0 !== _a ? _a : new Set,
402
- this._exitingVRenderComponents.add(component);
403
- }
404
- _unregisterExitingVRenderComponent(component) {
405
- var _a;
406
- null === (_a = this._exitingVRenderComponents) || void 0 === _a || _a.delete(component);
407
- }
408
- _forceReleaseExitingVRenderComponents() {
409
- var _a;
410
- (null === (_a = this._exitingVRenderComponents) || void 0 === _a ? void 0 : _a.size) && (this._exitingVRenderComponents.forEach((component => {
411
- (0, release_vrender_component_1.releaseVRenderComponentSync)(component);
412
- })), this._exitingVRenderComponents.clear());
391
+ null === (_b = this._chart) || void 0 === _b || _b.release(), null === (_c = this._eventDispatcher) || void 0 === _c || _c.release(),
392
+ null === (_d = this._compiler) || void 0 === _d || _d.release(), this._unBindResizeEvent(),
393
+ this._releaseData(), this._onError = null, this._onResize = null, this._container = null,
394
+ this._currentTheme = null, this._cachedProcessedTheme = null, this._option = null,
395
+ this._chart = null, this._compiler = null, this._spec = null, this._specInfo = null,
396
+ this._originalSpec = null, this._userEvents = null, this._event = null, this._eventDispatcher = null,
397
+ this._isReleased = !0, instance_manager_1.InstanceManager.unregisterInstance(this);
413
398
  }
414
399
  updateData(id, data, parserOptions, userUpdateOptions) {
415
400
  return __awaiter(this, void 0, void 0, (function*() {
@@ -502,9 +487,8 @@ class VChart {
502
487
  }
503
488
  _updateModelSpec(model, spec, sync = !1, forceMerge = !1, morphConfig) {
504
489
  forceMerge && (spec = (0, vutils_extension_1.mergeSpec)({}, model.getSpec(), spec));
505
- const result = model.updateSpec(spec), localOnly = (0, util_2.isUpdateSpecResultLocalOnly)(result), componentOnly = (0,
506
- util_2.isUpdateSpecResultComponentOnly)(result);
507
- return localOnly || (model.reInit(spec), !componentOnly && (result.change || result.reCompile || result.reMake || result.reSize || result.reRender) && this._chart.reDataFlow()),
490
+ const result = model.updateSpec(spec);
491
+ return model.reInit(spec), (result.change || result.reCompile || result.reMake || result.reSize || result.reRender) && this._chart.reDataFlow(),
508
492
  this.updateCustomConfigAndRerender(result, sync, {
509
493
  morphConfig: morphConfig,
510
494
  transformSpec: !1,