@visactor/vchart 1.13.4 → 1.13.5-alpha.1

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 (84) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +577 -774
  3. package/build/index.js +578 -773
  4. package/build/index.min.js +1 -1
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/base/base-chart.js +2 -6
  7. package/cjs/chart/base/base-chart.js.map +1 -1
  8. package/cjs/component/crosshair/base.d.ts +23 -34
  9. package/cjs/component/crosshair/base.js +90 -6
  10. package/cjs/component/crosshair/base.js.map +1 -1
  11. package/cjs/component/crosshair/cartesian.d.ts +5 -28
  12. package/cjs/component/crosshair/cartesian.js +71 -170
  13. package/cjs/component/crosshair/cartesian.js.map +1 -1
  14. package/cjs/component/crosshair/interface/common.d.ts +67 -2
  15. package/cjs/component/crosshair/interface/common.js.map +1 -1
  16. package/cjs/component/crosshair/interface/index.d.ts +0 -2
  17. package/cjs/component/crosshair/interface/index.js +0 -1
  18. package/cjs/component/crosshair/interface/index.js.map +1 -1
  19. package/cjs/component/crosshair/interface/spec.d.ts +8 -4
  20. package/cjs/component/crosshair/interface/spec.js.map +1 -1
  21. package/cjs/component/crosshair/polar.d.ts +6 -22
  22. package/cjs/component/crosshair/polar.js +78 -143
  23. package/cjs/component/crosshair/polar.js.map +1 -1
  24. package/cjs/component/crosshair/utils/cartesian.d.ts +5 -26
  25. package/cjs/component/crosshair/utils/cartesian.js +86 -174
  26. package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
  27. package/cjs/component/crosshair/utils/polar.d.ts +18 -11
  28. package/cjs/component/crosshair/utils/polar.js +72 -117
  29. package/cjs/component/crosshair/utils/polar.js.map +1 -1
  30. package/cjs/core/index.d.ts +1 -1
  31. package/cjs/core/index.js +1 -1
  32. package/cjs/core/index.js.map +1 -1
  33. package/cjs/event/index.d.ts +1 -0
  34. package/cjs/event/index.js +16 -1
  35. package/cjs/event/index.js.map +1 -1
  36. package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +2 -4
  37. package/cjs/plugin/components/tooltip-handler/utils/position.js +23 -11
  38. package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  39. package/esm/chart/base/base-chart.js +2 -6
  40. package/esm/chart/base/base-chart.js.map +1 -1
  41. package/esm/component/crosshair/base.d.ts +23 -34
  42. package/esm/component/crosshair/base.js +95 -5
  43. package/esm/component/crosshair/base.js.map +1 -1
  44. package/esm/component/crosshair/cartesian.d.ts +5 -28
  45. package/esm/component/crosshair/cartesian.js +72 -174
  46. package/esm/component/crosshair/cartesian.js.map +1 -1
  47. package/esm/component/crosshair/interface/common.d.ts +67 -2
  48. package/esm/component/crosshair/interface/common.js.map +1 -1
  49. package/esm/component/crosshair/interface/index.d.ts +0 -2
  50. package/esm/component/crosshair/interface/index.js +0 -4
  51. package/esm/component/crosshair/interface/index.js.map +1 -1
  52. package/esm/component/crosshair/interface/spec.d.ts +8 -4
  53. package/esm/component/crosshair/interface/spec.js.map +1 -1
  54. package/esm/component/crosshair/polar.d.ts +6 -22
  55. package/esm/component/crosshair/polar.js +75 -146
  56. package/esm/component/crosshair/polar.js.map +1 -1
  57. package/esm/component/crosshair/utils/cartesian.d.ts +5 -26
  58. package/esm/component/crosshair/utils/cartesian.js +81 -166
  59. package/esm/component/crosshair/utils/cartesian.js.map +1 -1
  60. package/esm/component/crosshair/utils/polar.d.ts +18 -11
  61. package/esm/component/crosshair/utils/polar.js +67 -112
  62. package/esm/component/crosshair/utils/polar.js.map +1 -1
  63. package/esm/core/index.d.ts +1 -1
  64. package/esm/core/index.js +1 -1
  65. package/esm/core/index.js.map +1 -1
  66. package/esm/event/index.d.ts +1 -0
  67. package/esm/event/index.js +2 -0
  68. package/esm/event/index.js.map +1 -1
  69. package/esm/plugin/components/tooltip-handler/utils/position.d.ts +2 -4
  70. package/esm/plugin/components/tooltip-handler/utils/position.js +23 -10
  71. package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
  72. package/package.json +3 -3
  73. package/cjs/component/crosshair/interface/cartesian.d.ts +0 -33
  74. package/cjs/component/crosshair/interface/cartesian.js +0 -6
  75. package/cjs/component/crosshair/interface/cartesian.js.map +0 -1
  76. package/cjs/component/crosshair/interface/polar.d.ts +0 -25
  77. package/cjs/component/crosshair/interface/polar.js +0 -6
  78. package/cjs/component/crosshair/interface/polar.js.map +0 -1
  79. package/esm/component/crosshair/interface/cartesian.d.ts +0 -33
  80. package/esm/component/crosshair/interface/cartesian.js +0 -2
  81. package/esm/component/crosshair/interface/cartesian.js.map +0 -1
  82. package/esm/component/crosshair/interface/polar.d.ts +0 -25
  83. package/esm/component/crosshair/interface/polar.js +0 -2
  84. package/esm/component/crosshair/interface/polar.js.map +0 -1
@@ -1,124 +1,79 @@
1
- var __rest = this && this.__rest || function(s, e) {
2
- var t = {};
3
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
4
- if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
5
- var i = 0;
6
- for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
7
- }
8
- return t;
9
- };
10
-
11
1
  import { getAxisLabelOffset } from "../../axis/util";
12
2
 
13
3
  import { PointService, clamp, getAngleByPoint, getIntersectPoint, isValid, polarToCartesian } from "@visactor/vutils";
14
4
 
15
- import { mergeSpec } from "@visactor/vutils-extension";
16
-
17
5
  import { getFormatFunction } from "../../util";
18
6
 
19
- export const layoutByValue = (series, currValueAngle, currValueRadius, angleHair, radiusHair, enableRemain = !1, cacheAngleCrossHairInfo, cacheRadiusCrossHairInfo) => {
20
- let angleCrossHairInfo = {
21
- x: 0,
22
- y: 0,
23
- center: {
24
- x: 0,
25
- y: 0
26
- },
27
- radius: 0,
28
- distance: 0,
29
- startAngle: 0,
30
- endAngle: 0,
31
- innerRadius: 0,
32
- visible: !1,
33
- label: {
34
- visible: !1,
35
- text: "",
36
- offset: 0
37
- }
38
- }, radiusCrossHairInfo = {
39
- x: 0,
40
- y: 0,
41
- center: {
42
- x: 0,
43
- y: 0
44
- },
45
- radius: 0,
46
- distance: 0,
47
- startAngle: 0,
48
- endAngle: 0,
49
- innerRadius: 0,
50
- visible: !1,
51
- sides: series.angleAxisHelper.getScale(0).domain().length,
52
- label: {
53
- visible: !1,
54
- text: "",
55
- offset: 0
7
+ export const layoutByValue = (stateByField, series, enableRemain = !1) => {
8
+ Object.keys(stateByField).forEach((field => {
9
+ const {attributes: attributes, currentValue: currentValue, cacheInfo: cacheInfo, coordKey: coordKey} = stateByField[field];
10
+ if (attributes) {
11
+ const isVisible = !!currentValue.size, useCache = enableRemain && !isVisible && isValid(cacheInfo), newInfo = useCache ? cacheInfo : {
12
+ coord: 0,
13
+ axis: null,
14
+ visible: isVisible,
15
+ coordRange: [ 0, 0 ],
16
+ sizeRange: [ 0, 0 ],
17
+ labels: {
18
+ all: {
19
+ visible: !1,
20
+ text: "",
21
+ offset: 0
22
+ }
23
+ }
24
+ };
25
+ if (cacheInfo && (cacheInfo._isCache = useCache), "valueField" === field && (newInfo.sides = series.angleAxisHelper.getScale(0).domain().length),
26
+ currentValue.forEach((({axis: axis, datum: value = ""}) => {
27
+ var _a;
28
+ const niceLabelFormatter = axis.niceLabelFormatter;
29
+ if ((null === (_a = attributes.label) || void 0 === _a ? void 0 : _a.visible) && (newInfo.labels.all.visible = !0,
30
+ newInfo.labels.all.defaultFormatter = niceLabelFormatter, newInfo.labels.all.text = value,
31
+ newInfo.labels.all.offset = getAxisLabelOffset(axis.getSpec())), "categoryField" === field) {
32
+ const angle = series.angleAxisHelper.dataToPosition([ value ]), bandSize = series.angleAxisHelper.getBandwidth(0), radius = axis.getOuterRadius();
33
+ newInfo.coord = angle, newInfo.coordRange = [ angle - bandSize / 2, angle + bandSize / 2 ],
34
+ newInfo.sizeRange = [ radius, radius ];
35
+ } else {
36
+ const angle = axis.startAngle, radius = series.radiusAxisHelper.dataToPosition([ value ]);
37
+ newInfo.coord = radius, newInfo.coordRange = [ radius, radius ], newInfo.sizeRange = [ angle, angle ];
38
+ }
39
+ newInfo.axis = axis;
40
+ })), newInfo && !useCache && newInfo.labels.all.visible && attributes && attributes.label) {
41
+ const label = newInfo.labels.all, {formatMethod: formatMethod, formatter: formatter} = attributes.label, {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, label.text, {
42
+ label: label.text,
43
+ orient: coordKey
44
+ });
45
+ formatFunc ? label.text = formatFunc(...args) : label.defaultFormatter && (label.text = label.defaultFormatter(label.text));
46
+ }
47
+ stateByField[field].cacheInfo = newInfo;
56
48
  }
57
- };
58
- if (angleHair) {
59
- angleCrossHairInfo.visible = !!currValueAngle.size;
60
- const bandWidth = series.angleAxisHelper.getBandwidth(0);
61
- currValueAngle.forEach((_a => {
62
- var _b, {axis: axis, value: value, coord: coord} = _a, rest = __rest(_a, [ "axis", "value", "coord" ]);
63
- value = null != value ? value : "", mergeSpec(angleCrossHairInfo, rest);
64
- const angle = series.angleAxisHelper.dataToPosition([ value ]);
65
- angleCrossHairInfo.angle = angle;
66
- const niceLabelFormatter = axis.niceLabelFormatter;
67
- (null === (_b = angleHair.label) || void 0 === _b ? void 0 : _b.visible) && (angleCrossHairInfo.label.visible = !0,
68
- angleCrossHairInfo.label.defaultFormatter = niceLabelFormatter, angleCrossHairInfo.label.text = value,
69
- angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())), angleCrossHairInfo.startAngle = angle - bandWidth / 2,
70
- angleCrossHairInfo.endAngle = angle + bandWidth / 2;
71
- }));
72
- }
73
- if (radiusHair && (radiusCrossHairInfo.visible = !!currValueRadius.size, currValueRadius.forEach((_a => {
74
- var _b, {axis: axis, value: value, coord: coord} = _a, rest = __rest(_a, [ "axis", "value", "coord" ]);
75
- value = null != value ? value : "";
76
- const niceLabelFormatter = axis.niceLabelFormatter;
77
- (null === (_b = radiusHair.label) || void 0 === _b ? void 0 : _b.visible) && (radiusCrossHairInfo.label.visible = !0,
78
- radiusCrossHairInfo.label.defaultFormatter = niceLabelFormatter, radiusCrossHairInfo.label.text = value,
79
- radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())), radiusCrossHairInfo.angle = coord.angle,
80
- radiusCrossHairInfo.axis = axis, mergeSpec(radiusCrossHairInfo, rest);
81
- }))), enableRemain && !angleCrossHairInfo.visible && isValid(cacheAngleCrossHairInfo)) angleCrossHairInfo = cacheAngleCrossHairInfo; else if (angleCrossHairInfo.label.visible && angleHair && angleHair.label) {
82
- const {label: label} = angleCrossHairInfo, {formatMethod: formatMethod, formatter: formatter} = angleHair.label, {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, label.text, {
83
- label: label.text,
84
- orient: "angle"
85
- });
86
- formatFunc ? label.text = formatFunc(...args) : label.defaultFormatter && (label.text = label.defaultFormatter(label.text));
87
- }
88
- if (enableRemain && !radiusCrossHairInfo.visible && isValid(cacheRadiusCrossHairInfo)) radiusCrossHairInfo = cacheRadiusCrossHairInfo; else if (radiusCrossHairInfo.label.visible && radiusHair && radiusHair.label) {
89
- const {label: label} = radiusCrossHairInfo, {formatMethod: formatMethod, formatter: formatter} = radiusHair.label, {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, label.text, {
90
- label: label.text,
91
- orient: "radius"
92
- });
93
- formatFunc ? label.text = formatFunc(...args) : label.defaultFormatter && (label.text = label.defaultFormatter(label.text));
94
- }
95
- return {
96
- angle: angleCrossHairInfo,
97
- radius: radiusCrossHairInfo
98
- };
99
- };
100
-
101
- export const layoutAngleCrosshair = (angleHair, crosshairInfo) => {
102
- const {angle: angle, innerRadius: innerRadius, radius: radius, startAngle: startAngle, endAngle: endAngle, center: center} = crosshairInfo;
103
- let positionAttrs;
104
- return positionAttrs = "sector" === ("rect" === angleHair.type ? "sector" : "line") ? {
105
- center: center,
106
- innerRadius: innerRadius,
107
- radius: radius,
108
- startAngle: startAngle,
109
- endAngle: endAngle
110
- } : {
111
- start: polarToCartesian(center, innerRadius, angle),
112
- end: polarToCartesian(center, radius, angle)
113
- }, positionAttrs;
49
+ }));
114
50
  };
115
51
 
116
- export const layoutRadiusCrosshair = (radiusHair, crosshairInfo) => {
117
- const {center: center, startAngle: startAngle, endAngle: endAngle, distance: distance, sides: sides, axis: axis, point: point, radius: radius, innerRadius: innerRadius} = crosshairInfo;
118
- let polygonRadius = distance;
119
- if ("polygon" === (radiusHair.smooth ? "circle" : "polygon")) {
120
- const axisCenter = axis.getCenter(), curAngle = getAngleByPoint(axisCenter, point), stepAngle = (endAngle - startAngle) / sides, index = Math.floor((curAngle - startAngle) / stepAngle), preAngle = index * stepAngle + startAngle, nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle), prePoint = polarToCartesian(axisCenter, distance, preAngle), nextPoint = polarToCartesian(axisCenter, distance, nextAngle), insertPoint = getIntersectPoint([ nextPoint.x, nextPoint.y ], [ prePoint.x, prePoint.y ], [ axisCenter.x, axisCenter.y ], [ point.x, point.y ]);
121
- insertPoint && (polygonRadius = clamp(PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance, innerRadius, radius));
52
+ export const layoutCrosshair = (stateItem, layoutStartPoint, smooth) => {
53
+ const {cacheInfo: cacheInfo, coordKey: coordKey, attributes: attributes} = stateItem, {axis: axis, coord: coord, sizeRange: sizeRange, coordRange: coordRange} = cacheInfo, axisCenter = axis.getCenter(), center = {
54
+ x: axisCenter.x + layoutStartPoint.x,
55
+ y: axisCenter.y + layoutStartPoint.y
56
+ };
57
+ if ("angle" === coordKey) {
58
+ return "sector" === ("rect" === attributes.type ? "sector" : "line") ? {
59
+ center: center,
60
+ innerRadius: axis.getInnerRadius(),
61
+ radius: axis.getOuterRadius(),
62
+ startAngle: coordRange[0],
63
+ endAngle: coordRange[1]
64
+ } : {
65
+ start: polarToCartesian(center, axis.getInnerRadius(), coord),
66
+ end: polarToCartesian(center, axis.getOuterRadius(), coord)
67
+ };
68
+ }
69
+ const startAngle = axis.startAngle, endAngle = axis.endAngle, sides = cacheInfo.sides;
70
+ let polygonRadius = coord;
71
+ if (!smooth) {
72
+ const axisCenter = axis.getCenter(), point = axis.coordToPoint({
73
+ angle: sizeRange[0],
74
+ radius: coord
75
+ }), curAngle = getAngleByPoint(axisCenter, point), stepAngle = (endAngle - startAngle) / sides, index = Math.floor((curAngle - startAngle) / stepAngle), preAngle = index * stepAngle + startAngle, nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle), prePoint = polarToCartesian(axisCenter, coord, preAngle), nextPoint = polarToCartesian(axisCenter, coord, nextAngle), insertPoint = getIntersectPoint([ nextPoint.x, nextPoint.y ], [ prePoint.x, prePoint.y ], [ axisCenter.x, axisCenter.y ], [ point.x, point.y ]);
76
+ insertPoint && (polygonRadius = clamp(PointService.distancePN(point, insertPoint[0], insertPoint[1]) + coord, axis.getInnerRadius(), axis.getOuterRadius()));
122
77
  }
123
78
  return {
124
79
  center: center,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/utils/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport type { IPolarSeries } from '../../../series';\nimport type { IHair, IHairRadius } from '../base';\nimport type { AxisCurrentValueMap, IPolarCrosshairInfo } from '../interface';\nimport { getAxisLabelOffset } from '../../axis/util';\nimport { PointService, clamp, getAngleByPoint, getIntersectPoint, isValid, polarToCartesian } from '@visactor/vutils';\nimport type { ILinearAxis, IPolarAxis } from '../../axis';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport { getFormatFunction } from '../../util';\n\nexport const layoutByValue = (\n series: IPolarSeries,\n currValueAngle: AxisCurrentValueMap,\n currValueRadius: AxisCurrentValueMap,\n angleHair: IHair,\n radiusHair: IHair,\n enableRemain: boolean = false,\n cacheAngleCrossHairInfo?: IPolarCrosshairInfo,\n cacheRadiusCrossHairInfo?: IPolarCrosshairInfo\n) => {\n let angleCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as IPolarCrosshairInfo;\n let radiusCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).domain().length,\n label: { visible: false, text: '', offset: 0 }\n } as IPolarCrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (angleHair) {\n angleCrossHairInfo.visible = !!currValueAngle.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n currValueAngle.forEach(({ axis, value, coord, ...rest }) => {\n value = value ?? '';\n mergeSpec(angleCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([value]);\n angleCrossHairInfo.angle = angle;\n const niceLabelFormatter = (axis as ILinearAxis).niceLabelFormatter;\n if (angleHair.label?.visible) {\n angleCrossHairInfo.label.visible = true;\n angleCrossHairInfo.label.defaultFormatter = niceLabelFormatter;\n angleCrossHairInfo.label.text = value;\n angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n angleCrossHairInfo.startAngle = angle - bandWidth / 2;\n angleCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (radiusHair) {\n radiusCrossHairInfo.visible = !!currValueRadius.size;\n currValueRadius.forEach(({ axis, value, coord, ...rest }) => {\n value = value ?? '';\n const niceLabelFormatter = (axis as ILinearAxis).niceLabelFormatter;\n if (radiusHair.label?.visible) {\n radiusCrossHairInfo.label.visible = true;\n radiusCrossHairInfo.label.defaultFormatter = niceLabelFormatter;\n radiusCrossHairInfo.label.text = value;\n radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n radiusCrossHairInfo.angle = coord.angle;\n radiusCrossHairInfo.axis = axis as IPolarAxis;\n mergeSpec(radiusCrossHairInfo, rest);\n });\n }\n\n if (enableRemain && !angleCrossHairInfo.visible && isValid(cacheAngleCrossHairInfo)) {\n angleCrossHairInfo = cacheAngleCrossHairInfo;\n } else {\n if (angleCrossHairInfo.label.visible) {\n if (angleHair && angleHair.label) {\n const { label } = angleCrossHairInfo;\n const { formatMethod, formatter } = angleHair.label;\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, label.text, {\n label: label.text,\n orient: 'angle'\n });\n if (formatFunc) {\n label.text = formatFunc(...args);\n } else if (label.defaultFormatter) {\n label.text = label.defaultFormatter(label.text);\n }\n }\n }\n }\n\n if (enableRemain && !radiusCrossHairInfo.visible && isValid(cacheRadiusCrossHairInfo)) {\n radiusCrossHairInfo = cacheRadiusCrossHairInfo;\n } else {\n if (radiusCrossHairInfo.label.visible) {\n if (radiusHair && radiusHair.label) {\n const { label } = radiusCrossHairInfo;\n const { formatMethod, formatter } = radiusHair.label;\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, label.text, {\n label: label.text,\n orient: 'radius'\n });\n if (formatFunc) {\n label.text = formatFunc(...args);\n } else if (label.defaultFormatter) {\n label.text = label.defaultFormatter(label.text);\n }\n }\n }\n }\n\n return {\n angle: angleCrossHairInfo,\n radius: radiusCrossHairInfo\n };\n};\n\nexport const layoutAngleCrosshair = (angleHair: IHair, crosshairInfo: IPolarCrosshairInfo) => {\n const { angle, innerRadius, radius, startAngle, endAngle, center } = crosshairInfo;\n\n const crosshairType = angleHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n return positionAttrs;\n};\n\nexport const layoutRadiusCrosshair = (radiusHair: IHairRadius, crosshairInfo: IPolarCrosshairInfo) => {\n const { center, startAngle, endAngle, distance, sides, axis, point, radius, innerRadius } = crosshairInfo;\n\n const crosshairType = radiusHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n return positionAttrs;\n};\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/utils/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport type { IPolarSeries } from '../../../series';\nimport type { CrossHairStateByField, CrossHairStateItem, ICrosshairInfo } from '../interface';\nimport { getAxisLabelOffset } from '../../axis/util';\nimport { PointService, clamp, getAngleByPoint, getIntersectPoint, isValid, polarToCartesian } from '@visactor/vutils';\nimport type { ILinearAxis, IPolarAxis } from '../../axis';\nimport { getFormatFunction } from '../../util';\nimport type { ILayoutPoint } from '../../../typings/layout';\n\nexport const layoutByValue = (\n stateByField: CrossHairStateByField,\n series: IPolarSeries,\n enableRemain: boolean = false\n) => {\n Object.keys(stateByField).forEach(field => {\n const { attributes, currentValue, cacheInfo, coordKey } = stateByField[field];\n\n if (attributes) {\n const isVisible = !!currentValue.size;\n const useCache = enableRemain && !isVisible && isValid(cacheInfo);\n const newInfo = useCache\n ? cacheInfo\n : ({\n coord: 0,\n axis: null,\n visible: isVisible,\n coordRange: [0, 0],\n sizeRange: [0, 0],\n labels: {\n all: { visible: false, text: '', offset: 0 }\n }\n } as ICrosshairInfo);\n if (cacheInfo) {\n cacheInfo._isCache = useCache;\n }\n\n if (field === 'valueField') {\n (newInfo as any).sides = (series.angleAxisHelper.getScale(0) as BandScale).domain().length;\n }\n\n currentValue.forEach(({ axis, datum: value = '' }) => {\n const niceLabelFormatter = (axis as ILinearAxis).niceLabelFormatter;\n\n if (attributes.label?.visible) {\n newInfo.labels.all.visible = true;\n newInfo.labels.all.defaultFormatter = niceLabelFormatter;\n newInfo.labels.all.text = value;\n newInfo.labels.all.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n if (field === 'categoryField') {\n const angle = series.angleAxisHelper.dataToPosition([value]);\n const bandSize = series.angleAxisHelper.getBandwidth(0);\n const radius = (axis as IPolarAxis).getOuterRadius();\n\n newInfo.coord = angle;\n newInfo.coordRange = [angle - bandSize / 2, angle + bandSize / 2];\n newInfo.sizeRange = [radius, radius];\n } else {\n const angle = (axis as IPolarAxis).startAngle;\n const radius = series.radiusAxisHelper.dataToPosition([value]);\n\n newInfo.coord = radius;\n newInfo.coordRange = [radius, radius];\n newInfo.sizeRange = [angle, angle];\n }\n\n newInfo.axis = axis as IPolarAxis;\n });\n\n if (newInfo && !useCache) {\n if (newInfo.labels.all.visible) {\n if (attributes && attributes.label) {\n const label = newInfo.labels.all;\n const { formatMethod, formatter } = attributes.label;\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, label.text, {\n label: label.text,\n orient: coordKey\n });\n if (formatFunc) {\n label.text = formatFunc(...args);\n } else if (label.defaultFormatter) {\n label.text = label.defaultFormatter(label.text);\n }\n }\n }\n }\n\n stateByField[field].cacheInfo = newInfo;\n }\n });\n};\n\nexport const layoutCrosshair = (stateItem: CrossHairStateItem, layoutStartPoint: ILayoutPoint, smooth?: boolean) => {\n const { cacheInfo, coordKey, attributes } = stateItem;\n const { axis, coord, sizeRange, coordRange } = cacheInfo;\n const axisCenter = (axis as IPolarAxis).getCenter();\n const center = {\n x: axisCenter.x + layoutStartPoint.x,\n y: axisCenter.y + layoutStartPoint.y\n };\n\n if (coordKey === 'angle') {\n const crosshairType = attributes.type === 'rect' ? 'sector' : 'line';\n\n if (crosshairType === 'sector') {\n // angle 轴对应的crosshair\n return {\n center,\n innerRadius: (axis as IPolarAxis).getInnerRadius(),\n radius: (axis as IPolarAxis).getOuterRadius(),\n startAngle: coordRange[0],\n endAngle: coordRange[1]\n };\n }\n // angle 轴对应的crosshair\n return {\n start: polarToCartesian(center, (axis as IPolarAxis).getInnerRadius(), coord),\n end: polarToCartesian(center, (axis as IPolarAxis).getOuterRadius(), coord)\n };\n }\n\n const startAngle = (axis as IPolarAxis).startAngle;\n const endAngle = (axis as IPolarAxis).endAngle;\n const sides = cacheInfo.sides;\n\n let polygonRadius = coord;\n if (!smooth) {\n const axisCenter = (axis as IPolarAxis).getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const point = (axis as IPolarAxis).coordToPoint({\n angle: sizeRange[0],\n radius: coord\n });\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, coord, preAngle);\n const nextPoint = polarToCartesian(axisCenter, coord, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, (insertPoint as [number, number])[0], (insertPoint as [number, number])[1]) +\n coord,\n (axis as IPolarAxis).getInnerRadius(),\n (axis as IPolarAxis).getOuterRadius()\n );\n }\n }\n return {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.13.4";
4
+ export declare const version = "1.13.5-alpha.1";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export type { IRegion } from '../region/interface';
package/esm/core/index.js CHANGED
@@ -4,7 +4,7 @@ import { Factory } from "./factory";
4
4
 
5
5
  export { VChart, Factory };
6
6
 
7
- export const version = "1.13.4";
7
+ export const version = "1.13.5-alpha.1";
8
8
 
9
9
  export * from "../typings/spec/common";
10
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAOhC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAG5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAKjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.13.4\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport type { IRegion } from '../region/interface';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from './interface';\n\n// some constants\nexport * from '../constant/base';\nexport * from '../constant/data';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAOxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAG5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAKjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.13.5-alpha.1\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport type { IRegion } from '../region/interface';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from './interface';\n\n// some constants\nexport * from '../constant/base';\nexport * from '../constant/data';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from './event';
2
2
  export * from './events';
3
+ export { getCartesianDimensionInfo, getPolarDimensionInfo } from './events/dimension/util';
@@ -1,4 +1,6 @@
1
1
  export * from "./event";
2
2
 
3
3
  export * from "./events";
4
+
5
+ export { getCartesianDimensionInfo, getPolarDimensionInfo } from "./events/dimension/util";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC","file":"index.js","sourcesContent":["export * from './event';\nexport * from './events';\n"]}
1
+ {"version":3,"sources":["../src/event/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC","file":"index.js","sourcesContent":["export * from './event';\nexport * from './events';\n\nexport { getCartesianDimensionInfo, getPolarDimensionInfo } from './events/dimension/util';\n"]}
@@ -8,12 +8,10 @@ export declare const getPositionType: (position: TooltipFixedPosition, dim: 'x'
8
8
  export declare const getCartesianCrosshairRect: (dimensionData: IDimensionData, layoutStartPoint: ILayoutPoint) => {
9
9
  visible: boolean;
10
10
  start: {
11
- x: number;
12
- y: number;
11
+ [x: string]: number;
13
12
  };
14
13
  end: {
15
- x: number;
16
- y: number;
14
+ [x: string]: number;
17
15
  };
18
16
  };
19
17
  export declare const isGlobalTooltipPositionPattern: (obj: any) => obj is IGlobalTooltipPositionPattern;
@@ -1,4 +1,4 @@
1
- import { layoutByValue, layoutHorizontalCrosshair, layoutVerticalCrosshair } from "../../../../component/crosshair/utils/cartesian";
1
+ import { layoutByValue, layoutCrosshair } from "../../../../component/crosshair/utils/cartesian";
2
2
 
3
3
  import { isFunction, isNumber, isObject, isValid } from "@visactor/vutils";
4
4
 
@@ -42,17 +42,30 @@ export const getCartesianCrosshairRect = (dimensionData, layoutStartPoint) => {
42
42
  const currValueX = new Map, currValueY = new Map, {series: series, datum: datum} = dimensionData, isHorizontal = "horizontal" === series.direction, axisId = (isHorizontal ? series.getYAxisHelper() : series.getXAxisHelper()).getAxisId(), axis = series.getChart().getComponentsByKey("axes").find((axis => axis.id === axisId));
43
43
  if (!axis) return;
44
44
  (isHorizontal ? currValueY : currValueX).set(axis.getSpecIndex(), {
45
- value: null === (_a = series.getDatumPositionValues(datum[0], series.getDimensionField())) || void 0 === _a ? void 0 : _a[0],
45
+ datum: null === (_a = series.getDatumPositionValues(datum[0], series.getDimensionField())) || void 0 === _a ? void 0 : _a[0],
46
46
  axis: axis
47
47
  });
48
- const xHair = {
49
- visible: !!currValueX.size,
50
- type: "rect"
51
- }, yHair = {
52
- visible: !!currValueY.size,
53
- type: "rect"
54
- }, {x: crosshairInfoX, y: crosshairInfoY, offsetWidth: offsetWidth, offsetHeight: offsetHeight, bandWidth: bandWidth, bandHeight: bandHeight} = layoutByValue(3, series, layoutStartPoint, currValueX, currValueY, xHair, yHair);
55
- return crosshairInfoX ? layoutVerticalCrosshair(xHair, crosshairInfoX, bandWidth, offsetWidth) : crosshairInfoY ? layoutHorizontalCrosshair(yHair, crosshairInfoY, bandHeight, offsetHeight) : void 0;
48
+ const state = {
49
+ xField: {
50
+ coordKey: "x",
51
+ anotherAxisKey: "y",
52
+ currentValue: currValueX,
53
+ attributes: {
54
+ visible: !!currValueX.size,
55
+ type: "rect"
56
+ }
57
+ },
58
+ yField: {
59
+ coordKey: "y",
60
+ anotherAxisKey: "x",
61
+ currentValue: currValueY,
62
+ attributes: {
63
+ visible: !!currValueY.size,
64
+ type: "rect"
65
+ }
66
+ }
67
+ };
68
+ return layoutByValue(state, series, layoutStartPoint), state.xField.cacheInfo ? layoutCrosshair(state.xField) : state.yField.cacheInfo ? layoutCrosshair(state.yField) : void 0;
56
69
  };
57
70
 
58
71
  export const isGlobalTooltipPositionPattern = obj => isObject(obj) && (isValid(obj.left) || isValid(obj.right) || isValid(obj.top) || isValid(obj.bottom));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugin/components/tooltip-handler/utils/position.ts"],"names":[],"mappings":"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","file":"position.js","sourcesContent":["import type { IAxis } from '../../../../component/axis';\nimport type { AxisCurrentValueMap } from '../../../../component/crosshair';\nimport type { IHair } from '../../../../component/crosshair/base';\nimport { LayoutType } from '../../../../component/crosshair/config';\nimport {\n layoutByValue,\n layoutHorizontalCrosshair,\n layoutVerticalCrosshair\n} from '../../../../component/crosshair/utils/cartesian';\nimport type { IDimensionData } from '../../../../event';\nimport type { ICartesianSeries } from '../../../../series';\nimport { Direction, type ILayoutPoint } from '../../../../typings';\nimport type {\n IFixedTooltipPositionPattern,\n IGlobalTooltipPositionPattern,\n TooltipFixedPosition\n} from '../../../../typings/tooltip/position';\nimport { isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\n\nexport const getActualTooltipPositionValue = (\n position: number | ((event: MouseEvent) => number) | null | undefined,\n event: MouseEvent\n): number => {\n let result: number;\n if (isValid(position)) {\n if (isNumber(position)) {\n result = position as number;\n } else if (isFunction(position)) {\n // 这里额外判断下是否合法\n const tooltipPosition = (position as (event: MouseEvent) => number)(event);\n\n if (isNumber(tooltipPosition)) {\n result = tooltipPosition;\n }\n }\n }\n return result;\n};\n\n// 'left' | 'centerLeft' | 'center' | 'centerRight' | 'right'\n// 'top' | 'centerTop' | 'center' | 'centerBottom' | 'bottom'\nexport type TooltipPositionType = -2 | -1 | 0 | 1 | 2;\n\n/** position 对齐方式在 x、y 分量下的分解 */\nexport const positionType: Record<TooltipFixedPosition, [TooltipPositionType, TooltipPositionType]> = {\n left: [-2, 0],\n right: [2, 0],\n top: [0, -2],\n lt: [-2, -2],\n tl: [-2, -2],\n rt: [2, -2],\n tr: [2, -2],\n bottom: [0, 2],\n bl: [-2, 2],\n lb: [-2, 2],\n br: [2, 2],\n rb: [2, 2],\n inside: [0, 0], // 旧版兼容\n center: [0, 0],\n centerBottom: [0, 1],\n centerTop: [0, -1],\n centerLeft: [-1, 0],\n centerRight: [1, 0]\n};\n\nexport const getPositionType = (\n position: TooltipFixedPosition,\n dim: 'x' | 'y',\n defaultCase: TooltipPositionType = 2\n): TooltipPositionType => positionType[position]?.[dim === 'x' ? 0 : 1] ?? defaultCase;\n\nexport const getCartesianCrosshairRect = (dimensionData: IDimensionData, layoutStartPoint: ILayoutPoint) => {\n const currValueX: AxisCurrentValueMap = new Map();\n const currValueY: AxisCurrentValueMap = new Map();\n const { series, datum } = dimensionData;\n const isHorizontal = (series as ICartesianSeries).direction === Direction.horizontal;\n const axisHelper = isHorizontal\n ? (series as ICartesianSeries).getYAxisHelper()\n : (series as ICartesianSeries).getXAxisHelper();\n const axisId = axisHelper.getAxisId();\n const axis = series\n .getChart()\n .getComponentsByKey('axes')\n .find(axis => axis.id === axisId) as IAxis;\n\n if (!axis) {\n return undefined;\n }\n (isHorizontal ? currValueY : currValueX).set(axis.getSpecIndex(), {\n value: series.getDatumPositionValues(datum[0], series.getDimensionField())?.[0],\n axis\n });\n\n const xHair: IHair = {\n visible: !!currValueX.size,\n type: 'rect'\n };\n const yHair: IHair = {\n visible: !!currValueY.size,\n type: 'rect'\n };\n\n const {\n x: crosshairInfoX,\n y: crosshairInfoY,\n offsetWidth,\n offsetHeight,\n bandWidth,\n bandHeight\n } = layoutByValue(LayoutType.ALL, series as ICartesianSeries, layoutStartPoint, currValueX, currValueY, xHair, yHair);\n\n if (crosshairInfoX) {\n return layoutVerticalCrosshair(xHair, crosshairInfoX, bandWidth, offsetWidth);\n }\n if (crosshairInfoY) {\n return layoutHorizontalCrosshair(yHair, crosshairInfoY, bandHeight, offsetHeight);\n }\n return undefined;\n};\n\nexport const isGlobalTooltipPositionPattern = (obj: any): obj is IGlobalTooltipPositionPattern => {\n return (\n isObject(obj) &&\n (isValid((obj as IGlobalTooltipPositionPattern).left) ||\n isValid((obj as IGlobalTooltipPositionPattern).right) ||\n isValid((obj as IGlobalTooltipPositionPattern).top) ||\n isValid((obj as IGlobalTooltipPositionPattern).bottom))\n );\n};\n\nexport const isFixedTooltipPositionPattern = (obj: any): obj is IFixedTooltipPositionPattern => {\n return (\n isObject(obj) &&\n (isValid((obj as IFixedTooltipPositionPattern).x) || isValid((obj as IFixedTooltipPositionPattern).y))\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/plugin/components/tooltip-handler/utils/position.ts"],"names":[],"mappings":"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","file":"position.js","sourcesContent":["import type { IAxis } from '../../../../component/axis';\nimport type { AxisCurrentValueMap, CrossHairStateByField } from '../../../../component/crosshair';\n\nimport { layoutByValue, layoutCrosshair } from '../../../../component/crosshair/utils/cartesian';\nimport type { IDimensionData } from '../../../../event';\nimport type { ICartesianSeries } from '../../../../series';\nimport { Direction, type ILayoutPoint } from '../../../../typings';\nimport type {\n IFixedTooltipPositionPattern,\n IGlobalTooltipPositionPattern,\n TooltipFixedPosition\n} from '../../../../typings/tooltip/position';\nimport { isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\n\nexport const getActualTooltipPositionValue = (\n position: number | ((event: MouseEvent) => number) | null | undefined,\n event: MouseEvent\n): number => {\n let result: number;\n if (isValid(position)) {\n if (isNumber(position)) {\n result = position as number;\n } else if (isFunction(position)) {\n // 这里额外判断下是否合法\n const tooltipPosition = (position as (event: MouseEvent) => number)(event);\n\n if (isNumber(tooltipPosition)) {\n result = tooltipPosition;\n }\n }\n }\n return result;\n};\n\n// 'left' | 'centerLeft' | 'center' | 'centerRight' | 'right'\n// 'top' | 'centerTop' | 'center' | 'centerBottom' | 'bottom'\nexport type TooltipPositionType = -2 | -1 | 0 | 1 | 2;\n\n/** position 对齐方式在 x、y 分量下的分解 */\nexport const positionType: Record<TooltipFixedPosition, [TooltipPositionType, TooltipPositionType]> = {\n left: [-2, 0],\n right: [2, 0],\n top: [0, -2],\n lt: [-2, -2],\n tl: [-2, -2],\n rt: [2, -2],\n tr: [2, -2],\n bottom: [0, 2],\n bl: [-2, 2],\n lb: [-2, 2],\n br: [2, 2],\n rb: [2, 2],\n inside: [0, 0], // 旧版兼容\n center: [0, 0],\n centerBottom: [0, 1],\n centerTop: [0, -1],\n centerLeft: [-1, 0],\n centerRight: [1, 0]\n};\n\nexport const getPositionType = (\n position: TooltipFixedPosition,\n dim: 'x' | 'y',\n defaultCase: TooltipPositionType = 2\n): TooltipPositionType => positionType[position]?.[dim === 'x' ? 0 : 1] ?? defaultCase;\n\nexport const getCartesianCrosshairRect = (dimensionData: IDimensionData, layoutStartPoint: ILayoutPoint) => {\n const currValueX: AxisCurrentValueMap = new Map();\n const currValueY: AxisCurrentValueMap = new Map();\n const { series, datum } = dimensionData;\n const isHorizontal = (series as ICartesianSeries).direction === Direction.horizontal;\n const axisHelper = isHorizontal\n ? (series as ICartesianSeries).getYAxisHelper()\n : (series as ICartesianSeries).getXAxisHelper();\n const axisId = axisHelper.getAxisId();\n const axis = series\n .getChart()\n .getComponentsByKey('axes')\n .find(axis => axis.id === axisId) as IAxis;\n\n if (!axis) {\n return undefined;\n }\n (isHorizontal ? currValueY : currValueX).set(axis.getSpecIndex(), {\n datum: series.getDatumPositionValues(datum[0], series.getDimensionField())?.[0],\n axis\n });\n\n const state: CrossHairStateByField = {\n xField: {\n coordKey: 'x',\n anotherAxisKey: 'y',\n currentValue: currValueX,\n attributes: {\n visible: !!currValueX.size,\n type: 'rect'\n }\n },\n yField: {\n coordKey: 'y',\n anotherAxisKey: 'x',\n currentValue: currValueY,\n attributes: {\n visible: !!currValueY.size,\n type: 'rect'\n }\n }\n };\n\n layoutByValue(state, series as ICartesianSeries, layoutStartPoint);\n\n if (state.xField.cacheInfo) {\n return layoutCrosshair(state.xField);\n }\n if (state.yField.cacheInfo) {\n return layoutCrosshair(state.yField);\n }\n return undefined;\n};\n\nexport const isGlobalTooltipPositionPattern = (obj: any): obj is IGlobalTooltipPositionPattern => {\n return (\n isObject(obj) &&\n (isValid((obj as IGlobalTooltipPositionPattern).left) ||\n isValid((obj as IGlobalTooltipPositionPattern).right) ||\n isValid((obj as IGlobalTooltipPositionPattern).top) ||\n isValid((obj as IGlobalTooltipPositionPattern).bottom))\n );\n};\n\nexport const isFixedTooltipPositionPattern = (obj: any): obj is IFixedTooltipPositionPattern => {\n return (\n isObject(obj) &&\n (isValid((obj as IFixedTooltipPositionPattern).x) || isValid((obj as IFixedTooltipPositionPattern).y))\n );\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart",
3
- "version": "1.13.4",
3
+ "version": "1.13.5-alpha.1",
4
4
  "description": "charts lib based @visactor/VGrammar",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -82,8 +82,8 @@
82
82
  "rimraf": "3.0.2",
83
83
  "cross-env": "^7.0.3",
84
84
  "@internal/typescript-json-schema": "0.0.1",
85
- "@internal/bundler": "0.0.1",
86
85
  "@internal/eslint-config": "0.0.1",
86
+ "@internal/bundler": "0.0.1",
87
87
  "@internal/ts-config": "0.0.1"
88
88
  },
89
89
  "dependencies": {
@@ -101,7 +101,7 @@
101
101
  "@visactor/vgrammar-sankey": "0.15.5",
102
102
  "@visactor/vgrammar-venn": "0.15.5",
103
103
  "@visactor/vgrammar-util": "0.15.5",
104
- "@visactor/vutils-extension": "1.13.4"
104
+ "@visactor/vutils-extension": "1.13.5-alpha.1"
105
105
  },
106
106
  "publishConfig": {
107
107
  "access": "public",
@@ -1,33 +0,0 @@
1
- import type { StringOrNumber } from '../../../typings';
2
- import type { IAxis } from '../../axis/interface';
3
- export interface ICrosshairLabelInfo {
4
- visible: boolean;
5
- text: StringOrNumber;
6
- dx: number;
7
- dy: number;
8
- defaultFormatter?: (value: StringOrNumber) => StringOrNumber;
9
- }
10
- export interface ICrosshairInfoX {
11
- height: number;
12
- leftPos: number;
13
- rightPos: number;
14
- topPos: number;
15
- x: number;
16
- bottom: ICrosshairLabelInfo;
17
- top: ICrosshairLabelInfo;
18
- visible: boolean;
19
- _isCache?: boolean;
20
- axis: IAxis;
21
- }
22
- export interface ICrosshairInfoY {
23
- width: number;
24
- leftPos: number;
25
- topPos: number;
26
- bottomPos: number;
27
- y: number;
28
- left: ICrosshairLabelInfo;
29
- right: ICrosshairLabelInfo;
30
- visible: boolean;
31
- _isCache?: boolean;
32
- axis: IAxis;
33
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=cartesian.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/component/crosshair/interface/cartesian.ts"],"names":[],"mappings":"","file":"cartesian.js","sourcesContent":["import type { StringOrNumber } from '../../../typings';\nimport type { IAxis } from '../../axis/interface';\n\nexport interface ICrosshairLabelInfo {\n visible: boolean;\n text: StringOrNumber;\n dx: number;\n dy: number;\n defaultFormatter?: (value: StringOrNumber) => StringOrNumber;\n}\n\nexport interface ICrosshairInfoX {\n height: number;\n leftPos: number;\n rightPos: number;\n topPos: number;\n x: number;\n bottom: ICrosshairLabelInfo;\n top: ICrosshairLabelInfo;\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\nexport interface ICrosshairInfoY {\n width: number;\n leftPos: number;\n topPos: number;\n bottomPos: number;\n y: number;\n left: ICrosshairLabelInfo;\n right: ICrosshairLabelInfo;\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\n"]}
@@ -1,25 +0,0 @@
1
- import type { IPoint, StringOrNumber } from '../../../typings';
2
- import type { IPolarAxis } from '../../axis/polar/interface';
3
- export interface IPolarCrosshairInfo {
4
- x: number;
5
- y: number;
6
- center: IPoint;
7
- radius: number;
8
- distance: number;
9
- startAngle: number;
10
- endAngle: number;
11
- innerRadius: number;
12
- visible: boolean;
13
- sides: number;
14
- angle: number;
15
- point: IPoint;
16
- _isCache?: boolean;
17
- label?: IPolarCrosshairLabelInfo;
18
- axis?: IPolarAxis;
19
- }
20
- export interface IPolarCrosshairLabelInfo {
21
- visible: boolean;
22
- text: StringOrNumber;
23
- offset: number;
24
- defaultFormatter?: (value: StringOrNumber) => StringOrNumber;
25
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- //# sourceMappingURL=polar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/component/crosshair/interface/polar.ts"],"names":[],"mappings":"","file":"polar.js","sourcesContent":["import type { IPoint, StringOrNumber } from '../../../typings';\nimport type { IPolarAxis } from '../../axis/polar/interface';\n\nexport interface IPolarCrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: IPolarCrosshairLabelInfo;\n axis?: IPolarAxis;\n}\n\nexport interface IPolarCrosshairLabelInfo {\n visible: boolean;\n text: StringOrNumber;\n offset: number;\n defaultFormatter?: (value: StringOrNumber) => StringOrNumber;\n}\n"]}
@@ -1,33 +0,0 @@
1
- import type { StringOrNumber } from '../../../typings';
2
- import type { IAxis } from '../../axis/interface';
3
- export interface ICrosshairLabelInfo {
4
- visible: boolean;
5
- text: StringOrNumber;
6
- dx: number;
7
- dy: number;
8
- defaultFormatter?: (value: StringOrNumber) => StringOrNumber;
9
- }
10
- export interface ICrosshairInfoX {
11
- height: number;
12
- leftPos: number;
13
- rightPos: number;
14
- topPos: number;
15
- x: number;
16
- bottom: ICrosshairLabelInfo;
17
- top: ICrosshairLabelInfo;
18
- visible: boolean;
19
- _isCache?: boolean;
20
- axis: IAxis;
21
- }
22
- export interface ICrosshairInfoY {
23
- width: number;
24
- leftPos: number;
25
- topPos: number;
26
- bottomPos: number;
27
- y: number;
28
- left: ICrosshairLabelInfo;
29
- right: ICrosshairLabelInfo;
30
- visible: boolean;
31
- _isCache?: boolean;
32
- axis: IAxis;
33
- }
@@ -1,2 +0,0 @@
1
- export { };
2
- //# sourceMappingURL=cartesian.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/component/crosshair/interface/cartesian.ts"],"names":[],"mappings":"","file":"cartesian.js","sourcesContent":["import type { StringOrNumber } from '../../../typings';\nimport type { IAxis } from '../../axis/interface';\n\nexport interface ICrosshairLabelInfo {\n visible: boolean;\n text: StringOrNumber;\n dx: number;\n dy: number;\n defaultFormatter?: (value: StringOrNumber) => StringOrNumber;\n}\n\nexport interface ICrosshairInfoX {\n height: number;\n leftPos: number;\n rightPos: number;\n topPos: number;\n x: number;\n bottom: ICrosshairLabelInfo;\n top: ICrosshairLabelInfo;\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\nexport interface ICrosshairInfoY {\n width: number;\n leftPos: number;\n topPos: number;\n bottomPos: number;\n y: number;\n left: ICrosshairLabelInfo;\n right: ICrosshairLabelInfo;\n visible: boolean;\n _isCache?: boolean;\n axis: IAxis;\n}\n"]}
@@ -1,25 +0,0 @@
1
- import type { IPoint, StringOrNumber } from '../../../typings';
2
- import type { IPolarAxis } from '../../axis/polar/interface';
3
- export interface IPolarCrosshairInfo {
4
- x: number;
5
- y: number;
6
- center: IPoint;
7
- radius: number;
8
- distance: number;
9
- startAngle: number;
10
- endAngle: number;
11
- innerRadius: number;
12
- visible: boolean;
13
- sides: number;
14
- angle: number;
15
- point: IPoint;
16
- _isCache?: boolean;
17
- label?: IPolarCrosshairLabelInfo;
18
- axis?: IPolarAxis;
19
- }
20
- export interface IPolarCrosshairLabelInfo {
21
- visible: boolean;
22
- text: StringOrNumber;
23
- offset: number;
24
- defaultFormatter?: (value: StringOrNumber) => StringOrNumber;
25
- }
@@ -1,2 +0,0 @@
1
- export { };
2
- //# sourceMappingURL=polar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/component/crosshair/interface/polar.ts"],"names":[],"mappings":"","file":"polar.js","sourcesContent":["import type { IPoint, StringOrNumber } from '../../../typings';\nimport type { IPolarAxis } from '../../axis/polar/interface';\n\nexport interface IPolarCrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: IPolarCrosshairLabelInfo;\n axis?: IPolarAxis;\n}\n\nexport interface IPolarCrosshairLabelInfo {\n visible: boolean;\n text: StringOrNumber;\n offset: number;\n defaultFormatter?: (value: StringOrNumber) => StringOrNumber;\n}\n"]}