@visactor/vchart 1.2.0-beta.2 → 1.2.0-beta.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 (69) hide show
  1. package/build/index.js +49 -22
  2. package/build/index.min.js +1 -1
  3. package/cjs/component/tooltip/handler/base.d.ts +1 -1
  4. package/cjs/component/tooltip/handler/base.js +1 -1
  5. package/cjs/component/tooltip/handler/base.js.map +1 -1
  6. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +1 -0
  7. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +11 -4
  8. package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  9. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +1 -0
  10. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +3 -0
  11. package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  12. package/cjs/component/tooltip/interface/event.d.ts +8 -0
  13. package/cjs/component/tooltip/interface/event.js +6 -0
  14. package/cjs/component/tooltip/interface/event.js.map +1 -0
  15. package/cjs/component/tooltip/interface/spec.d.ts +2 -2
  16. package/cjs/component/tooltip/interface/spec.js.map +1 -1
  17. package/cjs/component/tooltip/processor/base.js +6 -2
  18. package/cjs/component/tooltip/processor/base.js.map +1 -1
  19. package/cjs/component/tooltip/processor/dimension-tooltip.js +3 -4
  20. package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
  21. package/cjs/component/tooltip/processor/mark-tooltip.js +1 -2
  22. package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
  23. package/cjs/component/tooltip/tooltip.d.ts +4 -2
  24. package/cjs/component/tooltip/tooltip.js +21 -9
  25. package/cjs/component/tooltip/tooltip.js.map +1 -1
  26. package/cjs/constant/event.d.ts +3 -1
  27. package/cjs/constant/event.js +2 -1
  28. package/cjs/constant/event.js.map +1 -1
  29. package/cjs/core/index.d.ts +1 -1
  30. package/cjs/core/index.js +1 -1
  31. package/cjs/core/index.js.map +1 -1
  32. package/cjs/event/interface.d.ts +3 -0
  33. package/cjs/event/interface.js.map +1 -1
  34. package/cjs/typings/tooltip/handler.d.ts +1 -0
  35. package/cjs/typings/tooltip/handler.js.map +1 -1
  36. package/esm/component/tooltip/handler/base.d.ts +1 -1
  37. package/esm/component/tooltip/handler/base.js +1 -1
  38. package/esm/component/tooltip/handler/base.js.map +1 -1
  39. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +1 -0
  40. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +11 -4
  41. package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
  42. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +1 -0
  43. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +3 -0
  44. package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
  45. package/esm/component/tooltip/interface/event.d.ts +8 -0
  46. package/esm/component/tooltip/interface/event.js +2 -0
  47. package/esm/component/tooltip/interface/event.js.map +1 -0
  48. package/esm/component/tooltip/interface/spec.d.ts +2 -2
  49. package/esm/component/tooltip/interface/spec.js.map +1 -1
  50. package/esm/component/tooltip/processor/base.js +7 -1
  51. package/esm/component/tooltip/processor/base.js.map +1 -1
  52. package/esm/component/tooltip/processor/dimension-tooltip.js +2 -7
  53. package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
  54. package/esm/component/tooltip/processor/mark-tooltip.js +0 -3
  55. package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
  56. package/esm/component/tooltip/tooltip.d.ts +4 -2
  57. package/esm/component/tooltip/tooltip.js +23 -9
  58. package/esm/component/tooltip/tooltip.js.map +1 -1
  59. package/esm/constant/event.d.ts +3 -1
  60. package/esm/constant/event.js +2 -1
  61. package/esm/constant/event.js.map +1 -1
  62. package/esm/core/index.d.ts +1 -1
  63. package/esm/core/index.js +1 -1
  64. package/esm/core/index.js.map +1 -1
  65. package/esm/event/interface.d.ts +3 -0
  66. package/esm/event/interface.js.map +1 -1
  67. package/esm/typings/tooltip/handler.d.ts +1 -0
  68. package/esm/typings/tooltip/handler.js.map +1 -1
  69. package/package.json +3 -3
@@ -34,7 +34,7 @@ export declare abstract class BaseTooltipHandler implements ITooltipHandler {
34
34
  protected _changeTooltip: ChangeTooltipFunc;
35
35
  protected changeTooltipPosition: ChangeTooltipPositionFunc;
36
36
  protected _changeTooltipPosition: ChangeTooltipPositionFunc;
37
- hideTooltip(params: TooltipHandlerParams): void;
37
+ hideTooltip(params: TooltipHandlerParams): TooltipResult;
38
38
  release(): void;
39
39
  protected abstract _updateTooltip(visible: boolean, params: TooltipHandlerParams, domData?: IToolTipActual): void;
40
40
  protected abstract _removeTooltip(): void;
@@ -139,7 +139,7 @@ class BaseTooltipHandler {
139
139
  this._id = tooltipId, this._initFromSpec();
140
140
  }
141
141
  hideTooltip(params) {
142
- this.changeTooltip(!1, params);
142
+ return this.changeTooltip(!1, params);
143
143
  }
144
144
  release() {
145
145
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { DEFAULT_CHART_WIDTH, DEFAULT_CHART_HEIGHT } from '../../../constant/base';\nimport type { Options } from './constants';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_OPTIONS } from './constants';\nimport type { Maybe, IPoint } from '../../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { isTrueBrowser, isValid, throttle, isNil } from '../../../util';\nimport type {\n TooltipData,\n IToolTipActual,\n TooltipActiveType,\n ITooltipHandler,\n ITooltipPattern,\n ITooltipPositionActual,\n TooltipPosition,\n ITooltipPositionPattern\n} from '../../../typings/tooltip';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipFixedPosition } from '../../../typings/tooltip';\nimport type { BaseEventParams } from '../../../event/interface';\nimport {\n getShowContent,\n getTooltipSpecForShow,\n getActualTooltipPositionValue,\n getTooltipPatternValue,\n getScale\n} from './utils';\nimport type { Tooltip, TooltipContent } from '../tooltip';\nimport type { ISeries } from '../../../series/interface';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface';\nimport type { ITooltipPanelStyle, ITooltipStyle } from './interface';\nimport type { IGroup } from '@visactor/vrender';\nimport { getTextAttributes } from './utils/style';\nimport type { AABBBounds } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isNumber, isObject, isValidNumber } from '@visactor/vutils';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { IModel } from '../../../model/interface';\nimport type { Compiler } from '../../../compile/compiler';\nimport type { IContainerSize, TooltipAttributes } from '@visactor/vrender-components';\nimport { getTooltipAttributes } from './utils/attribute';\nimport type { DimensionEventParams } from '../../../event/events/dimension/interface';\nimport type { IChartOption } from '../../../chart/interface';\n\ntype ChangeTooltipFunc = (\n visible: boolean,\n params: TooltipHandlerParams,\n changePositionOnly?: boolean,\n activeType?: TooltipActiveType,\n data?: TooltipData\n) => TooltipResult;\n\ntype ChangeTooltipPositionFunc = (\n changePositionOnly: boolean,\n actualTooltip: IToolTipActual,\n spec: ITooltipSpec,\n activeType: TooltipActiveType,\n data: TooltipData,\n params: TooltipHandlerParams\n) => TooltipResult;\n\n/**\n * The tooltip handler class.\n */\nexport abstract class BaseTooltipHandler implements ITooltipHandler {\n readonly type: string;\n\n /** 是否可见 */\n protected _visible = true;\n\n // protected _style: ITooltipStyle = {};\n\n protected _option: Options;\n\n protected _chartOption: IChartOption;\n\n protected _id = '';\n public get id() {\n return this._id;\n }\n\n protected _env;\n public get env() {\n return this._env;\n }\n\n protected _component: Tooltip;\n\n protected _chartContainer: Maybe<HTMLElement>;\n protected _compiler: Compiler;\n\n private _cacheViewSpec: ITooltipSpec | undefined;\n private _cacheActualTooltip: IToolTipActual | undefined;\n\n protected _attributeCache?: TooltipAttributes | null = null;\n\n protected _style: ITooltipStyle;\n\n // tooltip 容器\n protected _container!: Maybe<IGroup | HTMLElement>;\n\n /**\n * Create the tooltip handler.\n */\n constructor(tooltipId: string, component: Tooltip) {\n this._component = component;\n this._chartOption = component.getOption() as any;\n this._env = this._chartOption.mode;\n this._chartContainer = this._chartOption.globalInstance.getContainer();\n this._compiler = component.getCompiler();\n this._id = tooltipId; // 可能有多个 tooltip\n this._initFromSpec();\n }\n\n showTooltip = (activeType: TooltipActiveType, data: TooltipData, params: TooltipHandlerParams) => {\n let changePositionOnly = !!params.changePositionOnly;\n if (!params.changePositionOnly || this._cacheActualTooltip?.activeType !== activeType) {\n changePositionOnly = false;\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n }\n\n if (changePositionOnly && this._cacheViewSpec && this._cacheActualTooltip) {\n return this.changeTooltipPosition(\n changePositionOnly,\n this._cacheActualTooltip,\n this._cacheViewSpec,\n activeType,\n data,\n params\n );\n }\n return this.changeTooltip(true, params, changePositionOnly, activeType, data);\n };\n\n /** 改变 tooltip 内容和位置(带 throttle 版本),返回是否遇到异常 */\n protected changeTooltip: ChangeTooltipFunc;\n\n /** 改变 tooltip 内容和位置(不带 throttle 版本),返回是否遇到异常 */\n protected _changeTooltip: ChangeTooltipFunc = (\n visible: boolean,\n params: TooltipHandlerParams,\n changePositionOnly?: boolean,\n activeType?: TooltipActiveType,\n data?: TooltipData\n ) => {\n /** 关闭tooltip */\n if (!visible) {\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n\n const spec = this._component.getSpec();\n /** 用户自定义逻辑 */\n if (spec.handler?.hideTooltip) {\n spec.handler?.hideTooltip(params);\n return TooltipResult.success;\n }\n /** 默认逻辑 */\n this._updateTooltip(false, params);\n return TooltipResult.success;\n }\n\n if (isNil(activeType) || isNil(data)) {\n return TooltipResult.failed;\n }\n\n /** spec预处理 */\n let spec: ITooltipSpec | undefined;\n if (changePositionOnly && this._cacheViewSpec) {\n spec = this._cacheViewSpec;\n } else {\n spec = getTooltipSpecForShow(\n activeType!,\n this._component.getSpec(),\n (params as BaseEventParams).model as ISeries,\n (params as DimensionEventParams).dimensionInfo\n );\n this._cacheViewSpec = spec;\n }\n\n if (spec.visible === false) {\n return TooltipResult.failed;\n }\n\n /** 用户自定义逻辑 */\n if (spec.handler?.showTooltip) {\n return spec.handler?.showTooltip(activeType!, data!, params) ?? TooltipResult.success;\n }\n\n /** 默认逻辑 */\n const pattern = spec[activeType!] as ITooltipPattern;\n if (!pattern) {\n return TooltipResult.failed;\n }\n\n // 合成tooltip内容\n let actualTooltip: IToolTipActual | undefined;\n if (changePositionOnly && this._cacheActualTooltip) {\n actualTooltip = this._cacheActualTooltip;\n } else {\n actualTooltip = this._getActualTooltipContent(pattern, data!, params);\n if (pattern.updateTitle) {\n actualTooltip.title = pattern.updateTitle(actualTooltip.title, data, params);\n }\n if (pattern.updateContent) {\n actualTooltip.content = pattern.updateContent(actualTooltip.content, data, params);\n }\n }\n\n // 判断tooltip是否为空\n if (isNil(actualTooltip.title?.key) && isNil(actualTooltip.title?.value) && !actualTooltip.content?.length) {\n return TooltipResult.failed;\n }\n\n this._cacheActualTooltip = actualTooltip;\n return this._changeTooltipPosition(!!changePositionOnly, actualTooltip, spec, activeType!, data!, params);\n };\n\n /** 改变 tooltip 位置(带 throttle 版本),返回是否遇到异常 */\n protected changeTooltipPosition: ChangeTooltipPositionFunc;\n\n /** 改变 tooltip 位置(不带 throttle 版本),返回是否遇到异常 */\n protected _changeTooltipPosition: ChangeTooltipPositionFunc = (\n changePositionOnly: boolean,\n actualTooltip: IToolTipActual,\n spec: ITooltipSpec,\n activeType: TooltipActiveType,\n data: TooltipData,\n params: TooltipHandlerParams\n ) => {\n const event = params.event as MouseEvent;\n\n /** 用户自定义逻辑 */\n if (spec.handler?.showTooltip) {\n return spec.handler.showTooltip(activeType, data, params) ?? TooltipResult.success;\n }\n\n /** 默认逻辑 */\n const pattern = spec[activeType];\n if (!pattern) {\n return TooltipResult.failed;\n }\n\n // 计算tooltip位置\n const position = this._getActualTooltipPosition(\n actualTooltip,\n getTooltipPatternValue(pattern.position, data, params),\n params,\n this._getParentElement(spec),\n changePositionOnly\n );\n actualTooltip.position = position;\n if (pattern.updatePosition) {\n actualTooltip.position = pattern.updatePosition(actualTooltip.position, data, params);\n }\n\n // 判断tooltip可见性\n let tooltipVisible = pattern?.visible !== false;\n if (\n !data ||\n event.type === 'mouseout' ||\n !actualTooltip.visible ||\n (!actualTooltip.title && !actualTooltip.content)\n ) {\n tooltipVisible = false;\n }\n\n this._updateTooltip(\n tooltipVisible,\n {\n ...params,\n changePositionOnly\n },\n actualTooltip\n );\n return TooltipResult.success;\n };\n\n hideTooltip(params: TooltipHandlerParams): void {\n this.changeTooltip(false, params);\n }\n\n release(): void {\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n\n const spec = this._component.getSpec();\n /** 用户自定义逻辑 */\n if (spec.handler?.release) {\n spec.handler?.release();\n return;\n }\n /** 默认逻辑 */\n this._removeTooltip();\n }\n\n /* -----需要子类继承的方法开始----- */\n\n protected abstract _updateTooltip(visible: boolean, params: TooltipHandlerParams, domData?: IToolTipActual): void;\n protected abstract _removeTooltip(): void;\n\n /* -----需要子类继承的方法结束----- */\n\n protected _throttle(callback: any) {\n const tooltipSpec = this._component.getSpec();\n let wait: number;\n if (isNumber(tooltipSpec.throttleInterval)) {\n wait = tooltipSpec.throttleInterval;\n } else {\n if (tooltipSpec.renderMode !== 'html' || !tooltipSpec.transitionDuration) {\n wait = 10;\n } else {\n wait = 50;\n }\n }\n return throttle(callback, wait);\n }\n\n protected _getDefaultOption(): Options {\n const { offset } = this._component.getSpec();\n return {\n ...DEFAULT_OPTIONS,\n offsetX: offset?.x ?? DEFAULT_OPTIONS.offsetX,\n offsetY: offset?.y ?? DEFAULT_OPTIONS.offsetY\n };\n }\n\n /**\n * 计算实际的tooltip内容\n * @param pattern\n * @param data\n * @param event\n */\n protected _getActualTooltipContent = (\n pattern: ITooltipPattern,\n data: TooltipData,\n params: TooltipHandlerParams\n ): IToolTipActual => {\n // 可见性\n const patternVisible = getTooltipPatternValue(pattern.visible, data, params);\n\n // 数据\n let tooltipContent: TooltipContent | null = null;\n tooltipContent = getShowContent(pattern, data, params);\n\n const actualTooltip: IToolTipActual = {\n ...tooltipContent,\n visible: isValid(tooltipContent) ? patternVisible !== false : false, // 最终展示数据为 null 则不展示\n activeType: pattern.activeType\n };\n\n return actualTooltip;\n };\n\n /**\n * 计算实际的tooltip位置\n * @param actualTooltip\n * @param position\n * @param event\n * @returns\n */\n protected _getActualTooltipPosition = (\n actualTooltip: IToolTipActual,\n position: TooltipPosition | undefined,\n params: TooltipHandlerParams,\n tooltipParentElement: HTMLElement,\n changePositionOnly: boolean\n ): ITooltipPositionActual => {\n const event = params.event as MouseEvent;\n const { width: tooltipBoxWidth = 0, height: tooltipBoxHeight = 0 } =\n this._getTooltipBoxSize(actualTooltip, changePositionOnly) ?? {};\n\n const { offsetX, offsetY } = this._option;\n const tooltipSpec = this._component.getSpec();\n\n const isCanvas = tooltipSpec.renderMode === 'canvas';\n const canvasRect = params?.chart?.getCanvasRect();\n const canvasWidth = canvasRect?.width ?? DEFAULT_CHART_WIDTH;\n const canvasHeight = canvasRect?.height ?? DEFAULT_CHART_HEIGHT;\n let isFixedPosition = false;\n\n /* 一、计算left、top、right、bottom */\n let left: number | undefined;\n let top: number | undefined;\n let right: number | undefined;\n let bottom: number | undefined;\n if (isObject(position)) {\n const { left: posLeft, right: posRight, top: posTop, bottom: posBottom } = position as ITooltipPositionPattern;\n left = getActualTooltipPositionValue(posLeft, event);\n top = getActualTooltipPositionValue(posTop, event);\n right = getActualTooltipPositionValue(posRight, event);\n bottom = getActualTooltipPositionValue(posBottom, event);\n } else if (isValid(position) && actualTooltip.activeType === 'mark') {\n isFixedPosition = true;\n const element = params.item as IElement;\n const model = params.model as IModel;\n const bounds = element?.getBounds() as AABBBounds;\n const startPoint = model?.getLayoutStartPoint();\n if (bounds && startPoint) {\n let { x1, y1, x2, y2 } = bounds;\n x1 += startPoint.x;\n x2 += startPoint.x;\n y1 += startPoint.y;\n y2 += startPoint.y;\n switch (position) {\n case TooltipFixedPosition.left:\n left = x1 - tooltipBoxWidth - offsetX;\n top = (y1 + y2) / 2 - tooltipBoxHeight / 2;\n break;\n case TooltipFixedPosition.right:\n left = x2 + offsetX;\n top = (y1 + y2) / 2 - tooltipBoxHeight / 2;\n break;\n case TooltipFixedPosition.top:\n left = (x1 + x2) / 2 - tooltipBoxWidth / 2;\n top = y1 - tooltipBoxHeight - offsetY;\n break;\n case TooltipFixedPosition.bottom:\n left = (x1 + x2) / 2 - tooltipBoxWidth / 2;\n top = y2 + offsetY;\n break;\n case TooltipFixedPosition.inside:\n left = (x1 + x2) / 2 - tooltipBoxWidth / 2;\n top = (y1 + y2) / 2 - tooltipBoxHeight / 2;\n break;\n }\n }\n }\n\n /* 二、换算成x和y */\n let x: number;\n let y: number;\n\n const containerSize = {\n width: 0,\n height: 0\n };\n const getDefaultPointValue = (defaultValue = 0): IPoint => ({ x: defaultValue, y: defaultValue });\n let relativePosOffset = getDefaultPointValue();\n let tooltipParentElementRect: IPoint | DOMRect = getDefaultPointValue();\n let chartElementScale = 1;\n let tooltipParentElementScale = 1;\n\n if (isTrueBrowser(this._env) && !tooltipSpec.confine) {\n // 只有在 browser 模式下才可以获取到 window 对象\n containerSize.width = window.innerWidth;\n containerSize.height = window.innerHeight;\n\n if (!isCanvas) {\n tooltipParentElementRect = tooltipParentElement.getBoundingClientRect();\n const chartElement = (this._compiler.getCanvas() ?? this._chartContainer) as HTMLElement;\n const chartElementRect = chartElement.getBoundingClientRect();\n relativePosOffset = {\n x: chartElementRect.x - tooltipParentElementRect.x,\n y: chartElementRect.y - tooltipParentElementRect.y\n };\n chartElementScale = getScale(chartElement, chartElementRect);\n tooltipParentElementScale = getScale(tooltipParentElement, tooltipParentElementRect as DOMRect);\n }\n } else {\n containerSize.width = canvasWidth;\n containerSize.height = canvasHeight;\n }\n\n const { canvasX, canvasY } = event as any;\n if (isValidNumber(left)) {\n x = left;\n } else if (isValidNumber(right)) {\n x = canvasWidth - tooltipBoxWidth - right;\n } else {\n x = canvasX + offsetX;\n }\n if (isValidNumber(top)) {\n y = top;\n } else if (isValidNumber(bottom)) {\n y = canvasHeight - tooltipBoxHeight - bottom;\n } else {\n y = canvasY + offsetY;\n }\n\n x *= chartElementScale;\n y *= chartElementScale;\n if (isTrueBrowser(this._env)) {\n x += relativePosOffset.x;\n y += relativePosOffset.y;\n }\n x /= tooltipParentElementScale;\n y /= tooltipParentElementScale;\n\n /* 三、确保tooltip在视区内 */\n const { width: containerWidth, height: containerHeight } = containerSize;\n\n if ((x + tooltipBoxWidth) * tooltipParentElementScale + tooltipParentElementRect.x > containerWidth) {\n // 位置不超出视区右界\n if (isFixedPosition) {\n x = (containerWidth - tooltipParentElementRect.x) / tooltipParentElementScale - tooltipBoxWidth;\n } else {\n x -= offsetX * 2 + tooltipBoxWidth;\n }\n }\n if ((y + tooltipBoxHeight) * tooltipParentElementScale + tooltipParentElementRect.y > containerHeight) {\n // 位置不超出视区下界\n if (isFixedPosition) {\n y = (containerHeight - tooltipParentElementRect.y) / tooltipParentElementScale - tooltipBoxHeight;\n } else {\n y -= offsetY * 2 + tooltipBoxHeight;\n }\n }\n if (x * tooltipParentElementScale + tooltipParentElementRect.x < 0) {\n // 位置不超出视区左界\n x = 0 - tooltipParentElementRect.x / tooltipParentElementScale;\n }\n if (y * tooltipParentElementScale + tooltipParentElementRect.y < 0) {\n // 位置不超出视区上界\n y = 0 - tooltipParentElementRect.y / tooltipParentElementScale;\n }\n\n return { x, y };\n };\n\n // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: IToolTipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!changePositionOnly || isNil(this._attributeCache)) {\n this._attributeCache = getTooltipAttributes(actualTooltip, this._style);\n }\n return {\n width: this._attributeCache?.panel?.width,\n height: this._attributeCache?.panel?.height\n };\n }\n\n protected _getStyle(): ITooltipStyle {\n const tooltipSpec = this._component.getSpec();\n const { style = {}, enterable, transitionDuration } = tooltipSpec as ITooltipSpec;\n\n const {\n panel: { backgroundColor, border, shadow, padding },\n titleLabel,\n shape,\n keyLabel,\n valueLabel,\n spaceRow\n } = style;\n\n // tooltip background style\n const panelStyle: ITooltipPanelStyle = {\n lineWidth: border?.width ?? 0,\n shadow: !!shadow\n };\n if (border?.color) {\n panelStyle.stroke = border.color;\n }\n if (backgroundColor) {\n panelStyle.fill = backgroundColor;\n }\n\n if (shadow) {\n panelStyle.shadowColor = shadow.color;\n panelStyle.shadowBlur = shadow.blur;\n panelStyle.shadowOffsetX = shadow.x;\n panelStyle.shadowOffsetY = shadow.y;\n panelStyle.shadowSpread = shadow.spread;\n }\n const { radius } = border ?? {};\n if (isValid(radius)) {\n panelStyle.cornerRadius = [radius, radius, radius, radius];\n }\n\n const globalTheme = this._chartOption.getTheme?.();\n\n return {\n panel: panelStyle,\n title: getTextAttributes(titleLabel, globalTheme),\n shape: {\n fill: true,\n size: shape?.size ?? 8,\n spacing: shape?.spacing ?? 6\n },\n key: getTextAttributes(keyLabel, globalTheme),\n value: getTextAttributes(valueLabel, globalTheme),\n padding,\n spaceRow,\n enterable,\n transitionDuration\n };\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return spec.parentElement as any;\n }\n\n getTooltipContainer() {\n return this._container;\n }\n\n protected _initFromSpec() {\n this._option = this._getDefaultOption();\n this._style = this._getStyle();\n // 为方法加防抖\n this.changeTooltip = this._throttle(this._changeTooltip) as any;\n this.changeTooltipPosition = this._throttle(this._changeTooltipPosition) as any;\n }\n\n reInit() {\n this._initFromSpec();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { DEFAULT_CHART_WIDTH, DEFAULT_CHART_HEIGHT } from '../../../constant/base';\nimport type { Options } from './constants';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_OPTIONS } from './constants';\nimport type { Maybe, IPoint } from '../../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { isTrueBrowser, isValid, throttle, isNil } from '../../../util';\nimport type {\n TooltipData,\n IToolTipActual,\n TooltipActiveType,\n ITooltipHandler,\n ITooltipPattern,\n ITooltipPositionActual,\n TooltipPosition,\n ITooltipPositionPattern\n} from '../../../typings/tooltip';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipFixedPosition } from '../../../typings/tooltip';\nimport type { BaseEventParams } from '../../../event/interface';\nimport {\n getShowContent,\n getTooltipSpecForShow,\n getActualTooltipPositionValue,\n getTooltipPatternValue,\n getScale\n} from './utils';\nimport type { Tooltip, TooltipContent } from '../tooltip';\nimport type { ISeries } from '../../../series/interface';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface';\nimport type { ITooltipPanelStyle, ITooltipStyle } from './interface';\nimport type { IGroup } from '@visactor/vrender';\nimport { getTextAttributes } from './utils/style';\nimport type { AABBBounds } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isNumber, isObject, isValidNumber } from '@visactor/vutils';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { IModel } from '../../../model/interface';\nimport type { Compiler } from '../../../compile/compiler';\nimport type { IContainerSize, TooltipAttributes } from '@visactor/vrender-components';\nimport { getTooltipAttributes } from './utils/attribute';\nimport type { DimensionEventParams } from '../../../event/events/dimension/interface';\nimport type { IChartOption } from '../../../chart/interface';\n\ntype ChangeTooltipFunc = (\n visible: boolean,\n params: TooltipHandlerParams,\n changePositionOnly?: boolean,\n activeType?: TooltipActiveType,\n data?: TooltipData\n) => TooltipResult;\n\ntype ChangeTooltipPositionFunc = (\n changePositionOnly: boolean,\n actualTooltip: IToolTipActual,\n spec: ITooltipSpec,\n activeType: TooltipActiveType,\n data: TooltipData,\n params: TooltipHandlerParams\n) => TooltipResult;\n\n/**\n * The tooltip handler class.\n */\nexport abstract class BaseTooltipHandler implements ITooltipHandler {\n readonly type: string;\n\n /** 是否可见 */\n protected _visible = true;\n\n // protected _style: ITooltipStyle = {};\n\n protected _option: Options;\n\n protected _chartOption: IChartOption;\n\n protected _id = '';\n public get id() {\n return this._id;\n }\n\n protected _env;\n public get env() {\n return this._env;\n }\n\n protected _component: Tooltip;\n\n protected _chartContainer: Maybe<HTMLElement>;\n protected _compiler: Compiler;\n\n private _cacheViewSpec: ITooltipSpec | undefined;\n private _cacheActualTooltip: IToolTipActual | undefined;\n\n protected _attributeCache?: TooltipAttributes | null = null;\n\n protected _style: ITooltipStyle;\n\n // tooltip 容器\n protected _container!: Maybe<IGroup | HTMLElement>;\n\n /**\n * Create the tooltip handler.\n */\n constructor(tooltipId: string, component: Tooltip) {\n this._component = component;\n this._chartOption = component.getOption() as any;\n this._env = this._chartOption.mode;\n this._chartContainer = this._chartOption.globalInstance.getContainer();\n this._compiler = component.getCompiler();\n this._id = tooltipId; // 可能有多个 tooltip\n this._initFromSpec();\n }\n\n showTooltip = (activeType: TooltipActiveType, data: TooltipData, params: TooltipHandlerParams) => {\n let changePositionOnly = !!params.changePositionOnly;\n if (!params.changePositionOnly || this._cacheActualTooltip?.activeType !== activeType) {\n changePositionOnly = false;\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n }\n\n if (changePositionOnly && this._cacheViewSpec && this._cacheActualTooltip) {\n return this.changeTooltipPosition(\n changePositionOnly,\n this._cacheActualTooltip,\n this._cacheViewSpec,\n activeType,\n data,\n params\n );\n }\n return this.changeTooltip(true, params, changePositionOnly, activeType, data);\n };\n\n /** 改变 tooltip 内容和位置(带 throttle 版本),返回是否遇到异常 */\n protected changeTooltip: ChangeTooltipFunc;\n\n /** 改变 tooltip 内容和位置(不带 throttle 版本),返回是否遇到异常 */\n protected _changeTooltip: ChangeTooltipFunc = (\n visible: boolean,\n params: TooltipHandlerParams,\n changePositionOnly?: boolean,\n activeType?: TooltipActiveType,\n data?: TooltipData\n ) => {\n /** 关闭tooltip */\n if (!visible) {\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n\n const spec = this._component.getSpec();\n /** 用户自定义逻辑 */\n if (spec.handler?.hideTooltip) {\n spec.handler?.hideTooltip(params);\n return TooltipResult.success;\n }\n /** 默认逻辑 */\n this._updateTooltip(false, params);\n return TooltipResult.success;\n }\n\n if (isNil(activeType) || isNil(data)) {\n return TooltipResult.failed;\n }\n\n /** spec预处理 */\n let spec: ITooltipSpec | undefined;\n if (changePositionOnly && this._cacheViewSpec) {\n spec = this._cacheViewSpec;\n } else {\n spec = getTooltipSpecForShow(\n activeType!,\n this._component.getSpec(),\n (params as BaseEventParams).model as ISeries,\n (params as DimensionEventParams).dimensionInfo\n );\n this._cacheViewSpec = spec;\n }\n\n if (spec.visible === false) {\n return TooltipResult.failed;\n }\n\n /** 用户自定义逻辑 */\n if (spec.handler?.showTooltip) {\n return spec.handler?.showTooltip(activeType!, data!, params) ?? TooltipResult.success;\n }\n\n /** 默认逻辑 */\n const pattern = spec[activeType!] as ITooltipPattern;\n if (!pattern) {\n return TooltipResult.failed;\n }\n\n // 合成tooltip内容\n let actualTooltip: IToolTipActual | undefined;\n if (changePositionOnly && this._cacheActualTooltip) {\n actualTooltip = this._cacheActualTooltip;\n } else {\n actualTooltip = this._getActualTooltipContent(pattern, data!, params);\n if (pattern.updateTitle) {\n actualTooltip.title = pattern.updateTitle(actualTooltip.title, data, params);\n }\n if (pattern.updateContent) {\n actualTooltip.content = pattern.updateContent(actualTooltip.content, data, params);\n }\n }\n\n // 判断tooltip是否为空\n if (isNil(actualTooltip.title?.key) && isNil(actualTooltip.title?.value) && !actualTooltip.content?.length) {\n return TooltipResult.failed;\n }\n\n this._cacheActualTooltip = actualTooltip;\n return this._changeTooltipPosition(!!changePositionOnly, actualTooltip, spec, activeType!, data!, params);\n };\n\n /** 改变 tooltip 位置(带 throttle 版本),返回是否遇到异常 */\n protected changeTooltipPosition: ChangeTooltipPositionFunc;\n\n /** 改变 tooltip 位置(不带 throttle 版本),返回是否遇到异常 */\n protected _changeTooltipPosition: ChangeTooltipPositionFunc = (\n changePositionOnly: boolean,\n actualTooltip: IToolTipActual,\n spec: ITooltipSpec,\n activeType: TooltipActiveType,\n data: TooltipData,\n params: TooltipHandlerParams\n ) => {\n const event = params.event as MouseEvent;\n\n /** 用户自定义逻辑 */\n if (spec.handler?.showTooltip) {\n return spec.handler.showTooltip(activeType, data, params) ?? TooltipResult.success;\n }\n\n /** 默认逻辑 */\n const pattern = spec[activeType];\n if (!pattern) {\n return TooltipResult.failed;\n }\n\n // 计算tooltip位置\n const position = this._getActualTooltipPosition(\n actualTooltip,\n getTooltipPatternValue(pattern.position, data, params),\n params,\n this._getParentElement(spec),\n changePositionOnly\n );\n actualTooltip.position = position;\n if (pattern.updatePosition) {\n actualTooltip.position = pattern.updatePosition(actualTooltip.position, data, params);\n }\n\n // 判断tooltip可见性\n let tooltipVisible = pattern?.visible !== false;\n if (\n !data ||\n event.type === 'mouseout' ||\n !actualTooltip.visible ||\n (!actualTooltip.title && !actualTooltip.content)\n ) {\n tooltipVisible = false;\n }\n\n this._updateTooltip(\n tooltipVisible,\n {\n ...params,\n changePositionOnly\n },\n actualTooltip\n );\n return TooltipResult.success;\n };\n\n hideTooltip(params: TooltipHandlerParams): TooltipResult {\n return this.changeTooltip(false, params);\n }\n\n release(): void {\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n\n const spec = this._component.getSpec();\n /** 用户自定义逻辑 */\n if (spec.handler?.release) {\n spec.handler?.release();\n return;\n }\n /** 默认逻辑 */\n this._removeTooltip();\n }\n\n /* -----需要子类继承的方法开始----- */\n\n protected abstract _updateTooltip(visible: boolean, params: TooltipHandlerParams, domData?: IToolTipActual): void;\n protected abstract _removeTooltip(): void;\n\n /* -----需要子类继承的方法结束----- */\n\n protected _throttle(callback: any) {\n const tooltipSpec = this._component.getSpec();\n let wait: number;\n if (isNumber(tooltipSpec.throttleInterval)) {\n wait = tooltipSpec.throttleInterval;\n } else {\n if (tooltipSpec.renderMode !== 'html' || !tooltipSpec.transitionDuration) {\n wait = 10;\n } else {\n wait = 50;\n }\n }\n return throttle(callback, wait);\n }\n\n protected _getDefaultOption(): Options {\n const { offset } = this._component.getSpec();\n return {\n ...DEFAULT_OPTIONS,\n offsetX: offset?.x ?? DEFAULT_OPTIONS.offsetX,\n offsetY: offset?.y ?? DEFAULT_OPTIONS.offsetY\n };\n }\n\n /**\n * 计算实际的tooltip内容\n * @param pattern\n * @param data\n * @param event\n */\n protected _getActualTooltipContent = (\n pattern: ITooltipPattern,\n data: TooltipData,\n params: TooltipHandlerParams\n ): IToolTipActual => {\n // 可见性\n const patternVisible = getTooltipPatternValue(pattern.visible, data, params);\n\n // 数据\n let tooltipContent: TooltipContent | null = null;\n tooltipContent = getShowContent(pattern, data, params);\n\n const actualTooltip: IToolTipActual = {\n ...tooltipContent,\n visible: isValid(tooltipContent) ? patternVisible !== false : false, // 最终展示数据为 null 则不展示\n activeType: pattern.activeType\n };\n\n return actualTooltip;\n };\n\n /**\n * 计算实际的tooltip位置\n * @param actualTooltip\n * @param position\n * @param event\n * @returns\n */\n protected _getActualTooltipPosition = (\n actualTooltip: IToolTipActual,\n position: TooltipPosition | undefined,\n params: TooltipHandlerParams,\n tooltipParentElement: HTMLElement,\n changePositionOnly: boolean\n ): ITooltipPositionActual => {\n const event = params.event as MouseEvent;\n const { width: tooltipBoxWidth = 0, height: tooltipBoxHeight = 0 } =\n this._getTooltipBoxSize(actualTooltip, changePositionOnly) ?? {};\n\n const { offsetX, offsetY } = this._option;\n const tooltipSpec = this._component.getSpec();\n\n const isCanvas = tooltipSpec.renderMode === 'canvas';\n const canvasRect = params?.chart?.getCanvasRect();\n const canvasWidth = canvasRect?.width ?? DEFAULT_CHART_WIDTH;\n const canvasHeight = canvasRect?.height ?? DEFAULT_CHART_HEIGHT;\n let isFixedPosition = false;\n\n /* 一、计算left、top、right、bottom */\n let left: number | undefined;\n let top: number | undefined;\n let right: number | undefined;\n let bottom: number | undefined;\n if (isObject(position)) {\n const { left: posLeft, right: posRight, top: posTop, bottom: posBottom } = position as ITooltipPositionPattern;\n left = getActualTooltipPositionValue(posLeft, event);\n top = getActualTooltipPositionValue(posTop, event);\n right = getActualTooltipPositionValue(posRight, event);\n bottom = getActualTooltipPositionValue(posBottom, event);\n } else if (isValid(position) && actualTooltip.activeType === 'mark') {\n isFixedPosition = true;\n const element = params.item as IElement;\n const model = params.model as IModel;\n const bounds = element?.getBounds() as AABBBounds;\n const startPoint = model?.getLayoutStartPoint();\n if (bounds && startPoint) {\n let { x1, y1, x2, y2 } = bounds;\n x1 += startPoint.x;\n x2 += startPoint.x;\n y1 += startPoint.y;\n y2 += startPoint.y;\n switch (position) {\n case TooltipFixedPosition.left:\n left = x1 - tooltipBoxWidth - offsetX;\n top = (y1 + y2) / 2 - tooltipBoxHeight / 2;\n break;\n case TooltipFixedPosition.right:\n left = x2 + offsetX;\n top = (y1 + y2) / 2 - tooltipBoxHeight / 2;\n break;\n case TooltipFixedPosition.top:\n left = (x1 + x2) / 2 - tooltipBoxWidth / 2;\n top = y1 - tooltipBoxHeight - offsetY;\n break;\n case TooltipFixedPosition.bottom:\n left = (x1 + x2) / 2 - tooltipBoxWidth / 2;\n top = y2 + offsetY;\n break;\n case TooltipFixedPosition.inside:\n left = (x1 + x2) / 2 - tooltipBoxWidth / 2;\n top = (y1 + y2) / 2 - tooltipBoxHeight / 2;\n break;\n }\n }\n }\n\n /* 二、换算成x和y */\n let x: number;\n let y: number;\n\n const containerSize = {\n width: 0,\n height: 0\n };\n const getDefaultPointValue = (defaultValue = 0): IPoint => ({ x: defaultValue, y: defaultValue });\n let relativePosOffset = getDefaultPointValue();\n let tooltipParentElementRect: IPoint | DOMRect = getDefaultPointValue();\n let chartElementScale = 1;\n let tooltipParentElementScale = 1;\n\n if (isTrueBrowser(this._env) && !tooltipSpec.confine) {\n // 只有在 browser 模式下才可以获取到 window 对象\n containerSize.width = window.innerWidth;\n containerSize.height = window.innerHeight;\n\n if (!isCanvas) {\n tooltipParentElementRect = tooltipParentElement.getBoundingClientRect();\n const chartElement = (this._compiler.getCanvas() ?? this._chartContainer) as HTMLElement;\n const chartElementRect = chartElement.getBoundingClientRect();\n relativePosOffset = {\n x: chartElementRect.x - tooltipParentElementRect.x,\n y: chartElementRect.y - tooltipParentElementRect.y\n };\n chartElementScale = getScale(chartElement, chartElementRect);\n tooltipParentElementScale = getScale(tooltipParentElement, tooltipParentElementRect as DOMRect);\n }\n } else {\n containerSize.width = canvasWidth;\n containerSize.height = canvasHeight;\n }\n\n const { canvasX, canvasY } = event as any;\n if (isValidNumber(left)) {\n x = left;\n } else if (isValidNumber(right)) {\n x = canvasWidth - tooltipBoxWidth - right;\n } else {\n x = canvasX + offsetX;\n }\n if (isValidNumber(top)) {\n y = top;\n } else if (isValidNumber(bottom)) {\n y = canvasHeight - tooltipBoxHeight - bottom;\n } else {\n y = canvasY + offsetY;\n }\n\n x *= chartElementScale;\n y *= chartElementScale;\n if (isTrueBrowser(this._env)) {\n x += relativePosOffset.x;\n y += relativePosOffset.y;\n }\n x /= tooltipParentElementScale;\n y /= tooltipParentElementScale;\n\n /* 三、确保tooltip在视区内 */\n const { width: containerWidth, height: containerHeight } = containerSize;\n\n if ((x + tooltipBoxWidth) * tooltipParentElementScale + tooltipParentElementRect.x > containerWidth) {\n // 位置不超出视区右界\n if (isFixedPosition) {\n x = (containerWidth - tooltipParentElementRect.x) / tooltipParentElementScale - tooltipBoxWidth;\n } else {\n x -= offsetX * 2 + tooltipBoxWidth;\n }\n }\n if ((y + tooltipBoxHeight) * tooltipParentElementScale + tooltipParentElementRect.y > containerHeight) {\n // 位置不超出视区下界\n if (isFixedPosition) {\n y = (containerHeight - tooltipParentElementRect.y) / tooltipParentElementScale - tooltipBoxHeight;\n } else {\n y -= offsetY * 2 + tooltipBoxHeight;\n }\n }\n if (x * tooltipParentElementScale + tooltipParentElementRect.x < 0) {\n // 位置不超出视区左界\n x = 0 - tooltipParentElementRect.x / tooltipParentElementScale;\n }\n if (y * tooltipParentElementScale + tooltipParentElementRect.y < 0) {\n // 位置不超出视区上界\n y = 0 - tooltipParentElementRect.y / tooltipParentElementScale;\n }\n\n return { x, y };\n };\n\n // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: IToolTipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!changePositionOnly || isNil(this._attributeCache)) {\n this._attributeCache = getTooltipAttributes(actualTooltip, this._style);\n }\n return {\n width: this._attributeCache?.panel?.width,\n height: this._attributeCache?.panel?.height\n };\n }\n\n protected _getStyle(): ITooltipStyle {\n const tooltipSpec = this._component.getSpec();\n const { style = {}, enterable, transitionDuration } = tooltipSpec as ITooltipSpec;\n\n const {\n panel: { backgroundColor, border, shadow, padding },\n titleLabel,\n shape,\n keyLabel,\n valueLabel,\n spaceRow\n } = style;\n\n // tooltip background style\n const panelStyle: ITooltipPanelStyle = {\n lineWidth: border?.width ?? 0,\n shadow: !!shadow\n };\n if (border?.color) {\n panelStyle.stroke = border.color;\n }\n if (backgroundColor) {\n panelStyle.fill = backgroundColor;\n }\n\n if (shadow) {\n panelStyle.shadowColor = shadow.color;\n panelStyle.shadowBlur = shadow.blur;\n panelStyle.shadowOffsetX = shadow.x;\n panelStyle.shadowOffsetY = shadow.y;\n panelStyle.shadowSpread = shadow.spread;\n }\n const { radius } = border ?? {};\n if (isValid(radius)) {\n panelStyle.cornerRadius = [radius, radius, radius, radius];\n }\n\n const globalTheme = this._chartOption.getTheme?.();\n\n return {\n panel: panelStyle,\n title: getTextAttributes(titleLabel, globalTheme),\n shape: {\n fill: true,\n size: shape?.size ?? 8,\n spacing: shape?.spacing ?? 6\n },\n key: getTextAttributes(keyLabel, globalTheme),\n value: getTextAttributes(valueLabel, globalTheme),\n padding,\n spaceRow,\n enterable,\n transitionDuration\n };\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return spec.parentElement as any;\n }\n\n getTooltipContainer() {\n return this._container;\n }\n\n protected _initFromSpec() {\n this._option = this._getDefaultOption();\n this._style = this._getStyle();\n // 为方法加防抖\n this.changeTooltip = this._throttle(this._changeTooltip) as any;\n this.changeTooltipPosition = this._throttle(this._changeTooltipPosition) as any;\n }\n\n reInit() {\n this._initFromSpec();\n }\n}\n"]}
@@ -14,5 +14,6 @@ export declare class CanvasTooltipHandler extends BaseTooltipHandler {
14
14
  private _getLayer;
15
15
  protected _removeTooltip(): void;
16
16
  protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual): void;
17
+ isTooltipShown(): boolean;
17
18
  release(): void;
18
19
  }
@@ -34,12 +34,19 @@ class CanvasTooltipHandler extends base_1.BaseTooltipHandler {
34
34
  const stage = this._compiler.getStage();
35
35
  if (!stage) return;
36
36
  if (!visible) return void (this._tooltipComponent && this._tooltipComponent.attribute.visible && (this._tooltipComponent.hideAll(),
37
- stage.renderNextFrame()));
37
+ this._tooltipComponent.setAttributes({
38
+ visibleAll: !1
39
+ })));
38
40
  this._tooltipComponent || this._initTooltipComponent(stage);
39
41
  const pos = null == actualTooltip ? void 0 : actualTooltip.position;
40
- params.changePositionOnly ? (0, vutils_1.isValid)(pos) && this._tooltipComponent.setAttributes(pos) : this._tooltipComponent.setAttributes(Object.assign(Object.assign({
41
- visible: !0
42
- }, this._attributeCache), pos)), this._tooltipComponent.attribute.visible || this._tooltipComponent.showAll();
42
+ params.changePositionOnly ? (0, vutils_1.isValid)(pos) && this._tooltipComponent.setAttributes(pos) : this._tooltipComponent.setAttributes(Object.assign(Object.assign({}, this._attributeCache), pos)),
43
+ this._tooltipComponent.attribute.visible || (this._tooltipComponent.showAll(), this._tooltipComponent.setAttributes({
44
+ visibleAll: !0
45
+ }));
46
+ }
47
+ isTooltipShown() {
48
+ var _a;
49
+ return null === (_a = this._tooltipComponent) || void 0 === _a ? void 0 : _a.attribute.visibleAll;
43
50
  }
44
51
  release() {
45
52
  var _a;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/canvas/canvas-tooltip-handler.ts"],"names":[],"mappings":"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","file":"canvas-tooltip-handler.js","sourcesContent":["import type { ILayer, INode, Stage } from '@visactor/vrender';\nimport type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components';\nimport { isValid } from '@visactor/vutils';\nimport { TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\n\n/**\n * The tooltip handler class.\n */\nexport class CanvasTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.canvas;\n\n private _layer: ILayer;\n protected _el?: HTMLCanvasElement;\n protected _tooltipCanvasId?: string;\n protected _tooltipComponent: TooltipComponent;\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._tooltipCanvasId = (this._chartOption.modeParams as any)?.tooltipCanvasId;\n }\n\n private _initTooltipComponent(stage: Stage) {\n const layer = this._getLayer(stage);\n this._tooltipComponent = new TooltipComponent({\n autoCalculatePosition: false,\n autoMeasure: false\n });\n layer.add(this._tooltipComponent as unknown as INode);\n }\n\n private _getLayer(stage: Stage) {\n if (this._layer) {\n return this._layer;\n }\n\n this._layer = stage.createLayer(this._tooltipCanvasId);\n\n // 需要关闭 layer 对应的 canvas 的事件\n const layerCanvas = this._layer.layerHandler.canvas.nativeCanvas as HTMLCanvasElement;\n // TODO:待 vrender 支持\n if (layerCanvas && layerCanvas.style) {\n layerCanvas.style.touchAction = 'none';\n layerCanvas.style.pointerEvents = 'none';\n }\n\n return this._layer;\n }\n\n protected _removeTooltip() {\n if (this._layer) {\n this._layer.removeAllChild();\n // this._layer.render();\n }\n this._attributeCache = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n this._visible = visible;\n\n const stage = this._compiler.getStage();\n if (!stage) {\n return;\n }\n\n if (!visible) {\n if (this._tooltipComponent && this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.hideAll();\n stage.renderNextFrame();\n }\n return;\n }\n\n if (!this._tooltipComponent) {\n this._initTooltipComponent(stage);\n }\n\n const pos = actualTooltip?.position;\n if (!params.changePositionOnly) {\n this._tooltipComponent.setAttributes({\n visible: true,\n ...this._attributeCache,\n ...pos\n });\n } else if (isValid(pos)) {\n this._tooltipComponent.setAttributes(pos);\n }\n\n if (!this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.showAll();\n }\n }\n\n release() {\n super.release();\n this._layer?.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/canvas/canvas-tooltip-handler.ts"],"names":[],"mappings":"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","file":"canvas-tooltip-handler.js","sourcesContent":["import type { ILayer, INode, Stage } from '@visactor/vrender';\nimport type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components';\nimport { isValid } from '@visactor/vutils';\nimport { TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\n\n/**\n * The tooltip handler class.\n */\nexport class CanvasTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.canvas;\n\n private _layer: ILayer;\n protected _el?: HTMLCanvasElement;\n protected _tooltipCanvasId?: string;\n protected _tooltipComponent: TooltipComponent;\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._tooltipCanvasId = (this._chartOption.modeParams as any)?.tooltipCanvasId;\n }\n\n private _initTooltipComponent(stage: Stage) {\n const layer = this._getLayer(stage);\n this._tooltipComponent = new TooltipComponent({\n autoCalculatePosition: false,\n autoMeasure: false\n });\n layer.add(this._tooltipComponent as unknown as INode);\n }\n\n private _getLayer(stage: Stage) {\n if (this._layer) {\n return this._layer;\n }\n\n this._layer = stage.createLayer(this._tooltipCanvasId);\n\n // 需要关闭 layer 对应的 canvas 的事件\n const layerCanvas = this._layer.layerHandler.canvas.nativeCanvas as HTMLCanvasElement;\n // TODO:待 vrender 支持\n if (layerCanvas && layerCanvas.style) {\n layerCanvas.style.touchAction = 'none';\n layerCanvas.style.pointerEvents = 'none';\n }\n\n return this._layer;\n }\n\n protected _removeTooltip() {\n if (this._layer) {\n this._layer.removeAllChild();\n // this._layer.render();\n }\n this._attributeCache = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n this._visible = visible;\n\n const stage = this._compiler.getStage();\n if (!stage) {\n return;\n }\n\n if (!visible) {\n if (this._tooltipComponent && this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.hideAll();\n this._tooltipComponent.setAttributes({\n visibleAll: false\n });\n }\n return;\n }\n\n if (!this._tooltipComponent) {\n this._initTooltipComponent(stage);\n }\n\n const pos = actualTooltip?.position;\n if (!params.changePositionOnly) {\n this._tooltipComponent.setAttributes({\n ...this._attributeCache,\n ...pos\n });\n } else if (isValid(pos)) {\n this._tooltipComponent.setAttributes(pos);\n }\n\n if (!this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.showAll();\n this._tooltipComponent.setAttributes({\n visibleAll: true\n });\n }\n }\n\n isTooltipShown() {\n return this._tooltipComponent?.attribute.visibleAll;\n }\n\n release() {\n super.release();\n this._layer?.release();\n }\n}\n"]}
@@ -20,5 +20,6 @@ export declare class DomTooltipHandler extends BaseTooltipHandler {
20
20
  protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual): void;
21
21
  protected _initStyle(): void;
22
22
  protected _getParentElement(spec: ITooltipSpec): HTMLElement;
23
+ isTooltipShown(): boolean;
23
24
  reInit(): void;
24
25
  }
@@ -56,6 +56,9 @@ class DomTooltipHandler extends base_1.BaseTooltipHandler {
56
56
  var _a;
57
57
  return null !== (_a = this._container) && void 0 !== _a ? _a : super._getParentElement(spec);
58
58
  }
59
+ isTooltipShown() {
60
+ return this.getVisibility();
61
+ }
59
62
  reInit() {
60
63
  super.reInit(), this._initStyle();
61
64
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/handler/dom/dom-tooltip-handler.ts"],"names":[],"mappings":";;;AAEA,kCAA6C;AAC7C,iCAAsC;AAEtC,yDAAqD;AACrD,4CAAmF;AAGnF,8CAAmD;AAKnD,MAAa,iBAAkB,SAAQ,yBAAkB;IAUvD,aAAa;;QACX,OAAO,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,EAAE,CAAA,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,MAAe;;QAE3B,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,EAAE;YACnC,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SACnC;IACH,CAAC;IAED,YAAY,SAAiB,EAAE,SAAkB;QAC/C,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QArB9B,SAAI,GAAG,8BAAkB,CAAC,GAAG,CAAC;QAEpB,sBAAiB,GAAgB,iBAAW,aAAX,iBAAW,uBAAX,iBAAW,CAAE,IAAI,CAAC;QAoB3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;QACtC,IAAI,iBAAW,IAAI,aAAa,EAAE;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtD,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,2CAA+B,CAAC,EAAE;oBACjF,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAmB,CAAC;oBAC9D,MAAM;iBACP;aACF;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,UAAU,GAAG,iBAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC5C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,2CAA+B,CAAC,CAAC;gBAC/D,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5C;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,4BAAY,CAC3B,IAAI,CAAC,UAAU,EACf;gBACE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAClC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;gBACrC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;gBAC3C,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe;aACjD,EACD,CAAC,WAAW,CAAC,SAAS,CAAC,EACvB,IAAI,CAAC,EAAE,CACR,CAAC;SACH;IACH,CAAC;IAES,cAAc;;QACtB,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAES,cAAc,CAAC,OAAgB,EAAE,MAA4B,EAAE,aAA6B;;QACpG,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;gBAC9B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAElB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;aACzB;YACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAG5B,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,MAAA,aAAa,CAAC,QAAQ,mCAAI,EAAE,CAAC;YACtD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,EAAE,EAAE;gBAEN,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;aACvD;SACF;IACH,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,SAAS,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC;IAES,iBAAiB,CAAC,IAAkB;;QAC5C,OAAO,MAAA,IAAI,CAAC,UAAU,mCAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACF;AAlGD,8CAkGC","file":"dom-tooltip-handler.js","sourcesContent":["import type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { getDomStyles } from './util';\nimport type { IDomTooltipStyle } from './interface';\nimport { TooltipModel } from './model/tooltip-model';\nimport { TOOLTIP_CONTAINER_EL_CLASS_NAME, TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\nimport type { Maybe } from '@visactor/vutils';\nimport { domDocument } from '../../../../util/env';\n\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.dom;\n\n protected _tooltipContainer: HTMLElement = domDocument?.body;\n protected _domStyle: IDomTooltipStyle;\n protected _tooltipActual: IToolTipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n\n protected model: TooltipModel;\n\n getVisibility() {\n return !!this.model?.getVisibility();\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility()) {\n this.model?.setVisibility(_value);\n }\n }\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec();\n const { parentElement } = tooltipSpec;\n if (domDocument && parentElement) {\n for (let i = 0; i < parentElement.children.length; i++) {\n if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {\n this._container = parentElement.children[i] as HTMLDivElement;\n break;\n }\n }\n if (!this._container) {\n this._container = domDocument.createElement('div');\n this._container.style.position = 'relative';\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n this.model = new TooltipModel(\n this._container,\n {\n valueToHtml: this._option.sanitize,\n getTooltipStyle: () => this._domStyle,\n getTooltipActual: () => this._tooltipActual,\n getTooltipAttributes: () => this._attributeCache\n },\n [tooltipSpec.className],\n this.id\n );\n }\n }\n\n protected _removeTooltip() {\n this.model?.release();\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n if (!visible || !this.model) {\n this.setVisibility(visible);\n } else {\n if (!params.changePositionOnly) {\n this._tooltipActual = actualTooltip;\n this._initStyle();\n\n this.model.initAll();\n this.model.setStyle();\n this.model.setContent();\n }\n this.setVisibility(visible);\n\n // 位置\n const { x = 0, y = 0 } = actualTooltip.position ?? {};\n const el = this.model.product;\n if (el) {\n // https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n el.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n }\n\n protected _initStyle() {\n this._domStyle = getDomStyles(this._style, this._attributeCache);\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return this._container ?? super._getParentElement(spec);\n }\n\n reInit() {\n super.reInit();\n this._initStyle();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/handler/dom/dom-tooltip-handler.ts"],"names":[],"mappings":"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","file":"dom-tooltip-handler.js","sourcesContent":["import type { IToolTipActual } from '../../../../typings/tooltip';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../../interface';\nimport { BaseTooltipHandler } from '../base';\nimport { getDomStyles } from './util';\nimport type { IDomTooltipStyle } from './interface';\nimport { TooltipModel } from './model/tooltip-model';\nimport { TOOLTIP_CONTAINER_EL_CLASS_NAME, TooltipHandlerType } from '../constants';\nimport type { Tooltip } from '../../tooltip';\nimport type { Maybe } from '@visactor/vutils';\nimport { domDocument } from '../../../../util/env';\n\n/**\n * The tooltip handler class.\n */\nexport class DomTooltipHandler extends BaseTooltipHandler {\n type = TooltipHandlerType.dom;\n\n protected _tooltipContainer: HTMLElement = domDocument?.body;\n protected _domStyle: IDomTooltipStyle;\n protected _tooltipActual: IToolTipActual;\n protected declare _container: Maybe<HTMLDivElement>;\n\n protected model: TooltipModel;\n\n getVisibility() {\n return !!this.model?.getVisibility();\n }\n\n setVisibility(_value: boolean) {\n // 这里做个节流\n if (_value !== this.getVisibility()) {\n this.model?.setVisibility(_value);\n }\n }\n\n constructor(tooltipId: string, component: Tooltip) {\n super(tooltipId, component);\n this._initStyle();\n this.initEl();\n }\n\n initEl() {\n const tooltipSpec = this._component.getSpec();\n const { parentElement } = tooltipSpec;\n if (domDocument && parentElement) {\n for (let i = 0; i < parentElement.children.length; i++) {\n if (parentElement.children[i].classList.contains(TOOLTIP_CONTAINER_EL_CLASS_NAME)) {\n this._container = parentElement.children[i] as HTMLDivElement;\n break;\n }\n }\n if (!this._container) {\n this._container = domDocument.createElement('div');\n this._container.style.position = 'relative';\n this._container.classList.add(TOOLTIP_CONTAINER_EL_CLASS_NAME);\n parentElement.appendChild(this._container);\n }\n this.model = new TooltipModel(\n this._container,\n {\n valueToHtml: this._option.sanitize,\n getTooltipStyle: () => this._domStyle,\n getTooltipActual: () => this._tooltipActual,\n getTooltipAttributes: () => this._attributeCache\n },\n [tooltipSpec.className],\n this.id\n );\n }\n }\n\n protected _removeTooltip() {\n this.model?.release();\n this._container = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams, actualTooltip: IToolTipActual) {\n if (!visible || !this.model) {\n this.setVisibility(visible);\n } else {\n if (!params.changePositionOnly) {\n this._tooltipActual = actualTooltip;\n this._initStyle();\n\n this.model.initAll();\n this.model.setStyle();\n this.model.setContent();\n }\n this.setVisibility(visible);\n\n // 位置\n const { x = 0, y = 0 } = actualTooltip.position ?? {};\n const el = this.model.product;\n if (el) {\n // https://stackoverflow.com/questions/22111256/translate3d-vs-translate-performance\n el.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }\n }\n }\n\n protected _initStyle() {\n this._domStyle = getDomStyles(this._style, this._attributeCache);\n }\n\n protected _getParentElement(spec: ITooltipSpec): HTMLElement {\n return this._container ?? super._getParentElement(spec);\n }\n\n isTooltipShown() {\n return this.getVisibility();\n }\n\n reInit() {\n super.reInit();\n this._initStyle();\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { TooltipActiveType, TooltipData } from '../../../typings';
2
+ import type { IComponent } from '../../interface/common';
3
+ import type { TooltipHandlerParams } from './common';
4
+ export type TooltipEventParams = TooltipHandlerParams & {
5
+ activeType?: TooltipActiveType;
6
+ tooltipData?: TooltipData;
7
+ tooltip: IComponent;
8
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ });
6
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/component/tooltip/interface/event.ts"],"names":[],"mappings":"","file":"event.js","sourcesContent":["import type { TooltipActiveType, TooltipData } from '../../../typings';\nimport type { IComponent } from '../../interface/common';\nimport type { TooltipHandlerParams } from './common';\n\nexport type TooltipEventParams = TooltipHandlerParams & {\n /** 触发的 tooltip 类型 */\n activeType?: TooltipActiveType;\n /** tooltip 数据 */\n tooltipData?: TooltipData;\n /** tooltip 组件实例 */\n tooltip: IComponent;\n};\n"]}
@@ -21,7 +21,7 @@ export interface ITooltipSpec extends Partial<ITooltipActiveTypeAsKeys<ITooltipP
21
21
  };
22
22
  }
23
23
  export interface ITooltipHandlerSpec {
24
- showTooltip: (activeType: TooltipActiveType, data: TooltipData, params: TooltipHandlerParams) => Maybe<TooltipResult>;
25
- hideTooltip: (params: TooltipHandlerParams) => void;
24
+ showTooltip: (activeType: TooltipActiveType, tooltipData: TooltipData, params: TooltipHandlerParams) => Maybe<TooltipResult>;
25
+ hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;
26
26
  release: () => void;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ITooltipPattern, Maybe, TooltipActiveType, TooltipData } from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /* mark tooltip pattern(*支持在series上设置)\n * & dimension tooltip pattern\n */\n ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>\n > {\n /** 是否显示(*支持在series上设置)(*会影响自定义handler) */\n visible?: boolean;\n /** 受支持的激活类型(*支持在series上设置)(*会影响自定义handler) */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /** tooltip触发方式(*会影响自定义handler) */\n trigger?: 'hover' | 'click' | 'none';\n /** 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)(*会影响自定义handler) */\n triggerOff?: 'hover' | 'click' | 'none';\n\n /** tooltip样式 */\n style?: Omit<ITooltipTheme, 'offset'>;\n\n /** 自定义handler方法 */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /** tooltip 渲染方式,默认为 html */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /** 更新 tooltip 的防抖动时间间隔,单位是 ms */\n throttleInterval?: number;\n\n offset?: {\n x?: number;\n y?: number;\n };\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (activeType: TooltipActiveType, data: TooltipData, params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 隐藏 tooltip */\n hideTooltip: (params: TooltipHandlerParams) => void;\n /** 释放 tooltip */\n release: () => void;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ITooltipPattern, Maybe, TooltipActiveType, TooltipData } from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /* mark tooltip pattern(*支持在series上设置)\n * & dimension tooltip pattern\n */\n ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>\n > {\n /** 是否显示(*支持在series上设置)(*会影响自定义handler) */\n visible?: boolean;\n /** 受支持的激活类型(*支持在series上设置)(*会影响自定义handler) */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /** tooltip触发方式(*会影响自定义handler) */\n trigger?: 'hover' | 'click' | 'none';\n /** 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)(*会影响自定义handler) */\n triggerOff?: 'hover' | 'click' | 'none';\n\n /** tooltip样式 */\n style?: Omit<ITooltipTheme, 'offset'>;\n\n /** 自定义handler方法 */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /** tooltip 渲染方式,默认为 html */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /** 更新 tooltip 的防抖动时间间隔,单位是 ms */\n throttleInterval?: number;\n\n offset?: {\n x?: number;\n y?: number;\n };\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (\n activeType: TooltipActiveType,\n tooltipData: TooltipData,\n params: TooltipHandlerParams\n ) => Maybe<TooltipResult>;\n /** 隐藏 tooltip,可以选择返回是否遇到异常 */\n hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 释放 tooltip */\n release: () => void;\n}\n"]}
@@ -4,13 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.BaseTooltipProcessor = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), interface_1 = require("../interface");
7
+ const vutils_1 = require("@visactor/vutils"), interface_1 = require("../interface"), constant_1 = require("../../../constant");
8
8
 
9
9
  class BaseTooltipProcessor {
10
10
  constructor(component) {
11
11
  this._showTooltipByHandler = (data, params) => {
12
12
  var _a, _b;
13
- return (null === (_a = this.component.tooltipHandler) || void 0 === _a ? void 0 : _a.showTooltip) && (0,
13
+ return this.component.event.emit(constant_1.ChartEvent.tooltipShow, Object.assign(Object.assign({}, params), {
14
+ tooltipData: data,
15
+ activeType: this.activeType,
16
+ tooltip: this.component
17
+ })), (null === (_a = this.component.tooltipHandler) || void 0 === _a ? void 0 : _a.showTooltip) && (0,
14
18
  vutils_1.isValid)(data) ? null !== (_b = this.component.tooltipHandler.showTooltip(this.activeType, data, params)) && void 0 !== _b ? _b : interface_1.TooltipResult.success : interface_1.TooltipResult.failed;
15
19
  }, this.component = component;
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/processor/base.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAK3C,4CAA6C;AAI7C,MAAsB,oBAAoB;IAIxC,YAAY,SAAkB;QAapB,0BAAqB,GAAG,CAAC,IAA6B,EAAE,MAA4B,EAAiB,EAAE;;YAC/G,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,cAAc,0CAAE,WAAW,KAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;gBAC/D,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,mCAAI,yBAAa,CAAC,OAAO,CAAC;aAC1G;YACD,OAAO,yBAAa,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC;QAjBA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAiBF;AAvBD,oDAuBC","file":"base.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType, TooltipData } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface';\nimport type { Tooltip } from '../tooltip';\nimport type { MouseEventData, TooltipInfo } from './interface';\n\nexport abstract class BaseTooltipProcessor {\n readonly component: Tooltip;\n activeType: TooltipActiveType;\n\n constructor(component: Tooltip) {\n this.component = component;\n }\n\n /** 触发对应类型的 tooltip */\n abstract showTooltip(info: TooltipInfo, params: BaseEventParams, changePositionOnly: boolean): TooltipResult;\n\n /** 判断是否应该触发 tooltip */\n abstract shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean;\n\n /** 获取触发 tooltip 需要的信息 */\n abstract getMouseEventData(params: BaseEventParams): MouseEventData;\n\n protected _showTooltipByHandler = (data: TooltipData | undefined, params: TooltipHandlerParams): TooltipResult => {\n if (this.component.tooltipHandler?.showTooltip && isValid(data)) {\n return this.component.tooltipHandler.showTooltip(this.activeType, data, params) ?? TooltipResult.success;\n }\n return TooltipResult.failed;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/processor/base.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAK3C,4CAA6C;AAG7C,gDAA+C;AAG/C,MAAsB,oBAAoB;IAIxC,YAAY,SAAkB;QAapB,0BAAqB,GAAG,CAAC,IAA6B,EAAE,MAA4B,EAAiB,EAAE;;YAC/G,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAU,CAAC,WAAW,EAAE,gCAC7C,MAAM,KACT,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,SAAS,GACF,CAAC,CAAC;YACzB,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,cAAc,0CAAE,WAAW,KAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;gBAC/D,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,mCAAI,yBAAa,CAAC,OAAO,CAAC;aAC1G;YACD,OAAO,yBAAa,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC;QAvBA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CAuBF;AA7BD,oDA6BC","file":"base.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType, TooltipData } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface';\nimport type { Tooltip } from '../tooltip';\nimport type { MouseEventData, TooltipInfo } from './interface';\nimport { ChartEvent } from '../../../constant';\nimport type { TooltipEventParams } from '../interface/event';\n\nexport abstract class BaseTooltipProcessor {\n readonly component: Tooltip;\n activeType: TooltipActiveType;\n\n constructor(component: Tooltip) {\n this.component = component;\n }\n\n /** 触发对应类型的 tooltip */\n abstract showTooltip(info: TooltipInfo, params: BaseEventParams, changePositionOnly: boolean): TooltipResult;\n\n /** 判断是否应该触发 tooltip */\n abstract shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean;\n\n /** 获取触发 tooltip 需要的信息 */\n abstract getMouseEventData(params: BaseEventParams): MouseEventData;\n\n protected _showTooltipByHandler = (data: TooltipData | undefined, params: TooltipHandlerParams): TooltipResult => {\n this.component.event.emit(ChartEvent.tooltipShow, {\n ...params,\n tooltipData: data,\n activeType: this.activeType,\n tooltip: this.component\n } as TooltipEventParams);\n if (this.component.tooltipHandler?.showTooltip && isValid(data)) {\n return this.component.tooltipHandler.showTooltip(this.activeType, data, params) ?? TooltipResult.success;\n }\n return TooltipResult.failed;\n };\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.DimensionTooltipProcessor = void 0;
6
6
 
7
- const base_1 = require("./base"), utils_1 = require("../utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("../../../event/events/dimension/util"), constants_1 = require("../handler/constants"), vscale_1 = require("@visactor/vscale");
7
+ const base_1 = require("./base"), vutils_1 = require("@visactor/vutils"), util_1 = require("../../../event/events/dimension/util"), vscale_1 = require("@visactor/vscale");
8
8
 
9
9
  class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
10
10
  constructor() {
@@ -18,12 +18,11 @@ class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
18
18
  return this._showTooltipByHandler(info, newParams);
19
19
  }
20
20
  shouldHandleTooltip(params, mouseEventData) {
21
- var _a;
21
+ var _a, _b;
22
22
  const {tooltipInfo: info} = mouseEventData;
23
23
  if ((0, vutils_1.isNil)(info)) return !1;
24
- if (![ constants_1.TooltipHandlerType.dom, constants_1.TooltipHandlerType.canvas ].includes(this.component.tooltipHandler.type)) return !0;
25
24
  const helper = null === (_a = params.model) || void 0 === _a ? void 0 : _a.tooltipHelper;
26
- return !(!(0, utils_1.isEmptyPos)(params) && !(0, vutils_1.isNil)(helper)) || !!helper.activeType.includes("dimension");
25
+ return !!(null !== (_b = null == helper ? void 0 : helper.activeType) && void 0 !== _b ? _b : this.component.getSpec().activeType).includes("dimension");
27
26
  }
28
27
  getMouseEventData(params) {
29
28
  var _a, _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/processor/dimension-tooltip.ts"],"names":[],"mappings":"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","file":"dimension-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\nimport type { DimensionTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { isEmptyPos } from '../utils';\nimport { isNil, isValid } from '@visactor/vutils';\nimport type { ICartesianSeries, ISeries } from '../../../series/interface';\nimport { getCartesianDimensionInfo, getPolarDimensionInfo } from '../../../event/events/dimension/util';\nimport type { IDimensionInfo } from '../../../event/events/dimension/interface';\nimport { TooltipHandlerType } from '../handler/constants';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'dimension';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: DimensionTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const newParams: TooltipHandlerParams = {\n ...params,\n dimensionInfo: this._preprocessDimensionInfo(info),\n changePositionOnly\n };\n return this._showTooltipByHandler(info, newParams);\n }\n\n /** 判断是否应该触发 tooltip */\n shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean {\n const { tooltipInfo: info } = mouseEventData;\n if (isNil(info)) {\n return false;\n }\n\n // 自定义 handler\n if (![TooltipHandlerType.dom, TooltipHandlerType.canvas].includes((this.component.tooltipHandler as any).type)) {\n return true;\n }\n\n const helper = (params.model as ISeries)?.tooltipHelper;\n if (isEmptyPos(params) || isNil(helper)) {\n return true;\n }\n\n if (!helper.activeType.includes('dimension')) {\n return false;\n }\n return true;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let targetDimensionInfo: DimensionTooltipInfo | undefined;\n let ignore: boolean | undefined;\n\n // 处理dimension info\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const chart = this.component.getChart();\n const pos = { x, y };\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, pos) ?? []),\n ...(getPolarDimensionInfo(chart, pos) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo =\n targetDimensionInfo.filter(info => {\n const axis = info.axis;\n // 优先显示离散轴 tooltip\n if (!isDiscrete(axis.getScale().type)) {\n return false;\n }\n // 下面的逻辑用来判断当前的离散轴是不是维度轴\n let firstSeries: ICartesianSeries | undefined;\n for (const region of axis?.getRegions() ?? []) {\n for (const series of region.getSeries()) {\n if (series.coordinate === 'cartesian') {\n firstSeries = series as ICartesianSeries;\n break;\n }\n }\n if (isValid(firstSeries)) {\n break;\n }\n }\n if (isValid(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0]) {\n return axis.orient === 'left' || axis.orient === 'right'; // 维度轴为Y轴时,选择只显示Y轴tooltip\n }\n return axis.orient === 'bottom' || axis.orient === 'top'; // 维度轴为X轴时,选择只显示X轴tooltip\n })[0] ?? targetDimensionInfo[0];\n targetDimensionInfo = [dimensionAxisInfo];\n }\n // 排除被声明要忽略的项\n if (\n [...((this.component.getOption() as any).getAllSeries() ?? [])].some(model => {\n const ignoreTriggers = model.tooltipHelper?.ignoreTriggerSet.dimension;\n return (params.model && ignoreTriggers?.has(params.model)) || (params.mark && ignoreTriggers?.has(params.mark));\n })\n ) {\n ignore = true;\n }\n\n return {\n tooltipInfo: targetDimensionInfo,\n ignore\n };\n }\n\n private _preprocessDimensionInfo(dimensionInfo?: DimensionTooltipInfo): DimensionTooltipInfo | undefined {\n const newDimensionInfo: DimensionTooltipInfo = [];\n dimensionInfo?.forEach(info => {\n const di: IDimensionInfo = {\n ...info,\n data: info.data.filter(\n ({ series }: any) => series.getSpec()?.tooltip?.visible !== false // 过滤掉不需要显示的维度数据\n )\n };\n if (di.data.length > 0) {\n newDimensionInfo.push(di);\n }\n });\n if (newDimensionInfo.length > 0) {\n return newDimensionInfo;\n }\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/processor/dimension-tooltip.ts"],"names":[],"mappings":"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","file":"dimension-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\nimport type { DimensionTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { isEmptyPos } from '../utils';\nimport { isNil, isValid } from '@visactor/vutils';\nimport type { ICartesianSeries, ISeries } from '../../../series/interface';\nimport { getCartesianDimensionInfo, getPolarDimensionInfo } from '../../../event/events/dimension/util';\nimport type { IDimensionInfo } from '../../../event/events/dimension/interface';\nimport { TooltipHandlerType } from '../handler/constants';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'dimension';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: DimensionTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const newParams: TooltipHandlerParams = {\n ...params,\n dimensionInfo: this._preprocessDimensionInfo(info),\n changePositionOnly\n };\n return this._showTooltipByHandler(info, newParams);\n }\n\n /** 判断是否应该触发 tooltip */\n shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean {\n const { tooltipInfo: info } = mouseEventData;\n if (isNil(info)) {\n return false;\n }\n\n const helper = (params.model as ISeries)?.tooltipHelper;\n const activeType = helper?.activeType ?? this.component.getSpec().activeType;\n if (!activeType.includes('dimension')) {\n return false;\n }\n return true;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let targetDimensionInfo: DimensionTooltipInfo | undefined;\n let ignore: boolean | undefined;\n\n // 处理dimension info\n const x = (params.event as any).viewX;\n const y = (params.event as any).viewY;\n const chart = this.component.getChart();\n const pos = { x, y };\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, pos) ?? []),\n ...(getPolarDimensionInfo(chart, pos) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo =\n targetDimensionInfo.filter(info => {\n const axis = info.axis;\n // 优先显示离散轴 tooltip\n if (!isDiscrete(axis.getScale().type)) {\n return false;\n }\n // 下面的逻辑用来判断当前的离散轴是不是维度轴\n let firstSeries: ICartesianSeries | undefined;\n for (const region of axis?.getRegions() ?? []) {\n for (const series of region.getSeries()) {\n if (series.coordinate === 'cartesian') {\n firstSeries = series as ICartesianSeries;\n break;\n }\n }\n if (isValid(firstSeries)) {\n break;\n }\n }\n if (isValid(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0]) {\n return axis.orient === 'left' || axis.orient === 'right'; // 维度轴为Y轴时,选择只显示Y轴tooltip\n }\n return axis.orient === 'bottom' || axis.orient === 'top'; // 维度轴为X轴时,选择只显示X轴tooltip\n })[0] ?? targetDimensionInfo[0];\n targetDimensionInfo = [dimensionAxisInfo];\n }\n // 排除被声明要忽略的项\n if (\n [...((this.component.getOption() as any).getAllSeries() ?? [])].some(model => {\n const ignoreTriggers = model.tooltipHelper?.ignoreTriggerSet.dimension;\n return (params.model && ignoreTriggers?.has(params.model)) || (params.mark && ignoreTriggers?.has(params.mark));\n })\n ) {\n ignore = true;\n }\n\n return {\n tooltipInfo: targetDimensionInfo,\n ignore\n };\n }\n\n private _preprocessDimensionInfo(dimensionInfo?: DimensionTooltipInfo): DimensionTooltipInfo | undefined {\n const newDimensionInfo: DimensionTooltipInfo = [];\n dimensionInfo?.forEach(info => {\n const di: IDimensionInfo = {\n ...info,\n data: info.data.filter(\n ({ series }: any) => series.getSpec()?.tooltip?.visible !== false // 过滤掉不需要显示的维度数据\n )\n };\n if (di.data.length > 0) {\n newDimensionInfo.push(di);\n }\n });\n if (newDimensionInfo.length > 0) {\n return newDimensionInfo;\n }\n return undefined;\n }\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.MarkTooltipProcessor = void 0;
6
6
 
7
- const base_1 = require("./base"), vutils_1 = require("@visactor/vutils"), constants_1 = require("../handler/constants");
7
+ const base_1 = require("./base"), vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  class MarkTooltipProcessor extends base_1.BaseTooltipProcessor {
10
10
  constructor() {
@@ -23,7 +23,6 @@ class MarkTooltipProcessor extends base_1.BaseTooltipProcessor {
23
23
  var _a;
24
24
  const {tooltipInfo: info} = mouseEventData;
25
25
  if ((0, vutils_1.isNil)(info)) return !1;
26
- if (![ constants_1.TooltipHandlerType.dom, constants_1.TooltipHandlerType.canvas ].includes(this.component.tooltipHandler.type)) return !0;
27
26
  const helper = null === (_a = params.model) || void 0 === _a ? void 0 : _a.tooltipHelper;
28
27
  return !!(null == helper ? void 0 : helper.activeType.includes("mark"));
29
28
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/processor/mark-tooltip.ts"],"names":[],"mappings":";;;AAIA,iCAA8C;AAC9C,6CAAyC;AAEzC,oDAA0D;AAE1D,MAAa,oBAAqB,SAAQ,2BAAoB;IAA9D;;QACE,eAAU,GAAsB,MAAM,CAAC;IA2DzC,CAAC;IAxDC,WAAW,CAAC,IAAqB,EAAE,MAAuB,EAAE,kBAA2B;QACrF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,mCACV,MAAM,KACT,kBAAkB,GACnB,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAGD,mBAAmB,CAAC,MAAuB,EAAE,cAAuC;;QAClF,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAC7C,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAGD,IAAI,CAAC,CAAC,8BAAkB,CAAC,GAAG,EAAE,8BAAkB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,SAAS,CAAC,cAAsB,CAAC,IAAI,CAAC,EAAE;YAC9G,OAAO,IAAI,CAAC;SACb;QAED,MAAM,MAAM,GAAG,MAAC,MAAM,CAAC,KAAiB,0CAAE,aAAa,CAAC;QACxD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,iBAAiB,CAAC,MAAuB;;QACvC,IAAI,IAAiC,CAAC;QACtC,IAAI,MAA2B,CAAC;QAGhC,IAAI,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,SAAS,MAAK,QAAQ,EAAE;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAgB,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,IAAI,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,IAAI,CAAC;YACrD,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAE;gBACzE,IAAI,GAAG;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM;iBACP,CAAC;aACH;iBAAM,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAE;gBAChF,MAAM,GAAG,IAAI,CAAC;aACf;SACF;QAED,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AA5DD,oDA4DC","file":"mark-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\nimport type { MarkTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { isNil } from '@visactor/vutils';\nimport type { ISeries } from '../../../series/interface';\nimport { TooltipHandlerType } from '../handler/constants';\n\nexport class MarkTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'mark';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: MarkTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const { datum, series } = info;\n const tooltipData = [{ datum: [datum], series }];\n const newParams: TooltipHandlerParams = {\n ...params,\n changePositionOnly\n };\n return this._showTooltipByHandler(tooltipData, newParams);\n }\n\n /** 判断是否应该触发 tooltip */\n shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean {\n const { tooltipInfo: info } = mouseEventData;\n if (isNil(info)) {\n return false;\n }\n\n // 自定义 handler\n if (![TooltipHandlerType.dom, TooltipHandlerType.canvas].includes((this.component.tooltipHandler as any).type)) {\n return true;\n }\n\n const helper = (params.model as ISeries)?.tooltipHelper;\n if (!helper?.activeType.includes('mark')) {\n return false;\n }\n return true;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let info: MarkTooltipInfo | undefined;\n let ignore: boolean | undefined;\n\n // 处理mark info\n if (params.model?.modelType === 'series') {\n const series = params.model as ISeries;\n const helper = series.tooltipHelper;\n const activeTriggers = helper?.activeTriggerSet.mark;\n const ignoreTriggers = helper?.ignoreTriggerSet.mark;\n if (activeTriggers?.has(params.model) || activeTriggers?.has(params.mark)) {\n info = {\n mark: params.mark,\n datum: params.datum,\n series\n };\n } else if (ignoreTriggers?.has(params.model) || ignoreTriggers?.has(params.mark)) {\n ignore = true;\n }\n }\n\n return {\n tooltipInfo: info,\n ignore\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/processor/mark-tooltip.ts"],"names":[],"mappings":";;;AAIA,iCAA8C;AAC9C,6CAAyC;AAIzC,MAAa,oBAAqB,SAAQ,2BAAoB;IAA9D;;QACE,eAAU,GAAsB,MAAM,CAAC;IAsDzC,CAAC;IAnDC,WAAW,CAAC,IAAqB,EAAE,MAAuB,EAAE,kBAA2B;QACrF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,mCACV,MAAM,KACT,kBAAkB,GACnB,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAGD,mBAAmB,CAAC,MAAuB,EAAE,cAAuC;;QAClF,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAC7C,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAG,MAAC,MAAM,CAAC,KAAiB,0CAAE,aAAa,CAAC;QACxD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,iBAAiB,CAAC,MAAuB;;QACvC,IAAI,IAAiC,CAAC;QACtC,IAAI,MAA2B,CAAC;QAGhC,IAAI,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,SAAS,MAAK,QAAQ,EAAE;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAgB,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,IAAI,CAAC;YACrD,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,IAAI,CAAC;YACrD,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAE;gBACzE,IAAI,GAAG;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM;iBACP,CAAC;aACH;iBAAM,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAE;gBAChF,MAAM,GAAG,IAAI,CAAC;aACf;SACF;QAED,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AAvDD,oDAuDC","file":"mark-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { TooltipActiveType } from '../../../typings';\nimport type { TooltipHandlerParams } from '../interface';\nimport type { MarkTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { isNil } from '@visactor/vutils';\nimport type { ISeries } from '../../../series/interface';\nimport { TooltipHandlerType } from '../handler/constants';\n\nexport class MarkTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'mark';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: MarkTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const { datum, series } = info;\n const tooltipData = [{ datum: [datum], series }];\n const newParams: TooltipHandlerParams = {\n ...params,\n changePositionOnly\n };\n return this._showTooltipByHandler(tooltipData, newParams);\n }\n\n /** 判断是否应该触发 tooltip */\n shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean {\n const { tooltipInfo: info } = mouseEventData;\n if (isNil(info)) {\n return false;\n }\n\n const helper = (params.model as ISeries)?.tooltipHelper;\n if (!helper?.activeType.includes('mark')) {\n return false;\n }\n return true;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let info: MarkTooltipInfo | undefined;\n let ignore: boolean | undefined;\n\n // 处理mark info\n if (params.model?.modelType === 'series') {\n const series = params.model as ISeries;\n const helper = series.tooltipHelper;\n const activeTriggers = helper?.activeTriggerSet.mark;\n const ignoreTriggers = helper?.ignoreTriggerSet.mark;\n if (activeTriggers?.has(params.model) || activeTriggers?.has(params.mark)) {\n info = {\n mark: params.mark,\n datum: params.datum,\n series\n };\n } else if (ignoreTriggers?.has(params.model) || ignoreTriggers?.has(params.mark)) {\n ignore = true;\n }\n }\n\n return {\n tooltipInfo: info,\n ignore\n };\n }\n}\n"]}
@@ -6,7 +6,7 @@ import { BaseComponent } from '../base';
6
6
  import type { BaseEventParams, EventCallback, EventQuery, EventType } from '../../event/interface';
7
7
  import type { ITooltipHandler, IToolTipLineActual, TooltipActiveType } from '../../typings/tooltip';
8
8
  import type { Datum, IShowTooltipOption } from '../../typings';
9
- import type { ITooltip, ITooltipActiveTypeAsKeys, ITooltipSpec, ITooltipTheme, TooltipHandlerParams, TotalMouseEventData } from './interface';
9
+ import { TooltipResult, type ITooltip, type ITooltipActiveTypeAsKeys, type ITooltipSpec, type ITooltipTheme, type TooltipHandlerParams, type TotalMouseEventData } from './interface';
10
10
  import { MarkTooltipProcessor, DimensionTooltipProcessor } from './processor';
11
11
  export type TooltipContent = {
12
12
  title?: IToolTipLineActual;
@@ -25,6 +25,8 @@ export declare class Tooltip extends BaseComponent implements ITooltip {
25
25
  protected _spec: ITooltipSpec;
26
26
  protected _theme: ITooltipTheme;
27
27
  protected _processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor>;
28
+ protected _isTooltipShown: boolean;
29
+ isTooltipShown(): boolean;
28
30
  changeRegions(regions: IRegion[]): void;
29
31
  protected _registerEvent(): void;
30
32
  protected _releaseEvent(): void;
@@ -42,7 +44,7 @@ export declare class Tooltip extends BaseComponent implements ITooltip {
42
44
  protected _handleMouseMove: (params: BaseEventParams) => void;
43
45
  protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, useCache?: boolean) => boolean;
44
46
  protected _getMouseEventData: (params: BaseEventParams) => TotalMouseEventData;
45
- protected _hideTooltipByHandler: (params: TooltipHandlerParams) => void;
47
+ protected _hideTooltipByHandler: (params: TooltipHandlerParams) => TooltipResult;
46
48
  protected _initTheme(theme?: any): void;
47
49
  reInit(theme?: any): void;
48
50
  setAttrFromSpec(): void;