@visactor/vchart 1.12.2-alpha.3 → 1.12.2-alpha.9
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.
- package/build/index.js +369 -424
- package/build/index.min.js +1 -1
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.js +1 -1
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/constant.d.ts +2 -1
- package/cjs/component/tooltip/constant.js +2 -2
- package/cjs/component/tooltip/constant.js.map +1 -1
- package/cjs/component/tooltip/interface/common.d.ts +3 -3
- package/cjs/component/tooltip/interface/common.js.map +1 -1
- package/cjs/component/tooltip/processor/base.d.ts +3 -4
- package/cjs/component/tooltip/processor/base.js +6 -39
- package/cjs/component/tooltip/processor/base.js.map +1 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.d.ts +2 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.js +37 -6
- package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/cjs/component/tooltip/processor/group-tooltip.d.ts +2 -3
- package/cjs/component/tooltip/processor/group-tooltip.js +3 -12
- package/cjs/component/tooltip/processor/group-tooltip.js.map +1 -1
- package/cjs/component/tooltip/processor/interface.d.ts +0 -1
- package/cjs/component/tooltip/processor/interface.js.map +1 -1
- package/cjs/component/tooltip/processor/mark-tooltip.d.ts +2 -3
- package/cjs/component/tooltip/processor/mark-tooltip.js +4 -13
- package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/cjs/component/tooltip/tooltip-transformer.js +2 -2
- package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
- package/cjs/component/tooltip/tooltip.js +20 -22
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/tooltip/utils/common.d.ts +3 -1
- package/cjs/component/tooltip/utils/common.js +19 -2
- package/cjs/component/tooltip/utils/common.js.map +1 -1
- package/cjs/component/tooltip/utils/compose.js +1 -1
- package/cjs/component/tooltip/utils/compose.js.map +1 -1
- package/cjs/component/tooltip/utils/get-spec.js +64 -81
- package/cjs/component/tooltip/utils/get-spec.js.map +1 -1
- package/cjs/component/tooltip/utils/index.d.ts +0 -1
- package/cjs/component/tooltip/utils/index.js +1 -1
- package/cjs/component/tooltip/utils/index.js.map +1 -1
- package/cjs/constant/correlation.js +1 -2
- package/cjs/constant/layout.js +2 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.d.ts +1 -1
- package/cjs/event/events/dimension/util/cartesian.js +6 -4
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.js +4 -2
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.js +27 -64
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +3 -4
- package/cjs/plugin/components/tooltip-handler/utils/position.js +8 -11
- package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/cjs/series/base/tooltip-helper.d.ts +1 -3
- package/cjs/series/base/tooltip-helper.js +5 -30
- package/cjs/series/base/tooltip-helper.js.map +1 -1
- package/cjs/series/dot/tooltip-helper.d.ts +0 -1
- package/cjs/series/dot/tooltip-helper.js +2 -19
- package/cjs/series/dot/tooltip-helper.js.map +1 -1
- package/cjs/series/interface/series.d.ts +2 -0
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +1 -1
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/series/pie/pie-transformer.js +2 -2
- package/cjs/series/pie/pie-transformer.js.map +1 -1
- package/cjs/series/polar/polar.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +1 -0
- package/cjs/series/sankey/sankey.js +23 -12
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.js +1 -1
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/tooltip/constant.d.ts +2 -1
- package/esm/component/tooltip/constant.js +2 -0
- package/esm/component/tooltip/constant.js.map +1 -1
- package/esm/component/tooltip/interface/common.d.ts +3 -3
- package/esm/component/tooltip/interface/common.js.map +1 -1
- package/esm/component/tooltip/processor/base.d.ts +3 -4
- package/esm/component/tooltip/processor/base.js +7 -44
- package/esm/component/tooltip/processor/base.js.map +1 -1
- package/esm/component/tooltip/processor/dimension-tooltip.d.ts +2 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js +43 -6
- package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/group-tooltip.d.ts +2 -3
- package/esm/component/tooltip/processor/group-tooltip.js +4 -13
- package/esm/component/tooltip/processor/group-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/interface.d.ts +0 -1
- package/esm/component/tooltip/processor/interface.js.map +1 -1
- package/esm/component/tooltip/processor/mark-tooltip.d.ts +2 -3
- package/esm/component/tooltip/processor/mark-tooltip.js +3 -14
- package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/esm/component/tooltip/tooltip-transformer.js +1 -1
- package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
- package/esm/component/tooltip/tooltip.js +21 -23
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/tooltip/utils/common.d.ts +3 -1
- package/esm/component/tooltip/utils/common.js +15 -1
- package/esm/component/tooltip/utils/common.js.map +1 -1
- package/esm/component/tooltip/utils/compose.js +2 -2
- package/esm/component/tooltip/utils/compose.js.map +1 -1
- package/esm/component/tooltip/utils/get-spec.js +61 -81
- package/esm/component/tooltip/utils/get-spec.js.map +1 -1
- package/esm/component/tooltip/utils/index.d.ts +0 -1
- package/esm/component/tooltip/utils/index.js +0 -2
- package/esm/component/tooltip/utils/index.js.map +1 -1
- package/esm/constant/correlation.js +1 -2
- package/esm/constant/layout.js +2 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.d.ts +1 -1
- package/esm/event/events/dimension/util/cartesian.js +6 -4
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/polar.js +3 -1
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.js +20 -57
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/position.d.ts +3 -4
- package/esm/plugin/components/tooltip-handler/utils/position.js +8 -11
- package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/esm/series/base/tooltip-helper.d.ts +1 -3
- package/esm/series/base/tooltip-helper.js +4 -25
- package/esm/series/base/tooltip-helper.js.map +1 -1
- package/esm/series/dot/tooltip-helper.d.ts +0 -1
- package/esm/series/dot/tooltip-helper.js +3 -20
- package/esm/series/dot/tooltip-helper.js.map +1 -1
- package/esm/series/interface/series.d.ts +2 -0
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/pie/interface.d.ts +1 -1
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/series/pie/pie-transformer.js +1 -1
- package/esm/series/pie/pie-transformer.js.map +1 -1
- package/esm/series/polar/polar.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +1 -0
- package/esm/series/sankey/sankey.js +21 -12
- package/esm/series/sankey/sankey.js.map +1 -1
- package/package.json +16 -16
- package/build/es5/index.js +0 -15
- package/build/tsconfig.tsbuildinfo +0 -1
- package/cjs/component/tooltip/utils/pattern.d.ts +0 -4
- package/cjs/component/tooltip/utils/pattern.js +0 -13
- package/cjs/component/tooltip/utils/pattern.js.map +0 -1
- package/esm/component/tooltip/utils/pattern.d.ts +0 -4
- package/esm/component/tooltip/utils/pattern.js +0 -5
- package/esm/component/tooltip/utils/pattern.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/processor/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { isNil, isValid } from '@visactor/vutils';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { ITooltipActual, ITooltipPattern, TooltipActiveType, TooltipData } from '../../../typings';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface/common';\nimport type { Tooltip } from '../tooltip';\nimport type { DimensionTooltipInfo, MouseEventData, TooltipInfo } from './interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { TooltipEventParams } from '../interface/event';\nimport type { IDimensionData, IDimensionInfo } from '../../../event/events/dimension';\nimport { getPolarDimensionInfo } from '../../../event/events/dimension/util/polar';\nimport { getCartesianDimensionInfo } from '../../../event/events/dimension/util/cartesian';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianSeries, ISeries } from '../../../series/interface';\nimport { getTooltipSpecForShow } from '../utils/get-spec';\nimport { getShowContent } from '../utils/compose';\nimport { getTooltipPatternValue } from '../utils/get-value';\n\nexport abstract class BaseTooltipProcessor {\n readonly component: Tooltip;\n abstract activeType: TooltipActiveType;\n\n protected _cacheViewSpec: ITooltipSpec | undefined;\n protected _cacheActualTooltip: ITooltipActual | undefined;\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, dimensionInfo?: DimensionTooltipInfo): MouseEventData;\n\n protected _showTooltipByHandler = (data: TooltipData | undefined, params: TooltipHandlerParams): TooltipResult => {\n if (isNil(data)) {\n return TooltipResult.failed;\n }\n\n if (!params.changePositionOnly) {\n this.clearCache();\n }\n\n // 更新 this._cacheViewSpec\n this._updateViewSpec(params);\n const spec = this._cacheViewSpec;\n if (isNil(spec?.[this.activeType]) || spec.visible === false) {\n return TooltipResult.failed;\n }\n params.tooltipSpec = spec;\n\n // 更新 this._cacheActualTooltip\n this._updateActualTooltip(data, params);\n params.tooltipActual = this._cacheActualTooltip;\n\n // 判断 tooltip 是否为空\n const { title, content } = this._cacheActualTooltip;\n\n const isEmpty = isNil(title?.key) && isNil(title?.value) && !content?.length;\n // 触发事件\n this.component.event.emit(ChartEvent.tooltipShow, {\n ...params,\n isEmptyTooltip: isNil(title?.key) && isNil(title?.value) && !content?.length,\n tooltipData: data,\n activeType: this.activeType,\n tooltip: this.component\n } as TooltipEventParams);\n\n if (isEmpty) {\n return TooltipResult.failed;\n }\n\n // 显示 tooltip\n let showTooltip;\n if (spec.handler?.showTooltip) {\n showTooltip = spec.handler.showTooltip.bind(spec.handler);\n } else if (this.component.tooltipHandler?.showTooltip) {\n showTooltip = this.component.tooltipHandler.showTooltip.bind(this.component.tooltipHandler);\n }\n if (showTooltip) {\n return showTooltip(this.activeType, data, params) ?? TooltipResult.success;\n }\n return TooltipResult.failed;\n };\n\n protected _preprocessDimensionInfo(dimensionInfo?: IDimensionInfo[]): IDimensionInfo[] | undefined {\n const newDimensionInfo: IDimensionInfo[] = [];\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 protected _getDimensionInfo(params: BaseEventParams): IDimensionInfo[] {\n let targetDimensionInfo: IDimensionInfo[] | undefined;\n // 处理dimension info\n const chart = this.component.getChart();\n\n // compute layer offset\n const layer = chart.getCompiler().getStage().getLayer(undefined);\n const point = { x: params.event.viewX, y: params.event.viewY };\n layer.globalTransMatrix.transformPoint({ x: params.event.viewX, y: params.event.viewY }, point);\n\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, point, true) ?? []),\n ...(getPolarDimensionInfo(chart, point) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo = targetDimensionInfo.filter(info => {\n const axis = info.axis;\n if (axis.getSpec().hasDimensionTooltip) {\n return true;\n }\n\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 // 维度轴为Y轴时,选择只显示Y轴tooltip\n return axis.getOrient() === 'left' || axis.getOrient() === 'right';\n }\n // 维度轴为X轴时,选择只显示X轴tooltip\n return axis.getOrient() === 'bottom' || axis.getOrient() === 'top';\n });\n targetDimensionInfo = dimensionAxisInfo.length ? dimensionAxisInfo : targetDimensionInfo.slice(0, 1);\n\n // datum 去重,保证每个系列的每个数据项只对应于一行 tooltip 内容项\n if (targetDimensionInfo.length > 1) {\n const dimensionDataKeySet = new Set<string>();\n targetDimensionInfo.forEach(info => {\n info.data = info.data.filter(({ key }: IDimensionData) => {\n if (dimensionDataKeySet.has(key)) {\n return false;\n }\n dimensionDataKeySet.add(key);\n return true;\n });\n });\n }\n }\n\n return targetDimensionInfo;\n }\n\n /**\n * 合成实际显示的 tooltip spec\n * @param params\n */\n protected _updateViewSpec(params: TooltipHandlerParams) {\n const { changePositionOnly, model, dimensionInfo } = params;\n if (!changePositionOnly || !this._cacheViewSpec) {\n /** spec 预处理 */\n this._cacheViewSpec = getTooltipSpecForShow(\n this.activeType,\n this.component.getSpec(),\n model as ISeries,\n dimensionInfo\n );\n }\n }\n\n /**\n * 合成 tooltip 内容\n * @param data\n * @param params\n * @param changePositionOnly\n */\n protected _updateActualTooltip(data: TooltipData, params: TooltipHandlerParams) {\n const pattern = this._cacheViewSpec[this.activeType] as ITooltipPattern;\n const { changePositionOnly } = params;\n\n if (!changePositionOnly || !this._cacheActualTooltip) {\n // 合成 tooltip 内容\n const tooltipContent = getShowContent(pattern, data, params);\n\n // 判断可见性\n const visible = isValid(tooltipContent) ? getTooltipPatternValue(pattern.visible, data, params) !== false : false; // 最终展示数据为 null 则不展示\n\n this._cacheActualTooltip = {\n ...tooltipContent,\n visible,\n activeType: pattern.activeType,\n data\n };\n\n const { title, content } = this._cacheActualTooltip;\n this._cacheActualTooltip.title = pattern.updateTitle?.(title, data, params) ?? title;\n this._cacheActualTooltip.content = pattern.updateContent?.(content, data, params) ?? content;\n }\n }\n\n clearCache() {\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/processor/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import { isNil, isValid } from '@visactor/vutils';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { ITooltipActual, ITooltipPattern, TooltipActiveType, TooltipData } from '../../../typings';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { TooltipResult } from '../interface/common';\nimport type { Tooltip } from '../tooltip';\nimport type { MouseEventData, TooltipInfo } from './interface';\nimport { ChartEvent } from '../../../constant/event';\nimport type { TooltipEventParams } from '../interface/event';\nimport type { IDimensionInfo } from '../../../event/events/dimension';\nimport type { ISeries } from '../../../series/interface';\nimport { getTooltipSpecForShow } from '../utils/get-spec';\nimport { getShowContent } from '../utils/compose';\nimport { getTooltipPatternValue } from '../utils/get-value';\nimport { isActiveTypeVisible } from '../utils/common';\n\nexport abstract class BaseTooltipProcessor {\n readonly component: Tooltip;\n abstract activeType: TooltipActiveType;\n\n protected _cacheViewSpec: ITooltipSpec | undefined;\n protected _cacheActualTooltip: ITooltipActual | undefined;\n\n constructor(component: Tooltip) {\n this.component = component;\n }\n\n /** 触发对应类型的 tooltip */\n abstract showTooltip(info: TooltipInfo, params: BaseEventParams, changePositionOnly: boolean): TooltipResult;\n /** 获取触发 tooltip 需要的信息 */\n abstract getMouseEventData(params: BaseEventParams): MouseEventData;\n\n protected _showTooltipByHandler = (data: TooltipData | undefined, params: TooltipHandlerParams): TooltipResult => {\n if (isNil(data)) {\n return TooltipResult.failed;\n }\n\n if (!params.changePositionOnly) {\n this.clearCache();\n }\n\n // 更新 this._cacheViewSpec\n this._updateViewSpec(params);\n const spec = this._cacheViewSpec;\n if (isNil(spec?.[this.activeType]) || spec.visible === false) {\n return TooltipResult.failed;\n }\n params.tooltipSpec = spec;\n\n // 更新 this._cacheActualTooltip\n this._updateActualTooltip(data, params);\n params.tooltipActual = this._cacheActualTooltip;\n\n // 判断 tooltip 是否为空\n const { title, content } = this._cacheActualTooltip;\n\n const isEmpty = isNil(title?.key) && isNil(title?.value) && !content?.length;\n // 触发事件\n this.component.event.emit(ChartEvent.tooltipShow, {\n ...params,\n isEmptyTooltip: isNil(title?.key) && isNil(title?.value) && !content?.length,\n tooltipData: data,\n activeType: this.activeType,\n tooltip: this.component\n } as TooltipEventParams);\n\n if (isEmpty) {\n return TooltipResult.failed;\n }\n\n // 显示 tooltip\n let showTooltip;\n if (spec.handler?.showTooltip) {\n showTooltip = spec.handler.showTooltip.bind(spec.handler);\n } else if (this.component.tooltipHandler?.showTooltip) {\n showTooltip = this.component.tooltipHandler.showTooltip.bind(this.component.tooltipHandler);\n }\n if (showTooltip) {\n return showTooltip(this.activeType, data, params) ?? TooltipResult.success;\n }\n return TooltipResult.failed;\n };\n\n protected _preprocessDimensionInfo(dimensionInfo?: IDimensionInfo[]): IDimensionInfo[] | undefined {\n const newDimensionInfo: IDimensionInfo[] = [];\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 /**\n * 合成实际显示的 tooltip spec\n * @param params\n */\n protected _updateViewSpec(params: TooltipHandlerParams) {\n const { changePositionOnly, model, dimensionInfo } = params;\n if (!changePositionOnly || !this._cacheViewSpec) {\n /** spec 预处理 */\n this._cacheViewSpec = getTooltipSpecForShow(\n this.activeType,\n this.component.getSpec(),\n model as ISeries,\n dimensionInfo\n );\n }\n }\n\n /**\n * 合成 tooltip 内容\n * @param data\n * @param params\n * @param changePositionOnly\n */\n protected _updateActualTooltip(data: TooltipData, params: TooltipHandlerParams) {\n const pattern = this._cacheViewSpec[this.activeType] as ITooltipPattern;\n const { changePositionOnly } = params;\n\n if (!changePositionOnly || !this._cacheActualTooltip) {\n // 合成 tooltip 内容\n const tooltipContent = getShowContent(pattern, data, params);\n\n // 判断可见性\n const visible = isValid(tooltipContent) ? getTooltipPatternValue(pattern.visible, data, params) !== false : false; // 最终展示数据为 null 则不展示\n\n this._cacheActualTooltip = {\n ...tooltipContent,\n visible,\n activeType: pattern.activeType,\n data\n };\n\n const { title, content } = this._cacheActualTooltip;\n this._cacheActualTooltip.title = pattern.updateTitle?.(title, data, params) ?? title;\n this._cacheActualTooltip.content = pattern.updateContent?.(content, data, params) ?? content;\n }\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 return isActiveTypeVisible(this.activeType, (params.model as ISeries)?.tooltipHelper?.spec);\n }\n\n clearCache() {\n this._cacheViewSpec = undefined;\n this._cacheActualTooltip = undefined;\n }\n}\n"]}
|
|
@@ -2,9 +2,10 @@ import type { BaseEventParams } from '../../../event/interface';
|
|
|
2
2
|
import type { TooltipActiveType } from '../../../typings';
|
|
3
3
|
import type { DimensionTooltipInfo, MouseEventData } from './interface';
|
|
4
4
|
import { BaseTooltipProcessor } from './base';
|
|
5
|
+
import type { IDimensionInfo } from '../../../event/events/dimension/interface';
|
|
5
6
|
export declare class DimensionTooltipProcessor extends BaseTooltipProcessor {
|
|
6
7
|
activeType: TooltipActiveType;
|
|
7
8
|
showTooltip(info: DimensionTooltipInfo, params: BaseEventParams, changePositionOnly: boolean): import("../interface").TooltipResult;
|
|
8
|
-
|
|
9
|
+
protected _getDimensionInfo(params: BaseEventParams): IDimensionInfo[];
|
|
9
10
|
getMouseEventData(params: BaseEventParams): MouseEventData;
|
|
10
11
|
}
|
|
@@ -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"), vutils_1 = require("@visactor/vutils");
|
|
7
|
+
const base_1 = require("./base"), vutils_1 = require("@visactor/vutils"), cartesian_1 = require("../../../event/events/dimension/util/cartesian"), polar_1 = require("../../../event/events/dimension/util/polar"), vscale_1 = require("@visactor/vscale");
|
|
8
8
|
|
|
9
9
|
class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
|
|
10
10
|
constructor() {
|
|
@@ -18,12 +18,43 @@ class DimensionTooltipProcessor extends base_1.BaseTooltipProcessor {
|
|
|
18
18
|
});
|
|
19
19
|
return this._showTooltipByHandler(info, newParams);
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
_getDimensionInfo(params) {
|
|
22
22
|
var _a, _b;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
let targetDimensionInfo;
|
|
24
|
+
const chart = this.component.getChart(), layer = chart.getCompiler().getStage().getLayer(void 0), point = {
|
|
25
|
+
x: params.event.viewX,
|
|
26
|
+
y: params.event.viewY
|
|
27
|
+
};
|
|
28
|
+
if (layer.globalTransMatrix.transformPoint({
|
|
29
|
+
x: params.event.viewX,
|
|
30
|
+
y: params.event.viewY
|
|
31
|
+
}, point), targetDimensionInfo = [ ...null !== (_a = (0, cartesian_1.getCartesianDimensionInfo)(chart, point, !0)) && void 0 !== _a ? _a : [], ...null !== (_b = (0,
|
|
32
|
+
polar_1.getPolarDimensionInfo)(chart, point)) && void 0 !== _b ? _b : [] ], 0 === targetDimensionInfo.length) targetDimensionInfo = void 0; else if (targetDimensionInfo.length > 1) {
|
|
33
|
+
const dimensionAxisInfo = targetDimensionInfo.filter((info => {
|
|
34
|
+
var _a;
|
|
35
|
+
const axis = info.axis;
|
|
36
|
+
if (axis.getSpec().hasDimensionTooltip) return !0;
|
|
37
|
+
if (!(0, vscale_1.isDiscrete)(axis.getScale().type)) return !1;
|
|
38
|
+
let firstSeries;
|
|
39
|
+
for (const region of null !== (_a = null == axis ? void 0 : axis.getRegions()) && void 0 !== _a ? _a : []) {
|
|
40
|
+
for (const series of region.getSeries()) if ("cartesian" === series.coordinate) {
|
|
41
|
+
firstSeries = series;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
if ((0, vutils_1.isValid)(firstSeries)) break;
|
|
45
|
+
}
|
|
46
|
+
return (0, vutils_1.isValid)(firstSeries) && firstSeries.getDimensionField()[0] === firstSeries.fieldY[0] ? "left" === axis.getOrient() || "right" === axis.getOrient() : "bottom" === axis.getOrient() || "top" === axis.getOrient();
|
|
47
|
+
}));
|
|
48
|
+
if (targetDimensionInfo = dimensionAxisInfo.length ? dimensionAxisInfo : targetDimensionInfo.slice(0, 1),
|
|
49
|
+
targetDimensionInfo.length > 1) {
|
|
50
|
+
const dimensionDataKeySet = new Set;
|
|
51
|
+
targetDimensionInfo.forEach((info => {
|
|
52
|
+
info.data = info.data.filter((({key: key}) => !dimensionDataKeySet.has(key) && (dimensionDataKeySet.add(key),
|
|
53
|
+
!0)));
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return targetDimensionInfo;
|
|
27
58
|
}
|
|
28
59
|
getMouseEventData(params) {
|
|
29
60
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/processor/dimension-tooltip.ts"],"names":[],"mappings":";;;AAIA,iCAA8C;AAC9C,
|
|
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 { isValid } from '@visactor/vutils';\nimport type { ICartesianSeries } from '../../../series/interface';\nimport { getCartesianDimensionInfo } from '../../../event/events/dimension/util/cartesian';\nimport { getPolarDimensionInfo } from '../../../event/events/dimension/util/polar';\nimport type { IDimensionData, IDimensionInfo } from '../../../event/events/dimension/interface';\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 as TooltipHandlerParams),\n dimensionInfo: this._preprocessDimensionInfo(info),\n changePositionOnly,\n tooltip: this.component\n };\n return this._showTooltipByHandler(info, newParams);\n }\n\n protected _getDimensionInfo(params: BaseEventParams): IDimensionInfo[] {\n let targetDimensionInfo: IDimensionInfo[] | undefined;\n // 处理dimension info\n const chart = this.component.getChart();\n\n // compute layer offset\n const layer = chart.getCompiler().getStage().getLayer(undefined);\n const point = { x: params.event.viewX, y: params.event.viewY };\n layer.globalTransMatrix.transformPoint({ x: params.event.viewX, y: params.event.viewY }, point);\n\n targetDimensionInfo = [\n ...(getCartesianDimensionInfo(chart, point, true) ?? []),\n ...(getPolarDimensionInfo(chart, point) ?? [])\n ];\n if (targetDimensionInfo.length === 0) {\n targetDimensionInfo = undefined;\n } else if (targetDimensionInfo.length > 1) {\n // 只保留一个轴的dimension info\n const dimensionAxisInfo = targetDimensionInfo.filter(info => {\n const axis = info.axis;\n if (axis.getSpec().hasDimensionTooltip) {\n return true;\n }\n\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 // 维度轴为Y轴时,选择只显示Y轴tooltip\n return axis.getOrient() === 'left' || axis.getOrient() === 'right';\n }\n // 维度轴为X轴时,选择只显示X轴tooltip\n return axis.getOrient() === 'bottom' || axis.getOrient() === 'top';\n });\n targetDimensionInfo = dimensionAxisInfo.length ? dimensionAxisInfo : targetDimensionInfo.slice(0, 1);\n\n // datum 去重,保证每个系列的每个数据项只对应于一行 tooltip 内容项\n if (targetDimensionInfo.length > 1) {\n const dimensionDataKeySet = new Set<string>();\n targetDimensionInfo.forEach(info => {\n info.data = info.data.filter(({ key }: IDimensionData) => {\n if (dimensionDataKeySet.has(key)) {\n return false;\n }\n dimensionDataKeySet.add(key);\n return true;\n });\n });\n }\n }\n\n return targetDimensionInfo;\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n return {\n tooltipInfo: this._getDimensionInfo(params),\n // 排除被声明要忽略的项\n ignore: [...((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 }\n}\n"]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { BaseEventParams } from '../../../event/interface';
|
|
2
2
|
import type { TooltipActiveType } from '../../../typings';
|
|
3
|
-
import type {
|
|
3
|
+
import type { GroupTooltipInfo, MouseEventData } from './interface';
|
|
4
4
|
import { BaseTooltipProcessor } from './base';
|
|
5
5
|
export declare class GroupTooltipProcessor extends BaseTooltipProcessor {
|
|
6
6
|
activeType: TooltipActiveType;
|
|
7
7
|
showTooltip(info: GroupTooltipInfo, params: BaseEventParams, changePositionOnly: boolean): import("../interface").TooltipResult;
|
|
8
|
-
|
|
9
|
-
getMouseEventData(params: BaseEventParams, dimensionInfo?: DimensionTooltipInfo): MouseEventData;
|
|
8
|
+
getMouseEventData(params: BaseEventParams): MouseEventData;
|
|
10
9
|
protected _getGroupDatum(params: BaseEventParams): any;
|
|
11
10
|
}
|
|
@@ -11,25 +11,17 @@ class GroupTooltipProcessor extends base_1.BaseTooltipProcessor {
|
|
|
11
11
|
super(...arguments), this.activeType = "group";
|
|
12
12
|
}
|
|
13
13
|
showTooltip(info, params, changePositionOnly) {
|
|
14
|
-
const {datum: datum, series: series
|
|
14
|
+
const {datum: datum, series: series} = info, tooltipData = [ {
|
|
15
15
|
datum: (0, vutils_1.array)(datum),
|
|
16
16
|
series: series
|
|
17
17
|
} ], newParams = Object.assign(Object.assign({}, params), {
|
|
18
18
|
groupDatum: this._getGroupDatum(params),
|
|
19
|
-
dimensionInfo: this._preprocessDimensionInfo(dimensionInfo),
|
|
20
19
|
changePositionOnly: changePositionOnly,
|
|
21
20
|
tooltip: this.component
|
|
22
21
|
});
|
|
23
22
|
return this._showTooltipByHandler(tooltipData, newParams);
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
var _a;
|
|
27
|
-
const {tooltipInfo: info} = mouseEventData;
|
|
28
|
-
if ((0, vutils_1.isNil)(info)) return !1;
|
|
29
|
-
const helper = null === (_a = params.model) || void 0 === _a ? void 0 : _a.tooltipHelper;
|
|
30
|
-
return !!(null == helper ? void 0 : helper.activeType.includes("group"));
|
|
31
|
-
}
|
|
32
|
-
getMouseEventData(params, dimensionInfo) {
|
|
24
|
+
getMouseEventData(params) {
|
|
33
25
|
var _a, _b;
|
|
34
26
|
let info, ignore;
|
|
35
27
|
if ("series" === (null === (_a = params.model) || void 0 === _a ? void 0 : _a.modelType)) {
|
|
@@ -39,8 +31,7 @@ class GroupTooltipProcessor extends base_1.BaseTooltipProcessor {
|
|
|
39
31
|
((null == patternSpec ? void 0 : patternSpec.triggerMark) ? (0, vutils_1.array)(patternSpec.triggerMark) : []).includes(null === (_b = params.mark) || void 0 === _b ? void 0 : _b.name) && (info = {
|
|
40
32
|
mark: params.mark,
|
|
41
33
|
datum: params.datum,
|
|
42
|
-
series: series
|
|
43
|
-
dimensionInfo: dimensionInfo
|
|
34
|
+
series: series
|
|
44
35
|
});
|
|
45
36
|
} else ((null == ignoreTriggers ? void 0 : ignoreTriggers.has(params.model)) || (null == ignoreTriggers ? void 0 : ignoreTriggers.has(params.mark))) && (ignore = !0);
|
|
46
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/processor/group-tooltip.ts"],"names":[],"mappings":";;;AAIA,iCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/processor/group-tooltip.ts"],"names":[],"mappings":"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","file":"group-tooltip.js","sourcesContent":["import type { BaseEventParams } from '../../../event/interface';\nimport type { Datum, IGroupTooltipPattern, TooltipActiveType } from '../../../typings';\nimport type { ITooltipSpec, TooltipHandlerParams } from '../interface';\nimport type { GroupTooltipInfo, MouseEventData } from './interface';\nimport { BaseTooltipProcessor } from './base';\nimport { array } from '@visactor/vutils';\nimport type { ISeries } from '../../../series/interface';\n\nexport class GroupTooltipProcessor extends BaseTooltipProcessor {\n activeType: TooltipActiveType = 'group';\n\n /** 触发对应类型的 tooltip */\n showTooltip(info: GroupTooltipInfo, params: BaseEventParams, changePositionOnly: boolean) {\n const { datum, series } = info;\n const tooltipData = [{ datum: array(datum), series }];\n const newParams: TooltipHandlerParams = {\n ...(params as any),\n groupDatum: this._getGroupDatum(params),\n changePositionOnly,\n tooltip: this.component\n };\n return this._showTooltipByHandler(tooltipData, newParams);\n }\n\n /** 获取触发 tooltip 需要的信息 */\n getMouseEventData(params: BaseEventParams): MouseEventData {\n let info: GroupTooltipInfo | 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.group;\n const ignoreTriggers = helper?.ignoreTriggerSet.group;\n\n if (activeTriggers?.has(params.model) || activeTriggers?.has(params.mark)) {\n const patternSpec: IGroupTooltipPattern = (this.component.getSpec() as ITooltipSpec)[this.activeType];\n const triggerMark = patternSpec?.triggerMark ? array(patternSpec.triggerMark) : [];\n if (triggerMark.includes(params.mark?.name as any)) {\n info = {\n mark: params.mark,\n datum: params.datum,\n series\n };\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 protected _getGroupDatum(params: BaseEventParams) {\n const { model, mark, datum } = params;\n const series = model as ISeries;\n if (['line', 'area'].includes(mark.type)) {\n return array(datum);\n }\n\n const datumList = series.getViewData().latestData;\n const seriesField = series.getSeriesField();\n if (!seriesField) {\n return datumList;\n }\n\n const seriesFieldValue = array(datum)[0][seriesField];\n return datumList.filter((d: Datum) => d[seriesField] === seriesFieldValue);\n }\n}\n"]}
|
|
@@ -7,7 +7,6 @@ export type MarkTooltipInfo<T = Datum> = {
|
|
|
7
7
|
datum: T;
|
|
8
8
|
mark: IMark;
|
|
9
9
|
series: ISeries;
|
|
10
|
-
dimensionInfo: DimensionTooltipInfo;
|
|
11
10
|
};
|
|
12
11
|
export type GroupTooltipInfo = MarkTooltipInfo<Datum | Datum[]>;
|
|
13
12
|
export type TooltipInfo = DimensionTooltipInfo | MarkTooltipInfo | GroupTooltipInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/processor/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { Datum } from '@visactor/vgrammar-core';\nimport type { IMark } from '../../../mark/interface';\nimport type { ISeries } from '../../../series/interface';\nimport type { IDimensionInfo } from '../../../event/events/dimension/interface';\n\nexport type DimensionTooltipInfo = IDimensionInfo[];\n\nexport type MarkTooltipInfo<T = Datum> = {\n datum: T;\n mark: IMark;\n series: ISeries;\n
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/processor/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { Datum } from '@visactor/vgrammar-core';\nimport type { IMark } from '../../../mark/interface';\nimport type { ISeries } from '../../../series/interface';\nimport type { IDimensionInfo } from '../../../event/events/dimension/interface';\n\nexport type DimensionTooltipInfo = IDimensionInfo[];\n\nexport type MarkTooltipInfo<T = Datum> = {\n datum: T;\n mark: IMark;\n series: ISeries;\n};\n\nexport type GroupTooltipInfo = MarkTooltipInfo<Datum | Datum[]>;\n\nexport type TooltipInfo = DimensionTooltipInfo | MarkTooltipInfo | GroupTooltipInfo;\n\nexport type MouseEventData = {\n /** 展示 tooltip 需要的信息 */\n tooltipInfo: TooltipInfo;\n /** 是否忽略该 tooltip */\n ignore: boolean;\n};\n"]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { BaseEventParams } from '../../../event/interface';
|
|
2
2
|
import type { TooltipActiveType } from '../../../typings';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MarkTooltipInfo, MouseEventData } from './interface';
|
|
4
4
|
import { BaseTooltipProcessor } from './base';
|
|
5
5
|
export declare class MarkTooltipProcessor extends BaseTooltipProcessor {
|
|
6
6
|
activeType: TooltipActiveType;
|
|
7
7
|
showTooltip(info: MarkTooltipInfo, params: BaseEventParams, changePositionOnly: boolean): import("../interface").TooltipResult;
|
|
8
|
-
|
|
9
|
-
getMouseEventData(params: BaseEventParams, dimensionInfo?: DimensionTooltipInfo): MouseEventData;
|
|
8
|
+
getMouseEventData(params: BaseEventParams): MouseEventData;
|
|
10
9
|
}
|
|
@@ -4,31 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.MarkTooltipProcessor = void 0;
|
|
6
6
|
|
|
7
|
-
const base_1 = require("./base")
|
|
7
|
+
const base_1 = require("./base");
|
|
8
8
|
|
|
9
9
|
class MarkTooltipProcessor extends base_1.BaseTooltipProcessor {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments), this.activeType = "mark";
|
|
12
12
|
}
|
|
13
13
|
showTooltip(info, params, changePositionOnly) {
|
|
14
|
-
const {datum: datum, series: series
|
|
14
|
+
const {datum: datum, series: series} = info, tooltipData = [ {
|
|
15
15
|
datum: [ datum ],
|
|
16
16
|
series: series
|
|
17
17
|
} ], newParams = Object.assign(Object.assign({}, params), {
|
|
18
|
-
dimensionInfo: this._preprocessDimensionInfo(dimensionInfo),
|
|
19
18
|
changePositionOnly: changePositionOnly,
|
|
20
19
|
tooltip: this.component
|
|
21
20
|
});
|
|
22
21
|
return this._showTooltipByHandler(tooltipData, newParams);
|
|
23
22
|
}
|
|
24
|
-
|
|
25
|
-
var _a;
|
|
26
|
-
const {tooltipInfo: info} = mouseEventData;
|
|
27
|
-
if ((0, vutils_1.isNil)(info)) return !1;
|
|
28
|
-
const helper = null === (_a = params.model) || void 0 === _a ? void 0 : _a.tooltipHelper;
|
|
29
|
-
return !!(null == helper ? void 0 : helper.activeType.includes("mark"));
|
|
30
|
-
}
|
|
31
|
-
getMouseEventData(params, dimensionInfo) {
|
|
23
|
+
getMouseEventData(params) {
|
|
32
24
|
var _a;
|
|
33
25
|
let info, ignore;
|
|
34
26
|
if ("series" === (null === (_a = params.model) || void 0 === _a ? void 0 : _a.modelType)) {
|
|
@@ -36,8 +28,7 @@ class MarkTooltipProcessor extends base_1.BaseTooltipProcessor {
|
|
|
36
28
|
(null == activeTriggers ? void 0 : activeTriggers.has(params.model)) || (null == activeTriggers ? void 0 : activeTriggers.has(params.mark)) ? info = {
|
|
37
29
|
mark: params.mark,
|
|
38
30
|
datum: params.datum,
|
|
39
|
-
series: series
|
|
40
|
-
dimensionInfo: dimensionInfo
|
|
31
|
+
series: series
|
|
41
32
|
} : ((null == ignoreTriggers ? void 0 : ignoreTriggers.has(params.model)) || (null == ignoreTriggers ? void 0 : ignoreTriggers.has(params.mark))) && (ignore = !0);
|
|
42
33
|
}
|
|
43
34
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/processor/mark-tooltip.ts"],"names":[],"mappings":";;;AAIA,iCAA8C;
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/processor/mark-tooltip.ts"],"names":[],"mappings":";;;AAIA,iCAA8C;AAG9C,MAAa,oBAAqB,SAAQ,2BAAoB;IAA9D;;QACE,eAAU,GAAsB,MAAM,CAAC;IAyCzC,CAAC;IAtCC,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,mCACT,MAAc,KAClB,kBAAkB,EAClB,OAAO,EAAE,IAAI,CAAC,SAAS,GACxB,CAAC;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC5D,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;AA1CD,oDA0CC","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 type { ISeries } from '../../../series/interface';\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 as any),\n changePositionOnly,\n tooltip: this.component\n };\n return this._showTooltipByHandler(tooltipData, newParams);\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"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.TooltipSpecTransformer = void 0;
|
|
6
6
|
|
|
7
|
-
const vrender_core_1 = require("@visactor/vrender-core"), util_1 = require("../../util"), base_1 = require("../base"), constant_1 = require("./constant"),
|
|
7
|
+
const vrender_core_1 = require("@visactor/vrender-core"), util_1 = require("../../util"), base_1 = require("../base"), constant_1 = require("./constant"), common_1 = require("./utils/common"), vutils_extension_1 = require("@visactor/vutils-extension");
|
|
8
8
|
|
|
9
9
|
class TooltipSpecTransformer extends base_1.BaseComponentSpecTransformer {
|
|
10
10
|
_shouldMergeThemeToSpec() {
|
|
@@ -24,7 +24,7 @@ class TooltipSpecTransformer extends base_1.BaseComponentSpecTransformer {
|
|
|
24
24
|
_transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo) {
|
|
25
25
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
26
26
|
super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo), spec.visible = null === (_a = spec.visible) || void 0 === _a || _a,
|
|
27
|
-
spec.activeType = (0,
|
|
27
|
+
spec.activeType = (0, common_1.getTooltipActualActiveType)(spec), spec.renderMode = null !== (_b = spec.renderMode) && void 0 !== _b ? _b : (0,
|
|
28
28
|
util_1.isMiniAppLikeMode)(this._option.mode) || !(0, util_1.isTrueBrowser)(this._option.mode) ? "canvas" : "html",
|
|
29
29
|
spec.trigger = null !== (_c = spec.trigger) && void 0 !== _c ? _c : "hover", spec.className = null !== (_d = spec.className) && void 0 !== _d ? _d : constant_1.TOOLTIP_EL_CLASS_NAME,
|
|
30
30
|
spec.enterable = null !== (_e = spec.enterable) && void 0 !== _e && _e, spec.transitionDuration = null !== (_f = spec.transitionDuration) && void 0 !== _f ? _f : 150,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/tooltip-transformer.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AAEjD,qCAA8F;AAC9F,kCAAuD;AACvD,yCAAmD;AACnD,
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/tooltip-transformer.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AAEjD,qCAA8F;AAC9F,kCAAuD;AACvD,yCAAmD;AACnD,2CAA4D;AAC5D,iEAAuD;AAEvD,MAAa,sBAAuB,SAAQ,mCAAiC;IACjE,uBAAuB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAES,UAAU,CAAC,IAAS,EAAE,SAAc;;QAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,GAAG,IAAA,4BAAS,EAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,GAAG,IAAA,4BAAS,EAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,kBAAkB,GAAG,MAAA,IAAI,CAAC,kBAAkB,mCAAI,KAAK,CAAC,kBAAkB,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAES,+BAA+B,CAAC,IAAS,EAAE,SAAc,EAAE,aAA8B;;QACjG,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAA,mCAA0B,EAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU;YACb,MAAA,IAAI,CAAC,UAAU,mCAEf,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,oBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,gCAAqB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,MAAA,IAAI,CAAC,kBAAkB,mCAAI,GAAG,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;QAE5D,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC/B;QACD,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC;SACzC;QAED,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC/B,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,sBAAO,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACjE;SACF;aAAM,IAAI,IAAA,oBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3C,IAAI,CAAC,aAAa,GAAG,kBAAW,aAAX,kBAAW,uBAAX,kBAAW,CAAE,IAAI,CAAC;SACxC;IACH,CAAC;CACF;AA5CD,wDA4CC","file":"tooltip-transformer.js","sourcesContent":["import { vglobal } from '@visactor/vrender-core';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport { domDocument, isMiniAppLikeMode, isString, isTrueBrowser, isValid } from '../../util';\nimport { BaseComponentSpecTransformer } from '../base';\nimport { TOOLTIP_EL_CLASS_NAME } from './constant';\nimport { getTooltipActualActiveType } from './utils/common';\nimport { mergeSpec } from '@visactor/vutils-extension';\n\nexport class TooltipSpecTransformer extends BaseComponentSpecTransformer<any> {\n protected _shouldMergeThemeToSpec() {\n return false;\n }\n\n protected _initTheme(spec: any, chartSpec: any): { spec: any; theme: any } {\n const { spec: newSpec, theme } = super._initTheme(spec, chartSpec);\n newSpec.style = mergeSpec({}, this._theme, newSpec.style);\n newSpec.offset = mergeSpec({}, theme.offset, spec.offset);\n newSpec.transitionDuration = spec.transitionDuration ?? theme.transitionDuration;\n return { spec: newSpec, theme };\n }\n\n protected _transformSpecAfterMergingTheme(spec: any, chartSpec: any, chartSpecInfo?: IChartSpecInfo) {\n super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo);\n\n spec.visible = spec.visible ?? true;\n spec.activeType = getTooltipActualActiveType(spec);\n spec.renderMode =\n spec.renderMode ??\n // 小程序或非浏览器环境下,默认使用canvas渲染\n (isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode) ? 'canvas' : 'html');\n spec.trigger = spec.trigger ?? 'hover';\n spec.className = spec.className ?? TOOLTIP_EL_CLASS_NAME;\n spec.enterable = spec.enterable ?? false;\n spec.transitionDuration = spec.transitionDuration ?? 150;\n spec.triggerOff = spec.triggerOff ?? spec.trigger;\n spec.confine = spec.confine ?? spec.renderMode === 'canvas';\n\n if (isValid(spec.mark)) {\n spec.mark.activeType = 'mark';\n }\n if (isValid(spec.dimension)) {\n spec.dimension.activeType = 'dimension';\n }\n\n if (isValid(spec.parentElement)) {\n if (isString(spec.parentElement)) {\n spec.parentElement = vglobal.getElementById(spec.parentElement);\n }\n } else if (isTrueBrowser(this._option.mode)) {\n spec.parentElement = domDocument?.body;\n }\n }\n}\n"]}
|
|
@@ -42,9 +42,13 @@ class Tooltip extends base_component_1.BaseComponent {
|
|
|
42
42
|
dimension: !1,
|
|
43
43
|
group: !1
|
|
44
44
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
for (let i = 0, len = constant_1.TOOLTIP_TYPES.length; i < len; i++) {
|
|
46
|
+
const type = constant_1.TOOLTIP_TYPES[i];
|
|
47
|
+
if (!!this.processor[type] && this._showTooltipByMouseEvent(type, mouseEventData, params, isClick)) {
|
|
48
|
+
success[type] = !0;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
48
52
|
Object.values(success).every((val => !val)) && !(0, common_1.isEmptyPos)(params) && (ignoreMark && (0,
|
|
49
53
|
util_1.isMarkInfo)(this._cacheInfo) ? success.mark = this._showTooltipByMouseEvent("mark", mouseEventData, params, isClick, !0) : ignoreDimension && (0,
|
|
50
54
|
util_1.isDimensionInfo)(this._cacheInfo) ? success.dimension = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick, !0) : (0,
|
|
@@ -74,27 +78,22 @@ class Tooltip extends base_component_1.BaseComponent {
|
|
|
74
78
|
tooltipInfo: {},
|
|
75
79
|
ignore: {}
|
|
76
80
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
result.tooltipInfo[activeType] = tooltipInfo, result.ignore[activeType] = ignore;
|
|
80
|
-
const dimensionInfo = tooltipInfo;
|
|
81
|
-
for (activeType of Object.keys(this.processor)) if ("dimension" !== activeType) {
|
|
82
|
-
const {tooltipInfo: tooltipInfo, ignore: ignore} = this.processor[activeType].getMouseEventData(params, dimensionInfo);
|
|
81
|
+
return Object.keys(this.processor).forEach((activeType => {
|
|
82
|
+
const {tooltipInfo: tooltipInfo, ignore: ignore} = this.processor[activeType].getMouseEventData(params);
|
|
83
83
|
result.tooltipInfo[activeType] = tooltipInfo, result.ignore[activeType] = ignore;
|
|
84
|
-
}
|
|
85
|
-
return result;
|
|
84
|
+
})), result;
|
|
86
85
|
}, this._hideTooltipByHandler = params => {
|
|
87
|
-
var _a, _b, _c
|
|
86
|
+
var _a, _b, _c;
|
|
88
87
|
if (!this._isTooltipShown && !(null === (_b = null === (_a = this.tooltipHandler) || void 0 === _a ? void 0 : _a.isTooltipShown) || void 0 === _b ? void 0 : _b.call(_a))) return 0;
|
|
89
|
-
|
|
90
|
-
if (this.event.emit(event_1.ChartEvent.tooltipHide, Object.assign(Object.assign({}, params), {
|
|
88
|
+
this.event.emit(event_1.ChartEvent.tooltipHide, Object.assign(Object.assign({}, params), {
|
|
91
89
|
source: event_1.Event_Source_Type.chart,
|
|
92
90
|
tooltip: this
|
|
93
91
|
})), Object.values(this.processor).forEach((processor => {
|
|
94
92
|
processor.clearCache();
|
|
95
|
-
}))
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
}));
|
|
94
|
+
const handler = null !== (_c = this._spec.handler) && void 0 !== _c ? _c : this.tooltipHandler;
|
|
95
|
+
if (handler.hideTooltip) {
|
|
96
|
+
const result = handler.hideTooltip.call(handler, params);
|
|
98
97
|
return result || (this._isTooltipShown = !1), result;
|
|
99
98
|
}
|
|
100
99
|
return 1;
|
|
@@ -162,11 +161,10 @@ class Tooltip extends base_component_1.BaseComponent {
|
|
|
162
161
|
}
|
|
163
162
|
}
|
|
164
163
|
_initProcessor() {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
};
|
|
164
|
+
const activeType = this._spec.activeType;
|
|
165
|
+
this.processor = {}, activeType.includes("dimension") && (this.processor.dimension = new processor_1.DimensionTooltipProcessor(this)),
|
|
166
|
+
activeType.includes("group") && (this.processor.group = new processor_1.GroupTooltipProcessor(this)),
|
|
167
|
+
activeType.includes("mark") && (this.processor.mark = new processor_1.MarkTooltipProcessor(this));
|
|
170
168
|
}
|
|
171
169
|
_initEvent() {
|
|
172
170
|
var _a;
|