@visactor/vchart-types 1.12.4-alpha.0 → 1.12.4-alpha.2

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 (110) hide show
  1. package/package.json +3 -3
  2. package/tsconfig.tsbuildinfo +1 -1
  3. package/types/chart/base/base-chart.d.ts +2 -0
  4. package/types/chart/chart-meta/data.d.ts +1 -2
  5. package/types/chart/gauge/interface.d.ts +1 -1
  6. package/types/chart/interface/chart.d.ts +1 -0
  7. package/types/chart/mosaic/mosaic.d.ts +0 -1
  8. package/types/chart/pie/interface.d.ts +2 -2
  9. package/types/chart/polar/interface.d.ts +2 -0
  10. package/types/chart/treemap/interface.d.ts +1 -1
  11. package/types/chart/venn/interface.d.ts +2 -2
  12. package/types/compile/interface/compiler.d.ts +15 -0
  13. package/types/compile/mark/compilable-mark.d.ts +7 -39
  14. package/types/compile/mark/interface.d.ts +5 -25
  15. package/types/component/axis/base-axis.d.ts +2 -2
  16. package/types/component/axis/cartesian/axis.d.ts +2 -0
  17. package/types/component/axis/cartesian/interface/common.d.ts +1 -0
  18. package/types/component/axis/interface/spec.d.ts +1 -0
  19. package/types/component/axis/mixin/util/break-data.d.ts +1 -1
  20. package/types/component/axis/polar/axis.d.ts +1 -1
  21. package/types/component/axis/polar/interface/spec.d.ts +3 -1
  22. package/types/component/axis/util.d.ts +3 -0
  23. package/types/component/custom-mark/custom-mark.d.ts +1 -4
  24. package/types/component/data-zoom/data-filter-base-component.d.ts +3 -0
  25. package/types/component/data-zoom/data-zoom/data-zoom.d.ts +0 -3
  26. package/types/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -3
  27. package/types/component/geo/geo-coordinate.d.ts +7 -0
  28. package/types/component/interface/common.d.ts +1 -1
  29. package/types/component/interface/index.d.ts +0 -1
  30. package/types/component/label/base-label.d.ts +1 -2
  31. package/types/component/label/interface.d.ts +2 -2
  32. package/types/component/label/label.d.ts +0 -1
  33. package/types/component/label/total-label.d.ts +1 -1
  34. package/types/component/label/util.d.ts +5 -5
  35. package/types/component/legend/util.d.ts +2 -2
  36. package/types/component/marker/base-marker.d.ts +4 -1
  37. package/types/component/marker/interface.d.ts +9 -2
  38. package/types/component/marker/utils.d.ts +4 -4
  39. package/types/component/player/player.d.ts +1 -3
  40. package/types/component/title/interface/spec.d.ts +3 -3
  41. package/types/component/title/interface/theme.d.ts +1 -1
  42. package/types/component/tooltip/constant.d.ts +5 -4
  43. package/types/component/tooltip/interface/common.d.ts +1 -1
  44. package/types/component/tooltip/interface/spec.d.ts +23 -3
  45. package/types/component/tooltip/interface/theme.d.ts +2 -2
  46. package/types/component/tooltip/processor/base.d.ts +4 -6
  47. package/types/component/tooltip/tooltip.d.ts +13 -6
  48. package/types/component/tooltip/utils/common.d.ts +6 -4
  49. package/types/component/tooltip/utils/get-spec.d.ts +4 -4
  50. package/types/component/tooltip/utils/get-value.d.ts +1 -2
  51. package/types/component/tooltip/utils/index.d.ts +0 -1
  52. package/types/component/util.d.ts +3 -0
  53. package/types/constant/layout.d.ts +1 -0
  54. package/types/core/vchart.d.ts +2 -1
  55. package/types/data/initialize.d.ts +1 -2
  56. package/types/data/transforms/pie.d.ts +3 -0
  57. package/types/interaction/interaction.d.ts +2 -0
  58. package/types/interaction/interface.d.ts +2 -0
  59. package/types/mark/interface/common.d.ts +10 -0
  60. package/types/model/base-model.d.ts +2 -2
  61. package/types/model/interface.d.ts +14 -0
  62. package/types/model/tooltip-helper.d.ts +8 -6
  63. package/types/plugin/chart/media-query/media-query.d.ts +1 -0
  64. package/types/plugin/chart/plugin-service.d.ts +2 -0
  65. package/types/plugin/components/axis-sync/zero-align-transform.d.ts +1 -0
  66. package/types/plugin/components/tooltip-handler/base.d.ts +1 -16
  67. package/types/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +0 -1
  68. package/types/plugin/components/tooltip-handler/interface/style.d.ts +1 -2
  69. package/types/plugin/components/tooltip-handler/utils/position.d.ts +3 -5
  70. package/types/region/interface.d.ts +3 -1
  71. package/types/series/area/area.d.ts +2 -0
  72. package/types/series/bar/bar.d.ts +4 -4
  73. package/types/series/bar/interface.d.ts +5 -1
  74. package/types/series/base/base-series.d.ts +8 -7
  75. package/types/series/base/tooltip-helper.d.ts +30 -6
  76. package/types/series/box-plot/box-plot.d.ts +1 -0
  77. package/types/series/box-plot/tooltip-helper.d.ts +2 -2
  78. package/types/series/cartesian/cartesian.d.ts +1 -1
  79. package/types/series/correlation/correlation.d.ts +1 -0
  80. package/types/series/dot/dot.d.ts +0 -1
  81. package/types/series/dot/tooltip-helper.d.ts +8 -2
  82. package/types/series/funnel/funnel.d.ts +2 -0
  83. package/types/series/funnel/interface.d.ts +3 -1
  84. package/types/series/gauge/interface.d.ts +1 -1
  85. package/types/series/gauge/pointer-tooltip-helper.d.ts +6 -0
  86. package/types/series/heatmap/tooltip-helper.d.ts +2 -3
  87. package/types/series/interface/common.d.ts +1 -9
  88. package/types/series/interface/tooltip-helper.d.ts +5 -4
  89. package/types/series/link/tooltip-helper.d.ts +5 -2
  90. package/types/series/liquid/tooltip-helper.d.ts +4 -5
  91. package/types/series/map/map.d.ts +1 -0
  92. package/types/series/mixin/line-mixin.d.ts +2 -2
  93. package/types/series/pie/interface.d.ts +3 -3
  94. package/types/series/pie/pie.d.ts +1 -0
  95. package/types/series/polar/animation.d.ts +9 -11
  96. package/types/series/progress/linear/tooltip-helper.d.ts +2 -3
  97. package/types/series/radar/animation.d.ts +0 -3
  98. package/types/series/range-area/tooltip-helper.d.ts +1 -3
  99. package/types/series/range-column/tooltip-helper.d.ts +1 -2
  100. package/types/series/sankey/interface.d.ts +1 -0
  101. package/types/series/sankey/sankey.d.ts +2 -2
  102. package/types/series/sankey/tooltip-helper.d.ts +3 -3
  103. package/types/series/waterfall/waterfall.d.ts +1 -0
  104. package/types/typings/spec/common.d.ts +10 -5
  105. package/types/typings/tooltip/position.d.ts +1 -0
  106. package/types/typings/tooltip/shape.d.ts +0 -1
  107. package/types/typings/tooltip/tooltip.d.ts +7 -0
  108. package/types/util/array.d.ts +1 -1
  109. package/types/util/math.d.ts +1 -0
  110. package/types/util/scale.d.ts +1 -1
@@ -13,7 +13,7 @@ export declare function transformLegendTitleAttributes(title: ITitle): {
13
13
  };
14
14
  background?: {
15
15
  visible?: boolean;
16
- style?: Omit<import("./interface").NoVisibleMarkStyle<import("../..").IRectMarkSpec>, "visible" | "width" | "height">;
16
+ style?: Omit<import("./interface").NoVisibleMarkStyle<import("../..").IRectMarkSpec>, "width" | "height" | "visible">;
17
17
  };
18
18
  text?: string | number | number[] | string[] | {
19
19
  type?: "text";
@@ -33,9 +33,9 @@ export declare function transformLegendTitleAttributes(title: ITitle): {
33
33
  } & import("@visactor/vrender-core").SimpleDomStyleOptions & import("@visactor/vrender-core").CommonDomOptions;
34
34
  };
35
35
  padding?: import("@visactor/vrender-components").Padding;
36
- visible?: boolean;
37
36
  maxWidth?: number;
38
37
  minWidth?: number;
38
+ visible?: boolean;
39
39
  space?: number;
40
40
  align?: "start" | "end" | "center";
41
41
  };
@@ -4,7 +4,7 @@ import type { IModelRenderOption, IModelSpecInfo } from '../../model/interface';
4
4
  import type { IRegion } from '../../region/interface';
5
5
  import type { CoordinateType, ILayoutRect, ILayoutType, IRect } from '../../typings';
6
6
  import { BaseComponent } from '../base/base-component';
7
- import type { IDataPos, IDataPosCallback, IMarkerSpec, IMarkerSupportSeries } from './interface';
7
+ import type { IDataPos, IDataPosCallback, IMarkerAttributeContext, IMarkerSpec, IMarkerSupportSeries } from './interface';
8
8
  import type { IGraphic, IGroup } from '@visactor/vrender-core';
9
9
  import type { IOptionWithCoordinates } from '../../data/transforms/aggregation';
10
10
  export declare abstract class BaseMarker<T extends IMarkerSpec> extends BaseComponent<T> {
@@ -29,6 +29,9 @@ export declare abstract class BaseMarker<T extends IMarkerSpec> extends BaseComp
29
29
  protected abstract _markerLayout(): void;
30
30
  static _getMarkerCoordinateType(markerSpec: any): string;
31
31
  static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
32
+ protected _markAttributeContext: IMarkerAttributeContext;
33
+ getMarkAttributeContext(): IMarkerAttributeContext;
34
+ protected _buildMarkerAttributeContext(): void;
32
35
  created(): void;
33
36
  protected _getAllRelativeSeries(): {
34
37
  getRelativeSeries: () => IMarkerSupportSeries;
@@ -7,6 +7,7 @@ import type { Datum } from '@visactor/vrender-components';
7
7
  import type { ICartesianSeries, IGeoSeries, IPolarSeries } from '../../series/interface';
8
8
  import type { IOptionAggr, IOptionAggrField, IOptionSeries, IOptionWithCoordinates } from '../../data/transforms/aggregation';
9
9
  import type { IOptionRegr } from '../../data/transforms/regression';
10
+ import type { VChart } from '../../vchart-all';
10
11
  export type IMarkerSupportSeries = ICartesianSeries | IPolarSeries | IGeoSeries;
11
12
  export type IPolarPoint = {
12
13
  angle: number;
@@ -98,8 +99,8 @@ export type IMarkerSymbol = IMarkerRef & {
98
99
  symbolType?: SymbolType;
99
100
  size?: number;
100
101
  } & Partial<IMarkerState<Omit<ISymbolMarkSpec, 'visible'>>>;
101
- export type MarkerStyleCallback<T> = (markerData: DataView) => T;
102
- export type MarkerStateCallback<T> = (markerData: DataView) => T;
102
+ export type MarkerStyleCallback<T> = (markerData: DataView, context: IMarkerAttributeContext) => T;
103
+ export type MarkerStateCallback<T> = (markerData: DataView, context: IMarkerAttributeContext) => T;
103
104
  export type MarkerStateValue = 'hover' | 'hover_reverse' | 'selected' | 'selected_reverse';
104
105
  export type IMarkerState<T> = {
105
106
  style?: T | MarkerStyleCallback<T>;
@@ -112,3 +113,9 @@ export type IMarkProcessOptions = {
112
113
  needRegr?: boolean;
113
114
  processData?: DataView;
114
115
  };
116
+ export type IMarkerAttributeContext = {
117
+ vchart: VChart;
118
+ relativeSeries: IMarkerSupportSeries;
119
+ startRelativeSeries: IMarkerSupportSeries;
120
+ endRelativeSeries: IMarkerSupportSeries;
121
+ };
@@ -1,7 +1,7 @@
1
1
  import type { DataView } from '@visactor/vdataset';
2
2
  import { type IPointLike } from '@visactor/vutils';
3
3
  import type { Datum, IPoint } from '../../typings';
4
- import type { IDataPos, IMarkerLabelSpec, IMarkerState, IMarkerSupportSeries, IPolarPoint, MarkerPositionPoint, MarkerStateValue } from './interface';
4
+ import type { IDataPos, IMarkerAttributeContext, IMarkerLabelSpec, IMarkerState, IMarkerSupportSeries, IPolarPoint, MarkerPositionPoint, MarkerStateValue } from './interface';
5
5
  import type { IRegion } from '../../region/interface';
6
6
  import type { OffsetPoint } from './interface';
7
7
  export declare function isAggrSpec(spec: IDataPos): boolean;
@@ -17,9 +17,9 @@ export declare function computeClipRange(regions: IRegion[]): {
17
17
  minY: number;
18
18
  maxY: number;
19
19
  };
20
- export declare function transformLabelAttributes(label: IMarkerLabelSpec, markerData: any): any;
21
- export declare function transformState(state: {} | Record<MarkerStateValue, any | IMarkerState<any>>, markerData: DataView): {} | Record<MarkerStateValue, any>;
22
- export declare function transformStyle(style: any, markerData: DataView): any;
20
+ export declare function transformLabelAttributes(label: IMarkerLabelSpec, markerData: any, markAttributeContext: IMarkerAttributeContext): any;
21
+ export declare function transformState(state: {} | Record<MarkerStateValue, any | IMarkerState<any>>, markerData: DataView, markerAttributeContext: IMarkerAttributeContext): {} | Record<MarkerStateValue, any>;
22
+ export declare function transformStyle(style: any, markerData: DataView, markerAttributeContext: IMarkerAttributeContext): any;
23
23
  export declare function transformOffset(offset: string | number | Function, region: IRegion): any;
24
24
  export declare function computeOffsetFromRegion(point: IPointLike, offset: string | number, region: IRegion): number;
25
25
  export declare function getMarkLineProcessInfo(spec: any): {
@@ -1,6 +1,5 @@
1
1
  import type { IGraphic } from '@visactor/vrender-core';
2
- import type { Maybe } from '@visactor/vutils';
3
- import type { IModelRenderOption, IModelSpecInfo } from '../../model/interface';
2
+ import type { IModelRenderOption } from '../../model/interface';
4
3
  import type { IRegion } from '../../region/interface';
5
4
  import type { IPlayer } from './interface';
6
5
  import type { IComponent } from '../interface';
@@ -28,7 +27,6 @@ export declare class Player extends BaseComponent<IPlayer> implements IComponent
28
27
  private _position;
29
28
  get orient(): IOrientType;
30
29
  set layoutOrient(v: IOrientType);
31
- static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
32
30
  setAttrFromSpec(): void;
33
31
  afterSetLayoutStartPoint(pos: IPoint): void;
34
32
  getBoundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect): {
@@ -1,5 +1,5 @@
1
1
  import type { IComponent } from '../../interface';
2
- import type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';
2
+ import type { ITextGraphicAttribute, IRichTextCharacter, ITextAttribute } from '@visactor/vrender-core';
3
3
  import type { IOrientType, IPadding } from '../../../typings';
4
4
  import type { IComponentSpec } from '../../base/interface';
5
5
  interface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {
@@ -21,7 +21,7 @@ interface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {
21
21
  height?: number;
22
22
  align?: string;
23
23
  verticalAlign?: string;
24
- wordBreak?: RichTextWordBreak;
24
+ wordBreak?: ITextAttribute['wordBreak'];
25
25
  maxLineWidth?: number;
26
26
  heightLimit?: number;
27
27
  lineClamp?: number;
@@ -32,7 +32,7 @@ interface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {
32
32
  height?: number;
33
33
  align?: string;
34
34
  verticalAlign?: string;
35
- wordBreak?: RichTextWordBreak;
35
+ wordBreak?: ITextAttribute['wordBreak'];
36
36
  maxLineWidth?: number;
37
37
  heightLimit?: number;
38
38
  lineClamp?: number;
@@ -12,7 +12,7 @@ export interface ITitleTextTheme {
12
12
  fontWeight?: StringOrNumber;
13
13
  textAlign?: TextAlign;
14
14
  textBaseline?: TextBaseLine;
15
- lineHeight?: number;
15
+ lineHeight?: number | ITokenKey;
16
16
  }
17
17
  export interface ITitleTheme extends ILayoutItemSpec {
18
18
  textStyle?: ITitleTextTheme;
@@ -1,9 +1,10 @@
1
1
  import type { ITooltipLineActual, TooltipActiveType } from '../../typings';
2
- export declare class TooltipHandlerType {
3
- static dom: string;
4
- static canvas: string;
5
- }
2
+ export declare const TooltipHandlerType: {
3
+ dom: string;
4
+ canvas: string;
5
+ };
6
6
  export declare const TOOLTIP_EL_CLASS_NAME = "vchart-tooltip-element";
7
7
  export declare const TOOLTIP_MAX_LINE_COUNT = 20;
8
8
  export declare const TOOLTIP_OTHERS_LINE: ITooltipLineActual;
9
9
  export declare const TOOLTIP_TYPES: TooltipActiveType[];
10
+ export declare const DEFAULT_SHOW_DELAY = 50;
@@ -7,7 +7,7 @@ export type TooltipHandlerParams = DimensionEventParams & {
7
7
  changePositionOnly?: boolean;
8
8
  tooltip: ITooltip;
9
9
  tooltipSpec?: ITooltipSpec;
10
- tooltipActual?: ITooltipActual;
10
+ activeTooltipSpec?: ITooltipActual;
11
11
  groupDatum?: Datum[];
12
12
  };
13
13
  export interface ITooltipActiveTypeAsKeys<T, K, U> {
@@ -1,11 +1,24 @@
1
+ import type { EventSourceType, EventType } from '../../../event/interface';
1
2
  import type { IGroupTooltipPattern, ITooltipActual, ITooltipPattern, Maybe, MaybeArray, TooltipActiveType, TooltipData } from '../../../typings';
2
3
  import type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';
3
4
  import type { ITooltipTheme } from './theme';
4
- export interface ITooltipSpec extends Partial<ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern, IGroupTooltipPattern>> {
5
+ export interface ITooltipSpec extends Partial<ITooltipActiveTypeAsKeys<ITooltipPattern & {
6
+ checkOverlap?: boolean;
7
+ }, ITooltipPattern, IGroupTooltipPattern>> {
5
8
  visible?: boolean;
6
9
  activeType?: TooltipActiveType | TooltipActiveType[];
7
- trigger?: MaybeArray<'hover' | 'click'> | 'none';
8
- triggerOff?: MaybeArray<'hover' | 'click'> | 'none';
10
+ trigger?: MaybeArray<'hover' | 'click' | {
11
+ eventType: EventType;
12
+ source?: EventSourceType;
13
+ consume?: boolean;
14
+ }> | 'none';
15
+ triggerOff?: MaybeArray<'hover' | 'click' | {
16
+ eventType: EventType;
17
+ source?: EventSourceType;
18
+ consume?: boolean;
19
+ checkOutside?: boolean;
20
+ }> | 'none';
21
+ showDelay?: number;
9
22
  hideTimer?: number;
10
23
  lockAfterClick?: boolean;
11
24
  style?: Omit<ITooltipTheme<string>, 'offset' | 'transitionDuration'>;
@@ -23,9 +36,16 @@ export interface ITooltipSpec extends Partial<ITooltipActiveTypeAsKeys<ITooltipP
23
36
  y?: number;
24
37
  };
25
38
  }
39
+ type ISeriesToolipPattern = Pick<ITooltipPattern, 'visible' | 'title' | 'content' | 'hasShape' | 'shapeColor' | 'shapeFill' | 'shapeHollow' | 'shapeLineWidth' | 'shapeSize' | 'shapeStroke' | 'shapeType' | 'updateContent' | 'updateTitle' | 'updatePosition'>;
40
+ export interface ISeriesTooltipSpec extends Pick<ITooltipSpec, 'visible' | 'activeType' | 'handler'> {
41
+ dimension?: ISeriesToolipPattern;
42
+ mark?: ISeriesToolipPattern;
43
+ group?: Pick<IGroupTooltipPattern, 'triggerMark'> & ISeriesToolipPattern;
44
+ }
26
45
  export interface ITooltipHandlerSpec {
27
46
  showTooltip: (activeType: TooltipActiveType, tooltipData: TooltipData, params: TooltipHandlerParams) => Maybe<TooltipResult>;
28
47
  hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;
29
48
  release: () => void;
30
49
  isTooltipShown?: () => boolean;
31
50
  }
51
+ export {};
@@ -1,4 +1,4 @@
1
- import type { RichTextWordBreak } from '@visactor/vrender-core';
1
+ import type { ITextAttribute } from '@visactor/vrender-core';
2
2
  import type { ITooltipShapePattern, StringOrNumber, TextAlign, TextBaseLine } from '../../../typings';
3
3
  import type { Padding } from '@visactor/vrender-components';
4
4
  import type { ITokenKey } from '../../../theme/token';
@@ -14,7 +14,7 @@ export interface ITooltipTextTheme<ColorType = string> {
14
14
  spacing?: number;
15
15
  multiLine?: boolean;
16
16
  maxWidth?: number;
17
- wordBreak?: RichTextWordBreak;
17
+ wordBreak?: ITextAttribute['wordBreak'];
18
18
  autoWidth?: boolean;
19
19
  }
20
20
  export interface ITooltipTheme<ColorType = string> {
@@ -1,6 +1,6 @@
1
1
  import type { BaseEventParams } from '../../../event/interface';
2
2
  import type { ITooltipActual, TooltipActiveType, TooltipData } from '../../../typings';
3
- import type { ITooltipSpec, TooltipHandlerParams } from '../interface';
3
+ import type { TooltipHandlerParams } from '../interface';
4
4
  import { TooltipResult } from '../interface/common';
5
5
  import type { Tooltip } from '../tooltip';
6
6
  import type { MouseEventData, TooltipInfo } from './interface';
@@ -8,15 +8,13 @@ import type { IDimensionInfo } from '../../../event/events/dimension';
8
8
  export declare abstract class BaseTooltipProcessor {
9
9
  readonly component: Tooltip;
10
10
  abstract activeType: TooltipActiveType;
11
- protected _cacheViewSpec: ITooltipSpec | undefined;
12
- protected _cacheActualTooltip: ITooltipActual | undefined;
11
+ protected _cacheActiveSpec: ITooltipActual | undefined;
13
12
  constructor(component: Tooltip);
14
13
  abstract showTooltip(info: TooltipInfo, params: BaseEventParams, changePositionOnly: boolean): TooltipResult;
15
14
  abstract getMouseEventData(params: BaseEventParams): MouseEventData;
16
15
  protected _showTooltipByHandler: (data: TooltipData | undefined, params: TooltipHandlerParams) => TooltipResult;
17
16
  protected _preprocessDimensionInfo(dimensionInfo?: IDimensionInfo[]): IDimensionInfo[] | undefined;
18
- protected _updateViewSpec(params: TooltipHandlerParams): void;
19
- protected _updateActualTooltip(data: TooltipData, params: TooltipHandlerParams): void;
20
- shouldHandleTooltip(params: BaseEventParams, mouseEventData: Partial<MouseEventData>): boolean;
17
+ protected _updateViewSpec(data: TooltipData, params: TooltipHandlerParams): void;
18
+ shouldHandleTooltip(params: BaseEventParams, info: TooltipInfo): boolean;
21
19
  clearCache(): void;
22
20
  }
@@ -1,5 +1,5 @@
1
1
  import { ComponentTypeEnum } from '../interface/type';
2
- import type { IModelLayoutOption, IModelRenderOption, IModelSpecInfo } from '../../model/interface';
2
+ import type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';
3
3
  import type { IRegion } from '../../region/interface';
4
4
  import { BaseComponent } from '../base/base-component';
5
5
  import type { BaseEventParams, EventCallback, EventQuery, EventType } from '../../event/interface';
@@ -8,7 +8,6 @@ import type { Datum, IShowTooltipOption } from '../../typings';
8
8
  import type { ITooltip, ITooltipActiveTypeAsKeys, ITooltipSpec, TooltipHandlerParams, TotalMouseEventData } from './interface';
9
9
  import { TooltipResult } from './interface/common';
10
10
  import { GroupTooltipProcessor, DimensionTooltipProcessor, MarkTooltipProcessor } from './processor';
11
- import type { Maybe } from '@visactor/vutils';
12
11
  import type { IGraphic } from '@visactor/vrender-core';
13
12
  import { TooltipSpecTransformer } from './tooltip-transformer';
14
13
  export declare class Tooltip extends BaseComponent<any> implements ITooltip {
@@ -21,18 +20,24 @@ export declare class Tooltip extends BaseComponent<any> implements ITooltip {
21
20
  static specKey: string;
22
21
  specKey: string;
23
22
  layoutType: 'none';
24
- private _timer?;
23
+ private _hideTimer?;
24
+ private _outTimer?;
25
+ private _showTimer?;
26
+ private _needInitEventOfTooltip?;
27
+ private _enterable;
28
+ private _isReleased;
25
29
  protected _spec: ITooltipSpec;
26
- static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]>;
27
30
  tooltipHandler?: ITooltipHandler;
28
31
  processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor, GroupTooltipProcessor>;
29
32
  private _alwaysShow;
30
33
  private _cacheInfo;
31
34
  private _cacheParams;
32
35
  private _cacheActiveType;
36
+ private _cacheEnterableRect;
33
37
  private _eventList;
34
38
  protected _isTooltipShown: boolean;
35
39
  protected _clickLock: boolean;
40
+ private _handleMouseMove;
36
41
  isTooltipShown(): boolean;
37
42
  changeRegions(regions: IRegion[]): void;
38
43
  protected _getNeedClearVRenderComponents(): IGraphic[];
@@ -45,22 +50,24 @@ export declare class Tooltip extends BaseComponent<any> implements ITooltip {
45
50
  release(): void;
46
51
  beforeRelease(): void;
47
52
  protected _initHandler(): void;
53
+ protected _initEventOfTooltipContent(): void;
48
54
  protected _initProcessor(): void;
49
55
  protected _initEvent(): void;
56
+ protected _throttle(callback: (...args: any[]) => any): (...args: any[]) => any;
50
57
  protected _mountEvent: (eType: EventType, query: EventQuery, callback: EventCallback<any>) => void;
51
58
  protected _handleClickToLock: (params: BaseEventParams) => void;
52
59
  protected _getMouseOutHandler: (needPointerDetection?: boolean) => (params: BaseEventParams) => void;
53
60
  protected _handleChartMouseOut: (params?: BaseEventParams) => void;
54
61
  protected _getMouseMoveHandler: (isClick: boolean) => (params: BaseEventParams) => void;
62
+ protected _handleChartMouseMove: (params: BaseEventParams, isClick: boolean) => void;
55
63
  protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, isClick: boolean, useCache?: boolean) => boolean;
56
64
  protected _getMouseEventData: (params: BaseEventParams) => TotalMouseEventData;
57
65
  protected _hideTooltipByHandler: (params: TooltipHandlerParams) => TooltipResult;
58
66
  reInit(spec?: any): void;
59
67
  showTooltip(datum: Datum, options: IShowTooltipOption): false | "none" | TooltipActiveType;
60
- hideTooltip(): boolean;
68
+ hideTooltip: () => boolean;
61
69
  private _isSameAsCache;
62
70
  private _isPointerInChart;
63
- private _isPointerOnTooltip;
64
71
  getVisible(): boolean;
65
72
  }
66
73
  export declare const registerTooltip: () => void;
@@ -1,7 +1,9 @@
1
- import type { ITooltipPattern, TooltipActiveType } from '../../../typings';
2
- import type { ITooltipSpec } from '../interface';
1
+ import type { Datum, ITooltipActual, ITooltipLineActual, ITooltipLinePattern, MaybeArray, TooltipActiveType, TooltipContentProperty, TooltipData, TooltipPatternProperty } from '../../../typings';
2
+ import type { ISeriesTooltipSpec, ITooltipSpec, TooltipHandlerParams } from '../interface';
3
3
  import type { BaseEventParams } from '../../../event/interface';
4
4
  export declare const getTooltipActualActiveType: (spec?: ITooltipSpec) => TooltipActiveType[];
5
- export declare const isActiveTypeVisible: (type: TooltipActiveType, spec?: ITooltipSpec) => boolean;
5
+ export declare const isActiveTypeVisible: (type: TooltipActiveType, spec?: ISeriesTooltipSpec) => boolean;
6
6
  export declare function isEmptyPos(params: BaseEventParams): boolean;
7
- export declare function combinePattern(patternList: ITooltipPattern[]): ITooltipPattern;
7
+ export declare function parseContent(contentSpec: MaybeArray<TooltipPatternProperty<MaybeArray<ITooltipLinePattern>>>, defaultContent: ITooltipLinePattern, shapeAttrs: Record<string, TooltipContentProperty<any>>, data?: TooltipData, datum?: Datum[], params?: TooltipHandlerParams): ITooltipLineActual[];
8
+ export declare function combineContents(patternList: ITooltipActual[]): ITooltipActual;
9
+ export declare const getTimeString: (value: any, timeFormat?: string, timeFormatMode?: 'local' | 'utc') => any;
@@ -1,5 +1,5 @@
1
- import type { TooltipActiveType } from '../../../typings';
1
+ import type { ITooltipActual, TooltipActiveType, TooltipData } from '../../../typings';
2
2
  import type { ISeries } from '../../../series/interface';
3
- import type { IDimensionInfo } from '../../../event/events/dimension/interface';
4
- import type { ITooltipSpec } from '..';
5
- export declare const getTooltipSpecForShow: (activeType: TooltipActiveType, globalSpec: ITooltipSpec, series?: ISeries, dimensionInfo?: IDimensionInfo[]) => ITooltipSpec;
3
+ import type { TooltipHandlerParams } from '../interface/common';
4
+ import type { ITooltipSpec } from '../interface/spec';
5
+ export declare const getTooltipSpecForShow: (activeType: TooltipActiveType, globalSpec: ITooltipSpec, series?: ISeries, data?: TooltipData, params?: TooltipHandlerParams) => ITooltipActual;
@@ -1,6 +1,5 @@
1
- import type { Datum, ITooltipLinePattern, ITooltipPattern, TooltipContentProperty, TooltipData, TooltipPatternProperty } from '../../../typings';
1
+ import type { Datum, TooltipContentProperty, TooltipData, TooltipPatternProperty } from '../../../typings';
2
2
  import type { TooltipHandlerParams } from '../interface';
3
3
  export declare const getTooltipContentValue: <T>(field?: TooltipContentProperty<T>, datum?: any, params?: TooltipHandlerParams, formatter?: string) => T;
4
4
  export declare const getTooltipPatternValue: <T>(field?: TooltipPatternProperty<T>, data?: TooltipData, params?: TooltipHandlerParams) => T;
5
- export declare const getTooltipContentPattern: (field?: ITooltipPattern['content'], data?: TooltipData, params?: TooltipHandlerParams) => Array<ITooltipLinePattern> | undefined;
6
5
  export declare function getFirstDatumFromTooltipData(data: TooltipData): Datum;
@@ -2,4 +2,3 @@ export * from './show-tooltip';
2
2
  export * from './common';
3
3
  export * from './get-spec';
4
4
  export * from './get-value';
5
- export * from './compose';
@@ -1,5 +1,7 @@
1
+ import type { Maybe } from '@visactor/vutils';
1
2
  import type { ITheme } from '../theme';
2
3
  import type { Datum } from '../typings';
4
+ import type { IModelSpecInfo } from '../model/interface';
3
5
  export declare function getComponentThemeFromOption(type: string, chartTheme: ITheme): any;
4
6
  export declare function getFormatFunction(formatMethod?: any, formatter?: string | string[], text?: string | number, datum?: Datum): {
5
7
  formatFunc: any;
@@ -8,3 +10,4 @@ export declare function getFormatFunction(formatMethod?: any, formatter?: string
8
10
  formatFunc?: undefined;
9
11
  args?: undefined;
10
12
  };
13
+ export declare const getSpecInfo: <T extends Record<string, any>>(chartSpec: any, specKey: string, compType: string, filter?: (spec: T) => boolean) => IModelSpecInfo<T>[];
@@ -2,6 +2,7 @@ export declare const USER_LAYOUT_RECT_LEVEL = 9;
2
2
  export declare const DEFAULT_LAYOUT_RECT_LEVEL = 0;
3
3
  export declare const DEFAULT_LAYOUT_RECT_LEVEL_MIN = -1;
4
4
  export declare enum LayoutZIndex {
5
+ SeriesGroup = 0,
5
6
  Axis_Grid = 50,
6
7
  CrossHair_Grid = 100,
7
8
  Region = 450,
@@ -74,6 +74,7 @@ export declare class VChart implements IVChart {
74
74
  private _context;
75
75
  private _isReleased;
76
76
  private _chartPlugin?;
77
+ private _onResize?;
77
78
  constructor(spec: ISpec, options: IInitOption);
78
79
  private _setNewSpec;
79
80
  private _getSpecFromOriginalSpec;
@@ -89,7 +90,6 @@ export declare class VChart implements IVChart {
89
90
  height: number;
90
91
  };
91
92
  private _doResize;
92
- private _onResize;
93
93
  private _initDataSet;
94
94
  updateCustomConfigAndRerender(updateSpecResult: IUpdateSpecResult | (() => IUpdateSpecResult), sync?: boolean, option?: IVChartRenderOption): IVChart | Promise<IVChart>;
95
95
  protected _updateCustomConfigAndRecompile(updateSpecResult: IUpdateSpecResult, option?: IVChartRenderOption): boolean;
@@ -137,6 +137,7 @@ export declare class VChart implements IVChart {
137
137
  setSelected(datum: MaybeArray<any> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
138
138
  setHovered(datum: MaybeArray<Datum> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
139
139
  clearState(state: string): void;
140
+ clearAllStates(): void;
140
141
  clearSelected(): void;
141
142
  clearHovered(): void;
142
143
  private _updateCurrentTheme;
@@ -1,4 +1,3 @@
1
- import type { utilFunctionCtx } from '../typings/params';
2
1
  import { DataSet, DataView } from '@visactor/vdataset';
3
2
  import type { IDataViewOptions } from '@visactor/vdataset';
4
3
  import type { IDataValues } from '../typings/spec/common';
@@ -7,7 +6,7 @@ export declare function initCSVData(): void;
7
6
  export declare function initData(): void;
8
7
  export declare function initFoldData(): void;
9
8
  export declare function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions): DataView;
10
- export declare function dataToDataView(data: DataView | IDataValues, dataSet: DataSet, sourceDataViews?: DataView[], ctx?: utilFunctionCtx): DataView;
9
+ export declare function dataToDataView(data: DataView | IDataValues, dataSet: DataSet, sourceDataViews?: DataView[]): DataView;
11
10
  export declare function updateDataViewInData(dataView: DataView, data: IDataValues, forceMerge: boolean): void;
12
11
  export declare enum TransformLevel {
13
12
  copyDataView = -10,
@@ -1,4 +1,5 @@
1
1
  import type { DataView } from '@visactor/vdataset';
2
+ import type { Datum } from '../../typings';
2
3
  export interface IPieOpt {
3
4
  angleField: () => string;
4
5
  startAngle: () => number;
@@ -13,7 +14,9 @@ export interface IPieOpt {
13
14
  asK: string;
14
15
  showAllZero: boolean;
15
16
  supportNegative: boolean;
17
+ showEmptyCircle: boolean;
16
18
  }
17
19
  export declare const pie: (originData: Array<DataView>, op: IPieOpt) => {
18
20
  [x: string]: any;
19
21
  }[];
22
+ export declare const isDataEmpty: (data: Datum[], angleField: string, supportNegative: boolean) => boolean;
@@ -21,7 +21,9 @@ export declare class Interaction implements IInteraction {
21
21
  removeEventElement(stateValue: StateValue, element: IElement): void;
22
22
  addEventElement(stateValue: StateValue, element: IElement): void;
23
23
  clearEventElement(stateValue: StateValue, clearReverse: boolean): void;
24
+ clearAllEventElement(): void;
24
25
  reverseEventElement(stateValue: StateValue): void;
25
26
  startInteraction(stateValue: StateValue, element: IElement): void;
26
27
  resetInteraction(stateValue: StateValue, element: IElement): void;
28
+ resetAllInteraction(): void;
27
29
  }
@@ -16,10 +16,12 @@ export interface IInteraction {
16
16
  exchangeEventElement: (stateValue: StateValue, elements: IElement) => void;
17
17
  clearEventElement: (stateValue: StateValue, clearReverse: boolean) => void;
18
18
  reverseEventElement: (stateValue: StateValue) => void;
19
+ clearAllEventElement: () => void;
19
20
  setDisableActiveEffect: (disable: boolean) => void;
20
21
  addVgrammarInteraction: (state: StateValue, i: IVGrammarInteraction) => void;
21
22
  startInteraction: (state: StateValue, element: IElement) => void;
22
23
  resetInteraction: (state: StateValue, element: IElement) => void;
24
+ resetAllInteraction: () => void;
23
25
  }
24
26
  export interface ITrigger {
25
27
  init: () => void;
@@ -5,6 +5,8 @@ import type { IBaseScale } from '@visactor/vscale';
5
5
  import type { MarkType } from './type';
6
6
  import type { ICompilableMark, ICompilableMarkOption, IModelMarkAttributeContext, StateValueType } from '../../compile/mark';
7
7
  import type { StringOrNumber } from '../../typings';
8
+ import type { IMarkConfig } from '@visactor/vgrammar-core';
9
+ import type { ICustomPath2D } from '@visactor/vrender-core';
8
10
  export interface VisualScaleType {
9
11
  scale: IBaseScale;
10
12
  field: StringOrNumber;
@@ -42,6 +44,14 @@ export interface IMarkRaw<T extends ICommonSpec> extends ICompilableMark {
42
44
  setPostProcess: <U extends keyof T, A>(key: U, postProcessFunc: IAttrConfig<A, T>['postProcess'], state?: StateValueType) => void;
43
45
  }
44
46
  export type IMark = IMarkRaw<ICommonSpec>;
47
+ export interface ICompileMarkConfig extends IMarkConfig {
48
+ morph?: boolean;
49
+ morphElementKey?: string;
50
+ support3d?: boolean;
51
+ setCustomizedShape?: (datum: any[], attrs: any, path: ICustomPath2D) => ICustomPath2D;
52
+ clip?: boolean;
53
+ skipTheme?: boolean;
54
+ }
45
55
  export interface IMarkOption extends ICompilableMarkOption {
46
56
  model: IModel;
47
57
  map: Map<StringOrNumber, IModel | IMark>;
@@ -1,7 +1,7 @@
1
1
  import type { IEvent } from '../event/interface';
2
2
  import type { IEffect, IModel, IModelInitOption, IModelOption, IModelRenderOption, IModelEvaluateOption, IModelSpec, IModelMarkInfo, IModelSpecInfo } from './interface';
3
3
  import type { CoordinateType } from '../typings/coordinate';
4
- import type { IMark, IMarkOption, IMarkRaw, IMarkStyle } from '../mark/interface';
4
+ import type { ICompileMarkConfig, IMark, IMarkOption, IMarkRaw, IMarkStyle } from '../mark/interface';
5
5
  import type { Datum, StateValueType, ConvertToMarkStyleSpec, ICommonSpec, StringOrNumber, IRect, ILayoutRect } from '../typings';
6
6
  import type { CompilableData } from '../compile/data/compilable-data';
7
7
  import type { IGroupMark } from '@visactor/vgrammar-core';
@@ -72,7 +72,7 @@ export declare abstract class BaseModel<T extends IModelSpec> extends Compilable
72
72
  protected stateKeyToSignalName(key: string, opt?: string): string;
73
73
  compileData(): void;
74
74
  compileMarks(group?: string | IGroupMark): void;
75
- protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option?: Partial<IMarkOption>): T;
75
+ protected _createMark<T extends IMark>(markInfo: IModelMarkInfo, option?: Partial<IMarkOption>, config?: ICompileMarkConfig): T;
76
76
  protected _getDataIdKey(): string | ((datum: Datum) => string) | undefined;
77
77
  getColorScheme(): import("..").IThemeColorScheme;
78
78
  getSpecInfo(): IModelSpecInfo<any>;
@@ -20,6 +20,8 @@ import type { ILayoutItem, ILayoutItemSpec } from '../layout/interface';
20
20
  import type { ILayoutPoint, ILayoutRect } from '../typings/layout';
21
21
  import type { ComponentTypeEnum } from '../component/interface';
22
22
  import type { SeriesTypeEnum } from '../series';
23
+ import type { ITooltipSpec } from '../component/tooltip/interface';
24
+ import type { TooltipActiveType } from '../typings';
23
25
  export interface IModelInitOption {
24
26
  }
25
27
  export interface IModelLayoutOption {
@@ -152,3 +154,15 @@ export interface IBaseModelSpecTransformer {
152
154
  getTheme: (spec: any, chartSpec: any) => any;
153
155
  transformSpec: (spec: any, chartSpec: any, chartSpecInfo?: IChartSpecInfo) => IBaseModelSpecTransformerResult<any, any>;
154
156
  }
157
+ export interface ITooltipHelper {
158
+ spec: ITooltipSpec | undefined;
159
+ activeType: TooltipActiveType[];
160
+ activeTriggerSet: {
161
+ mark?: Set<IMark>;
162
+ group?: Set<IMark>;
163
+ };
164
+ ignoreTriggerSet: {
165
+ mark?: Set<IMark>;
166
+ };
167
+ updateTooltipSpec: () => void;
168
+ }
@@ -1,4 +1,4 @@
1
- import type { ITooltipActiveTypeAsKeys, ITooltipSpec } from '../component/tooltip/interface';
1
+ import type { ITooltipSpec } from '../component/tooltip/interface';
2
2
  import type { TooltipActiveType } from '../typings';
3
3
  import type { IModel } from './interface';
4
4
  import type { IMark } from '../mark/interface';
@@ -6,8 +6,13 @@ export type TooltipTrigger = IModel | IMark;
6
6
  export interface ITooltipHelper {
7
7
  spec: ITooltipSpec | undefined;
8
8
  activeType: TooltipActiveType[];
9
- activeTriggerSet: ITooltipActiveTypeAsKeys<Set<TooltipTrigger>, Set<TooltipTrigger>, Set<TooltipTrigger>>;
10
- ignoreTriggerSet: ITooltipActiveTypeAsKeys<Set<TooltipTrigger>, Set<TooltipTrigger>, Set<TooltipTrigger>>;
9
+ activeTriggerSet: {
10
+ mark?: Set<TooltipTrigger>;
11
+ group?: Set<TooltipTrigger>;
12
+ };
13
+ ignoreTriggerSet: {
14
+ mark?: Set<TooltipTrigger>;
15
+ };
11
16
  updateTooltipSpec: () => void;
12
17
  }
13
18
  export declare abstract class BaseTooltipHelper implements ITooltipHelper {
@@ -15,13 +20,10 @@ export declare abstract class BaseTooltipHelper implements ITooltipHelper {
15
20
  activeType: TooltipActiveType[];
16
21
  activeTriggerSet: {
17
22
  mark: Set<TooltipTrigger>;
18
- dimension: Set<TooltipTrigger>;
19
23
  group: Set<TooltipTrigger>;
20
24
  };
21
25
  ignoreTriggerSet: {
22
26
  mark: Set<TooltipTrigger>;
23
- dimension: Set<TooltipTrigger>;
24
- group: Set<TooltipTrigger>;
25
27
  };
26
28
  abstract updateTooltipSpec(): void;
27
29
  }
@@ -19,6 +19,7 @@ export declare class MediaQuery extends BasePlugin implements IChartPlugin {
19
19
  onInit(service: IChartPluginService, chartSpec: any): void;
20
20
  onBeforeResize(service: IChartPluginService, width: number, height: number): void;
21
21
  onAfterChartSpecTransform(service: IChartPluginService, chartSpec: any, actionSource: VChartRenderActionSource): void;
22
+ onAfterModelSpecTransform(service: IChartPluginService, chartSpec: any, chartInfo: IChartSpecInfo, actionSource: VChartRenderActionSource): void;
22
23
  onBeforeInitChart(service: IChartPluginService, chartSpec: any, actionSource: VChartRenderActionSource): void;
23
24
  protected _changeSize(width: number, height: number, compile?: boolean, render?: boolean): boolean;
24
25
  protected _applyQueries(compile?: boolean, render?: boolean): boolean;
@@ -2,12 +2,14 @@ import type { IChartPlugin, IChartPluginService } from './interface';
2
2
  import type { IVChart } from '../../core';
3
3
  import { BasePluginService } from '../base/base-plugin-service';
4
4
  import type { VChartRenderActionSource } from '../../core/interface';
5
+ import type { IChartSpecInfo } from '../../chart/interface/common';
5
6
  export declare class ChartPluginService<T extends IChartPlugin = IChartPlugin> extends BasePluginService<T> implements IChartPluginService<T> {
6
7
  globalInstance: IVChart;
7
8
  constructor(globalInstance: IVChart);
8
9
  onInit(chartSpec: any): void;
9
10
  onBeforeResize(width: number, height: number): void;
10
11
  onAfterChartSpecTransform(chartSpec: any, actionSource: VChartRenderActionSource): void;
12
+ onAfterModelSpecTransform(chartSpec: any, chartSpecInfo: IChartSpecInfo, actionSource: VChartRenderActionSource): void;
11
13
  onBeforeInitChart(chartSpec: any, actionSource: VChartRenderActionSource): void;
12
14
  releaseAll(): void;
13
15
  }
@@ -8,6 +8,7 @@ type ScaleInfo = {
8
8
  extendable_min: boolean;
9
9
  extendable_max: boolean;
10
10
  domain: number[];
11
+ break?: boolean;
11
12
  };
12
13
  export declare function isValidAlignDomain(domain: number[]): boolean;
13
14
  export declare function getScaleInfo(axis: LinearAxisMixin, domain: number[]): ScaleInfo;