From 666fddfea3be417d05df4af3b457a7f5f89fe415 Mon Sep 17 00:00:00 2001 From: xile611 Date: Fri, 25 Apr 2025 17:57:44 +0800 Subject: [PATCH 1/2] feat: tooltip support inside position --- .../plugin/components/tooltip-handler/base.ts | 6 +++ .../tooltip-handler/utils/position.ts | 19 +++++++-- .../vchart/src/typings/tooltip/position.ts | 42 ++++++++++++++++++- 3 files changed, 62 insertions(+), 5 deletions(-) diff --git a/packages/vchart/src/plugin/components/tooltip-handler/base.ts b/packages/vchart/src/plugin/components/tooltip-handler/base.ts index 572d37136a..b62e14ddb5 100644 --- a/packages/vchart/src/plugin/components/tooltip-handler/base.ts +++ b/packages/vchart/src/plugin/components/tooltip-handler/base.ts @@ -322,6 +322,9 @@ export abstract class BaseTooltipHandler extends BasePlugin implements ITooltipH case -2: calcPos[posKey] = dim1 - boxSize * tooltipSizeScale - dimOffset; break; + case -1.5: + calcPos[posKey] = dim1 + dimOffset; + break; case 0: calcPos[posKey] = (dim1 + dim2) / 2 - (boxSize * tooltipSizeScale) / 2; break; @@ -331,6 +334,9 @@ export abstract class BaseTooltipHandler extends BasePlugin implements ITooltipH case 1: calcPos[posKey] = (dim1 + dim2) / 2 + dimOffset; break; + case 1.5: + calcPos[posKey] = dim2 - boxSize * tooltipSizeScale - dimOffset; + break; case 2: calcPos[posKey] = dim2 + dimOffset; break; diff --git a/packages/vchart/src/plugin/components/tooltip-handler/utils/position.ts b/packages/vchart/src/plugin/components/tooltip-handler/utils/position.ts index e9a7d5db5c..022576aa29 100644 --- a/packages/vchart/src/plugin/components/tooltip-handler/utils/position.ts +++ b/packages/vchart/src/plugin/components/tooltip-handler/utils/position.ts @@ -32,20 +32,31 @@ export const getActualTooltipPositionValue = ( return result; }; -// 'left' | 'centerLeft' | 'center' | 'centerRight' | 'right' -// 'top' | 'centerTop' | 'center' | 'centerBottom' | 'bottom' -export type TooltipPositionType = -2 | -1 | 0 | 1 | 2; +// 'left' | 'innerLeft' | 'centerLeft' | 'center' | 'centerRight' | 'innerRight' | 'right' +// 'top' | 'innerTop' | 'centerTop' | 'center' | 'centerBottom' | 'innerBottom' | 'bottom' +export type TooltipPositionType = -2 | -1.5 | -1 | 0 | 1 | 1.5 | 2; /** position 对齐方式在 x、y 分量下的分解 */ export const positionType: Record = { left: [-2, 0], right: [2, 0], top: [0, -2], + bottom: [0, 2], + + insideTop: [0, -1.5], + insideBottom: [0, 1.5], + insideLeft: [-1.5, 0], + insideRight: [1.5, 0], + + insideTopLeft: [-1.5, -1.5], + insideTopRight: [1.5, -1.5], + insideBottomLeft: [-1.5, 1.5], + insideBottomRight: [1.5, 1.5], + lt: [-2, -2], tl: [-2, -2], rt: [2, -2], tr: [2, -2], - bottom: [0, 2], bl: [-2, 2], lb: [-2, 2], br: [2, 2], diff --git a/packages/vchart/src/typings/tooltip/position.ts b/packages/vchart/src/typings/tooltip/position.ts index 49cd7f2233..009084b34d 100644 --- a/packages/vchart/src/typings/tooltip/position.ts +++ b/packages/vchart/src/typings/tooltip/position.ts @@ -89,7 +89,47 @@ export type TooltipFixedPosition = */ | 'centerRight' /** tooltip 显示在鼠标所在图形中心位置(旧版兼容,建议用 `'center'`) */ - | 'inside'; + | 'inside' + /** + * tooltip 显示在鼠标所在图形的内侧顶部 + * @since 1.13.10 + */ + | 'insideTop' + /** + * tooltip 显示在鼠标所在图形的内侧底部 + * @since 1.13.10 + */ + | 'insideBottom' + /** + * tooltip 显示在鼠标所在图形的内侧左侧 + * @since 1.13.10 + */ + | 'insideLeft' + /** + * tooltip 显示在鼠标所在图形的内侧右侧 + * @since 1.13.10 + */ + | 'insideRight' + /** + * tooltip 显示在鼠标所在图形的内侧左上角 + * @since 1.13.10 + */ + | 'insideTopLeft' + /** + * tooltip 显示在鼠标所在图形的内侧右上角 + * @since 1.13.10 + */ + | 'insideTopRight' + /** + * tooltip 显示在鼠标所在图形的内侧左下角 + * @since 1.13.10 + */ + | 'insideBottomLeft' + /** + * tooltip 显示在鼠标所在图形的内侧右下角 + * @since 1.13.10 + */ + | 'insideBottomRight'; export type TooltipPositionMode = /** tooltip 固定在鼠标指针附近 */ From 94e76c4cebf7d61fb957d79a5d555be0ed7d3eb0 Mon Sep 17 00:00:00 2001 From: xile611 Date: Fri, 25 Apr 2025 17:58:07 +0800 Subject: [PATCH 2/2] docs: update changlog of rush --- .../@visactor/vchart/develop_2025-04-25-09-58.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vchart/develop_2025-04-25-09-58.json diff --git a/common/changes/@visactor/vchart/develop_2025-04-25-09-58.json b/common/changes/@visactor/vchart/develop_2025-04-25-09-58.json new file mode 100644 index 0000000000..2e19ac17c4 --- /dev/null +++ b/common/changes/@visactor/vchart/develop_2025-04-25-09-58.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "feat: tooltip support inside position\n\n", + "type": "none", + "packageName": "@visactor/vchart" + } + ], + "packageName": "@visactor/vchart", + "email": "dingling112@gmail.com" +} \ No newline at end of file