Skip to content

Commit 00edbc0

Browse files
authored
Merge pull request #3930 from VisActor/feat/tooltip-position-inside
Feat/tooltip position inside
2 parents e73444b + 94e76c4 commit 00edbc0

File tree

4 files changed

+73
-5
lines changed

4 files changed

+73
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"comment": "feat: tooltip support inside position\n\n",
5+
"type": "none",
6+
"packageName": "@visactor/vchart"
7+
}
8+
],
9+
"packageName": "@visactor/vchart",
10+
"email": "[email protected]"
11+
}

packages/vchart/src/plugin/components/tooltip-handler/base.ts

+6
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,9 @@ export abstract class BaseTooltipHandler extends BasePlugin implements ITooltipH
322322
case -2:
323323
calcPos[posKey] = dim1 - boxSize * tooltipSizeScale - dimOffset;
324324
break;
325+
case -1.5:
326+
calcPos[posKey] = dim1 + dimOffset;
327+
break;
325328
case 0:
326329
calcPos[posKey] = (dim1 + dim2) / 2 - (boxSize * tooltipSizeScale) / 2;
327330
break;
@@ -331,6 +334,9 @@ export abstract class BaseTooltipHandler extends BasePlugin implements ITooltipH
331334
case 1:
332335
calcPos[posKey] = (dim1 + dim2) / 2 + dimOffset;
333336
break;
337+
case 1.5:
338+
calcPos[posKey] = dim2 - boxSize * tooltipSizeScale - dimOffset;
339+
break;
334340
case 2:
335341
calcPos[posKey] = dim2 + dimOffset;
336342
break;

packages/vchart/src/plugin/components/tooltip-handler/utils/position.ts

+15-4
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,31 @@ export const getActualTooltipPositionValue = (
3232
return result;
3333
};
3434

35-
// 'left' | 'centerLeft' | 'center' | 'centerRight' | 'right'
36-
// 'top' | 'centerTop' | 'center' | 'centerBottom' | 'bottom'
37-
export type TooltipPositionType = -2 | -1 | 0 | 1 | 2;
35+
// 'left' | 'innerLeft' | 'centerLeft' | 'center' | 'centerRight' | 'innerRight' | 'right'
36+
// 'top' | 'innerTop' | 'centerTop' | 'center' | 'centerBottom' | 'innerBottom' | 'bottom'
37+
export type TooltipPositionType = -2 | -1.5 | -1 | 0 | 1 | 1.5 | 2;
3838

3939
/** position 对齐方式在 x、y 分量下的分解 */
4040
export const positionType: Record<TooltipFixedPosition, [TooltipPositionType, TooltipPositionType]> = {
4141
left: [-2, 0],
4242
right: [2, 0],
4343
top: [0, -2],
44+
bottom: [0, 2],
45+
46+
insideTop: [0, -1.5],
47+
insideBottom: [0, 1.5],
48+
insideLeft: [-1.5, 0],
49+
insideRight: [1.5, 0],
50+
51+
insideTopLeft: [-1.5, -1.5],
52+
insideTopRight: [1.5, -1.5],
53+
insideBottomLeft: [-1.5, 1.5],
54+
insideBottomRight: [1.5, 1.5],
55+
4456
lt: [-2, -2],
4557
tl: [-2, -2],
4658
rt: [2, -2],
4759
tr: [2, -2],
48-
bottom: [0, 2],
4960
bl: [-2, 2],
5061
lb: [-2, 2],
5162
br: [2, 2],

packages/vchart/src/typings/tooltip/position.ts

+41-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,47 @@ export type TooltipFixedPosition =
8989
*/
9090
| 'centerRight'
9191
/** tooltip 显示在鼠标所在图形中心位置(旧版兼容,建议用 `'center'`) */
92-
| 'inside';
92+
| 'inside'
93+
/**
94+
* tooltip 显示在鼠标所在图形的内侧顶部
95+
* @since 1.13.10
96+
*/
97+
| 'insideTop'
98+
/**
99+
* tooltip 显示在鼠标所在图形的内侧底部
100+
* @since 1.13.10
101+
*/
102+
| 'insideBottom'
103+
/**
104+
* tooltip 显示在鼠标所在图形的内侧左侧
105+
* @since 1.13.10
106+
*/
107+
| 'insideLeft'
108+
/**
109+
* tooltip 显示在鼠标所在图形的内侧右侧
110+
* @since 1.13.10
111+
*/
112+
| 'insideRight'
113+
/**
114+
* tooltip 显示在鼠标所在图形的内侧左上角
115+
* @since 1.13.10
116+
*/
117+
| 'insideTopLeft'
118+
/**
119+
* tooltip 显示在鼠标所在图形的内侧右上角
120+
* @since 1.13.10
121+
*/
122+
| 'insideTopRight'
123+
/**
124+
* tooltip 显示在鼠标所在图形的内侧左下角
125+
* @since 1.13.10
126+
*/
127+
| 'insideBottomLeft'
128+
/**
129+
* tooltip 显示在鼠标所在图形的内侧右下角
130+
* @since 1.13.10
131+
*/
132+
| 'insideBottomRight';
93133

94134
export type TooltipPositionMode =
95135
/** tooltip 固定在鼠标指针附近 */

0 commit comments

Comments
 (0)