@visactor/vchart 1.7.2 → 1.7.3

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 (223) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +16937 -13789
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/animation/utils.d.ts +1 -0
  6. package/cjs/animation/utils.js +16 -8
  7. package/cjs/animation/utils.js.map +1 -1
  8. package/cjs/chart/bar/bar-3d.d.ts +2 -2
  9. package/cjs/chart/bar/bar-3d.js +2 -2
  10. package/cjs/chart/bar/bar-3d.js.map +1 -1
  11. package/cjs/chart/base-chart.js +2 -0
  12. package/cjs/chart/base-chart.js.map +1 -1
  13. package/cjs/chart/cartesian/interface.d.ts +1 -1
  14. package/cjs/chart/cartesian/interface.js.map +1 -1
  15. package/cjs/chart/sequence/sequence.js +1 -0
  16. package/cjs/chart/sequence/sequence.js.map +1 -1
  17. package/cjs/component/axis/cartesian/axis.js +4 -2
  18. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  19. package/cjs/component/axis/cartesian/band-axis.js +2 -2
  20. package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
  21. package/cjs/component/axis/cartesian/util/common.d.ts +0 -2
  22. package/cjs/component/axis/cartesian/util/common.js +2 -14
  23. package/cjs/component/axis/cartesian/util/common.js.map +1 -1
  24. package/cjs/component/axis/interface/common.d.ts +1 -0
  25. package/cjs/component/axis/interface/common.js.map +1 -1
  26. package/cjs/component/axis/polar/axis.js +3 -1
  27. package/cjs/component/axis/polar/axis.js.map +1 -1
  28. package/cjs/component/axis/polar/interface/common.d.ts +2 -3
  29. package/cjs/component/axis/polar/interface/common.js.map +1 -1
  30. package/cjs/component/base/base-component.js +1 -1
  31. package/cjs/component/base/base-component.js.map +1 -1
  32. package/cjs/component/crosshair/base.d.ts +4 -5
  33. package/cjs/component/crosshair/base.js +38 -25
  34. package/cjs/component/crosshair/base.js.map +1 -1
  35. package/cjs/component/crosshair/cartesian.d.ts +11 -34
  36. package/cjs/component/crosshair/cartesian.js +118 -109
  37. package/cjs/component/crosshair/cartesian.js.map +1 -1
  38. package/cjs/component/crosshair/config.d.ts +6 -0
  39. package/cjs/component/crosshair/config.js +8 -2
  40. package/cjs/component/crosshair/config.js.map +1 -1
  41. package/cjs/component/crosshair/interface/spec.d.ts +7 -3
  42. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  43. package/cjs/component/crosshair/polar.d.ts +12 -54
  44. package/cjs/component/crosshair/polar.js +109 -82
  45. package/cjs/component/crosshair/polar.js.map +1 -1
  46. package/cjs/component/legend/continuous/interface.d.ts +1 -0
  47. package/cjs/component/legend/continuous/interface.js.map +1 -1
  48. package/cjs/component/legend/continuous/legend.js +5 -3
  49. package/cjs/component/legend/continuous/legend.js.map +1 -1
  50. package/cjs/component/marker/base-marker.d.ts +22 -24
  51. package/cjs/component/marker/base-marker.js +39 -50
  52. package/cjs/component/marker/base-marker.js.map +1 -1
  53. package/cjs/component/marker/interface.d.ts +19 -9
  54. package/cjs/component/marker/interface.js.map +1 -1
  55. package/cjs/component/marker/mark-area/interface/spec.d.ts +10 -12
  56. package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
  57. package/cjs/component/marker/mark-area/mark-area.d.ts +3 -2
  58. package/cjs/component/marker/mark-area/mark-area.js +12 -22
  59. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  60. package/cjs/component/marker/mark-line/interface/spec.d.ts +20 -9
  61. package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
  62. package/cjs/component/marker/mark-line/mark-line.d.ts +4 -2
  63. package/cjs/component/marker/mark-line/mark-line.js +60 -60
  64. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  65. package/cjs/component/marker/mark-point/interface/spec.d.ts +8 -6
  66. package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
  67. package/cjs/component/marker/mark-point/mark-point.d.ts +3 -2
  68. package/cjs/component/marker/mark-point/mark-point.js +15 -19
  69. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  70. package/cjs/component/marker/utils.d.ts +13 -2
  71. package/cjs/component/marker/utils.js +108 -39
  72. package/cjs/component/marker/utils.js.map +1 -1
  73. package/cjs/component/tooltip/tooltip.js +3 -2
  74. package/cjs/component/tooltip/tooltip.js.map +1 -1
  75. package/cjs/core/index.d.ts +1 -1
  76. package/cjs/core/index.js +1 -1
  77. package/cjs/core/index.js.map +1 -1
  78. package/cjs/core/vchart.js +1 -0
  79. package/cjs/core/vchart.js.map +1 -1
  80. package/cjs/data/transforms/aggregation.d.ts +3 -3
  81. package/cjs/data/transforms/aggregation.js +5 -7
  82. package/cjs/data/transforms/aggregation.js.map +1 -1
  83. package/cjs/event/events/dimension/util/polar.js +2 -2
  84. package/cjs/event/events/dimension/util/polar.js.map +1 -1
  85. package/cjs/layout/layout3d/index.js +1 -1
  86. package/cjs/layout/layout3d/index.js.map +1 -1
  87. package/cjs/model/base-model.js +4 -4
  88. package/cjs/model/base-model.js.map +1 -1
  89. package/cjs/model/interface.d.ts +1 -0
  90. package/cjs/model/interface.js.map +1 -1
  91. package/cjs/region/region.js +4 -2
  92. package/cjs/region/region.js.map +1 -1
  93. package/cjs/series/bar/bar.js +6 -11
  94. package/cjs/series/bar/bar.js.map +1 -1
  95. package/cjs/series/base/base-series.js +6 -6
  96. package/cjs/series/base/base-series.js.map +1 -1
  97. package/cjs/series/box-plot/box-plot.js +4 -12
  98. package/cjs/series/box-plot/box-plot.js.map +1 -1
  99. package/cjs/series/heatmap/heatmap.js +4 -9
  100. package/cjs/series/heatmap/heatmap.js.map +1 -1
  101. package/cjs/series/pie/pie.js +1 -1
  102. package/cjs/series/pie/pie.js.map +1 -1
  103. package/cjs/series/range-column/range-column.js +7 -15
  104. package/cjs/series/range-column/range-column.js.map +1 -1
  105. package/cjs/series/util/utils.d.ts +5 -0
  106. package/cjs/series/util/utils.js +18 -2
  107. package/cjs/series/util/utils.js.map +1 -1
  108. package/cjs/series/waterfall/waterfall.js +7 -11
  109. package/cjs/series/waterfall/waterfall.js.map +1 -1
  110. package/cjs/theme/builtin/common/component/crosshair.js +0 -8
  111. package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
  112. package/cjs/typings/visual.d.ts +3 -2
  113. package/cjs/typings/visual.js.map +1 -1
  114. package/esm/animation/utils.d.ts +1 -0
  115. package/esm/animation/utils.js +12 -7
  116. package/esm/animation/utils.js.map +1 -1
  117. package/esm/chart/bar/bar-3d.d.ts +2 -2
  118. package/esm/chart/bar/bar-3d.js +3 -3
  119. package/esm/chart/bar/bar-3d.js.map +1 -1
  120. package/esm/chart/base-chart.js +2 -0
  121. package/esm/chart/base-chart.js.map +1 -1
  122. package/esm/chart/cartesian/interface.d.ts +1 -1
  123. package/esm/chart/cartesian/interface.js.map +1 -1
  124. package/esm/chart/sequence/sequence.js +1 -0
  125. package/esm/chart/sequence/sequence.js.map +1 -1
  126. package/esm/component/axis/cartesian/axis.js +4 -2
  127. package/esm/component/axis/cartesian/axis.js.map +1 -1
  128. package/esm/component/axis/cartesian/band-axis.js +1 -3
  129. package/esm/component/axis/cartesian/band-axis.js.map +1 -1
  130. package/esm/component/axis/cartesian/util/common.d.ts +0 -2
  131. package/esm/component/axis/cartesian/util/common.js +0 -11
  132. package/esm/component/axis/cartesian/util/common.js.map +1 -1
  133. package/esm/component/axis/interface/common.d.ts +1 -0
  134. package/esm/component/axis/interface/common.js.map +1 -1
  135. package/esm/component/axis/polar/axis.js +3 -1
  136. package/esm/component/axis/polar/axis.js.map +1 -1
  137. package/esm/component/axis/polar/interface/common.d.ts +2 -3
  138. package/esm/component/axis/polar/interface/common.js.map +1 -1
  139. package/esm/component/base/base-component.js +1 -1
  140. package/esm/component/base/base-component.js.map +1 -1
  141. package/esm/component/crosshair/base.d.ts +4 -5
  142. package/esm/component/crosshair/base.js +37 -25
  143. package/esm/component/crosshair/base.js.map +1 -1
  144. package/esm/component/crosshair/cartesian.d.ts +11 -34
  145. package/esm/component/crosshair/cartesian.js +111 -102
  146. package/esm/component/crosshair/cartesian.js.map +1 -1
  147. package/esm/component/crosshair/config.d.ts +6 -0
  148. package/esm/component/crosshair/config.js +7 -0
  149. package/esm/component/crosshair/config.js.map +1 -1
  150. package/esm/component/crosshair/interface/spec.d.ts +7 -3
  151. package/esm/component/crosshair/interface/spec.js.map +1 -1
  152. package/esm/component/crosshair/polar.d.ts +12 -54
  153. package/esm/component/crosshair/polar.js +109 -78
  154. package/esm/component/crosshair/polar.js.map +1 -1
  155. package/esm/component/legend/continuous/interface.d.ts +1 -0
  156. package/esm/component/legend/continuous/interface.js.map +1 -1
  157. package/esm/component/legend/continuous/legend.js +5 -3
  158. package/esm/component/legend/continuous/legend.js.map +1 -1
  159. package/esm/component/marker/base-marker.d.ts +22 -24
  160. package/esm/component/marker/base-marker.js +41 -52
  161. package/esm/component/marker/base-marker.js.map +1 -1
  162. package/esm/component/marker/interface.d.ts +19 -9
  163. package/esm/component/marker/interface.js.map +1 -1
  164. package/esm/component/marker/mark-area/interface/spec.d.ts +10 -12
  165. package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
  166. package/esm/component/marker/mark-area/mark-area.d.ts +3 -2
  167. package/esm/component/marker/mark-area/mark-area.js +10 -22
  168. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  169. package/esm/component/marker/mark-line/interface/spec.d.ts +20 -9
  170. package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
  171. package/esm/component/marker/mark-line/mark-line.d.ts +4 -2
  172. package/esm/component/marker/mark-line/mark-line.js +58 -54
  173. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  174. package/esm/component/marker/mark-point/interface/spec.d.ts +8 -6
  175. package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
  176. package/esm/component/marker/mark-point/mark-point.d.ts +3 -2
  177. package/esm/component/marker/mark-point/mark-point.js +12 -20
  178. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  179. package/esm/component/marker/utils.d.ts +13 -2
  180. package/esm/component/marker/utils.js +103 -35
  181. package/esm/component/marker/utils.js.map +1 -1
  182. package/esm/component/tooltip/tooltip.js +3 -1
  183. package/esm/component/tooltip/tooltip.js.map +1 -1
  184. package/esm/core/index.d.ts +1 -1
  185. package/esm/core/index.js +1 -1
  186. package/esm/core/index.js.map +1 -1
  187. package/esm/core/vchart.js +1 -0
  188. package/esm/core/vchart.js.map +1 -1
  189. package/esm/data/transforms/aggregation.d.ts +3 -3
  190. package/esm/data/transforms/aggregation.js +6 -8
  191. package/esm/data/transforms/aggregation.js.map +1 -1
  192. package/esm/event/events/dimension/util/polar.js +2 -2
  193. package/esm/event/events/dimension/util/polar.js.map +1 -1
  194. package/esm/layout/layout3d/index.js +1 -1
  195. package/esm/layout/layout3d/index.js.map +1 -1
  196. package/esm/model/base-model.js +4 -5
  197. package/esm/model/base-model.js.map +1 -1
  198. package/esm/model/interface.d.ts +1 -0
  199. package/esm/model/interface.js.map +1 -1
  200. package/esm/region/region.js +5 -1
  201. package/esm/region/region.js.map +1 -1
  202. package/esm/series/bar/bar.js +5 -9
  203. package/esm/series/bar/bar.js.map +1 -1
  204. package/esm/series/base/base-series.js +4 -4
  205. package/esm/series/base/base-series.js.map +1 -1
  206. package/esm/series/box-plot/box-plot.js +5 -11
  207. package/esm/series/box-plot/box-plot.js.map +1 -1
  208. package/esm/series/heatmap/heatmap.js +4 -8
  209. package/esm/series/heatmap/heatmap.js.map +1 -1
  210. package/esm/series/pie/pie.js +1 -1
  211. package/esm/series/pie/pie.js.map +1 -1
  212. package/esm/series/range-column/range-column.js +6 -12
  213. package/esm/series/range-column/range-column.js.map +1 -1
  214. package/esm/series/util/utils.d.ts +5 -0
  215. package/esm/series/util/utils.js +15 -0
  216. package/esm/series/util/utils.js.map +1 -1
  217. package/esm/series/waterfall/waterfall.js +6 -9
  218. package/esm/series/waterfall/waterfall.js.map +1 -1
  219. package/esm/theme/builtin/common/component/crosshair.js +0 -8
  220. package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
  221. package/esm/typings/visual.d.ts +3 -2
  222. package/esm/typings/visual.js.map +1 -1
  223. package/package.json +8 -8
@@ -3,7 +3,8 @@ import type { IComponentOption } from '../../interface';
3
3
  import { ComponentTypeEnum } from '../../interface/type';
4
4
  import { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';
5
5
  import { BaseMarker } from '../base-marker';
6
- export declare class MarkPoint extends BaseMarker<IMarkPointSpec & IMarkPointTheme> implements IMarkPoint {
6
+ import type { IGroup } from '@visactor/vrender-core';
7
+ export declare class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {
7
8
  static type: ComponentTypeEnum;
8
9
  type: ComponentTypeEnum;
9
10
  name: string;
@@ -11,7 +12,7 @@ export declare class MarkPoint extends BaseMarker<IMarkPointSpec & IMarkPointThe
11
12
  protected _theme: IMarkPointTheme;
12
13
  protected _markerComponent: MarkPointComponent;
13
14
  static createComponent(spec: any, options: IComponentOption): MarkPoint | MarkPoint[];
14
- protected _createMarkerComponent(): void;
15
+ protected _createMarkerComponent(): IGroup;
15
16
  protected _markerLayout(): void;
16
17
  protected _initDataView(): void;
17
18
  }
@@ -23,8 +23,8 @@ class MarkPoint extends base_marker_1.BaseMarker {
23
23
  })), markPoints;
24
24
  }
25
25
  _createMarkerComponent() {
26
- 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, _6;
27
- const markPoint = new vrender_components_1.MarkPoint({
26
+ 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;
27
+ return new vrender_components_1.MarkPoint({
28
28
  zIndex: this.layoutZIndex,
29
29
  interactive: null !== (_a = this._spec.interactive) && void 0 !== _a && _a,
30
30
  position: {
@@ -51,26 +51,18 @@ class MarkPoint extends base_marker_1.BaseMarker {
51
51
  }, this._spec.itemContent),
52
52
  clipInRange: null !== (_4 = this._spec.clip) && void 0 !== _4 && _4
53
53
  });
54
- this._markerComponent = markPoint, this._markerComponent.name = null !== (_5 = this._spec.name) && void 0 !== _5 ? _5 : this.type,
55
- this._markerComponent.id = null !== (_6 = this._spec.id) && void 0 !== _6 ? _6 : `${this.type}-${this.id}`,
56
- this.getContainer().add(this._markerComponent);
57
54
  }
58
55
  _markerLayout() {
59
56
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
60
- 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;
57
+ const spec = this._spec, data = this._markerData, relativeSeries = this._relativeSeries, isXYLayout = "x" in spec && "y" in spec, isCoordinateLayout = "coordinate" in spec, isPositionLayout = "position" in spec, autoRange = null !== (_a = null == spec ? void 0 : spec.autoRange) && void 0 !== _a && _a;
61
58
  let point;
62
- if (isCoordinateLayout) point = (0, utils_1.coordinateLayout)(data, relativeSeries, autoRange)[0]; else if (isPositionLayout) if (point = spec.position,
63
- spec.regionRelative) {
64
- const region = relativeSeries.getRegion(), {x: regionStartX, y: regionStartY} = region.getLayoutStartPoint();
65
- point = {
66
- x: point.x + regionStartX,
67
- y: point.y + regionStartY
68
- };
69
- } else point = spec.position;
59
+ isXYLayout ? point = (0, utils_1.xyLayout)(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0] : isCoordinateLayout ? point = (0,
60
+ utils_1.coordinateLayout)(data, relativeSeries, autoRange, spec.coordinatesOffset)[0] : isPositionLayout && (point = (0,
61
+ utils_1.positionLayout)([ spec.position ], relativeSeries, spec.regionRelative)[0]);
70
62
  const seriesData = this._relativeSeries.getViewData().latestData, dataPoints = data ? data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData : seriesData;
71
63
  let limitRect;
72
64
  if (spec.clip) {
73
- const {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = this._computeClipRange([ relativeSeries.getRegion() ]);
65
+ const {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = (0, utils_1.computeClipRange)([ relativeSeries.getRegion() ]);
74
66
  limitRect = {
75
67
  x: minX,
76
68
  y: minY,
@@ -91,10 +83,14 @@ class MarkPoint extends base_marker_1.BaseMarker {
91
83
  });
92
84
  }
93
85
  _initDataView() {
94
- const spec = this._spec, relativeSeries = this._relativeSeries;
95
- if (!(0, vutils_1.isValid)(spec.coordinate)) return;
96
- (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerAggregation", aggregation_1.markerAggregation);
97
- const options = this._processSpecCoo(spec), data = new vdataset_1.DataView(this._option.dataSet, {
86
+ const spec = this._spec, relativeSeries = this._relativeSeries, isXYProcess = (0,
87
+ vutils_1.isValid)(spec.x) && (0, vutils_1.isValid)(spec.y), isCoordinateProcess = (0,
88
+ vutils_1.isValid)(spec.coordinate);
89
+ if (!isCoordinateProcess && !isXYProcess) return;
90
+ let options;
91
+ (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, "markerAggregation", aggregation_1.markerAggregation),
92
+ isXYProcess ? options = [ this._processSpecXY(spec.x, spec.y) ] : isCoordinateProcess && (options = this._processSpecCoo(spec));
93
+ const data = new vdataset_1.DataView(this._option.dataSet, {
98
94
  name: `${this.type}_${this.id}_data`
99
95
  });
100
96
  data.parse([ relativeSeries.getViewData() ], {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointSpec, IMarkPointTheme } from './interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { coordinateLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { INode } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec & IMarkPointTheme> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n protected declare _theme: IMarkPointTheme;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static createComponent(spec: any, options: IComponentOption) {\n const markPointSpec = spec.markPoint;\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return new MarkPoint(markPointSpec, options);\n }\n const markPoints: MarkPoint[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n markPoints.push(new MarkPoint(m, { ...options, specIndex: i }));\n }\n });\n return markPoints;\n }\n\n protected _createMarkerComponent() {\n const markPoint = new MarkPointComponent({\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n itemLine: {\n lineStyle: transformToGraphic(this._spec.itemLine?.line?.style),\n ...this._spec.itemLine\n },\n itemContent: {\n symbolStyle: transformToGraphic(this._spec.itemContent?.symbol?.style),\n imageStyle: this._spec.itemContent?.image?.style,\n textStyle: {\n ...this._spec.itemContent?.text,\n padding: this._spec.itemContent?.text?.labelBackground?.padding,\n shape: {\n ...transformToGraphic(this._spec.itemContent?.text?.shape),\n visible: this._spec.itemContent?.text?.shape?.visible ?? false\n },\n panel: {\n ...transformToGraphic(this._spec.itemContent?.text?.labelBackground?.style),\n visible: this._spec.itemContent?.text?.labelBackground?.visible ?? true\n },\n textStyle: transformToGraphic(this._spec.itemContent?.text?.style)\n },\n richTextStyle: this._spec.itemContent?.richText?.style,\n ...this._spec.itemContent\n },\n clipInRange: this._spec.clip ?? false\n });\n this._markerComponent = markPoint;\n this._markerComponent.name = this._spec.name ?? this.type;\n this._markerComponent.id = this._spec.id ?? `${this.type}-${this.id}`;\n this.getContainer().add(this._markerComponent as unknown as INode);\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isCoordinateLayout) {\n point = coordinateLayout(data, relativeSeries, autoRange)[0];\n } else if (isPositionLayout) {\n point = spec.position;\n\n if (spec.regionRelative) {\n const region = relativeSeries.getRegion();\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n point = {\n x: point.x + regionStartX,\n y: point.y + regionStartY\n };\n } else {\n point = spec.position;\n }\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip) {\n const { minX, maxX, minY, maxY } = this._computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n this._markerComponent?.setAttributes({\n position: point,\n itemContent: {\n ...this._markerComponent?.attribute?.itemContent,\n textStyle: {\n ...this._markerComponent?.attribute?.itemContent?.textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData)\n : this._markerComponent?.attribute?.itemContent?.textStyle?.text\n }\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 isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n\n const options = this._processSpecCoo(spec);\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\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\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec, IMarkPointTheme } from './interface';\nimport type { IComponentOption } from '../../interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n protected declare _theme: IMarkPointTheme;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static createComponent(spec: any, options: IComponentOption) {\n const markPointSpec = spec.markPoint;\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return new MarkPoint(markPointSpec, options);\n }\n const markPoints: MarkPoint[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n markPoints.push(new MarkPoint(m, { ...options, specIndex: i }));\n }\n });\n return markPoints;\n }\n\n protected _createMarkerComponent() {\n const markPoint = new MarkPointComponent({\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n itemLine: {\n lineStyle: transformToGraphic(this._spec.itemLine?.line?.style),\n ...this._spec.itemLine\n },\n itemContent: {\n symbolStyle: transformToGraphic(this._spec.itemContent?.symbol?.style),\n imageStyle: this._spec.itemContent?.image?.style,\n textStyle: {\n ...this._spec.itemContent?.text,\n padding: this._spec.itemContent?.text?.labelBackground?.padding,\n shape: {\n ...transformToGraphic(this._spec.itemContent?.text?.shape),\n visible: this._spec.itemContent?.text?.shape?.visible ?? false\n },\n panel: {\n ...transformToGraphic(this._spec.itemContent?.text?.labelBackground?.style),\n visible: this._spec.itemContent?.text?.labelBackground?.visible ?? true\n },\n textStyle: transformToGraphic(this._spec.itemContent?.text?.style)\n },\n richTextStyle: this._spec.itemContent?.richText?.style,\n ...this._spec.itemContent\n },\n clipInRange: this._spec.clip ?? false\n });\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n this._markerComponent?.setAttributes({\n position: point,\n itemContent: {\n ...this._markerComponent?.attribute?.itemContent,\n textStyle: {\n ...this._markerComponent?.attribute?.itemContent?.textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData)\n : this._markerComponent?.attribute?.itemContent?.textStyle?.text\n }\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 isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\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\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
@@ -1,5 +1,16 @@
1
- import type { ICartesianSeries } from '../../series/interface';
1
+ import type { ICartesianSeries, ISeries } from '../../series/interface';
2
2
  import type { DataView } from '@visactor/vdataset';
3
3
  import type { IPoint } from '../../typings';
4
+ import type { IDataPos, MarkerPositionPoint } from './interface';
5
+ import type { IRegion } from '../../region/interface';
6
+ import type { OffsetPoint } from './interface';
7
+ export declare function isAggrSpec(spec: IDataPos): boolean;
4
8
  export declare function xyLayout(data: DataView, startRelativeSeries: ICartesianSeries, endRelativeSeries: ICartesianSeries, relativeSeries: ICartesianSeries, autoRange: boolean): IPoint[][];
5
- export declare function coordinateLayout(data: DataView, relativeSeries: ICartesianSeries, autoRange: boolean): IPoint[];
9
+ export declare function coordinateLayout(data: DataView, relativeSeries: ICartesianSeries, autoRange: boolean, coordinatesOffset: OffsetPoint[] | OffsetPoint): IPoint[];
10
+ export declare function positionLayout(positions: MarkerPositionPoint[], series: ISeries, regionRelative: boolean): IPoint[];
11
+ export declare function computeClipRange(regions: IRegion[]): {
12
+ minX: number;
13
+ maxX: number;
14
+ minY: number;
15
+ maxY: number;
16
+ };
@@ -2,22 +2,71 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.coordinateLayout = exports.xyLayout = void 0;
5
+ }), exports.computeClipRange = exports.positionLayout = exports.coordinateLayout = exports.xyLayout = exports.isAggrSpec = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), util_1 = require("../../util");
7
+ const vutils_1 = require("@visactor/vutils"), util_1 = require("../../util"), marker_1 = require("../../constant/marker");
8
+
9
+ function isNeedExtendDomain(domain, datum, autoRange) {
10
+ if (!autoRange) return !1;
11
+ const domainNum = domain.map((n => 1 * n)), min = (0, vutils_1.minInArray)(domainNum), max = (0,
12
+ vutils_1.maxInArray)(domainNum);
13
+ return datum < min || datum > max;
14
+ }
15
+
16
+ function getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint) {
17
+ var _a, _b;
18
+ const {relativeSeries: relativeSeries, startRelativeSeries: startRelativeSeries, endRelativeSeries: endRelativeSeries} = refSeries;
19
+ let x;
20
+ if ((0, vutils_1.isNumber)(datum.x) && isNeedExtendDomain(xDomain, datum.x, autoRange) && (null === (_b = null == relativeSeries ? void 0 : (_a = relativeSeries.getXAxisHelper()).setExtendDomain) || void 0 === _b || _b.call(_a, "marker_xAxis_extend", datum.x)),
21
+ (0, util_1.isPercent)(datum.x)) x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x; else {
22
+ if (x = datum.x, (0, vutils_1.isFunction)(datum.x)) {
23
+ const relativeSeriesData = relativeSeries.getData().getLatestData(), startRelativeSeriesData = startRelativeSeries.getData().getLatestData(), endRelativeSeriesData = endRelativeSeries.getData().getLatestData();
24
+ x = datum.x(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData, relativeSeries, startRelativeSeries, endRelativeSeries);
25
+ }
26
+ x = relativeSeries.getXAxisHelper().dataToPosition([ x ]) + regionStartLayoutStartPoint.x;
27
+ }
28
+ return x;
29
+ }
30
+
31
+ function getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint) {
32
+ var _a, _b;
33
+ const {relativeSeries: relativeSeries, startRelativeSeries: startRelativeSeries, endRelativeSeries: endRelativeSeries} = refSeries;
34
+ let y;
35
+ if ((0, vutils_1.isNumber)(datum.y) && isNeedExtendDomain(yDomain, datum.y, autoRange) && (null === (_b = null === (_a = relativeSeries.getYAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_yAxis_extend", datum.y)),
36
+ (0, util_1.isPercent)(datum.y)) y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y; else {
37
+ if (y = datum.y, (0, vutils_1.isFunction)(datum.y)) {
38
+ const relativeSeriesData = relativeSeries.getData().getLatestData(), startRelativeSeriesData = startRelativeSeries.getData().getLatestData(), endRelativeSeriesData = endRelativeSeries.getData().getLatestData();
39
+ y = datum.y(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData, relativeSeries, startRelativeSeries, endRelativeSeries);
40
+ }
41
+ y = relativeSeries.getYAxisHelper().dataToPosition([ y ]) + regionStartLayoutStartPoint.y;
42
+ }
43
+ return y;
44
+ }
45
+
46
+ function convertPercentToValue(percent, relativeLength) {
47
+ return Number(percent.substring(0, percent.length - 1)) * relativeLength / 100;
48
+ }
49
+
50
+ function isAggrSpec(spec) {
51
+ return marker_1.AGGR_TYPE.includes(spec);
52
+ }
8
53
 
9
54
  function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange) {
10
- const regionStart = startRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.getLayoutStartPoint(), regionEnd = endRelativeSeries.getRegion(), regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint(), regionWidth = Math.abs(Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) - Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width)), regionHeight = Math.abs(Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) - Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height)), lines = [], dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData, xDomain = relativeSeries.getXAxisHelper().getScale(0).domain(), yDomain = relativeSeries.getYAxisHelper().getScale(0).domain();
55
+ const regionStart = startRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.getLayoutStartPoint(), regionEnd = endRelativeSeries.getRegion(), regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint(), regionWidth = Math.abs(Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) - Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width)), regionHeight = Math.abs(Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) - Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height)), refSeries = {
56
+ relativeSeries: relativeSeries,
57
+ startRelativeSeries: startRelativeSeries,
58
+ endRelativeSeries: endRelativeSeries
59
+ }, lines = [], dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData, xDomain = relativeSeries.getXAxisHelper().getScale(0).domain(), yDomain = relativeSeries.getYAxisHelper().getScale(0).domain();
11
60
  return dataPoints.forEach((datum => {
12
61
  const isValidX = (0, vutils_1.isValid)(datum.x), isValidY = (0, vutils_1.isValid)(datum.y);
13
62
  if (isValidX && isValidY) {
14
- const x = getXValue(datum, xDomain, autoRange, relativeSeries, regionWidth, regionStartLayoutStartPoint), y = getYValue(datum, yDomain, autoRange, relativeSeries, regionHeight, regionStartLayoutStartPoint);
63
+ const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);
15
64
  lines.push([ {
16
65
  x: x,
17
66
  y: y
18
67
  } ]);
19
68
  } else if ((0, vutils_1.isValid)(datum.x)) {
20
- const x = getXValue(datum, xDomain, autoRange, relativeSeries, regionWidth, regionStartLayoutStartPoint), y = Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height), y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);
69
+ const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint), y = Math.max(regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height, regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height), y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);
21
70
  lines.push([ {
22
71
  x: x,
23
72
  y: y
@@ -26,7 +75,7 @@ function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries,
26
75
  y: y1
27
76
  } ]);
28
77
  } else if ((0, vutils_1.isValid)(datum.y)) {
29
- const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x), y = getYValue(datum, yDomain, autoRange, relativeSeries, regionHeight, regionStartLayoutStartPoint), x1 = Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width);
78
+ const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x), y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint), x1 = Math.max(regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width, regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width);
30
79
  lines.push([ {
31
80
  x: x,
32
81
  y: y
@@ -38,49 +87,69 @@ function xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries,
38
87
  })), lines;
39
88
  }
40
89
 
41
- function coordinateLayout(data, relativeSeries, autoRange) {
42
- const points = [];
43
- return (data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData).forEach((datum => {
90
+ function coordinateLayout(data, relativeSeries, autoRange, coordinatesOffset) {
91
+ const points = [], dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData, isArrayCoordinatesOffset = (0,
92
+ vutils_1.isArray)(coordinatesOffset);
93
+ return dataPoints.forEach(((datum, index) => {
44
94
  var _a, _b, _c, _d;
45
- const refRelativeSeries = (null == datum ? void 0 : datum.getRefRelativeSeries) ? datum.getRefRelativeSeries() : relativeSeries, regionStartLayoutStartPoint = refRelativeSeries.getRegion().getLayoutStartPoint(), xDomain = refRelativeSeries.getXAxisHelper().getScale(0).domain(), yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain(), xValue = (0,
46
- vutils_1.array)(datum.x), yValue = (0, vutils_1.array)(datum.y);
95
+ const refRelativeSeries = (null == datum ? void 0 : datum.getRefRelativeSeries) ? datum.getRefRelativeSeries() : relativeSeries, regionStart = refRelativeSeries.getRegion(), regionStartLayoutStartPoint = regionStart.getLayoutStartPoint(), {width: regionWidth, height: regionHeight} = regionStart.getLayoutRect();
96
+ let offsetX = 0, offsetY = 0;
97
+ if (coordinatesOffset) {
98
+ const currentCoordinatesOffset = isArrayCoordinatesOffset ? coordinatesOffset[index] : coordinatesOffset, x = currentCoordinatesOffset.x, y = currentCoordinatesOffset.y;
99
+ x && (offsetX = (0, util_1.isPercent)(x) ? Number(x.substring(0, x.length - 1)) * regionWidth / 100 : x),
100
+ y && (offsetY = (0, util_1.isPercent)(y) ? Number(y.substring(0, y.length - 1)) * regionHeight / 100 : y);
101
+ }
102
+ const xDomain = refRelativeSeries.getXAxisHelper().getScale(0).domain(), yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain(), refRelativeSeriesData = refRelativeSeries.getData().getLatestData(), xValue = (0,
103
+ vutils_1.array)(datum.x).map((x => (0, vutils_1.isFunction)(x) ? x(refRelativeSeriesData, refRelativeSeries) : x)), yValue = (0,
104
+ vutils_1.array)(datum.y).map((y => (0, vutils_1.isFunction)(y) ? y(refRelativeSeriesData, refRelativeSeries) : y));
47
105
  1 === xValue.length && (0, vutils_1.isNumber)(xValue[0]) && isNeedExtendDomain(xDomain, xValue[0], autoRange) && (null === (_b = null === (_a = refRelativeSeries.getXAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_xAxis_extend", xValue[0])),
48
106
  1 === yValue.length && (0, vutils_1.isNumber)(yValue[0]) && isNeedExtendDomain(yDomain, yValue[0], autoRange) && (null === (_d = null === (_c = refRelativeSeries.getYAxisHelper()) || void 0 === _c ? void 0 : _c.setExtendDomain) || void 0 === _d || _d.call(_c, "marker_yAxis_extend", yValue[0])),
49
107
  points.push({
50
- x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x,
51
- y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y
108
+ x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,
109
+ y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY
52
110
  });
53
111
  })), points;
54
112
  }
55
113
 
56
- function isNeedExtendDomain(domain, datum, autoRange) {
57
- if (!autoRange) return !1;
58
- const domainNum = domain.map((n => 1 * n)), min = (0, vutils_1.minInArray)(domainNum), max = (0,
59
- vutils_1.maxInArray)(domainNum);
60
- return datum < min || datum > max;
61
- }
62
-
63
- function getXValue(datum, xDomain, autoRange, relativeSeries, regionWidth, regionStartLayoutStartPoint) {
64
- var _a, _b;
65
- let x;
66
- if ((0, vutils_1.isNumber)(datum.x) && isNeedExtendDomain(xDomain, datum.x, autoRange) && (null === (_b = null == relativeSeries ? void 0 : (_a = relativeSeries.getXAxisHelper()).setExtendDomain) || void 0 === _b || _b.call(_a, "marker_xAxis_extend", datum.x)),
67
- (0, util_1.isPercent)(datum.x)) {
68
- const percent = datum.x;
69
- x = Number(percent.substring(0, percent.length - 1)) * regionWidth / 100 + regionStartLayoutStartPoint.x;
70
- } else x = relativeSeries.getXAxisHelper().dataToPosition([ datum.x ]) + regionStartLayoutStartPoint.x;
71
- return x;
114
+ function positionLayout(positions, series, regionRelative) {
115
+ if (regionRelative) {
116
+ const region = series.getRegion(), {x: regionStartX, y: regionStartY} = region.getLayoutStartPoint(), {width: regionWidth, height: regionHeight} = region.getLayoutRect();
117
+ return positions.map((position => {
118
+ let {x: x, y: y} = position;
119
+ return (0, util_1.isPercent)(x) && (x = convertPercentToValue(x, regionWidth)),
120
+ x += regionStartX, (0, util_1.isPercent)(y) && (y = convertPercentToValue(y, regionHeight)),
121
+ y += regionStartY, {
122
+ x: x,
123
+ y: y
124
+ };
125
+ }));
126
+ }
127
+ const {width: canvasWidth, height: canvasHeight} = series.getOption().getChart().getCanvasRect();
128
+ return positions.map((position => {
129
+ let {x: x, y: y} = position;
130
+ return (0, util_1.isPercent)(x) && (x = convertPercentToValue(x, canvasWidth)),
131
+ (0, util_1.isPercent)(y) && (y = convertPercentToValue(y, canvasHeight)), {
132
+ x: x,
133
+ y: y
134
+ };
135
+ }));
72
136
  }
73
137
 
74
- function getYValue(datum, yDomain, autoRange, relativeSeries, regionHeight, regionStartLayoutStartPoint) {
75
- var _a, _b;
76
- let y;
77
- if ((0, vutils_1.isNumber)(datum.y) && isNeedExtendDomain(yDomain, datum.y, autoRange) && (null === (_b = null === (_a = relativeSeries.getYAxisHelper()) || void 0 === _a ? void 0 : _a.setExtendDomain) || void 0 === _b || _b.call(_a, "marker_yAxis_extend", datum.y)),
78
- (0, util_1.isPercent)(datum.y)) {
79
- const percent = datum.y;
80
- y = Number(percent.substring(0, percent.length - 1)) * regionHeight / 100 + regionStartLayoutStartPoint.y;
81
- } else y = relativeSeries.getYAxisHelper().dataToPosition([ datum.y ]) + regionStartLayoutStartPoint.y;
82
- return y;
138
+ function computeClipRange(regions) {
139
+ let minX = 1 / 0, maxX = -1 / 0, minY = 1 / 0, maxY = -1 / 0;
140
+ return regions.forEach((region => {
141
+ region.getLayoutStartPoint().x < minX && (minX = region.getLayoutStartPoint().x),
142
+ region.getLayoutStartPoint().x + region.getLayoutRect().width > maxX && (maxX = region.getLayoutStartPoint().x + region.getLayoutRect().width),
143
+ region.getLayoutStartPoint().y < minY && (minY = region.getLayoutStartPoint().y),
144
+ region.getLayoutStartPoint().y + region.getLayoutRect().height > maxY && (maxY = region.getLayoutStartPoint().y + region.getLayoutRect().height);
145
+ })), {
146
+ minX: minX,
147
+ maxX: maxX,
148
+ minY: minY,
149
+ maxY: maxY
150
+ };
83
151
  }
84
152
 
85
- exports.xyLayout = xyLayout, exports.coordinateLayout = coordinateLayout;
153
+ exports.isAggrSpec = isAggrSpec, exports.xyLayout = xyLayout, exports.coordinateLayout = coordinateLayout,
154
+ exports.positionLayout = positionLayout, exports.computeClipRange = computeClipRange;
86
155
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/utils.ts"],"names":[],"mappings":";;;AAGA,6CAAoF;AAEpF,qCAAuC;AAEvC,SAAgB,QAAQ,CACtB,IAAc,EACd,mBAAqC,EACrC,iBAAmC,EACnC,cAAgC,EAChC,SAAkB;IAElB,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,EAAE,CAAC;IACpD,MAAM,2BAA2B,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;IACtE,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;IAChD,MAAM,yBAAyB,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CACN,2BAA2B,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EACjE,yBAAyB,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,CAC9D,CACJ,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CACN,2BAA2B,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,MAAM,EAClE,yBAAyB,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,CAC/D,CACJ,CAAC;IAEF,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,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;IACnG,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACrE,UAAU,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,2BAA2B,CAAC,CAAC;YACzG,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;YAC1G,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACxB;aAAM,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,2BAA2B,CAAC,CAAC;YACzG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAChB,2BAA2B,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,MAAM,EAClE,yBAAyB,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,CAC/D,CAAC;YACF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC;gBACT;oBACE,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACL;gBACD;oBACE,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,EAAE;iBACN;aACF,CAAC,CAAC;SACJ;aAAM,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;YAC1G,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CACjB,2BAA2B,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EACjE,yBAAyB,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,CAC9D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC;gBACT;oBACE,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACL;gBACD;oBACE,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,CAAC;iBACL;aACF,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AA5ED,4BA4EC;AAED,SAAgB,gBAAgB,CAAC,IAAc,EAAE,cAAgC,EAAE,SAAkB;IACnG,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,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;IACnG,UAAU,CAAC,OAAO,CAChB,CAAC,KAIA,EAAE,EAAE;;QACH,MAAM,iBAAiB,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,oBAAoB,EAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QACtG,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,2BAA2B,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,IAAA,iBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;aACjD,MAAA,MAAA,iBAAiB,CAAC,cAAc,EAAE,0CAAE,eAAe,mDAAG,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAW,CAAC,CAAA,CAAC;QAEpG,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,IAAA,iBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;aACjD,MAAA,MAAA,iBAAiB,CAAC,cAAc,EAAE,0CAAE,eAAe,mDAAG,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAW,CAAC,CAAA,CAAC;QACpG,MAAM,CAAC,IAAI,CAAC;YACV,CAAC,EAAE,iBAAiB,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC;YAC5F,CAAC,EAAE,iBAAiB,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,CAAC;SAC7F,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAhCD,4CAgCC;AAED,SAAS,kBAAkB,CAAC,MAAgB,EAAE,KAAa,EAAE,SAAkB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,KAAK,CAAC;KACd;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAChB,KAAY,EACZ,OAAiB,EACjB,SAAkB,EAClB,cAAgC,EAChC,WAAmB,EACnB,2BAAmC;;IAEnC,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;QACf,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SAC/C,MAAA,cAAc,aAAd,cAAc,6BAAd,cAAc,CAAE,cAAc,IAAG,eAAe,mDAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC;IAErF,IAAI,CAAS,CAAC;IACd,IAAI,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,GAAG,2BAA2B,CAAC,CAAC,CAAC;KAC5G;SAAM;QACL,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC;KAC/F;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAChB,KAAY,EACZ,OAAiB,EACjB,SAAkB,EAClB,cAAgC,EAChC,YAAoB,EACpB,2BAAmC;;IAEnC,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;QACf,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SAC/C,MAAA,MAAA,cAAc,CAAC,cAAc,EAAE,0CAAE,eAAe,mDAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC;IAErF,IAAI,CAAS,CAAC;IACd,IAAI,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;QACxB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,GAAG,2BAA2B,CAAC,CAAC,CAAC;KAC7G;SAAM;QACL,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC;KAC/F;IAED,OAAO,CAAC,CAAC;AACX,CAAC","file":"utils.js","sourcesContent":["import type { ICartesianSeries } from '../../series/interface';\nimport type { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid, isNumber, array, minInArray, maxInArray } from '@visactor/vutils';\nimport type { Datum, IPoint, StringOrNumber } from '../../typings';\nimport { isPercent } from '../../util';\n\nexport function xyLayout(\n data: DataView,\n startRelativeSeries: ICartesianSeries,\n endRelativeSeries: ICartesianSeries,\n relativeSeries: ICartesianSeries,\n autoRange: boolean\n) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n\n const lines: IPoint[][] = [];\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const xDomain = relativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = relativeSeries.getYAxisHelper().getScale(0).domain();\n dataPoints.forEach((datum: IPoint) => {\n const isValidX = isValid(datum.x);\n const isValidY = isValid(datum.y);\n if (isValidX && isValidY) {\n const x = getXValue(datum, xDomain, autoRange, relativeSeries, regionWidth, regionStartLayoutStartPoint);\n const y = getYValue(datum, yDomain, autoRange, relativeSeries, regionHeight, regionStartLayoutStartPoint);\n lines.push([{ x, y }]);\n } else if (isValid(datum.x)) {\n const x = getXValue(datum, xDomain, autoRange, relativeSeries, regionWidth, regionStartLayoutStartPoint);\n const y = Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n );\n const y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x,\n y: y1\n }\n ]);\n } else if (isValid(datum.y)) {\n const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x);\n const y = getYValue(datum, yDomain, autoRange, relativeSeries, regionHeight, regionStartLayoutStartPoint);\n const x1 = Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n );\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x1,\n y: y\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function coordinateLayout(data: DataView, relativeSeries: ICartesianSeries, autoRange: boolean) {\n const points: IPoint[] = [];\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n dataPoints.forEach(\n (datum: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n }) => {\n const refRelativeSeries = datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries;\n const regionStart = refRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const xDomain = refRelativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain();\n const xValue = array(datum.x);\n const yValue = array(datum.y);\n xValue.length === 1 &&\n isNumber(xValue[0]) &&\n isNeedExtendDomain(xDomain, xValue[0], autoRange) &&\n refRelativeSeries.getXAxisHelper()?.setExtendDomain?.('marker_xAxis_extend', xValue[0] as number);\n\n yValue.length === 1 &&\n isNumber(yValue[0]) &&\n isNeedExtendDomain(yDomain, yValue[0], autoRange) &&\n refRelativeSeries.getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', yValue[0] as number);\n points.push({\n x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x,\n y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y\n });\n }\n );\n return points;\n}\n\nfunction isNeedExtendDomain(domain: number[], datum: number, autoRange: boolean) {\n if (!autoRange) {\n return false;\n }\n const domainNum = domain.map((n: any) => n * 1);\n const min = minInArray(domainNum);\n const max = maxInArray(domainNum);\n if (datum < min || datum > max) {\n return true;\n }\n return false;\n}\n\nfunction getXValue(\n datum: Datum,\n xDomain: number[],\n autoRange: boolean,\n relativeSeries: ICartesianSeries,\n regionWidth: number,\n regionStartLayoutStartPoint: IPoint\n) {\n isNumber(datum.x) &&\n isNeedExtendDomain(xDomain, datum.x, autoRange) &&\n relativeSeries?.getXAxisHelper().setExtendDomain?.('marker_xAxis_extend', datum.x);\n\n let x: number;\n if (isPercent(datum.x)) {\n const percent = datum.x;\n x = (Number(percent.substring(0, percent.length - 1)) * regionWidth) / 100 + regionStartLayoutStartPoint.x;\n } else {\n x = relativeSeries.getXAxisHelper().dataToPosition([datum.x]) + regionStartLayoutStartPoint.x;\n }\n\n return x;\n}\n\nfunction getYValue(\n datum: Datum,\n yDomain: number[],\n autoRange: boolean,\n relativeSeries: ICartesianSeries,\n regionHeight: number,\n regionStartLayoutStartPoint: IPoint\n) {\n isNumber(datum.y) &&\n isNeedExtendDomain(yDomain, datum.y, autoRange) &&\n relativeSeries.getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', datum.y);\n\n let y: number;\n if (isPercent(datum.y)) {\n const percent = datum.y;\n y = (Number(percent.substring(0, percent.length - 1)) * regionHeight) / 100 + regionStartLayoutStartPoint.y;\n } else {\n y = relativeSeries.getYAxisHelper().dataToPosition([datum.y]) + regionStartLayoutStartPoint.y;\n }\n\n return y;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import type { ICartesianSeries, ISeries } from '../../series/interface';\nimport type { DataView } from '@visactor/vdataset';\nimport { isValid, isNumber, array, minInArray, maxInArray, isFunction, isArray } from '@visactor/vutils';\nimport type { Datum, IPoint, StringOrNumber } from '../../typings';\nimport { isPercent } from '../../util';\nimport type { IDataPointCallback, IDataPos, MarkerPositionPoint } from './interface';\nimport { AGGR_TYPE } from '../../constant/marker';\nimport type { IRegion } from '../../region/interface';\nimport type { OffsetPoint } from './interface';\n\nfunction isNeedExtendDomain(domain: number[], datum: number, autoRange: boolean) {\n if (!autoRange) {\n return false;\n }\n const domainNum = domain.map((n: any) => n * 1);\n const min = minInArray(domainNum);\n const max = maxInArray(domainNum);\n if (datum < min || datum > max) {\n return true;\n }\n return false;\n}\n\nfunction getXValue(\n datum: Datum,\n xDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: ICartesianSeries },\n regionWidth: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries, startRelativeSeries, endRelativeSeries } = refSeries;\n isNumber(datum.x) &&\n isNeedExtendDomain(xDomain, datum.x, autoRange) &&\n relativeSeries?.getXAxisHelper().setExtendDomain?.('marker_xAxis_extend', datum.x);\n let x: number;\n if (isPercent(datum.x)) {\n x = convertPercentToValue(datum.x, regionWidth) + regionStartLayoutStartPoint.x;\n } else {\n x = datum.x;\n if (isFunction(datum.x)) {\n const relativeSeriesData = relativeSeries.getData().getLatestData();\n const startRelativeSeriesData = startRelativeSeries.getData().getLatestData();\n const endRelativeSeriesData = endRelativeSeries.getData().getLatestData();\n x = datum.x(\n relativeSeriesData,\n startRelativeSeriesData,\n endRelativeSeriesData,\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n );\n }\n x = relativeSeries.getXAxisHelper().dataToPosition([x]) + regionStartLayoutStartPoint.x;\n }\n\n return x;\n}\n\nfunction getYValue(\n datum: Datum,\n yDomain: number[],\n autoRange: boolean,\n refSeries: { [key: string]: ICartesianSeries },\n regionHeight: number,\n regionStartLayoutStartPoint: IPoint\n) {\n const { relativeSeries, startRelativeSeries, endRelativeSeries } = refSeries;\n isNumber(datum.y) &&\n isNeedExtendDomain(yDomain, datum.y, autoRange) &&\n relativeSeries.getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', datum.y);\n\n let y: number;\n if (isPercent(datum.y)) {\n y = convertPercentToValue(datum.y, regionHeight) + regionStartLayoutStartPoint.y;\n } else {\n y = datum.y;\n if (isFunction(datum.y)) {\n const relativeSeriesData = relativeSeries.getData().getLatestData();\n const startRelativeSeriesData = startRelativeSeries.getData().getLatestData();\n const endRelativeSeriesData = endRelativeSeries.getData().getLatestData();\n y = datum.y(\n relativeSeriesData,\n startRelativeSeriesData,\n endRelativeSeriesData,\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n );\n }\n y = relativeSeries.getYAxisHelper().dataToPosition([y]) + regionStartLayoutStartPoint.y;\n }\n\n return y;\n}\n\nfunction convertPercentToValue(percent: string, relativeLength: number) {\n return (Number(percent.substring(0, percent.length - 1)) * relativeLength) / 100;\n}\n\nexport function isAggrSpec(spec: IDataPos) {\n return AGGR_TYPE.includes(spec as any);\n}\n\nexport function xyLayout(\n data: DataView,\n startRelativeSeries: ICartesianSeries,\n endRelativeSeries: ICartesianSeries,\n relativeSeries: ICartesianSeries,\n autoRange: boolean\n) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n\n const refSeries = {\n relativeSeries,\n startRelativeSeries,\n endRelativeSeries\n };\n\n const lines: IPoint[][] = [];\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const xDomain = relativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = relativeSeries.getYAxisHelper().getScale(0).domain();\n dataPoints.forEach((datum: IPoint) => {\n const isValidX = isValid(datum.x);\n const isValidY = isValid(datum.y);\n if (isValidX && isValidY) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);\n lines.push([{ x, y }]);\n } else if (isValid(datum.x)) {\n const x = getXValue(datum, xDomain, autoRange, refSeries, regionWidth, regionStartLayoutStartPoint);\n const y = Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n );\n const y1 = Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y);\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x,\n y: y1\n }\n ]);\n } else if (isValid(datum.y)) {\n const x = Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x);\n const y = getYValue(datum, yDomain, autoRange, refSeries, regionHeight, regionStartLayoutStartPoint);\n const x1 = Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n );\n lines.push([\n {\n x: x,\n y: y\n },\n {\n x: x1,\n y: y\n }\n ]);\n }\n });\n\n return lines;\n}\n\nexport function coordinateLayout(\n data: DataView,\n relativeSeries: ICartesianSeries,\n autoRange: boolean,\n coordinatesOffset: OffsetPoint[] | OffsetPoint\n) {\n const points: IPoint[] = [];\n const dataPoints = data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n const isArrayCoordinatesOffset = isArray(coordinatesOffset);\n dataPoints.forEach(\n (\n datum: {\n x: StringOrNumber[] | StringOrNumber | IDataPointCallback | null;\n y: StringOrNumber[] | StringOrNumber | IDataPointCallback | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n },\n index: number\n ) => {\n const refRelativeSeries = datum?.getRefRelativeSeries ? datum.getRefRelativeSeries() : relativeSeries;\n const regionStart = refRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n\n const { width: regionWidth, height: regionHeight } = regionStart.getLayoutRect();\n\n let offsetX = 0;\n let offsetY = 0;\n if (coordinatesOffset) {\n const currentCoordinatesOffset = isArrayCoordinatesOffset ? coordinatesOffset[index] : coordinatesOffset;\n const x = currentCoordinatesOffset.x;\n const y = currentCoordinatesOffset.y;\n if (x) {\n offsetX = isPercent(x) ? (Number(x.substring(0, x.length - 1)) * regionWidth) / 100 : (x as number);\n }\n if (y) {\n offsetY = isPercent(y) ? (Number(y.substring(0, y.length - 1)) * regionHeight) / 100 : (y as number);\n }\n }\n\n const xDomain = refRelativeSeries.getXAxisHelper().getScale(0).domain();\n const yDomain = refRelativeSeries.getYAxisHelper().getScale(0).domain();\n const refRelativeSeriesData = refRelativeSeries.getData().getLatestData();\n const xValue = array(datum.x).map(x => {\n if (isFunction(x)) {\n return x(refRelativeSeriesData, refRelativeSeries);\n }\n return x;\n });\n const yValue = array(datum.y).map(y => {\n if (isFunction(y)) {\n return y(refRelativeSeriesData, refRelativeSeries);\n }\n return y;\n });\n\n xValue.length === 1 &&\n isNumber(xValue[0]) &&\n isNeedExtendDomain(xDomain, xValue[0], autoRange) &&\n refRelativeSeries.getXAxisHelper()?.setExtendDomain?.('marker_xAxis_extend', xValue[0] as number);\n\n yValue.length === 1 &&\n isNumber(yValue[0]) &&\n isNeedExtendDomain(yDomain, yValue[0], autoRange) &&\n refRelativeSeries.getYAxisHelper()?.setExtendDomain?.('marker_yAxis_extend', yValue[0] as number);\n points.push({\n x: refRelativeSeries.getXAxisHelper().dataToPosition(xValue) + regionStartLayoutStartPoint.x + offsetX,\n y: refRelativeSeries.getYAxisHelper().dataToPosition(yValue) + regionStartLayoutStartPoint.y + offsetY\n });\n }\n );\n return points;\n}\n\nexport function positionLayout(positions: MarkerPositionPoint[], series: ISeries, regionRelative: boolean): IPoint[] {\n if (regionRelative) {\n const region = series.getRegion();\n const { x: regionStartX, y: regionStartY } = region.getLayoutStartPoint();\n const { width: regionWidth, height: regionHeight } = region.getLayoutRect();\n return positions.map(position => {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, regionWidth);\n }\n x = (x as number) + regionStartX;\n if (isPercent(y)) {\n y = convertPercentToValue(y, regionHeight);\n }\n y = (y as number) + regionStartY;\n\n return {\n x,\n y\n };\n });\n }\n\n const { width: canvasWidth, height: canvasHeight } = series.getOption().getChart().getCanvasRect();\n return positions.map(position => {\n let { x, y } = position;\n if (isPercent(x)) {\n x = convertPercentToValue(x, canvasWidth);\n }\n if (isPercent(y)) {\n y = convertPercentToValue(y, canvasHeight);\n }\n return {\n x: x as number,\n y: y as number\n };\n });\n}\n\nexport function computeClipRange(regions: IRegion[]) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n regions.forEach((region: IRegion) => {\n if (region.getLayoutStartPoint().x < minX) {\n minX = region.getLayoutStartPoint().x;\n }\n if (region.getLayoutStartPoint().x + region.getLayoutRect().width > maxX) {\n maxX = region.getLayoutStartPoint().x + region.getLayoutRect().width;\n }\n if (region.getLayoutStartPoint().y < minY) {\n minY = region.getLayoutStartPoint().y;\n }\n if (region.getLayoutStartPoint().y + region.getLayoutRect().height > maxY) {\n maxY = region.getLayoutStartPoint().y + region.getLayoutRect().height;\n }\n });\n return { minX, maxX, minY, maxY };\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.registerTooltip = exports.Tooltip = void 0;
6
6
 
7
- const type_1 = require("../interface/type"), base_component_1 = require("../base/base-component"), dom_1 = require("./handler/dom"), canvas_1 = require("./handler/canvas"), env_1 = require("../../util/env"), merge_spec_1 = require("../../util/spec/merge-spec"), common_1 = require("./interface/common"), constants_1 = require("./handler/constants"), show_tooltip_1 = require("./utils/show-tooltip"), common_2 = require("./utils/common"), common_3 = require("../../event/events/dimension/util/common"), constant_1 = require("../../constant"), dimension_tooltip_1 = require("./processor/dimension-tooltip"), util_1 = require("./processor/util"), mark_tooltip_1 = require("./processor/mark-tooltip"), vutils_1 = require("@visactor/vutils"), vchart_1 = require("../../core/vchart"), factory_1 = require("../../core/factory");
7
+ const type_1 = require("../interface/type"), base_component_1 = require("../base/base-component"), dom_1 = require("./handler/dom"), canvas_1 = require("./handler/canvas"), env_1 = require("../../util/env"), merge_spec_1 = require("../../util/spec/merge-spec"), common_1 = require("./interface/common"), constants_1 = require("./handler/constants"), show_tooltip_1 = require("./utils/show-tooltip"), common_2 = require("./utils/common"), common_3 = require("../../event/events/dimension/util/common"), constant_1 = require("../../constant"), dimension_tooltip_1 = require("./processor/dimension-tooltip"), util_1 = require("./processor/util"), mark_tooltip_1 = require("./processor/mark-tooltip"), vutils_1 = require("@visactor/vutils"), vchart_1 = require("../../core/vchart"), factory_1 = require("../../core/factory"), clone_deep_1 = require("../../util/spec/clone-deep");
8
8
 
9
9
  class Tooltip extends base_component_1.BaseComponent {
10
10
  constructor() {
@@ -149,7 +149,8 @@ class Tooltip extends base_component_1.BaseComponent {
149
149
  }, this._getMouseOutHandler(!0)));
150
150
  }
151
151
  _initTheme(theme) {
152
- super._initTheme(theme), this._spec.style = (0, merge_spec_1.mergeSpec)({}, this._theme, this._originalSpec.style);
152
+ super._initTheme(theme), this._spec = (0, clone_deep_1.cloneDeepSpec)(this._originalSpec),
153
+ this._spec.style = (0, merge_spec_1.mergeSpec)({}, this._theme, this._originalSpec.style);
153
154
  }
154
155
  _shouldMergeThemeToSpec() {
155
156
  return !1;