@visactor/vchart 2.0.9 → 2.0.10-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.es.js +269 -55
  3. package/build/index.js +269 -55
  4. package/build/index.min.js +2 -2
  5. package/build/tsconfig.tsbuildinfo +1 -1
  6. package/cjs/chart/box-plot/box-plot-transformer.js +1 -1
  7. package/cjs/chart/box-plot/box-plot-transformer.js.map +1 -1
  8. package/cjs/component/custom-mark/custom-mark.js +2 -2
  9. package/cjs/component/custom-mark/custom-mark.js.map +1 -1
  10. package/cjs/component/tooltip/utils/show-tooltip.js +3 -3
  11. package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
  12. package/cjs/core/index.d.ts +1 -1
  13. package/cjs/core/index.js +1 -1
  14. package/cjs/core/index.js.map +1 -1
  15. package/cjs/mark/base/base-mark.d.ts +1 -1
  16. package/cjs/mark/base/base-mark.js +3 -3
  17. package/cjs/mark/base/base-mark.js.map +1 -1
  18. package/cjs/series/base/base-series.js +3 -3
  19. package/cjs/series/base/base-series.js.map +1 -1
  20. package/cjs/series/box-plot/box-plot.d.ts +3 -1
  21. package/cjs/series/box-plot/box-plot.js +54 -29
  22. package/cjs/series/box-plot/box-plot.js.map +1 -1
  23. package/cjs/series/box-plot/interface.d.ts +7 -2
  24. package/cjs/series/box-plot/interface.js.map +1 -1
  25. package/cjs/theme/token/builtin/default.js +1 -1
  26. package/cjs/theme/token/builtin/default.js.map +1 -1
  27. package/cjs/typings/visual.d.ts +3 -3
  28. package/cjs/typings/visual.js.map +1 -1
  29. package/esm/chart/box-plot/box-plot-transformer.js +1 -1
  30. package/esm/chart/box-plot/box-plot-transformer.js.map +1 -1
  31. package/esm/component/custom-mark/custom-mark.js +2 -2
  32. package/esm/component/custom-mark/custom-mark.js.map +1 -1
  33. package/esm/component/tooltip/utils/show-tooltip.js +3 -3
  34. package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
  35. package/esm/core/index.d.ts +1 -1
  36. package/esm/core/index.js +1 -1
  37. package/esm/core/index.js.map +1 -1
  38. package/esm/mark/base/base-mark.d.ts +1 -1
  39. package/esm/mark/base/base-mark.js +3 -3
  40. package/esm/mark/base/base-mark.js.map +1 -1
  41. package/esm/series/base/base-series.js +3 -3
  42. package/esm/series/base/base-series.js.map +1 -1
  43. package/esm/series/box-plot/box-plot.d.ts +3 -1
  44. package/esm/series/box-plot/box-plot.js +56 -29
  45. package/esm/series/box-plot/box-plot.js.map +1 -1
  46. package/esm/series/box-plot/interface.d.ts +7 -2
  47. package/esm/series/box-plot/interface.js.map +1 -1
  48. package/esm/theme/token/builtin/default.js +1 -1
  49. package/esm/theme/token/builtin/default.js.map +1 -1
  50. package/esm/typings/visual.d.ts +3 -3
  51. package/esm/typings/visual.js.map +1 -1
  52. package/package.json +8 -8
@@ -9,7 +9,7 @@ const cartesian_1 = require("../cartesian"), util_1 = require("../util");
9
9
  class BoxPlotChartSpecTransformer extends cartesian_1.CartesianChartSpecTransformer {
10
10
  _getDefaultSeriesSpec(spec) {
11
11
  var _a;
12
- const dataFields = [ spec.maxField, spec.medianField, spec.q1Field, spec.q3Field, spec.minField, spec.outliersField ], seriesSpec = super._getDefaultSeriesSpec(spec, [ "boxPlot", "minField", "maxField", "q1Field", "medianField", "q3Field", "outliersField", "outliersStyle" ]);
12
+ const dataFields = [ spec.maxField, spec.medianField, spec.q1Field, spec.q3Field, spec.minField, spec.outliersField ], seriesSpec = super._getDefaultSeriesSpec(spec, [ "boxPlot", "outlier", "minField", "maxField", "q1Field", "medianField", "q3Field", "outliersField", "outliersStyle", "boxWidth", "boxMaxWidth", "boxMinWidth", "boxGapInGroup" ]);
13
13
  return seriesSpec.direction = null !== (_a = spec.direction) && void 0 !== _a ? _a : "vertical",
14
14
  seriesSpec["horizontal" === seriesSpec.direction ? "xField" : "yField"] = dataFields,
15
15
  seriesSpec;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/box-plot/box-plot-transformer.ts"],"names":[],"mappings":";;;AACA,4CAA6D;AAC7D,kCAA+D;AAG/D,MAAa,2BAEX,SAAQ,yCAAgC;IAC9B,qBAAqB,CAAC,IAAO;;QACrC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpH,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE;YACnD,SAAS;YACT,UAAU;YACV,UAAU;YACV,SAAS;YACT,aAAa;YACb,SAAS;YACT,eAAe;YACf,eAAe;SAChB,CAAC,CAAC;QACH,UAAU,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,6CAAsB,CAAC;QAC5D,UAAU,CAAC,UAAU,CAAC,SAAS,iBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;QAE7F,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG;gBACV;oBACE,MAAM,EAAE,QAAQ;iBACjB;gBACD;oBACE,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;SACH;QACD,IAAA,2CAAoC,EAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAnCD,kEAmCC","file":"box-plot-transformer.js","sourcesContent":["import { Direction } from '../../typings';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBoxPlotChartSpec } from './interface';\n\nexport class BoxPlotChartSpecTransformer<\n T extends IBoxPlotChartSpec = IBoxPlotChartSpec\n> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n const dataFields = [spec.maxField, spec.medianField, spec.q1Field, spec.q3Field, spec.minField, spec.outliersField];\n const seriesSpec = super._getDefaultSeriesSpec(spec, [\n 'boxPlot',\n 'minField',\n 'maxField',\n 'q1Field',\n 'medianField',\n 'q3Field',\n 'outliersField',\n 'outliersStyle'\n ]);\n seriesSpec.direction = spec.direction ?? Direction.vertical;\n seriesSpec[seriesSpec.direction === Direction.horizontal ? 'xField' : 'yField'] = dataFields;\n\n return seriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n if (!spec.axes) {\n spec.axes = [\n {\n orient: 'bottom'\n },\n {\n orient: 'left'\n }\n ];\n }\n setDefaultCrosshairForCartesianChart(spec);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/box-plot/box-plot-transformer.ts"],"names":[],"mappings":";;;AACA,4CAA6D;AAC7D,kCAA+D;AAG/D,MAAa,2BAEX,SAAQ,yCAAgC;IAC9B,qBAAqB,CAAC,IAAO;;QACrC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpH,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE;YACnD,SAAS;YACT,SAAS;YACT,UAAU;YACV,UAAU;YACV,SAAS;YACT,aAAa;YACb,SAAS;YACT,eAAe;YACf,eAAe;YAEf,UAAU;YACV,aAAa;YACb,aAAa;YACb,eAAe;SAChB,CAAC,CAAC;QACH,UAAU,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,6CAAsB,CAAC;QAC5D,UAAU,CAAC,UAAU,CAAC,SAAS,iBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;QAE7F,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAO;QACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG;gBACV;oBACE,MAAM,EAAE,QAAQ;iBACjB;gBACD;oBACE,MAAM,EAAE,MAAM;iBACf;aACF,CAAC;SACH;QACD,IAAA,2CAAoC,EAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAzCD,kEAyCC","file":"box-plot-transformer.js","sourcesContent":["import { Direction } from '../../typings';\nimport { CartesianChartSpecTransformer } from '../cartesian';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBoxPlotChartSpec } from './interface';\n\nexport class BoxPlotChartSpecTransformer<\n T extends IBoxPlotChartSpec = IBoxPlotChartSpec\n> extends CartesianChartSpecTransformer<T> {\n protected _getDefaultSeriesSpec(spec: T): any {\n const dataFields = [spec.maxField, spec.medianField, spec.q1Field, spec.q3Field, spec.minField, spec.outliersField];\n const seriesSpec = super._getDefaultSeriesSpec(spec, [\n 'boxPlot',\n 'outlier',\n 'minField',\n 'maxField',\n 'q1Field',\n 'medianField',\n 'q3Field',\n 'outliersField',\n 'outliersStyle',\n\n 'boxWidth',\n 'boxMaxWidth',\n 'boxMinWidth',\n 'boxGapInGroup'\n ]);\n seriesSpec.direction = spec.direction ?? Direction.vertical;\n seriesSpec[seriesSpec.direction === Direction.horizontal ? 'xField' : 'yField'] = dataFields;\n\n return seriesSpec;\n }\n\n transformSpec(spec: T): void {\n super.transformSpec(spec);\n if (!spec.axes) {\n spec.axes = [\n {\n orient: 'bottom'\n },\n {\n orient: 'left'\n }\n ];\n }\n setDefaultCrosshairForCartesianChart(spec);\n }\n}\n"]}
@@ -58,9 +58,9 @@ class CustomMark extends base_component_1.BaseComponent {
58
58
  this._createExtensionMark(s, mark, namePrefix, i);
59
59
  }))), (0, vutils_1.isValid)(spec.dataId) || (0, vutils_1.isValidNumber)(spec.dataIndex)) {
60
60
  const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);
61
- dataview && (dataview.target.addListener("change", (() => {
61
+ dataview && (mark.setDataView(dataview), dataview.target.addListener("change", (() => {
62
62
  mark.getData().updateData();
63
- })), mark.setDataView(dataview));
63
+ })));
64
64
  }
65
65
  }
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"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","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport { ComponentTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { PREFIX } from '../../constant/base';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec, ILayoutRect } from '../../typings';\nimport { IComponentMark, MarkTypeEnum, type IGroupMark } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IModelMarkAttributeContext } from '../../compile/mark/interface';\n\n// TODO: 规范范型\nexport class CustomMark extends BaseComponent<ICustomMarkSpec<EnableMarkType>> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n static specKey = 'customMark';\n specKey = 'customMark';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec;\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected _markAttributeContext: IModelMarkAttributeContext;\n getMarkAttributeContext() {\n return this._markAttributeContext;\n }\n\n protected _buildMarkAttributeContext() {\n this._markAttributeContext = {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n\n let parentMark: IGroupMark | null = null;\n if (this._spec.parent) {\n const mark = this.getChart()\n .getAllMarks()\n .find(m => m.getUserId() === this._spec.parent) as IGroupMark;\n if (mark.type === 'group') {\n parentMark = mark;\n }\n }\n this._createExtensionMark(this._spec, parentMark, `${PREFIX}_series_${this.id}_extensionMark`, 0);\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number = 0\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: isValid(spec.name) ? `${spec.name}` : `${namePrefix}_${index}`\n },\n {\n // 避免二次dataflow\n skipBeforeLayouted: true,\n attributeContext: this._getMarkAttributeContext(),\n componentType: spec.componentType,\n key: spec.dataKey\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n\n if (isValid(spec.id)) {\n mark.setUserId(spec.id);\n }\n\n if (this._option.globalInstance?.isAnimationEnable() && spec.animation) {\n // 自定义图元默认不添加动画\n const config = animationConfig({}, userAnimationConfig(spec.type, spec as any, this._markAttributeContext));\n mark.setAnimationConfig(config);\n }\n\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n if (dataview) {\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n mark.setDataView(dataview);\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: ICustomMarkSpec<EnableMarkType>, prevSpec: ICustomMarkSpec<EnableMarkType>) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec, spec)) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n chart: this.getChart(),\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n },\n getLayoutBounds: () => {\n const { x, y } = this.getLayoutStartPoint();\n const { width, height } = this.getLayoutRect();\n return new Bounds().set(x, y, x + width, y + height);\n }\n };\n }\n\n private _getLayoutRect() {\n const bounds = new Bounds();\n\n this.getMarks().forEach(mark => {\n const product = mark.getProduct();\n\n if (product) {\n bounds.union(product.AABBBounds);\n }\n });\n\n if (bounds.empty()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: bounds.width(),\n height: bounds.height()\n };\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n this.setLayoutRect(rect);\n\n const result = this._getLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n getVRenderComponents() {\n const comps: any[] = [];\n const checkFunc = (m: IComponentMark) => {\n if (m && m.type === MarkTypeEnum.group) {\n m.getMarks().forEach(child => {\n checkFunc(child as IComponentMark);\n });\n } else if (m.type === MarkTypeEnum.component) {\n const comp = m?.getComponent();\n\n if (comp) {\n comps.push(comp);\n }\n }\n };\n\n this.getMarks().forEach(m => {\n checkFunc(m as IComponentMark);\n });\n\n return comps;\n }\n}\n\nexport const registerCustomMark = () => {\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"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","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport { ComponentTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { PREFIX } from '../../constant/base';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec, ILayoutRect } from '../../typings';\nimport type { IComponentMark } from '../../mark/interface';\nimport { MarkTypeEnum, type IGroupMark } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IModelMarkAttributeContext } from '../../compile/mark/interface';\n\n// TODO: 规范范型\nexport class CustomMark extends BaseComponent<ICustomMarkSpec<EnableMarkType>> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n static specKey = 'customMark';\n specKey = 'customMark';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec;\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected _markAttributeContext: IModelMarkAttributeContext;\n getMarkAttributeContext() {\n return this._markAttributeContext;\n }\n\n protected _buildMarkAttributeContext() {\n this._markAttributeContext = {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n\n let parentMark: IGroupMark | null = null;\n if (this._spec.parent) {\n const mark = this.getChart()\n .getAllMarks()\n .find(m => m.getUserId() === this._spec.parent) as IGroupMark;\n if (mark.type === 'group') {\n parentMark = mark;\n }\n }\n this._createExtensionMark(this._spec, parentMark, `${PREFIX}_series_${this.id}_extensionMark`, 0);\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number = 0\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: isValid(spec.name) ? `${spec.name}` : `${namePrefix}_${index}`\n },\n {\n // 避免二次dataflow\n skipBeforeLayouted: true,\n attributeContext: this._getMarkAttributeContext(),\n componentType: spec.componentType,\n key: spec.dataKey\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n\n if (isValid(spec.id)) {\n mark.setUserId(spec.id);\n }\n\n if (this._option.globalInstance?.isAnimationEnable() && spec.animation) {\n // 自定义图元默认不添加动画\n const config = animationConfig({}, userAnimationConfig(spec.type, spec as any, this._markAttributeContext));\n mark.setAnimationConfig(config);\n }\n\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n\n if (dataview) {\n mark.setDataView(dataview);\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: ICustomMarkSpec<EnableMarkType>, prevSpec: ICustomMarkSpec<EnableMarkType>) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec, spec)) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n chart: this.getChart(),\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n },\n getLayoutBounds: () => {\n const { x, y } = this.getLayoutStartPoint();\n const { width, height } = this.getLayoutRect();\n return new Bounds().set(x, y, x + width, y + height);\n }\n };\n }\n\n private _getLayoutRect() {\n const bounds = new Bounds();\n\n this.getMarks().forEach(mark => {\n const product = mark.getProduct();\n\n if (product) {\n bounds.union(product.AABBBounds);\n }\n });\n\n if (bounds.empty()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: bounds.width(),\n height: bounds.height()\n };\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n this.setLayoutRect(rect);\n\n const result = this._getLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n getVRenderComponents() {\n const comps: any[] = [];\n const checkFunc = (m: IComponentMark) => {\n if (m && m.type === MarkTypeEnum.group) {\n m.getMarks().forEach(child => {\n checkFunc(child as IComponentMark);\n });\n } else if (m.type === MarkTypeEnum.component) {\n const comp = m?.getComponent();\n\n if (comp) {\n comps.push(comp);\n }\n }\n };\n\n this.getMarks().forEach(m => {\n checkFunc(m as IComponentMark);\n });\n\n return comps;\n }\n}\n\nexport const registerCustomMark = () => {\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
@@ -9,7 +9,7 @@ vutils_1.isValid)(datum) ? fields.map((f => datum[f])) : void 0, datumContainsAr
9
9
  vutils_1.isNil)(data) && ((0, vutils_1.isArray)(data) ? data.length > 0 && data.every(vutils_1.isValid) : Object.keys(data).length > 0);
10
10
 
11
11
  function showTooltip(datum, options, component) {
12
- var _a, _b, _c;
12
+ var _a, _b, _c, _d, _e, _f;
13
13
  const opt = Object.assign({
14
14
  regionIndex: 0
15
15
  }, options), componentOptions = component.getOption(), region = componentOptions.getRegionsInUserIdOrIndex((0,
@@ -71,7 +71,7 @@ function showTooltip(datum, options, component) {
71
71
  }),
72
72
  item: void 0
73
73
  };
74
- component.processor.dimension.showTooltip(mockDimensionInfo, mockParams, !1);
74
+ null === (_e = null === (_d = null === (_c = component.processor) || void 0 === _c ? void 0 : _c.dimension) || void 0 === _d ? void 0 : _d.showTooltip) || void 0 === _e || _e.call(_d, mockDimensionInfo, mockParams, !1);
75
75
  const vchart = componentOptions.globalInstance;
76
76
  return vchart_1.VChart.globalConfig.uniqueTooltip && vchart_1.VChart.hideTooltip(vchart.id),
77
77
  activeType;
@@ -89,7 +89,7 @@ function showTooltip(datum, options, component) {
89
89
  value: mockDatum[info.data.dimensionFields[0]],
90
90
  data: mockDimensionData
91
91
  } ],
92
- chart: null !== (_c = componentOptions.globalInstance.getChart()) && void 0 !== _c ? _c : void 0,
92
+ chart: null !== (_f = componentOptions.globalInstance.getChart()) && void 0 !== _f ? _f : void 0,
93
93
  datum: mockDatum,
94
94
  model: info.series,
95
95
  source: event_1.Event_Source_Type.chart,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/utils/show-tooltip.ts"],"names":[],"mappings":"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","file":"show-tooltip.js","sourcesContent":["import { type Datum, type IPoint, type IShowTooltipOption, type TooltipActiveType } from '../../../typings';\nimport type { ICartesianSeries, IPolarSeries, ISeries } from '../../../series/interface';\nimport { SeriesTypeEnum } from '../../../series/interface/type';\nimport type { PieSeries } from '../../../series/pie/pie';\nimport { Event_Source_Type } from '../../../constant/event';\nimport { getElementAbsolutePosition, isArray, isValid, isNil } from '@visactor/vutils';\nimport type { IDimensionData, IDimensionInfo } from '../../../event/events/dimension/interface';\nimport { VChart } from '../../../core/vchart';\nimport type { IRegion } from '../../../region';\nimport type { Tooltip } from '../tooltip';\nimport type { IComponentOption } from '../../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { TooltipHandlerParams } from '../interface/common';\n\nconst getDataArrayFromFieldArray = (fields: string[], datum?: Datum) =>\n isValid(datum) ? fields.map(f => datum[f]) : undefined;\n\nconst datumContainsArray = (fields: string[], data?: Datum[]) => (datum: Datum) =>\n fields.every((key, i) => datum[key] === data?.[i]);\n\nconst hasData = (data?: any[] | Datum) => {\n if (isNil(data)) {\n return false;\n }\n if (isArray(data)) {\n return data.length > 0 && data.every(isValid);\n }\n return Object.keys(data).length > 0;\n};\n\ntype MarkInfo = {\n pos: IPoint;\n data: {\n dimensionFields: string[];\n measureFields: string[];\n dimensionData?: any[];\n measureData?: any[];\n hasMeasureData?: boolean;\n groupField?: string;\n groupData?: any;\n };\n series: ISeries;\n dimType?: string;\n};\n\nexport function showTooltip(datum: Datum, options: IShowTooltipOption, component: Tooltip): TooltipActiveType | 'none' {\n const opt: IShowTooltipOption = {\n regionIndex: 0,\n ...options\n };\n const componentOptions = component.getOption() as IComponentOption;\n\n // 确认region\n const region = componentOptions.getRegionsInUserIdOrIndex(\n isValid(opt.regionId) ? [opt.regionId] : undefined,\n isValid(opt.regionIndex) ? [opt.regionIndex] : undefined\n )[0];\n if (!region) {\n return 'none';\n }\n\n // 查询图元信息\n const markInfoList = getMarkInfoList(datum, region);\n\n // 组织数据\n const activeType = opt.activeType ?? (markInfoList.length > 1 ? 'dimension' : 'mark');\n const regionPos = region.getLayoutStartPoint();\n const regionRect = region.getLayoutRect();\n const container = componentOptions.globalInstance.getContainer();\n const containerPos = {\n x: 0,\n y: 0,\n ...(container ? getElementAbsolutePosition(container) : {})\n };\n const bound = (pos: IPoint): IPoint => ({\n x: Math.min(Math.max(pos.x, 0), regionRect.width),\n y: Math.min(Math.max(pos.y, 0), regionRect.height)\n });\n const getOriginDatum = (info: MarkInfo) => {\n const { dimensionFields, dimensionData, measureFields, measureData, groupField, groupData } = info.data;\n const originDatum = info.series.getViewData()?.latestData.find((datum: any) => {\n return (\n datumContainsArray(dimensionFields, dimensionData)(datum) &&\n datumContainsArray(measureFields, measureData)(datum) &&\n (isNil(groupField) || datumContainsArray([groupField], [groupData])(datum))\n );\n });\n return originDatum;\n };\n const getMockEvent = (originPos: IPoint): any => {\n const pos = bound(originPos);\n const canvasX = opt.x ?? regionPos.x + pos.x;\n const canvasY = opt.y ?? regionPos.y + pos.y;\n return {\n canvasX,\n canvasY,\n clientX: containerPos.x + canvasX,\n clientY: containerPos.y + canvasY\n };\n };\n\n // 显示tooltip\n if (activeType === 'dimension') {\n const firstInfo = markInfoList[0];\n if (!firstInfo) {\n return 'none';\n }\n\n // 将markInfoList按系列分组\n const markInfoSeriesMap = new Map<ISeries, MarkInfo[]>();\n markInfoList.forEach(info => {\n if (!markInfoSeriesMap.has(info.series)) {\n markInfoSeriesMap.set(info.series, []);\n }\n markInfoSeriesMap.get(info.series)?.push(info);\n });\n\n const mockDimensionInfo: IDimensionInfo[] = [\n {\n value: datum[firstInfo.data.dimensionFields[0]],\n data: [...markInfoSeriesMap.keys()].map(series => {\n return {\n series,\n datum: markInfoSeriesMap.get(series)?.map(info => getOriginDatum(info)) ?? []\n };\n })\n }\n ];\n\n if (isValid(firstInfo.dimType)) {\n mockDimensionInfo[0].position = firstInfo.pos[firstInfo.dimType];\n mockDimensionInfo[0].dimType = firstInfo.dimType;\n }\n\n const mockParams: TooltipHandlerParams = {\n changePositionOnly: false,\n action: 'enter',\n tooltip: null,\n dimensionInfo: mockDimensionInfo,\n chart: componentOptions.globalInstance.getChart() ?? undefined,\n datum: undefined,\n model: undefined,\n source: Event_Source_Type.chart,\n event: getMockEvent({\n x: markInfoList.reduce((sum, info) => sum + info.pos.x, 0) / markInfoList.length,\n y: markInfoList.reduce((sum, info) => sum + info.pos.y, 0) / markInfoList.length // 位置求平均\n }),\n item: undefined\n };\n\n component.processor.dimension.showTooltip(mockDimensionInfo, mockParams, false);\n\n // 全局唯一 tooltip\n const vchart = componentOptions.globalInstance;\n if (VChart.globalConfig.uniqueTooltip) {\n VChart.hideTooltip(vchart.id);\n }\n\n return activeType;\n } else if (activeType === 'mark') {\n const info = markInfoList[0];\n if (!info) {\n return 'none';\n }\n const mockDatum = {\n ...getOriginDatum(info),\n ...datum\n };\n const mockDimensionData: IDimensionData[] = [\n {\n datum: [mockDatum],\n series: info.series\n }\n ];\n const mockDimensionInfo: IDimensionInfo[] = [\n {\n value: mockDatum[info.data.dimensionFields[0]],\n data: mockDimensionData\n }\n ];\n const mockParams: TooltipHandlerParams = {\n // FIXME: 补充 action、dimensionInfo\n changePositionOnly: false,\n tooltip: null,\n dimensionInfo: mockDimensionInfo,\n chart: componentOptions.globalInstance.getChart() ?? undefined,\n datum: mockDatum,\n model: info.series,\n source: Event_Source_Type.chart,\n event: getMockEvent(info.pos),\n item: undefined\n } as any;\n\n component.processor.mark.showTooltip(\n {\n datum: mockDatum,\n mark: null,\n series: info.series\n },\n mockParams,\n false\n );\n\n // 全局唯一 tooltip\n const vchart = componentOptions.globalInstance;\n if (VChart.globalConfig.uniqueTooltip) {\n VChart.hideTooltip(vchart.id);\n }\n return activeType;\n }\n return 'none';\n}\n\nexport const getMarkInfoList = (datum: Datum, region: IRegion) => {\n const seriesList = region.getSeries();\n const markInfoList: MarkInfo[] = [];\n\n seriesList.forEach(series => {\n /** 维度field */\n const dimensionFields = series.getDimensionField();\n /** 指标原始field(用于显示tooltip) */\n const measureFields = series.getMeasureField();\n\n const groupField = series.getSeriesField();\n const groupData = isValid(groupField) ? datum[groupField] : undefined;\n const groupDomain = isValid(groupField)\n ? series.getViewDataStatistics?.()?.latestData[groupField]?.values ?? []\n : [];\n\n const dimensionData = getDataArrayFromFieldArray(dimensionFields, datum);\n let measureData = getDataArrayFromFieldArray(measureFields, datum);\n const hasMeasureData = hasData(measureData);\n\n const isMultiGroups = !hasMeasureData && isValid(groupField) && isNil(groupData) && groupDomain.length > 0; // 是否需要考虑多个数据组\n\n const parseMarkInfoOfSimpleSeries = () => {\n const originDatum = series.getViewData()?.latestData.find(datumContainsArray(dimensionFields, dimensionData));\n if (!hasMeasureData) {\n // 如果只有单个数据组且用户没有给y轴数据,则补全y轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n }\n\n const pos =\n series.type === SeriesTypeEnum.pie\n ? (series as PieSeries).dataToCentralPosition(originDatum)\n : series.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n series\n });\n };\n\n if (series.coordinate === 'cartesian') {\n const cartesianSeries = series as ICartesianSeries;\n const dimType = isDiscrete((series as ICartesianSeries).getYAxisHelper()?.getScale(0)?.type) ? 'y' : 'x';\n\n // 补全维度轴数据\n const invalidDimensionFields = dimensionFields\n .map((field, i) => [field, i] as [string, number])\n .filter(([, i]) => isNil(dimensionData?.[i]));\n let dimensionDataList: any[][] = [dimensionData ?? []];\n if (invalidDimensionFields.length > 0) {\n invalidDimensionFields.forEach(([field, i]) => {\n const domain = series.getViewDataStatistics?.()?.latestData[field]?.values ?? [];\n const nextList: any[][] = [];\n dimensionDataList.forEach(dimensionData => {\n domain.forEach((value: any) => {\n const newData = dimensionData?.slice() ?? [];\n newData[i] = value;\n nextList.push(newData);\n });\n });\n dimensionDataList = nextList;\n });\n }\n dimensionDataList.forEach(dimensionData => {\n if (isMultiGroups) {\n const measureDataList = cartesianSeries\n .getViewData()\n ?.latestData.filter(datumContainsArray(dimensionFields, dimensionData));\n groupDomain.forEach((groupData: any) => {\n const originDatum = measureDataList.find((d: Datum) => d[groupField] === groupData);\n // 补全指标轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n\n const pos = cartesianSeries.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n series,\n dimType\n });\n });\n } else {\n const originDatum = cartesianSeries\n .getViewData()\n ?.latestData.find(datumContainsArray(dimensionFields, dimensionData));\n if (!hasMeasureData) {\n // 如果只有单个数据组且用户没有给y轴数据,则补全y轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n }\n\n const pos = cartesianSeries.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n dimType,\n series\n });\n }\n });\n } else if (series.coordinate === 'polar') {\n if (series.type === SeriesTypeEnum.pie) {\n parseMarkInfoOfSimpleSeries();\n } else {\n // 处理玫瑰图、雷达图\n const polarSeries = series as IPolarSeries;\n\n if (isMultiGroups) {\n const measureDataList = polarSeries\n .getViewData()\n ?.latestData.filter(datumContainsArray(dimensionFields, dimensionData));\n const originDatum = measureDataList.find((d: Datum) => d[groupField] === groupData);\n groupDomain.forEach((groupData: any) => {\n // 补全指标轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n\n const pos = polarSeries.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n series\n });\n });\n } else {\n parseMarkInfoOfSimpleSeries();\n }\n }\n } else if (series.coordinate === 'geo') {\n parseMarkInfoOfSimpleSeries();\n }\n });\n\n return markInfoList;\n};\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/utils/show-tooltip.ts"],"names":[],"mappings":";;;AAEA,yDAAgE;AAEhE,mDAA4D;AAC5D,6CAAuF;AAEvF,iDAA8C;AAI9C,6CAA8C;AAG9C,MAAM,0BAA0B,GAAG,CAAC,MAAgB,EAAE,KAAa,EAAE,EAAE,CACrE,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEzD,MAAM,kBAAkB,GAAG,CAAC,MAAgB,EAAE,IAAc,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE,CAChF,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,CAAA,CAAC,CAAC;AAErD,MAAM,OAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;IACvC,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAO,CAAC,CAAC;KAC/C;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC,CAAC;AAiBF,SAAgB,WAAW,CAAC,KAAY,EAAE,OAA2B,EAAE,SAAkB;;IACvF,MAAM,GAAG,mBACP,WAAW,EAAE,CAAC,IACX,OAAO,CACX,CAAC;IACF,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,EAAsB,CAAC;IAGnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,yBAAyB,CACvD,IAAA,gBAAO,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAClD,IAAA,gBAAO,EAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC,CAAC,CAAC,CAAC;IACL,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,MAAM,CAAC;KACf;IAGD,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAGpD,MAAM,UAAU,GAAG,MAAA,GAAG,CAAC,UAAU,mCAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACjE,MAAM,YAAY,mBAChB,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,IACD,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,mCAA0B,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5D,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;QACjD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC;KACnD,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,EAAE;;QACxC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACxG,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,0CAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAC5E,OAAO,CACL,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC;gBACzD,kBAAkB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC;gBACrD,CAAC,IAAA,cAAK,EAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC5E,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAO,EAAE;;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO;YACP,OAAO;YACP,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,OAAO;YACjC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,OAAO;SAClC,CAAC;IACJ,CAAC,CAAC;IAGF,IAAI,UAAU,KAAK,WAAW,EAAE;QAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,MAAM,CAAC;SACf;QAGD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACzD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;YAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACxC;YACD,MAAA,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAqB;YAC1C;gBACE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;;oBAC/C,OAAO;wBACL,MAAM;wBACN,KAAK,EAAE,MAAA,MAAA,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,mCAAI,EAAE;qBAC9E,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;QAEF,IAAI,IAAA,gBAAO,EAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC9B,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjE,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;SAClD;QAED,MAAM,UAAU,GAAyB;YACvC,kBAAkB,EAAE,KAAK;YACzB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,iBAAiB;YAChC,KAAK,EAAE,MAAA,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,mCAAI,SAAS;YAC9D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,yBAAiB,CAAC,KAAK;YAC/B,KAAK,EAAE,YAAY,CAAC;gBAClB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM;gBAChF,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM;aACjF,CAAC;YACF,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,MAAA,MAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,SAAS,0CAAE,WAAW,mDAAG,iBAAiB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAGpF,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC;QAC/C,IAAI,eAAM,CAAC,YAAY,CAAC,aAAa,EAAE;YACrC,eAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC/B;QAED,OAAO,UAAU,CAAC;KACnB;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE;QAChC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,MAAM,CAAC;SACf;QACD,MAAM,SAAS,mCACV,cAAc,CAAC,IAAI,CAAC,GACpB,KAAK,CACT,CAAC;QACF,MAAM,iBAAiB,GAAqB;YAC1C;gBACE,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,CAAC;QACF,MAAM,iBAAiB,GAAqB;YAC1C;gBACE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,EAAE,iBAAiB;aACxB;SACF,CAAC;QACF,MAAM,UAAU,GAAyB;YAEvC,kBAAkB,EAAE,KAAK;YACzB,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,iBAAiB;YAChC,KAAK,EAAE,MAAA,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,mCAAI,SAAS;YAC9D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,MAAM,EAAE,yBAAiB,CAAC,KAAK;YAC/B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7B,IAAI,EAAE,SAAS;SACT,CAAC;QAET,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAClC;YACE,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,EACD,UAAU,EACV,KAAK,CACN,CAAC;QAGF,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC;QAC/C,IAAI,eAAM,CAAC,YAAY,CAAC,aAAa,EAAE;YACrC,eAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC/B;QACD,OAAO,UAAU,CAAC;KACnB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAtKD,kCAsKC;AAEM,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,MAAe,EAAE,EAAE;IAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,YAAY,GAAe,EAAE,CAAC;IAEpC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;;QAE1B,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAEnD,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAA,gBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,WAAW,GAAG,IAAA,gBAAO,EAAC,UAAU,CAAC;YACrC,CAAC,CAAC,MAAA,MAAA,MAAA,MAAA,MAAM,CAAC,qBAAqB,sDAAI,0CAAE,UAAU,CAAC,UAAU,CAAC,0CAAE,MAAM,mCAAI,EAAE;YACxE,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,aAAa,GAAG,0BAA0B,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACzE,IAAI,WAAW,GAAG,0BAA0B,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5C,MAAM,aAAa,GAAG,CAAC,cAAc,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3G,MAAM,2BAA2B,GAAG,GAAG,EAAE;;YACvC,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,EAAE,0CAAE,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;YAC9G,IAAI,CAAC,cAAc,EAAE;gBAEnB,WAAW,GAAG,0BAA0B,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBACzB,OAAO;iBACR;aACF;YAED,MAAM,GAAG,GACP,MAAM,CAAC,IAAI,KAAK,qBAAc,CAAC,GAAG;gBAChC,CAAC,CAAE,MAAoB,CAAC,qBAAqB,CAAC,WAAW,CAAC;gBAC1D,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9C,OAAO;aACR;YAED,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG;gBACH,IAAI,EAAE;oBACJ,eAAe;oBACf,aAAa;oBACb,aAAa;oBACb,WAAW;oBACX,cAAc;oBACd,UAAU;oBACV,SAAS;iBACV;gBACD,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE;YACrC,MAAM,eAAe,GAAG,MAA0B,CAAC;YACnD,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,MAAA,MAAC,MAA2B,CAAC,cAAc,EAAE,0CAAE,QAAQ,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAGzG,MAAM,sBAAsB,GAAG,eAAe;iBAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAqB,CAAC;iBACjD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAK,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,iBAAiB,GAAY,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC,CAAC;YACvD,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;;oBAC5C,MAAM,MAAM,GAAG,MAAA,MAAA,MAAA,MAAA,MAAM,CAAC,qBAAqB,sDAAI,0CAAE,UAAU,CAAC,KAAK,CAAC,0CAAE,MAAM,mCAAI,EAAE,CAAC;oBACjF,MAAM,QAAQ,GAAY,EAAE,CAAC;oBAC7B,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;wBACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;;4BAC5B,MAAM,OAAO,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,EAAE,mCAAI,EAAE,CAAC;4BAC7C,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACnB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACzB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,iBAAiB,GAAG,QAAQ,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACJ;YACD,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;;gBACxC,IAAI,aAAa,EAAE;oBACjB,MAAM,eAAe,GAAG,MAAA,eAAe;yBACpC,WAAW,EAAE,0CACZ,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;oBAC1E,WAAW,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;wBACrC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC;wBAEpF,WAAW,GAAG,0BAA0B,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;wBACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BACzB,OAAO;yBACR;wBAED,MAAM,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;wBACxD,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;4BAC9C,OAAO;yBACR;wBAED,YAAY,CAAC,IAAI,CAAC;4BAChB,GAAG;4BACH,IAAI,EAAE;gCACJ,eAAe;gCACf,aAAa;gCACb,aAAa;gCACb,WAAW;gCACX,cAAc;gCACd,UAAU;gCACV,SAAS;6BACV;4BACD,MAAM;4BACN,OAAO;yBACR,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,WAAW,GAAG,MAAA,eAAe;yBAChC,WAAW,EAAE,0CACZ,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;oBACxE,IAAI,CAAC,cAAc,EAAE;wBAEnB,WAAW,GAAG,0BAA0B,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;wBACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BACzB,OAAO;yBACR;qBACF;oBAED,MAAM,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBACxD,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC9C,OAAO;qBACR;oBAED,YAAY,CAAC,IAAI,CAAC;wBAChB,GAAG;wBACH,IAAI,EAAE;4BACJ,eAAe;4BACf,aAAa;4BACb,aAAa;4BACb,WAAW;4BACX,cAAc;4BACd,UAAU;4BACV,SAAS;yBACV;wBACD,OAAO;wBACP,MAAM;qBACP,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE;YACxC,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAc,CAAC,GAAG,EAAE;gBACtC,2BAA2B,EAAE,CAAC;aAC/B;iBAAM;gBAEL,MAAM,WAAW,GAAG,MAAsB,CAAC;gBAE3C,IAAI,aAAa,EAAE;oBACjB,MAAM,eAAe,GAAG,MAAA,WAAW;yBAChC,WAAW,EAAE,0CACZ,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;oBAC1E,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC;oBACpF,WAAW,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;wBAErC,WAAW,GAAG,0BAA0B,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;wBACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BACzB,OAAO;yBACR;wBAED,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;wBACpD,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;4BAC9C,OAAO;yBACR;wBAED,YAAY,CAAC,IAAI,CAAC;4BAChB,GAAG;4BACH,IAAI,EAAE;gCACJ,eAAe;gCACf,aAAa;gCACb,aAAa;gCACb,WAAW;gCACX,cAAc;gCACd,UAAU;gCACV,SAAS;6BACV;4BACD,MAAM;yBACP,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,2BAA2B,EAAE,CAAC;iBAC/B;aACF;SACF;aAAM,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;YACtC,2BAA2B,EAAE,CAAC;SAC/B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAhMW,QAAA,eAAe,mBAgM1B","file":"show-tooltip.js","sourcesContent":["import { type Datum, type IPoint, type IShowTooltipOption, type TooltipActiveType } from '../../../typings';\nimport type { ICartesianSeries, IPolarSeries, ISeries } from '../../../series/interface';\nimport { SeriesTypeEnum } from '../../../series/interface/type';\nimport type { PieSeries } from '../../../series/pie/pie';\nimport { Event_Source_Type } from '../../../constant/event';\nimport { getElementAbsolutePosition, isArray, isValid, isNil } from '@visactor/vutils';\nimport type { IDimensionData, IDimensionInfo } from '../../../event/events/dimension/interface';\nimport { VChart } from '../../../core/vchart';\nimport type { IRegion } from '../../../region';\nimport type { Tooltip } from '../tooltip';\nimport type { IComponentOption } from '../../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { TooltipHandlerParams } from '../interface/common';\n\nconst getDataArrayFromFieldArray = (fields: string[], datum?: Datum) =>\n isValid(datum) ? fields.map(f => datum[f]) : undefined;\n\nconst datumContainsArray = (fields: string[], data?: Datum[]) => (datum: Datum) =>\n fields.every((key, i) => datum[key] === data?.[i]);\n\nconst hasData = (data?: any[] | Datum) => {\n if (isNil(data)) {\n return false;\n }\n if (isArray(data)) {\n return data.length > 0 && data.every(isValid);\n }\n return Object.keys(data).length > 0;\n};\n\ntype MarkInfo = {\n pos: IPoint;\n data: {\n dimensionFields: string[];\n measureFields: string[];\n dimensionData?: any[];\n measureData?: any[];\n hasMeasureData?: boolean;\n groupField?: string;\n groupData?: any;\n };\n series: ISeries;\n dimType?: string;\n};\n\nexport function showTooltip(datum: Datum, options: IShowTooltipOption, component: Tooltip): TooltipActiveType | 'none' {\n const opt: IShowTooltipOption = {\n regionIndex: 0,\n ...options\n };\n const componentOptions = component.getOption() as IComponentOption;\n\n // 确认region\n const region = componentOptions.getRegionsInUserIdOrIndex(\n isValid(opt.regionId) ? [opt.regionId] : undefined,\n isValid(opt.regionIndex) ? [opt.regionIndex] : undefined\n )[0];\n if (!region) {\n return 'none';\n }\n\n // 查询图元信息\n const markInfoList = getMarkInfoList(datum, region);\n\n // 组织数据\n const activeType = opt.activeType ?? (markInfoList.length > 1 ? 'dimension' : 'mark');\n const regionPos = region.getLayoutStartPoint();\n const regionRect = region.getLayoutRect();\n const container = componentOptions.globalInstance.getContainer();\n const containerPos = {\n x: 0,\n y: 0,\n ...(container ? getElementAbsolutePosition(container) : {})\n };\n const bound = (pos: IPoint): IPoint => ({\n x: Math.min(Math.max(pos.x, 0), regionRect.width),\n y: Math.min(Math.max(pos.y, 0), regionRect.height)\n });\n const getOriginDatum = (info: MarkInfo) => {\n const { dimensionFields, dimensionData, measureFields, measureData, groupField, groupData } = info.data;\n const originDatum = info.series.getViewData()?.latestData.find((datum: any) => {\n return (\n datumContainsArray(dimensionFields, dimensionData)(datum) &&\n datumContainsArray(measureFields, measureData)(datum) &&\n (isNil(groupField) || datumContainsArray([groupField], [groupData])(datum))\n );\n });\n return originDatum;\n };\n const getMockEvent = (originPos: IPoint): any => {\n const pos = bound(originPos);\n const canvasX = opt.x ?? regionPos.x + pos.x;\n const canvasY = opt.y ?? regionPos.y + pos.y;\n return {\n canvasX,\n canvasY,\n clientX: containerPos.x + canvasX,\n clientY: containerPos.y + canvasY\n };\n };\n\n // 显示tooltip\n if (activeType === 'dimension') {\n const firstInfo = markInfoList[0];\n if (!firstInfo) {\n return 'none';\n }\n\n // 将markInfoList按系列分组\n const markInfoSeriesMap = new Map<ISeries, MarkInfo[]>();\n markInfoList.forEach(info => {\n if (!markInfoSeriesMap.has(info.series)) {\n markInfoSeriesMap.set(info.series, []);\n }\n markInfoSeriesMap.get(info.series)?.push(info);\n });\n\n const mockDimensionInfo: IDimensionInfo[] = [\n {\n value: datum[firstInfo.data.dimensionFields[0]],\n data: [...markInfoSeriesMap.keys()].map(series => {\n return {\n series,\n datum: markInfoSeriesMap.get(series)?.map(info => getOriginDatum(info)) ?? []\n };\n })\n }\n ];\n\n if (isValid(firstInfo.dimType)) {\n mockDimensionInfo[0].position = firstInfo.pos[firstInfo.dimType];\n mockDimensionInfo[0].dimType = firstInfo.dimType;\n }\n\n const mockParams: TooltipHandlerParams = {\n changePositionOnly: false,\n action: 'enter',\n tooltip: null,\n dimensionInfo: mockDimensionInfo,\n chart: componentOptions.globalInstance.getChart() ?? undefined,\n datum: undefined,\n model: undefined,\n source: Event_Source_Type.chart,\n event: getMockEvent({\n x: markInfoList.reduce((sum, info) => sum + info.pos.x, 0) / markInfoList.length,\n y: markInfoList.reduce((sum, info) => sum + info.pos.y, 0) / markInfoList.length // 位置求平均\n }),\n item: undefined\n };\n\n component.processor?.dimension?.showTooltip?.(mockDimensionInfo, mockParams, false);\n\n // 全局唯一 tooltip\n const vchart = componentOptions.globalInstance;\n if (VChart.globalConfig.uniqueTooltip) {\n VChart.hideTooltip(vchart.id);\n }\n\n return activeType;\n } else if (activeType === 'mark') {\n const info = markInfoList[0];\n if (!info) {\n return 'none';\n }\n const mockDatum = {\n ...getOriginDatum(info),\n ...datum\n };\n const mockDimensionData: IDimensionData[] = [\n {\n datum: [mockDatum],\n series: info.series\n }\n ];\n const mockDimensionInfo: IDimensionInfo[] = [\n {\n value: mockDatum[info.data.dimensionFields[0]],\n data: mockDimensionData\n }\n ];\n const mockParams: TooltipHandlerParams = {\n // FIXME: 补充 action、dimensionInfo\n changePositionOnly: false,\n tooltip: null,\n dimensionInfo: mockDimensionInfo,\n chart: componentOptions.globalInstance.getChart() ?? undefined,\n datum: mockDatum,\n model: info.series,\n source: Event_Source_Type.chart,\n event: getMockEvent(info.pos),\n item: undefined\n } as any;\n\n component.processor.mark.showTooltip(\n {\n datum: mockDatum,\n mark: null,\n series: info.series\n },\n mockParams,\n false\n );\n\n // 全局唯一 tooltip\n const vchart = componentOptions.globalInstance;\n if (VChart.globalConfig.uniqueTooltip) {\n VChart.hideTooltip(vchart.id);\n }\n return activeType;\n }\n return 'none';\n}\n\nexport const getMarkInfoList = (datum: Datum, region: IRegion) => {\n const seriesList = region.getSeries();\n const markInfoList: MarkInfo[] = [];\n\n seriesList.forEach(series => {\n /** 维度field */\n const dimensionFields = series.getDimensionField();\n /** 指标原始field(用于显示tooltip) */\n const measureFields = series.getMeasureField();\n\n const groupField = series.getSeriesField();\n const groupData = isValid(groupField) ? datum[groupField] : undefined;\n const groupDomain = isValid(groupField)\n ? series.getViewDataStatistics?.()?.latestData[groupField]?.values ?? []\n : [];\n\n const dimensionData = getDataArrayFromFieldArray(dimensionFields, datum);\n let measureData = getDataArrayFromFieldArray(measureFields, datum);\n const hasMeasureData = hasData(measureData);\n\n const isMultiGroups = !hasMeasureData && isValid(groupField) && isNil(groupData) && groupDomain.length > 0; // 是否需要考虑多个数据组\n\n const parseMarkInfoOfSimpleSeries = () => {\n const originDatum = series.getViewData()?.latestData.find(datumContainsArray(dimensionFields, dimensionData));\n if (!hasMeasureData) {\n // 如果只有单个数据组且用户没有给y轴数据,则补全y轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n }\n\n const pos =\n series.type === SeriesTypeEnum.pie\n ? (series as PieSeries).dataToCentralPosition(originDatum)\n : series.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n series\n });\n };\n\n if (series.coordinate === 'cartesian') {\n const cartesianSeries = series as ICartesianSeries;\n const dimType = isDiscrete((series as ICartesianSeries).getYAxisHelper()?.getScale(0)?.type) ? 'y' : 'x';\n\n // 补全维度轴数据\n const invalidDimensionFields = dimensionFields\n .map((field, i) => [field, i] as [string, number])\n .filter(([, i]) => isNil(dimensionData?.[i]));\n let dimensionDataList: any[][] = [dimensionData ?? []];\n if (invalidDimensionFields.length > 0) {\n invalidDimensionFields.forEach(([field, i]) => {\n const domain = series.getViewDataStatistics?.()?.latestData[field]?.values ?? [];\n const nextList: any[][] = [];\n dimensionDataList.forEach(dimensionData => {\n domain.forEach((value: any) => {\n const newData = dimensionData?.slice() ?? [];\n newData[i] = value;\n nextList.push(newData);\n });\n });\n dimensionDataList = nextList;\n });\n }\n dimensionDataList.forEach(dimensionData => {\n if (isMultiGroups) {\n const measureDataList = cartesianSeries\n .getViewData()\n ?.latestData.filter(datumContainsArray(dimensionFields, dimensionData));\n groupDomain.forEach((groupData: any) => {\n const originDatum = measureDataList.find((d: Datum) => d[groupField] === groupData);\n // 补全指标轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n\n const pos = cartesianSeries.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n series,\n dimType\n });\n });\n } else {\n const originDatum = cartesianSeries\n .getViewData()\n ?.latestData.find(datumContainsArray(dimensionFields, dimensionData));\n if (!hasMeasureData) {\n // 如果只有单个数据组且用户没有给y轴数据,则补全y轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n }\n\n const pos = cartesianSeries.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n dimType,\n series\n });\n }\n });\n } else if (series.coordinate === 'polar') {\n if (series.type === SeriesTypeEnum.pie) {\n parseMarkInfoOfSimpleSeries();\n } else {\n // 处理玫瑰图、雷达图\n const polarSeries = series as IPolarSeries;\n\n if (isMultiGroups) {\n const measureDataList = polarSeries\n .getViewData()\n ?.latestData.filter(datumContainsArray(dimensionFields, dimensionData));\n const originDatum = measureDataList.find((d: Datum) => d[groupField] === groupData);\n groupDomain.forEach((groupData: any) => {\n // 补全指标轴数据\n measureData = getDataArrayFromFieldArray(measureFields, originDatum);\n if (!hasData(measureData)) {\n return;\n }\n\n const pos = polarSeries.dataToPosition(originDatum);\n if (isNil(pos) || isNaN(pos.x) || isNaN(pos.y)) {\n return;\n }\n\n markInfoList.push({\n pos,\n data: {\n dimensionFields,\n dimensionData,\n measureFields,\n measureData,\n hasMeasureData,\n groupField,\n groupData\n },\n series\n });\n });\n } else {\n parseMarkInfoOfSimpleSeries();\n }\n }\n } else if (series.coordinate === 'geo') {\n parseMarkInfoOfSimpleSeries();\n }\n });\n\n return markInfoList;\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "2.0.9";
4
+ export declare const version = "2.0.10-alpha.1";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export type { IRegion } from '../region/interface';
package/cjs/core/index.js CHANGED
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
35
35
  get: function() {
36
36
  return factory_1.Factory;
37
37
  }
38
- }), exports.version = "2.0.9", __exportStar(require("../event/interface"), exports),
38
+ }), exports.version = "2.0.10-alpha.1", __exportStar(require("../event/interface"), exports),
39
39
  __exportStar(require("../theme/interface"), exports), __exportStar(require("../model/interface"), exports),
40
40
  __exportStar(require("./interface"), exports), __exportStar(require("../typings"), exports),
41
41
  __exportStar(require("../constant/base"), exports), __exportStar(require("../constant/data"), exports),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,OAAO,CAAC;AAO/B,qDAAmC;AACnC,qDAAmC;AACnC,qDAAmC;AAEnC,8CAA4B;AAC5B,6CAA2B;AAI3B,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AACnC,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,iDAAoD;AAA3C,4GAAA,cAAc,OAAA;AACvB,uDAA6D;AAApD,6GAAA,gBAAgB,OAAA;AACzB,2CAA+C;AAAtC,mGAAA,UAAU,OAAA;AAKnB,wDAAsC;AACtC,oDAAkC;AAGlC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAUgC;AAT9B,uGAAA,OAAO,OAAA;AACP,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,0GAAA,UAAU,OAAA;AACV,yGAAA,SAAS,OAAA;AACT,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,4GAAA,YAAY,OAAA;AAEd,6DAAsE;AAA7D,+GAAA,YAAY,OAAA;AAAE,8GAAA,WAAW,OAAA;AAGlC,gDAA8B;AAC9B,uCAAmD;AAA1C,2GAAA,kBAAkB,OAAA;AAC3B,0CAAgD;AAAvC,mGAAA,WAAW,OAAA;AACpB,6CAAmG;AAA1F,yHAAA,6BAA6B,OAAA;AAAE,4HAAA,gCAAgC,OAAA;AACxE,oDAAmD;AAA1C,gGAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,6FAAA,IAAI,OAAA;AACb,qCAA2C;AAAlC,mGAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"2.0.9\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport type { IRegion } from '../region/interface';\n\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../model/interface';\n\nexport * from './interface';\nexport * from '../typings';\nexport type { IMarkGraphic, IGraphicContext } from '../mark/interface/';\n\n// some constants\nexport * from '../constant/base';\nexport * from '../constant/data';\nexport * from '../constant/layout';\nexport { AttributeLevel } from '../constant/attribute';\nexport { TransformLevel } from '../data/initialize';\nexport { STATE_VALUE_ENUM } from '../compile/mark/interface';\nexport { ChartEvent } from '../constant/event';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\nexport * from '../typings/visual';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport {\n vglobal,\n createGroup,\n createRichText,\n createText,\n createArc,\n createArea,\n createRect,\n createLine,\n createSymbol\n} from '@visactor/vrender-core';\nexport { ManualTicker, StreamLight } from '@visactor/vrender-animate';\n\n// utils\nexport * from '../util/space';\nexport { transformToGraphic } from '../util/style';\nexport { getSpecInfo } from '../component/util';\nexport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nexport { lookup } from '../data/transforms/lookup';\nexport { warn } from '../util/debug';\nexport { measureText } from '../util/text';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAOxC,qDAAmC;AACnC,qDAAmC;AACnC,qDAAmC;AAEnC,8CAA4B;AAC5B,6CAA2B;AAI3B,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AACnC,mDAAuD;AAA9C,2GAAA,cAAc,OAAA;AACvB,iDAAoD;AAA3C,4GAAA,cAAc,OAAA;AACvB,uDAA6D;AAApD,6GAAA,gBAAgB,OAAA;AACzB,2CAA+C;AAAtC,mGAAA,UAAU,OAAA;AAKnB,wDAAsC;AACtC,oDAAkC;AAGlC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAUgC;AAT9B,uGAAA,OAAO,OAAA;AACP,2GAAA,WAAW,OAAA;AACX,8GAAA,cAAc,OAAA;AACd,0GAAA,UAAU,OAAA;AACV,yGAAA,SAAS,OAAA;AACT,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,0GAAA,UAAU,OAAA;AACV,4GAAA,YAAY,OAAA;AAEd,6DAAsE;AAA7D,+GAAA,YAAY,OAAA;AAAE,8GAAA,WAAW,OAAA;AAGlC,gDAA8B;AAC9B,uCAAmD;AAA1C,2GAAA,kBAAkB,OAAA;AAC3B,0CAAgD;AAAvC,mGAAA,WAAW,OAAA;AACpB,6CAAmG;AAA1F,yHAAA,6BAA6B,OAAA;AAAE,4HAAA,gCAAgC,OAAA;AACxE,oDAAmD;AAA1C,gGAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,6FAAA,IAAI,OAAA;AACb,qCAA2C;AAAlC,mGAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"2.0.10-alpha.1\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport type { IRegion } from '../region/interface';\n\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../model/interface';\n\nexport * from './interface';\nexport * from '../typings';\nexport type { IMarkGraphic, IGraphicContext } from '../mark/interface/';\n\n// some constants\nexport * from '../constant/base';\nexport * from '../constant/data';\nexport * from '../constant/layout';\nexport { AttributeLevel } from '../constant/attribute';\nexport { TransformLevel } from '../data/initialize';\nexport { STATE_VALUE_ENUM } from '../compile/mark/interface';\nexport { ChartEvent } from '../constant/event';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\nexport * from '../typings/visual';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport {\n vglobal,\n createGroup,\n createRichText,\n createText,\n createArc,\n createArea,\n createRect,\n createLine,\n createSymbol\n} from '@visactor/vrender-core';\nexport { ManualTicker, StreamLight } from '@visactor/vrender-animate';\n\n// utils\nexport * from '../util/space';\nexport { transformToGraphic } from '../util/style';\nexport { getSpecInfo } from '../component/util';\nexport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nexport { lookup } from '../data/transforms/lookup';\nexport { warn } from '../util/debug';\nexport { measureText } from '../util/text';\n"]}
@@ -154,7 +154,7 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
154
154
  };
155
155
  protected _getEncoderOfStyle: (stateName: string, style: Partial<IAttrs<T>>) => Record<string, (datum: Datum) => any>;
156
156
  protected _setGraphicFromMarkConfig: (g: IMarkGraphic) => void;
157
- protected _setStateOfGraphic: (g: IMarkGraphic) => void;
157
+ protected _setStateOfGraphic: (g: IMarkGraphic, hasAnimation?: boolean) => void;
158
158
  protected _addProgressiveGraphic(parent: IGroup, g: IMarkGraphic): void;
159
159
  protected _runEncoder(graphics: IMarkGraphic[], noGroupEncode?: boolean): void;
160
160
  protected _runApplyGraphic(graphics: IMarkGraphic[]): void;
@@ -202,11 +202,11 @@ class BaseMark extends grammar_item_1.GrammarItem {
202
202
  const {setCustomizedShape: setCustomizedShape, graphicName: graphicName} = this._markConfig;
203
203
  setCustomizedShape && (g.pathProxy = attrs => setCustomizedShape(g.context.data, attrs, new vrender_core_1.CustomPath2D)),
204
204
  graphicName && ((0, vutils_1.isFunction)(graphicName) ? g.name = graphicName(g) : g.name = graphicName);
205
- }, this._setStateOfGraphic = g => {
205
+ }, this._setStateOfGraphic = (g, hasAnimation) => {
206
206
  g.clearStates(), g.stateProxy = null, g.context.diffState !== enum_1.DiffState.enter && g.context.diffState !== enum_1.DiffState.update || (g.stateProxy = (stateName, nexStates) => {
207
207
  var _a;
208
208
  return this._runEncoderOfGraphic(null === (_a = this._encoderOfState) || void 0 === _a ? void 0 : _a[stateName], g);
209
- }, g.context.states && g.useStates(g.context.states));
209
+ }, g.context.states && g.useStates(g.context.states, hasAnimation));
210
210
  }, this.name = name, this.model = option.model, this.key = option.key, this.state = new mark_1.MarkStateManager(option, this),
211
211
  this._attributeContext = option.attributeContext, null === (_a = option.map) || void 0 === _a || _a.set(this.id, this);
212
212
  }
@@ -675,7 +675,7 @@ class BaseMark extends grammar_item_1.GrammarItem {
675
675
  group && this._addProgressiveGraphic(group, g);
676
676
  } else this._product.appendChild(g), this._graphicMap.set(g.context.uniqueKey, g);
677
677
  }
678
- this._setStateOfGraphic(g), this._setGraphicFromMarkConfig(g);
678
+ this._setStateOfGraphic(g, hasStateAnimation), this._setGraphicFromMarkConfig(g);
679
679
  }));
680
680
  }
681
681
  _updateEncoderByState() {