@visactor/vchart 1.5.3-alpha.0 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +187 -180
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/stack.js +1 -2
  6. package/cjs/component/common/trigger/config.d.ts +19 -49
  7. package/cjs/component/common/trigger/config.js +9 -37
  8. package/cjs/component/common/trigger/config.js.map +1 -1
  9. package/cjs/component/crosshair/base.js +14 -11
  10. package/cjs/component/crosshair/base.js.map +1 -1
  11. package/cjs/component/crosshair/config.d.ts +11 -31
  12. package/cjs/component/crosshair/config.js +9 -26
  13. package/cjs/component/crosshair/config.js.map +1 -1
  14. package/cjs/component/index.js +2 -1
  15. package/cjs/core/index.d.ts +1 -1
  16. package/cjs/core/index.js +1 -1
  17. package/cjs/core/index.js.map +1 -1
  18. package/cjs/data/transforms/sankey.d.ts +1 -0
  19. package/cjs/data/transforms/sankey.js +16 -3
  20. package/cjs/data/transforms/sankey.js.map +1 -1
  21. package/cjs/interaction/config.d.ts +17 -52
  22. package/cjs/interaction/config.js +9 -41
  23. package/cjs/interaction/config.js.map +1 -1
  24. package/cjs/interaction/drill/drillable.js +1 -1
  25. package/cjs/interaction/drill/drillable.js.map +1 -1
  26. package/cjs/interaction/trigger.js +1 -1
  27. package/cjs/interaction/trigger.js.map +1 -1
  28. package/cjs/interaction/zoom/zoomable.js +8 -8
  29. package/cjs/interaction/zoom/zoomable.js.map +1 -1
  30. package/cjs/layout/base-layout.js +1 -1
  31. package/cjs/layout/index.js +1 -1
  32. package/cjs/layout/interface.js +1 -1
  33. package/cjs/mark/arc-3d.js +1 -1
  34. package/cjs/mark/arc.js +1 -1
  35. package/cjs/mark/area.js +1 -1
  36. package/cjs/series/sankey/sankey.js +6 -1
  37. package/cjs/series/sankey/sankey.js.map +1 -1
  38. package/esm/chart/stack.js +1 -2
  39. package/esm/component/common/trigger/config.d.ts +19 -49
  40. package/esm/component/common/trigger/config.js +7 -35
  41. package/esm/component/common/trigger/config.js.map +1 -1
  42. package/esm/component/crosshair/base.js +14 -12
  43. package/esm/component/crosshair/base.js.map +1 -1
  44. package/esm/component/crosshair/config.d.ts +11 -31
  45. package/esm/component/crosshair/config.js +8 -25
  46. package/esm/component/crosshair/config.js.map +1 -1
  47. package/esm/component/index.js +2 -1
  48. package/esm/core/index.d.ts +1 -1
  49. package/esm/core/index.js +1 -1
  50. package/esm/core/index.js.map +1 -1
  51. package/esm/data/transforms/sankey.d.ts +1 -0
  52. package/esm/data/transforms/sankey.js +17 -4
  53. package/esm/data/transforms/sankey.js.map +1 -1
  54. package/esm/interaction/config.d.ts +17 -52
  55. package/esm/interaction/config.js +7 -39
  56. package/esm/interaction/config.js.map +1 -1
  57. package/esm/interaction/drill/drillable.js +2 -2
  58. package/esm/interaction/drill/drillable.js.map +1 -1
  59. package/esm/interaction/trigger.js +2 -2
  60. package/esm/interaction/trigger.js.map +1 -1
  61. package/esm/interaction/zoom/zoomable.js +9 -9
  62. package/esm/interaction/zoom/zoomable.js.map +1 -1
  63. package/esm/layout/base-layout.js +1 -1
  64. package/esm/layout/index.js +1 -1
  65. package/esm/layout/interface.js +1 -1
  66. package/esm/mark/arc-3d.js +1 -1
  67. package/esm/mark/arc.js +1 -1
  68. package/esm/mark/area.js +1 -1
  69. package/esm/series/sankey/sankey.js +6 -1
  70. package/esm/series/sankey/sankey.js.map +1 -1
  71. package/package.json +7 -7
@@ -8,7 +8,7 @@ var __rest = this && this.__rest || function(s, e) {
8
8
  return t;
9
9
  };
10
10
 
11
- import { throttle, PointService, isEqual } from "@visactor/vutils";
11
+ import { throttle, PointService, isEqual, array } from "@visactor/vutils";
12
12
 
13
13
  import { RenderModeEnum } from "../../typings/spec/common";
14
14
 
@@ -18,7 +18,7 @@ import { isArray, outOfBounds, isNumber, get, isBoolean } from "../../util";
18
18
 
19
19
  import { Event_Bubble_Level, Event_Source_Type, LayoutZIndex } from "../../constant";
20
20
 
21
- import { defaultCrosshairTriggerEvent } from "./config";
21
+ import { getDefaultCrosshairTriggerEventByMode } from "./config";
22
22
 
23
23
  const ORIENT_MAP = {
24
24
  x: [ "top", "bottom" ],
@@ -67,9 +67,10 @@ export class BaseCrossHair extends BaseComponent {
67
67
  result.reMake = !0), result;
68
68
  }
69
69
  _initEvent() {
70
- if (this._getTriggerEvent()) {
71
- const {in: triggerEvent, out: outTriggerEvent} = this._getTriggerEvent();
72
- isArray(triggerEvent) ? triggerEvent.forEach(((eventName, index) => this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent))) : this._registerEvent(triggerEvent, outTriggerEvent);
70
+ const triggerConfig = this._getTriggerEvent();
71
+ if (triggerConfig) {
72
+ const {in: triggerEvent, out: outTriggerEvent} = triggerConfig;
73
+ array(triggerEvent).forEach(((eventName, index) => this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent)));
73
74
  }
74
75
  }
75
76
  _registerEvent(inEventName, outEventName) {
@@ -88,21 +89,21 @@ export class BaseCrossHair extends BaseComponent {
88
89
  this._limitBounds = null, this._showDefaultCrosshair();
89
90
  }
90
91
  _getTriggerEvent() {
91
- const {mode: mode = RenderModeEnum["desktop-browser"]} = this._option;
92
- if (defaultCrosshairTriggerEvent[mode]) {
92
+ const {mode: mode = RenderModeEnum["desktop-browser"]} = this._option, triggerConfig = getDefaultCrosshairTriggerEventByMode(mode);
93
+ if (triggerConfig) {
93
94
  const trigger = this.trigger || "hover", outTrigger = trigger => "click" === trigger ? "clickOut" : "hoverOut";
94
95
  if (isArray(trigger)) {
95
96
  let inResult = [], outResult = [];
96
97
  return trigger.forEach((item => {
97
- inResult = inResult.concat(defaultCrosshairTriggerEvent[mode][item]), outResult = outResult.concat(defaultCrosshairTriggerEvent[mode][outTrigger(item)]);
98
+ inResult = inResult.concat(triggerConfig[item]), outResult = outResult.concat(triggerConfig[outTrigger(item)]);
98
99
  })), {
99
100
  in: inResult,
100
101
  out: outResult
101
102
  };
102
103
  }
103
104
  return {
104
- in: defaultCrosshairTriggerEvent[mode][trigger],
105
- out: defaultCrosshairTriggerEvent[mode][outTrigger(trigger)]
105
+ in: triggerConfig[trigger],
106
+ out: triggerConfig[outTrigger(trigger)]
106
107
  };
107
108
  }
108
109
  return null;
@@ -141,8 +142,9 @@ export class BaseCrossHair extends BaseComponent {
141
142
  }
142
143
  onRender(ctx) {}
143
144
  _releaseEvent() {
144
- if (this._getTriggerEvent()) {
145
- const {in: triggerEvent, out: outTriggerEvent} = this._getTriggerEvent();
145
+ const triggerConfig = this._getTriggerEvent();
146
+ if (triggerConfig) {
147
+ const {in: triggerEvent, out: outTriggerEvent} = triggerConfig;
146
148
  isArray(triggerEvent) ? triggerEvent.forEach((eachTriggerEvent => this._eventOff(eachTriggerEvent))) : this._eventOff(triggerEvent),
147
149
  isArray(outTriggerEvent) ? outTriggerEvent.forEach((eachTriggerEvent => this._eventOff(eachTriggerEvent))) : this._eventOff(outTriggerEvent);
148
150
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import type { Dict, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { throttle, PointService, isEqual } from '@visactor/vutils';\n\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport type { BaseEventParams, EventType } from '../../event/interface';\nimport type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base';\nimport type { IPadding, Maybe, StringOrNumber } from '../../typings';\nimport { isArray, outOfBounds, isNumber, get, isBoolean } from '../../util';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IComponentOption } from '../interface';\nimport type {\n ICrossHair,\n CrossHairTrigger,\n ICartesianCrosshairSpec,\n IPolarCrosshairSpec,\n ICrosshairTheme,\n ICrosshairCategoryFieldSpec\n} from './interface';\nimport { Event_Bubble_Level, Event_Source_Type, LayoutZIndex } from '../../constant';\nimport { defaultCrosshairTriggerEvent } from './config';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IAxis } from '../axis/interface';\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo<T> = Map<number, IBound & { axis: T }>;\n\nexport interface IHair {\n /** 是否展示 crosshair 辅助图形 */\n visible: boolean;\n /** 类型 */\n type: 'rect' | 'line';\n /** 样式 */\n style?: Dict<any>;\n label?: {\n /** 文本是否可见 */\n visible: boolean;\n /** 格式化函数 */\n formatMethod?: (text: StringOrNumber | string[], position: string) => string | string[];\n /** 文本样式 */\n textStyle?: Dict<any>;\n minWidth?: number;\n maxWidth?: number;\n padding?: IPadding | number | number[];\n panel?: Dict<any>;\n zIndex?: number;\n };\n}\n\nconst ORIENT_MAP = {\n x: ['top', 'bottom'],\n y: ['left', 'right'],\n category: ['angle'],\n value: ['radius']\n};\n\nexport abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec>\n extends BaseComponent<T>\n implements ICrossHair\n{\n layoutType: LayoutItem['layoutType'] = 'absolute';\n gridZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CrossHair_Grid;\n labelZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CrossHair;\n trigger: CrossHairTrigger = 'hover';\n enable: boolean;\n showDefault: boolean;\n triggerOff: CrossHairTrigger | 'none' = 'hover'; // 为none则不消失\n\n protected declare _theme: Maybe<ICrosshairTheme>;\n\n get enableRemain(): boolean {\n return this.triggerOff === 'none';\n }\n\n protected _crosshairConfig: ICartesianCrosshairSpec | IPolarCrosshairSpec;\n private _limitBounds: Maybe<IBoundsLike>;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.enable = true;\n this.showDefault = true;\n }\n\n protected abstract _showDefaultCrosshair(): void;\n protected abstract _layoutCrosshair(x: number, y: number): void;\n protected abstract _parseFieldInfo(): void;\n abstract hide(): void;\n\n protected _getLimitBounds() {\n if (!this._limitBounds) {\n const { width, height } = this._option.globalInstance.getChart()?.getCanvasRect() ?? {\n width: 0,\n height: 0\n };\n this._limitBounds = {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height\n };\n }\n return this._limitBounds;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._crosshairConfig = this._spec;\n this._parseCrosshairSpec();\n }\n\n created() {\n super.created();\n // event\n this._initEvent();\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake && !isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n protected _initEvent() {\n if (this._getTriggerEvent()) {\n const { in: triggerEvent, out: outTriggerEvent } = this._getTriggerEvent();\n if (isArray(triggerEvent)) {\n triggerEvent.forEach((eventName, index) =>\n this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent)\n );\n } else {\n this._registerEvent(triggerEvent, outTriggerEvent);\n }\n }\n }\n\n private _registerEvent(inEventName: EventType, outEventName: EventType) {\n this.event.on(inEventName, { source: Event_Source_Type.chart }, this._handleEvent);\n this.event.on(outEventName, { level: Event_Bubble_Level.chart }, (...arg: any) => {\n if (this.enableRemain) {\n return;\n }\n this.hide();\n });\n }\n\n private _eventOff(eventName: EventType) {\n this.event.off(eventName, this._handleEvent);\n }\n\n updateLayoutAttribute() {\n this._limitBounds = null;\n this._showDefaultCrosshair();\n }\n\n private _handleEvent = throttle((params: any) => {\n const { event } = params as BaseEventParams;\n const x = (event as any).viewX - this.getLayoutStartPoint().x;\n const y = (event as any).viewY - this.getLayoutStartPoint().y;\n // 索引到datum\n this.showDefault = false;\n this._layoutCrosshair(x, y);\n }, 10);\n\n private _getTriggerEvent() {\n const { mode = RenderModeEnum['desktop-browser'] } = this._option;\n if (defaultCrosshairTriggerEvent[mode]) {\n const trigger = this.trigger || 'hover';\n const outTrigger = (trigger: CrossHairTrigger) => (trigger === 'click' ? 'clickOut' : 'hoverOut');\n if (isArray(trigger)) {\n // 同时配置了多个触发事件\n let inResult: string[] = [];\n let outResult: string[] = [];\n trigger.forEach(item => {\n inResult = inResult.concat(defaultCrosshairTriggerEvent[mode][item]);\n outResult = outResult.concat(defaultCrosshairTriggerEvent[mode][outTrigger(item)]);\n });\n return {\n in: inResult,\n out: outResult\n };\n }\n return {\n in: defaultCrosshairTriggerEvent[mode][trigger],\n out: defaultCrosshairTriggerEvent[mode][outTrigger(trigger)]\n };\n }\n return null;\n }\n\n protected _getAxisInfoByField<T = IAxis>(field: 'x' | 'y' | 'category' | 'value') {\n // 加判空防止某些特殊时刻(如 updateSpec 时)鼠标滑过图表导致报错\n const axesComponents = this._option?.getComponentsByKey?.('axes') as IAxis[];\n if (!axesComponents?.length) {\n return null;\n }\n let bindingAxesIndex: number[] = get(this._spec, `${field}Field.bindingAxesIndex`);\n if (!bindingAxesIndex) {\n bindingAxesIndex = [];\n axesComponents.forEach((item, index) => {\n if (ORIENT_MAP[field].includes(item.getOrient())) {\n bindingAxesIndex.push(index);\n }\n });\n }\n if (!bindingAxesIndex.length) {\n return null;\n }\n\n const map: IAxisInfo<T> = new Map();\n let x1 = Infinity;\n let y1 = Infinity;\n let x2 = -Infinity;\n let y2 = -Infinity;\n const { x: sx, y: sy } = this.getLayoutStartPoint();\n bindingAxesIndex.forEach(idx => {\n (x1 = Infinity), (y1 = Infinity), (x2 = -Infinity), (y2 = -Infinity);\n const axis = axesComponents.find(axis => axis.getSpecIndex() === idx);\n if (!axis) {\n return;\n }\n const regions = axis.getRegions();\n regions.forEach(r => {\n x1 = Math.min(x1, r.getLayoutStartPoint().x - sx);\n y1 = Math.min(y1, r.getLayoutStartPoint().y - sy);\n x2 = Math.max(x2, r.getLayoutStartPoint().x + r.getLayoutRect().width - sx);\n y2 = Math.max(y2, r.getLayoutStartPoint().y + r.getLayoutRect().height - sy);\n });\n map.set(idx, { x1, y1, x2, y2, axis: axis as unknown as T });\n });\n\n return map;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this.setLayoutRect(this._regions[0].getLayoutRect());\n this.setLayoutStartPosition(this._regions[0].getLayoutStartPoint());\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n\n protected _releaseEvent(): void {\n if (this._getTriggerEvent()) {\n const { in: triggerEvent, out: outTriggerEvent } = this._getTriggerEvent();\n if (isArray(triggerEvent)) {\n triggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(triggerEvent);\n }\n if (isArray(outTriggerEvent)) {\n outTriggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(outTriggerEvent);\n }\n }\n }\n\n protected _firstSeries<T>(): T | null {\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n return s as unknown as T;\n }\n }\n }\n return null;\n }\n\n protected _parseCrosshairSpec() {\n this._parseFieldInfo();\n\n const { trigger, triggerOff, labelZIndex, gridZIndex } = this._crosshairConfig;\n if (trigger) {\n this.trigger = trigger;\n }\n if (triggerOff) {\n this.triggerOff = triggerOff;\n } else {\n this.triggerOff = this.trigger;\n }\n if (labelZIndex !== undefined) {\n this.labelZIndex = labelZIndex;\n }\n if (gridZIndex !== undefined) {\n this.gridZIndex = gridZIndex;\n }\n }\n\n protected _parseField(field: ICrosshairCategoryFieldSpec, fieldName: string) {\n const hair = {} as any;\n const { line, label, visible } = field;\n hair.visible = visible;\n hair.type = line?.type || 'line';\n const style = line?.style || {};\n const { strokeOpacity, fillOpacity, opacity, stroke, fill, lineWidth, ...restStyle } = style as any;\n const isLineType = hair.type === 'line';\n let finalOpacity = isLineType ? strokeOpacity : fillOpacity;\n if (isNumber(opacity)) {\n finalOpacity = (finalOpacity ?? 1) * opacity;\n }\n hair.style = {\n opacity: finalOpacity,\n pickable: false,\n visible: isBoolean(line?.visible) ? line.visible : true,\n ...restStyle\n };\n if (isLineType) {\n hair.style.stroke = stroke || fill;\n hair.style.lineWidth = line?.width || lineWidth || 2;\n } else {\n hair.style.fill = fill || stroke;\n\n if (this._originalSpec[fieldName]?.line?.style?.stroke) {\n hair.style.stroke = this._originalSpec[fieldName].line.style.stroke;\n }\n if (typeof line.width === 'string') {\n const percent = parseInt(line.width.substring(0, line.width.length - 1), 10) / 100;\n hair.style.sizePercent = percent;\n } else if (typeof line?.width === 'number') {\n hair.style.size = line.width;\n }\n }\n const labelBackground = label?.labelBackground;\n const labelStyle = label?.style || {};\n const { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, ...rectStyle } = labelBackground?.style || {};\n hair.label = {\n visible: !!label?.visible,\n formatMethod: label?.formatMethod,\n minWidth: labelBackground?.minWidth,\n maxWidth: labelBackground?.maxWidth,\n padding: labelBackground?.padding,\n textStyle: {\n fontSize: 14,\n pickable: false,\n ...labelStyle,\n fill: labelStyle?.fill ?? '#fff',\n stroke: get(labelStyle, 'stroke')\n },\n panel: {\n visible: isBoolean(labelBackground?.visible) ? labelBackground?.visible : !!labelBackground,\n pickable: false,\n fill: rectFill,\n stroke: rectStroke,\n ...rectStyle\n },\n zIndex: this.labelZIndex,\n childrenPickable: false,\n pickable: false\n };\n\n return hair;\n }\n\n protected _filterAxisByPoint<T>(axisMap: IAxisInfo<T>, relativeX: number, relativeY: number) {\n axisMap &&\n axisMap.forEach((item, i) => {\n const axis = item.axis as unknown as IAxis | IPolarAxis;\n if (outOfBounds(item, relativeX, relativeY)) {\n axisMap.delete(axis.getSpecIndex());\n }\n if ((axis as IPolarAxis).type.startsWith('polarAxis')) {\n // 极坐标下需要判断是否在半径内\n const center = (axis as IPolarAxis).getCenter();\n const innerRadius = (axis as IPolarAxis).getInnerRadius();\n const outerRadius = (axis as IPolarAxis).getOuterRadius();\n const distance = PointService.distancePP({ x: relativeX, y: relativeY }, center);\n if (distance > outerRadius || distance < innerRadius) {\n axisMap.delete((axis as IPolarAxis).getSpecIndex());\n }\n }\n });\n return axisMap;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import type { Dict, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { throttle, PointService, isEqual, array } from '@visactor/vutils';\n\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport type { BaseEventParams, EventType } from '../../event/interface';\nimport type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base';\nimport type { IPadding, Maybe, StringOrNumber } from '../../typings';\nimport { isArray, outOfBounds, isNumber, get, isBoolean } from '../../util';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IComponentOption } from '../interface';\nimport type {\n ICrossHair,\n CrossHairTrigger,\n ICartesianCrosshairSpec,\n IPolarCrosshairSpec,\n ICrosshairTheme,\n ICrosshairCategoryFieldSpec\n} from './interface';\nimport { Event_Bubble_Level, Event_Source_Type, LayoutZIndex } from '../../constant';\nimport { getDefaultCrosshairTriggerEventByMode } from './config';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IAxis } from '../axis/interface';\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo<T> = Map<number, IBound & { axis: T }>;\n\nexport interface IHair {\n /** 是否展示 crosshair 辅助图形 */\n visible: boolean;\n /** 类型 */\n type: 'rect' | 'line';\n /** 样式 */\n style?: Dict<any>;\n label?: {\n /** 文本是否可见 */\n visible: boolean;\n /** 格式化函数 */\n formatMethod?: (text: StringOrNumber | string[], position: string) => string | string[];\n /** 文本样式 */\n textStyle?: Dict<any>;\n minWidth?: number;\n maxWidth?: number;\n padding?: IPadding | number | number[];\n panel?: Dict<any>;\n zIndex?: number;\n };\n}\n\nconst ORIENT_MAP = {\n x: ['top', 'bottom'],\n y: ['left', 'right'],\n category: ['angle'],\n value: ['radius']\n};\n\nexport abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec>\n extends BaseComponent<T>\n implements ICrossHair\n{\n layoutType: LayoutItem['layoutType'] = 'absolute';\n gridZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CrossHair_Grid;\n labelZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CrossHair;\n trigger: CrossHairTrigger = 'hover';\n enable: boolean;\n showDefault: boolean;\n triggerOff: CrossHairTrigger | 'none' = 'hover'; // 为none则不消失\n\n protected declare _theme: Maybe<ICrosshairTheme>;\n\n get enableRemain(): boolean {\n return this.triggerOff === 'none';\n }\n\n protected _crosshairConfig: ICartesianCrosshairSpec | IPolarCrosshairSpec;\n private _limitBounds: Maybe<IBoundsLike>;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.enable = true;\n this.showDefault = true;\n }\n\n protected abstract _showDefaultCrosshair(): void;\n protected abstract _layoutCrosshair(x: number, y: number): void;\n protected abstract _parseFieldInfo(): void;\n abstract hide(): void;\n\n protected _getLimitBounds() {\n if (!this._limitBounds) {\n const { width, height } = this._option.globalInstance.getChart()?.getCanvasRect() ?? {\n width: 0,\n height: 0\n };\n this._limitBounds = {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height\n };\n }\n return this._limitBounds;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._crosshairConfig = this._spec;\n this._parseCrosshairSpec();\n }\n\n created() {\n super.created();\n // event\n this._initEvent();\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake && !isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n protected _initEvent() {\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n const { in: triggerEvent, out: outTriggerEvent } = triggerConfig;\n array(triggerEvent).forEach((eventName, index) =>\n this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent)\n );\n }\n }\n\n private _registerEvent(inEventName: EventType, outEventName: EventType) {\n this.event.on(inEventName, { source: Event_Source_Type.chart }, this._handleEvent);\n this.event.on(outEventName, { level: Event_Bubble_Level.chart }, (...arg: any) => {\n if (this.enableRemain) {\n return;\n }\n this.hide();\n });\n }\n\n private _eventOff(eventName: EventType) {\n this.event.off(eventName, this._handleEvent);\n }\n\n updateLayoutAttribute() {\n this._limitBounds = null;\n this._showDefaultCrosshair();\n }\n\n private _handleEvent = throttle((params: any) => {\n const { event } = params as BaseEventParams;\n const x = (event as any).viewX - this.getLayoutStartPoint().x;\n const y = (event as any).viewY - this.getLayoutStartPoint().y;\n // 索引到datum\n this.showDefault = false;\n this._layoutCrosshair(x, y);\n }, 10);\n\n private _getTriggerEvent() {\n const { mode = RenderModeEnum['desktop-browser'] } = this._option;\n const triggerConfig = getDefaultCrosshairTriggerEventByMode(mode);\n if (triggerConfig) {\n const trigger = this.trigger || 'hover';\n const outTrigger = (trigger: CrossHairTrigger) => (trigger === 'click' ? 'clickOut' : 'hoverOut');\n if (isArray(trigger)) {\n // 同时配置了多个触发事件\n let inResult: string[] = [];\n let outResult: string[] = [];\n trigger.forEach(item => {\n inResult = inResult.concat(triggerConfig[item]);\n outResult = outResult.concat(triggerConfig[outTrigger(item)]);\n });\n return {\n in: inResult,\n out: outResult\n };\n }\n return {\n in: triggerConfig[trigger],\n out: triggerConfig[outTrigger(trigger)]\n };\n }\n return null;\n }\n\n protected _getAxisInfoByField<T = IAxis>(field: 'x' | 'y' | 'category' | 'value') {\n // 加判空防止某些特殊时刻(如 updateSpec 时)鼠标滑过图表导致报错\n const axesComponents = this._option?.getComponentsByKey?.('axes') as IAxis[];\n if (!axesComponents?.length) {\n return null;\n }\n let bindingAxesIndex: number[] = get(this._spec, `${field}Field.bindingAxesIndex`);\n if (!bindingAxesIndex) {\n bindingAxesIndex = [];\n axesComponents.forEach((item, index) => {\n if (ORIENT_MAP[field].includes(item.getOrient())) {\n bindingAxesIndex.push(index);\n }\n });\n }\n if (!bindingAxesIndex.length) {\n return null;\n }\n\n const map: IAxisInfo<T> = new Map();\n let x1 = Infinity;\n let y1 = Infinity;\n let x2 = -Infinity;\n let y2 = -Infinity;\n const { x: sx, y: sy } = this.getLayoutStartPoint();\n bindingAxesIndex.forEach(idx => {\n (x1 = Infinity), (y1 = Infinity), (x2 = -Infinity), (y2 = -Infinity);\n const axis = axesComponents.find(axis => axis.getSpecIndex() === idx);\n if (!axis) {\n return;\n }\n const regions = axis.getRegions();\n regions.forEach(r => {\n x1 = Math.min(x1, r.getLayoutStartPoint().x - sx);\n y1 = Math.min(y1, r.getLayoutStartPoint().y - sy);\n x2 = Math.max(x2, r.getLayoutStartPoint().x + r.getLayoutRect().width - sx);\n y2 = Math.max(y2, r.getLayoutStartPoint().y + r.getLayoutRect().height - sy);\n });\n map.set(idx, { x1, y1, x2, y2, axis: axis as unknown as T });\n });\n\n return map;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this.setLayoutRect(this._regions[0].getLayoutRect());\n this.setLayoutStartPosition(this._regions[0].getLayoutStartPoint());\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n\n protected _releaseEvent(): void {\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n const { in: triggerEvent, out: outTriggerEvent } = triggerConfig;\n if (isArray(triggerEvent)) {\n triggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(triggerEvent);\n }\n if (isArray(outTriggerEvent)) {\n outTriggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(outTriggerEvent);\n }\n }\n }\n\n protected _firstSeries<T>(): T | null {\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n return s as unknown as T;\n }\n }\n }\n return null;\n }\n\n protected _parseCrosshairSpec() {\n this._parseFieldInfo();\n\n const { trigger, triggerOff, labelZIndex, gridZIndex } = this._crosshairConfig;\n if (trigger) {\n this.trigger = trigger;\n }\n if (triggerOff) {\n this.triggerOff = triggerOff;\n } else {\n this.triggerOff = this.trigger;\n }\n if (labelZIndex !== undefined) {\n this.labelZIndex = labelZIndex;\n }\n if (gridZIndex !== undefined) {\n this.gridZIndex = gridZIndex;\n }\n }\n\n protected _parseField(field: ICrosshairCategoryFieldSpec, fieldName: string) {\n const hair = {} as any;\n const { line, label, visible } = field;\n hair.visible = visible;\n hair.type = line?.type || 'line';\n const style = line?.style || {};\n const { strokeOpacity, fillOpacity, opacity, stroke, fill, lineWidth, ...restStyle } = style as any;\n const isLineType = hair.type === 'line';\n let finalOpacity = isLineType ? strokeOpacity : fillOpacity;\n if (isNumber(opacity)) {\n finalOpacity = (finalOpacity ?? 1) * opacity;\n }\n hair.style = {\n opacity: finalOpacity,\n pickable: false,\n visible: isBoolean(line?.visible) ? line.visible : true,\n ...restStyle\n };\n if (isLineType) {\n hair.style.stroke = stroke || fill;\n hair.style.lineWidth = line?.width || lineWidth || 2;\n } else {\n hair.style.fill = fill || stroke;\n\n if (this._originalSpec[fieldName]?.line?.style?.stroke) {\n hair.style.stroke = this._originalSpec[fieldName].line.style.stroke;\n }\n if (typeof line.width === 'string') {\n const percent = parseInt(line.width.substring(0, line.width.length - 1), 10) / 100;\n hair.style.sizePercent = percent;\n } else if (typeof line?.width === 'number') {\n hair.style.size = line.width;\n }\n }\n const labelBackground = label?.labelBackground;\n const labelStyle = label?.style || {};\n const { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, ...rectStyle } = labelBackground?.style || {};\n hair.label = {\n visible: !!label?.visible,\n formatMethod: label?.formatMethod,\n minWidth: labelBackground?.minWidth,\n maxWidth: labelBackground?.maxWidth,\n padding: labelBackground?.padding,\n textStyle: {\n fontSize: 14,\n pickable: false,\n ...labelStyle,\n fill: labelStyle?.fill ?? '#fff',\n stroke: get(labelStyle, 'stroke')\n },\n panel: {\n visible: isBoolean(labelBackground?.visible) ? labelBackground?.visible : !!labelBackground,\n pickable: false,\n fill: rectFill,\n stroke: rectStroke,\n ...rectStyle\n },\n zIndex: this.labelZIndex,\n childrenPickable: false,\n pickable: false\n };\n\n return hair;\n }\n\n protected _filterAxisByPoint<T>(axisMap: IAxisInfo<T>, relativeX: number, relativeY: number) {\n axisMap &&\n axisMap.forEach((item, i) => {\n const axis = item.axis as unknown as IAxis | IPolarAxis;\n if (outOfBounds(item, relativeX, relativeY)) {\n axisMap.delete(axis.getSpecIndex());\n }\n if ((axis as IPolarAxis).type.startsWith('polarAxis')) {\n // 极坐标下需要判断是否在半径内\n const center = (axis as IPolarAxis).getCenter();\n const innerRadius = (axis as IPolarAxis).getInnerRadius();\n const outerRadius = (axis as IPolarAxis).getOuterRadius();\n const distance = PointService.distancePP({ x: relativeX, y: relativeY }, center);\n if (distance > outerRadius || distance < innerRadius) {\n axisMap.delete((axis as IPolarAxis).getSpecIndex());\n }\n }\n });\n return axisMap;\n }\n}\n"]}
@@ -1,32 +1,12 @@
1
- export declare const defaultCrosshairTriggerEvent: {
2
- "desktop-browser": {
3
- click: string;
4
- hover: string;
5
- hoverOut: string;
6
- clickOut: string;
7
- };
8
- "desktop-miniApp": {
9
- click: string;
10
- hover: string;
11
- hoverOut: string;
12
- clickOut: string;
13
- };
14
- "mobile-browser": {
15
- click: string;
16
- hover: string[];
17
- hoverOut: string;
18
- clickOut: string;
19
- };
20
- miniApp: {
21
- click: string;
22
- hover: string[];
23
- hoverOut: string;
24
- clickOut: string;
25
- };
26
- lynx: {
27
- click: string;
28
- hover: string[];
29
- hoverOut: string;
30
- clickOut: string;
31
- };
1
+ import type { RenderMode } from '../../typings/spec';
2
+ export declare function getDefaultCrosshairTriggerEventByMode(mode: RenderMode): {
3
+ click: string;
4
+ hover: string;
5
+ hoverOut: string;
6
+ clickOut: string;
7
+ } | {
8
+ click: string;
9
+ hover: string[];
10
+ hoverOut: string;
11
+ clickOut: string;
32
12
  };
@@ -1,35 +1,18 @@
1
- import { RenderModeEnum } from "../../typings/spec/common";
1
+ import { RenderModeEnum } from "../../typings/spec";
2
2
 
3
- export const defaultCrosshairTriggerEvent = {
4
- [RenderModeEnum["desktop-browser"]]: {
5
- click: "pointertap",
6
- hover: "pointermove",
7
- hoverOut: "pointerleave",
8
- clickOut: "pointerleave"
9
- },
10
- [RenderModeEnum["desktop-miniApp"]]: {
3
+ import { isMiniAppLikeMode, isMobileLikeMode } from "../../util";
4
+
5
+ export function getDefaultCrosshairTriggerEventByMode(mode) {
6
+ return mode === RenderModeEnum["desktop-browser"] || mode === RenderModeEnum["desktop-miniApp"] ? {
11
7
  click: "pointertap",
12
8
  hover: "pointermove",
13
9
  hoverOut: "pointerleave",
14
10
  clickOut: "pointerleave"
15
- },
16
- [RenderModeEnum["mobile-browser"]]: {
17
- click: "tap",
18
- hover: [ "pointerdown", "pointermove" ],
19
- hoverOut: "pointerleave",
20
- clickOut: "pointerleave"
21
- },
22
- [RenderModeEnum.miniApp]: {
23
- click: "tap",
24
- hover: [ "pointerdown", "pointermove" ],
25
- hoverOut: "pointerleave",
26
- clickOut: "pointerleave"
27
- },
28
- [RenderModeEnum.lynx]: {
11
+ } : isMobileLikeMode(mode) || isMiniAppLikeMode(mode) ? {
29
12
  click: "tap",
30
13
  hover: [ "pointerdown", "pointermove" ],
31
14
  hoverOut: "pointerleave",
32
15
  clickOut: "pointerleave"
33
- }
34
- };
16
+ } : null;
17
+ }
35
18
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/crosshair/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACnC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,cAAc;KACzB;IACD,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACnC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,cAAc;KACzB;IACD,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE;QAClC,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QACrC,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,cAAc;KACzB;IACD,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QACxB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QACrC,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,cAAc;KACzB;IACD,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACrB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QACrC,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,cAAc;KACzB;CACF,CAAC","file":"config.js","sourcesContent":["import { RenderModeEnum } from '../../typings/spec/common';\n\nexport const defaultCrosshairTriggerEvent = {\n [RenderModeEnum['desktop-browser']]: {\n click: 'pointertap',\n hover: 'pointermove',\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n },\n [RenderModeEnum['desktop-miniApp']]: {\n click: 'pointertap',\n hover: 'pointermove',\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n },\n [RenderModeEnum['mobile-browser']]: {\n click: 'tap',\n hover: ['pointerdown', 'pointermove'],\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n },\n [RenderModeEnum.miniApp]: {\n click: 'tap',\n hover: ['pointerdown', 'pointermove'],\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n },\n [RenderModeEnum.lynx]: {\n click: 'tap',\n hover: ['pointerdown', 'pointermove'],\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/component/crosshair/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,UAAU,qCAAqC,CAAC,IAAgB;IACpE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;YACrC,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"config.js","sourcesContent":["import type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../util';\n\nexport function getDefaultCrosshairTriggerEventByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n click: 'pointertap',\n hover: 'pointermove',\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n click: 'tap',\n hover: ['pointerdown', 'pointermove'],\n hoverOut: 'pointerleave',\n clickOut: 'pointerleave'\n };\n }\n\n return null;\n}\n"]}
@@ -42,4 +42,5 @@ import { registerPoptip } from "./poptip/index";
42
42
 
43
43
  export { ScrollBar, DataZoom, CustomMark, Brush, MapLabelComponent, CartesianAxis, CartesianBandAxis, CartesianLinearAxis, CartesianTimeAxis, CartesianLogAxis, CartesianSymlogAxis, PolarAxis, PolarBandAxis, PolarLinearAxis, DiscreteLegend, ContinuousLegend, Indicator, Title, GeoCoordinate, CartesianCrossHair, PolarCrossHair, Player, MarkArea, MarkLine, MarkPoint, Tooltip, Label, TotalLabel };
44
44
 
45
- export { registerBrush, registerScrollBar, registerTitle, registerTooltip, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerContinuousLegend, registerCustomMark, registerDataZoom, registerDiscreteLegend, registerGeoCoordinate, registerIndicator, registerLabel, registerTotalLabel, registerMapLabel, registerMarkArea, registerMarkLine, registerMarkPoint, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPoptip };
45
+ export { registerBrush, registerScrollBar, registerTitle, registerTooltip, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerContinuousLegend, registerCustomMark, registerDataZoom, registerDiscreteLegend, registerGeoCoordinate, registerIndicator, registerLabel, registerTotalLabel, registerMapLabel, registerMarkArea, registerMarkLine, registerMarkPoint, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPoptip };
46
+ //# sourceMappingURL=index.js.map
@@ -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 = "1.5.3-alpha.0";
4
+ export declare const version = "1.5.3";
5
5
  export type { IVChart } from './interface';
6
6
  export * from '../event/interface';
7
7
  export * from '../typings/spec/common';
package/esm/core/index.js CHANGED
@@ -4,7 +4,7 @@ import { Factory } from "./factory";
4
4
 
5
5
  export { VChart, Factory };
6
6
 
7
- export const version = "1.5.3-alpha.0";
7
+ export const version = "1.5.3";
8
8
 
9
9
  export * from "../event/interface";
10
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC;AAMvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC","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 = \"1.5.3-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport * from '../theme/interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAM/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC","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 = \"1.5.3\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport * from '../theme/interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n"]}
@@ -2,6 +2,7 @@ import type { SankeyOptions, SankeyData } from '@visactor/vgrammar-sankey';
2
2
  export interface ISankeyOpt extends SankeyOptions {
3
3
  targetField: string;
4
4
  sourceField: string;
5
+ valueField: string;
5
6
  view: () => {
6
7
  x0: number;
7
8
  x1: number;
@@ -1,9 +1,9 @@
1
1
  import { SankeyLayout } from "@visactor/vgrammar-sankey";
2
2
 
3
- import { isArray } from "@visactor/vutils";
3
+ import { isArray, isString } from "@visactor/vutils";
4
4
 
5
5
  export const sankey = (data, op) => {
6
- var _a;
6
+ var _a, _b, _c;
7
7
  if (!data || !(null == op ? void 0 : op.view) || !isArray(data)) return data;
8
8
  const view = op.view();
9
9
  if (view.x1 - view.x0 == 0 || view.y1 - view.y0 == 0 || view.x1 - view.x0 == -1 / 0 || view.x1 - view.x0 == 1 / 0 || view.y1 - view.y0 == -1 / 0 || view.y1 - view.y0 == 1 / 0) return data;
@@ -16,14 +16,27 @@ export const sankey = (data, op) => {
16
16
  "links" !== datum.id && "nodes" !== datum.id || (updateData[datum.id] = datum.values);
17
17
  })), data = updateData;
18
18
  } else data = (null === (_a = data[0]) || void 0 === _a ? void 0 : _a.latestData) ? data[0].latestData[0] : data[0];
19
- if ("source" !== op.sourceField || "target" !== op.targetField) for (const key in data) if ("links" === key) {
19
+ if ("source" !== op.sourceField || "target" !== op.targetField || "value" !== op.valueField) for (const key in data) if ("links" === key) {
20
20
  const updatedData = [];
21
21
  data[key].forEach((datum => {
22
22
  const updatedDatum = {};
23
- for (const key in datum) key === op.sourceField ? updatedDatum.source = datum[op.sourceField] : key === op.targetField ? updatedDatum.target = datum[op.targetField] : updatedDatum[key] = datum[key];
23
+ for (const key in datum) key === op.sourceField ? updatedDatum.source = datum[op.sourceField] : key === op.targetField ? updatedDatum.target = datum[op.targetField] : key === op.valueField ? updatedDatum.value = datum[op.valueField] : updatedDatum[key] = datum[key];
24
24
  updatedData.push(updatedDatum);
25
25
  })), data[key] = updatedData;
26
26
  }
27
+ const convertValuesToNumbers = data => {
28
+ data.forEach((obj => {
29
+ obj.value = isString(obj.value) ? +obj.value : obj.value, obj.children && obj.children.length > 0 && convertValuesToNumbers(obj.children);
30
+ }));
31
+ };
32
+ for (const key in data) if ("links" === key) {
33
+ const updatedData = [];
34
+ data[key].forEach((datum => {
35
+ const updatedDatum = {};
36
+ for (const key in datum) "value" === key ? updatedDatum.value = isString(datum.value) ? +datum.value : datum.value : updatedDatum[key] = datum[key];
37
+ updatedData.push(updatedDatum);
38
+ })), data[key] = updatedData;
39
+ } else "nodes" === key && (null === (_c = null === (_b = data.nodes) || void 0 === _b ? void 0 : _b[0]) || void 0 === _c ? void 0 : _c.children) && convertValuesToNumbers(data.nodes);
27
40
  const layout = new SankeyLayout(op), result = [];
28
41
  return result.push(layout.layout(data, view)), result;
29
42
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type { SankeyOptions, SankeyData } from '@visactor/vgrammar-sankey';\nimport { SankeyLayout } from '@visactor/vgrammar-sankey';\nimport { isArray } from '@visactor/vutils';\n\nexport interface ISankeyOpt extends SankeyOptions {\n targetField: string;\n sourceField: string;\n view: () => { x0: number; x1: number; y0: number; y1: number };\n}\n\nexport const sankey = (data: SankeyData, op: ISankeyOpt) => {\n if (!data || !op?.view || !isArray(data)) {\n return data;\n }\n\n const view = op.view();\n\n if (\n view.x1 - view.x0 === 0 ||\n view.y1 - view.y0 === 0 ||\n view.x1 - view.x0 === -Infinity ||\n view.x1 - view.x0 === Infinity ||\n view.y1 - view.y0 === -Infinity ||\n view.y1 - view.y0 === Infinity\n ) {\n return data;\n }\n\n if (data.length > 1) {\n /**\n * data structure for Fengshen:\n * [{id:’nodes’, values:[xxx]},{id:’links’, values:[xxx]}]\n */\n const updateData: SankeyData = {\n links: [],\n nodes: []\n };\n data.forEach((datum: any) => {\n if (datum.id === 'links' || datum.id === 'nodes') {\n updateData[datum.id] = datum.values;\n }\n });\n data = updateData;\n } else {\n /**\n * data structure:\n * [{nodes: [xxx], links: [xxx]}]\n */\n if (data[0]?.latestData) {\n data = data[0].latestData[0];\n } else {\n data = data[0];\n }\n }\n\n if (op.sourceField !== 'source' || op.targetField !== 'target') {\n for (const key in data) {\n if (key === 'links') {\n const updatedData: {}[] = [];\n data[key].forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === op.sourceField) {\n updatedDatum.source = datum[op.sourceField];\n } else if (key === op.targetField) {\n updatedDatum.target = datum[op.targetField];\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n data[key] = updatedData;\n }\n }\n }\n\n const layout = new SankeyLayout(op);\n\n const result = [];\n\n result.push(layout.layout(data, view));\n\n return result;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type { SankeyOptions, SankeyData } from '@visactor/vgrammar-sankey';\nimport { SankeyLayout } from '@visactor/vgrammar-sankey';\nimport { isArray, isString } from '@visactor/vutils';\n\nexport interface ISankeyOpt extends SankeyOptions {\n targetField: string;\n sourceField: string;\n valueField: string;\n view: () => { x0: number; x1: number; y0: number; y1: number };\n}\n\nexport const sankey = (data: SankeyData, op: ISankeyOpt) => {\n if (!data || !op?.view || !isArray(data)) {\n return data;\n }\n\n const view = op.view();\n\n if (\n view.x1 - view.x0 === 0 ||\n view.y1 - view.y0 === 0 ||\n view.x1 - view.x0 === -Infinity ||\n view.x1 - view.x0 === Infinity ||\n view.y1 - view.y0 === -Infinity ||\n view.y1 - view.y0 === Infinity\n ) {\n return data;\n }\n\n if (data.length > 1) {\n /**\n * data structure for Fengshen:\n * [{id:’nodes’, values:[xxx]},{id:’links’, values:[xxx]}]\n */\n const updateData: SankeyData = {\n links: [],\n nodes: []\n };\n data.forEach((datum: any) => {\n if (datum.id === 'links' || datum.id === 'nodes') {\n updateData[datum.id] = datum.values;\n }\n });\n data = updateData;\n } else {\n /**\n * data structure:\n * [{nodes: [xxx], links: [xxx]}]\n */\n if (data[0]?.latestData) {\n data = data[0].latestData[0];\n } else {\n data = data[0];\n }\n }\n\n if (op.sourceField !== 'source' || op.targetField !== 'target' || op.valueField !== 'value') {\n for (const key in data) {\n if (key === 'links') {\n const updatedData: {}[] = [];\n data[key].forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === op.sourceField) {\n updatedDatum.source = datum[op.sourceField];\n } else if (key === op.targetField) {\n updatedDatum.target = datum[op.targetField];\n } else if (key === op.valueField) {\n updatedDatum.value = datum[op.valueField];\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n data[key] = updatedData;\n }\n }\n }\n\n const convertValuesToNumbers = (data: any) => {\n data.forEach((obj: any) => {\n obj.value = isString(obj.value) ? +obj.value : obj.value; // 将字符串转换为数值类型\n if (obj.children && obj.children.length > 0) {\n convertValuesToNumbers(obj.children); // 递归处理子节点\n }\n });\n };\n\n //Convert value from string to number\n for (const key in data) {\n //node-link型数据\n if (key === 'links') {\n const updatedData: {}[] = [];\n data[key].forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === 'value') {\n updatedDatum.value = isString(datum.value) ? +datum.value : datum.value; // 将字符串转换为数值类型\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n data[key] = updatedData;\n //层级型数据\n } else if (key === 'nodes') {\n if ((data.nodes?.[0] as any)?.children) {\n convertValuesToNumbers(data.nodes);\n }\n }\n }\n\n const layout = new SankeyLayout(op);\n\n const result = [];\n\n result.push(layout.layout(data, view));\n\n return result;\n};\n"]}
@@ -1,57 +1,22 @@
1
- export declare const defaultInteractionConfig: {
2
- "desktop-miniApp": {
3
- hover: {
4
- enable: boolean;
5
- trigger: string;
6
- triggerOff: string[];
7
- };
8
- select: {
9
- enable: boolean;
10
- trigger: string;
11
- };
1
+ import type { RenderMode } from '../typings/spec/common';
2
+ export declare function getDefaultInteractionConfigByMode(mode: RenderMode): {
3
+ hover: {
4
+ enable: boolean;
5
+ trigger: string;
6
+ triggerOff: string[];
12
7
  };
13
- "desktop-browser": {
14
- hover: {
15
- enable: boolean;
16
- trigger: string;
17
- triggerOff: string[];
18
- };
19
- select: {
20
- enable: boolean;
21
- trigger: string;
22
- };
8
+ select: {
9
+ enable: boolean;
10
+ trigger: string;
23
11
  };
24
- "mobile-browser": {
25
- hover: {
26
- enable: boolean;
27
- trigger: string;
28
- triggerOff: string;
29
- };
30
- select: {
31
- enable: boolean;
32
- trigger: string;
33
- };
12
+ } | {
13
+ hover: {
14
+ enable: boolean;
15
+ trigger: string;
16
+ triggerOff: string;
34
17
  };
35
- miniApp: {
36
- hover: {
37
- enable: boolean;
38
- trigger: string;
39
- triggerOff: string;
40
- };
41
- select: {
42
- enable: boolean;
43
- trigger: string;
44
- };
45
- };
46
- lynx: {
47
- hover: {
48
- enable: boolean;
49
- trigger: string;
50
- triggerOff: string;
51
- };
52
- select: {
53
- enable: boolean;
54
- trigger: string;
55
- };
18
+ select: {
19
+ enable: boolean;
20
+ trigger: string;
56
21
  };
57
22
  };
@@ -1,18 +1,9 @@
1
1
  import { RenderModeEnum } from "../typings/spec/common";
2
2
 
3
- export const defaultInteractionConfig = {
4
- [RenderModeEnum["desktop-miniApp"]]: {
5
- hover: {
6
- enable: !0,
7
- trigger: "pointermove",
8
- triggerOff: [ "pointermove", "pointerleave" ]
9
- },
10
- select: {
11
- enable: !0,
12
- trigger: "pointertap"
13
- }
14
- },
15
- [RenderModeEnum["desktop-browser"]]: {
3
+ import { isMiniAppLikeMode, isMobileLikeMode } from "../util";
4
+
5
+ export function getDefaultInteractionConfigByMode(mode) {
6
+ return mode === RenderModeEnum["desktop-browser"] || mode === RenderModeEnum["desktop-miniApp"] ? {
16
7
  hover: {
17
8
  enable: !0,
18
9
  trigger: "pointermove",
@@ -22,30 +13,7 @@ export const defaultInteractionConfig = {
22
13
  enable: !0,
23
14
  trigger: "pointertap"
24
15
  }
25
- },
26
- [RenderModeEnum["mobile-browser"]]: {
27
- hover: {
28
- enable: !0,
29
- trigger: "pointerover",
30
- triggerOff: "pointerout"
31
- },
32
- select: {
33
- enable: !0,
34
- trigger: "tap"
35
- }
36
- },
37
- [RenderModeEnum.miniApp]: {
38
- hover: {
39
- enable: !0,
40
- trigger: "pointerover",
41
- triggerOff: "pointerout"
42
- },
43
- select: {
44
- enable: !0,
45
- trigger: "tap"
46
- }
47
- },
48
- [RenderModeEnum.lynx]: {
16
+ } : isMobileLikeMode(mode) || isMiniAppLikeMode(mode) ? {
49
17
  hover: {
50
18
  enable: !0,
51
19
  trigger: "pointerover",
@@ -55,5 +23,5 @@ export const defaultInteractionConfig = {
55
23
  enable: !0,
56
24
  trigger: "tap"
57
25
  }
58
- }
59
- };
26
+ } : null;
27
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACnC,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;SAC5C;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,YAAY;SACtB;KACF;IACD,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACnC,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;SAC5C;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,YAAY;SACtB;KACF;IACD,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE;QAClC,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,YAAY;SACzB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf;KACF;IACD,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QACxB,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,YAAY;SACzB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf;KACF;IACD,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACrB,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,YAAY;SACzB;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf;KACF;CACF,CAAC","file":"config.js","sourcesContent":["import { RenderModeEnum } from '../typings/spec/common';\n\nexport const defaultInteractionConfig = {\n [RenderModeEnum['desktop-miniApp']]: {\n hover: {\n enable: true,\n trigger: 'pointermove',\n triggerOff: ['pointermove', 'pointerleave']\n },\n select: {\n enable: true,\n trigger: 'pointertap'\n }\n },\n [RenderModeEnum['desktop-browser']]: {\n hover: {\n enable: true,\n trigger: 'pointermove',\n triggerOff: ['pointermove', 'pointerleave']\n },\n select: {\n enable: true,\n trigger: 'pointertap'\n }\n },\n [RenderModeEnum['mobile-browser']]: {\n hover: {\n enable: true,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n },\n [RenderModeEnum.miniApp]: {\n hover: {\n enable: true,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n },\n [RenderModeEnum.lynx]: {\n hover: {\n enable: true,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/interaction/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,UAAU,iCAAiC,CAAC,IAAgB;IAChE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;aAC5C;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,YAAY;aACtB;SACF,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,YAAY;aACzB;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,KAAK;aACf;SACF,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"config.js","sourcesContent":["import type { RenderMode } from '../typings/spec/common';\nimport { RenderModeEnum } from '../typings/spec/common';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../util';\n\nexport function getDefaultInteractionConfigByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n hover: {\n enable: true,\n trigger: 'pointermove',\n triggerOff: ['pointermove', 'pointerleave']\n },\n select: {\n enable: true,\n trigger: 'pointertap'\n }\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n hover: {\n enable: true,\n trigger: 'pointerover',\n triggerOff: 'pointerout'\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n };\n }\n\n return null;\n}\n"]}
@@ -4,7 +4,7 @@ import { drillFilter } from "../../data/transforms/drill";
4
4
 
5
5
  import { DrillEnum } from "../../data/transforms/drill";
6
6
 
7
- import { defaultTriggerEvent } from "../../component/common/trigger/config";
7
+ import { getDefaultTriggerEventByMode } from "../../component/common/trigger/config";
8
8
 
9
9
  import { findHierarchyPath } from "../../util";
10
10
 
@@ -18,7 +18,7 @@ export class Drillable {
18
18
  _getTriggerEvent(type) {
19
19
  var _a;
20
20
  const {mode: mode} = this._drillParams;
21
- return null === (_a = defaultTriggerEvent[mode]) || void 0 === _a ? void 0 : _a[type];
21
+ return null === (_a = getDefaultTriggerEventByMode(mode)) || void 0 === _a ? void 0 : _a[type];
22
22
  }
23
23
  _hideTooltip() {
24
24
  const tooltip = this.getChart().getAllComponents().find((c => c.type === ComponentTypeEnum.tooltip));