UNPKG

84.5 kBTypeScriptView Raw
1import { COMPONENT_TYPE, DIRECTION, LAYER } from './constant';
2import { AxisLabelCfg, AxisLineCfg, AxisSubTickLineCfg, AxisTickLineCfg, AxisTitleCfg, ContinueLegendHandlerCfg, ContinueLegendLabelCfg, ContinueLegendRailCfg, ContinueLegendTrackCfg, Coordinate, CrosshairLineCfg, CrosshairTextBackgroundCfg, CrosshairTextCfg, EnhancedTextCfg, GridLineCfg, GroupComponent, HtmlComponent, ICanvas, IGroup, IShape, LegendBackgroundCfg, LegendItemNameCfg, LegendItemValueCfg, LegendMarkerCfg, LegendTitleCfg, LegendPageNavigatorCfg, PathCommand, Scale, ScaleConfig, ShapeAttrs, LineAnnotationTextCfg, TrendCfg } from './dependents';
3import { View } from './chart';
4import { Facet } from './facet';
5import Element from './geometry/element';
6import { PaddingCalCtor } from './chart/layout/padding-cal';
7/** 通用对象 */
8export interface LooseObject {
9 [key: string]: any;
10}
11/** 一个点位置 */
12export interface Point {
13 readonly x: number;
14 readonly y: number;
15}
16/** 画布范围 */
17export interface Region {
18 readonly start: Point;
19 readonly end: Point;
20}
21/** 画布大小 */
22export interface Size {
23 readonly width: number;
24 readonly height: number;
25}
26/** 带范围的点结构 */
27export interface RangePoint {
28 readonly x?: number | number[];
29 readonly y?: number | number[];
30}
31/** 用户数据经过图形映射处理后的数据结构 */
32export interface MappingDatum {
33 /** 原始数据 */
34 _origin: Datum;
35 /** shape 的关键点信息 */
36 points?: ShapeVertices;
37 /** 相对于当前 shape 的下一个 shape 的关键点信息 */
38 nextPoints?: ShapeVertices;
39 /** x 轴的坐标 */
40 x?: number[] | number;
41 /** y 轴的坐标 */
42 y?: number[] | number;
43 /** 颜色 */
44 color?: string;
45 /** 渲染的 shape 类型 */
46 shape?: string | string[];
47 /** 大小 */
48 size?: number;
49}
50/** 绘制 Shape 需要的图形、样式、关键点等信息 */
51export interface ShapeInfo {
52 /** x 坐标 */
53 x: number | number[];
54 /** y 坐标 */
55 y: number | number[];
56 /** 映射的 shape 类型 */
57 shape?: string | string[];
58 /** size 映射值 */
59 size?: number;
60 /** 映射的颜色值 */
61 color?: string;
62 /** 用户设置的图形样式 */
63 style?: LooseObject;
64 /** 是否在极坐标下 */
65 isInCircle?: boolean;
66 /** 对应的原始数据记录 */
67 data?: Datum | Data;
68 /** 存储进行图形映射后的数据 */
69 mappingData?: MappingDatum | MappingDatum[];
70 /** 构成 shape 的关键点 */
71 points?: ShapeVertices;
72 /** 下一个数据集对应的关键点 */
73 nextPoints?: ShapeVertices;
74 /** Geometry.Text 需要 */
75 text?: string;
76 /** 数据是否发生层叠 */
77 isStack?: boolean;
78 /** 是否连接空值,只对 Path Line Area 这三种 Geometry 生效。 */
79 connectNulls?: boolean;
80 /** shape 背景,只对 Interval Geometry 生效,目前只对 interval-rect shape 生效。 */
81 background?: {
82 style?: ShapeAttrs;
83 };
84 /** 是否展示单个孤立的数据点,只对 Path Line Area 这三种 Geometry 生效。 */
85 showSinglePoint?: boolean;
86 /** 默认的 shape 样式 */
87 defaultStyle?: LooseObject;
88 /** 自定义的数据,传入到 shapeInfo 中 */
89 customInfo?: CustomOption;
90}
91/** 用户配置的动画,属性均可选 */
92export interface AnimateCfg {
93 /** 动画缓动函数 */
94 readonly easing?: string | AnimateEasingCallback;
95 /** 动画执行函数 */
96 readonly animation?: string;
97 /** 动画执行时间 */
98 readonly duration?: number | AnimateDurationCallback;
99 /** 动画延迟时间 */
100 readonly delay?: number | AnimateDelayCallback;
101 /** 动画执行结束后的回调函数 */
102 readonly callback?: () => any;
103 /** 动画是否重复 */
104 readonly repeat?: boolean;
105}
106/** 传递给 G 的动画配置,duration 必须提供 */
107export interface GAnimateCfg {
108 /** 动画执行时间 */
109 readonly duration: number;
110 /** 动画缓动函数 */
111 readonly easing?: string;
112 /** 动画执行函数 */
113 readonly animation?: string;
114 /** 动画延迟时间 */
115 readonly delay?: number;
116 /** 动画执行结束后的回调函数 */
117 readonly callback?: () => any;
118 /** 动画是否重复 */
119 readonly repeat?: boolean;
120}
121/** 图形属性配置项定义,如 geometry.position({}) */
122export interface AttributeOption {
123 /** 映射的属性字段。 */
124 fields?: string[];
125 /** 回调函数。 */
126 callback?: (...args: any[]) => any;
127 /** 指定常量映射规则。 */
128 values?: any[];
129}
130/** 数据调整配置项定义,`geometry.adjust({})` */
131export interface AdjustOption {
132 /** 数据调整类型。 */
133 readonly type: AdjustType;
134 /**
135 * 该属性只对 'dodge' 类型生效,取 0 到 1 范围的值(相对于每个柱子宽度),用于控制一个分组中柱子之间的间距。
136 *
137 * ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*ps3pToOg2nwAAAAAAAAAAABkARQnAQ)
138 */
139 readonly marginRatio?: number;
140 /**
141 * 该属性只对 'dodge' 类型生效,声明以哪个数据字段为分组依据。
142 */
143 readonly dodgeBy?: string;
144 /**
145 * 该属性只对 'stack' 类型生效,用于控制是否对数据进行反序操作。
146 */
147 readonly reverseOrder?: boolean;
148}
149/** `geometry.style({})` 样式配置定义 */
150export interface StyleOption {
151 /** 映射的字段。 */
152 readonly fields?: string[];
153 /** 回调函数。 */
154 readonly callback?: (...args: any[]) => LooseObject;
155 /** 图形样式配置。 */
156 readonly cfg?: LooseObject;
157}
158/** geometry.custom() custom 自定义的配置,可以传入任何数据 */
159export declare type CustomOption = any;
160/** `geometry.tooltip({})` Tooltip 配置定义 */
161export interface GeometryTooltipOption {
162 /** 参与映射的字段。 */
163 readonly fields: string[];
164 /** 回调函数。 */
165 readonly callback?: (...args: any[]) => LooseObject;
166}
167export interface GeometryLabelLayoutCfg {
168 /** label 布局类型。 */
169 type: string;
170 /** 各个布局函数开放给用户的配置。 */
171 cfg?: LooseObject;
172}
173/** geometry.label({}) 配置属性 */
174export interface GeometryLabelCfg {
175 /**
176 * 用于声明渲染的 label 类型。
177 * 当用户使用了自定义的 label 类型,需要声明具体的 type 类型,否则会使用默认的 label 类型渲染。
178 */
179 type?: string;
180 /** 相对数据点的偏移距离, polar 和 theta 坐标系下可使用百分比字符串。 */
181 offset?: number | string;
182 /** label 相对于数据点在 X 方向的偏移距离。 */
183 offsetX?: number;
184 /** label 相对于数据点在 Y 方向的偏移距离。 */
185 offsetY?: number;
186 /**
187 * 展示的文本内容,如果不声明则按照参与映射的第一字段的值进行显示。
188 * 当 content 为 IGroup 或者 IShape 类型时,请使用相对定位,即 x 和 y 坐标都设为 0,G2 内部会整体做最后的 label 进行定位的。
189 * 示例: https://g2.antv.vision/zh/examples/pie/basic#pie-custome-label
190 */
191 content?: string | IGroup | IShape | GeometryLabelContentCallback;
192 /** label 文本图形属性样式。 */
193 style?: LooseObject;
194 /** label 是否自动旋转,默认为 true。 */
195 autoRotate?: boolean;
196 /**
197 * 当且仅当 `autoRotate` 为 false 时生效,用于设置文本的旋转角度,**弧度制**。
198 */
199 rotate?: number;
200 /** 标签高度设置,仅当标签类型 type 为 pie 时生效;也可在主题中设置 pieLabels.labelHeight */
201 labelHeight?: number;
202 /**
203 * 用于设置文本连接线的样式属性,null 表示不展示。
204 */
205 labelLine?: null | boolean | {
206 style?: object;
207 };
208 /** 只对极坐标下的文本生效,表示文本是否按照角度进行放射状显示,true 表示开启,false 表示关闭。 */
209 labelEmit?: boolean;
210 /**
211 * 文本布局类型,支持多种布局函数组合使用。
212 *
213 * 目前提供了三种:'overlap','fixedOverlap','limitInShape':
214 * 1. overlap: label 防遮挡,为了防止 label 之间相互覆盖,通过尝试向**四周偏移**来剔除放不下的 label。
215 * 2. fixed-overlap: 不改变 label 位置的情况下对相互重叠的 label 进行调整。
216 * 3. limit-in-shape: 剔除 shape 容纳不了的 label。
217 *
218 * @example
219 * ```ts
220 * layout: {
221 * type: 'overlap',
222 * },
223 * ```
224 */
225 layout?: GeometryLabelLayoutCfg | GeometryLabelLayoutCfg[];
226 /**
227 * 用于绘制 label 背景
228 */
229 background?: {
230 /**
231 * 背景框 图形属性配置
232 * - fill?: string; 背景框 填充色
233 * - stroke?: string; 背景框 描边色
234 * - lineWidth?: string; 背景框 描边宽度
235 * - radius?: number | number[]; 背景框圆角,支持整数或数组形式
236 */
237 style?: ShapeAttrs;
238 /** 背景框 内边距 */
239 padding?: number | number[];
240 };
241 /**
242 * 仅当 geometry 为 interval 时生效,指定当前 label 与当前图形的相对位置。
243 */
244 position?: ((data: Datum, mappingData: MappingDatum, index: number) => IntervalGeometryLabelPosition) | IntervalGeometryLabelPosition;
245 /** 动画配置。 */
246 animate?: AnimateOption | false | null;
247}
248/** `geometry().label({})` 配置定义 */
249export interface LabelOption {
250 /** 映射的字段。 */
251 fields?: string[];
252 /** 回调函数。 */
253 callback?: LabelCallback;
254 cfg?: GeometryLabelCfg;
255}
256/** Geometry 下每个 state 的配置结构 */
257export interface StateCfg {
258 /** 状态样式配置。 */
259 style?: object | StateStyleCallback;
260}
261/** geometry.state({}) 配置定义 */
262export interface StateOption {
263 /** 默认状态样式。 */
264 default?: StateCfg;
265 /** active 状态配置。 */
266 active?: StateCfg;
267 /** inactive 状态配置。 */
268 inactive?: StateCfg;
269 /** selected 状态配置。 */
270 selected?: StateCfg;
271}
272/** interval label 的位置 */
273export declare type IntervalGeometryLabelPosition = 'top' | 'bottom' | 'middle' | 'left' | 'right';
274/** G2 提供的 adjust 类型 */
275export declare type AdjustType = 'stack' | 'jitter' | 'dodge' | 'symmetric';
276/** geometry.color() 图形属性回调函数定义 */
277export declare type ColorAttrCallback = (...args: any[]) => string;
278/** geometry.shape() 图形属性回调函数定义 */
279export declare type ShapeAttrCallback = (...args: any[]) => string | any[];
280/** geometry.size() 图形属性回调函数定义 */
281export declare type SizeAttrCallback = (...args: any[]) => number;
282/** geometry.tooltip() 接口回调函数定义 */
283export declare type TooltipCallback = (...args: any[]) => LooseObject;
284/** geometry.style() 接口回调函数定义 */
285export declare type StyleCallback = (...args: any[]) => LooseObject;
286/** geometry.label() 接口回调函数定义 */
287export declare type LabelCallback = (...args: any[]) => GeometryLabelCfg | null | undefined;
288/** geometry label 中 content 属性的回调函数类型定义 */
289export declare type GeometryLabelContentCallback = (data: Datum, mappingData: MappingDatum, index: number) => string | IShape | IGroup;
290/** state 下 style 回调函数定义 */
291export declare type StateStyleCallback = (element: Element) => LooseObject;
292/** 获取 shape marker 时需要的信息 */
293export interface ShapeMarkerCfg {
294 /** 颜色。 */
295 color: string;
296 /** 是否是极坐标。 */
297 isInPolar: boolean;
298}
299/** 图形 marker 的配置信息。 */
300export interface ShapeMarkerAttrs {
301 /** marker 的形状。 */
302 symbol: string | ShapeMarkerSymbol;
303 /**
304 * marker 的样式,`ShapeAttrs` 属性结构如下:
305 *
306 * ```ts
307 * {
308 * // x 坐标
309 * x?: number;
310 * // y 坐标
311 * y?: number;
312 * // 圆半径
313 * r?: number;
314 * // 描边颜色
315 * stroke?: string | null;
316 * // 描边透明度
317 * strokeOpacity?: number;
318 * // 填充颜色
319 * fill?: string | null;
320 * // 填充透明度
321 * fillOpacity?: number;
322 * // 整体透明度
323 * opacity?: number;
324 * // 线宽
325 * lineWidth?: number;
326 * // 指定如何绘制每一条线段末端
327 * lineCap?: 'butt' | 'round' | 'square';
328 * // 用来设置2个长度不为0的相连部分(线段,圆弧,曲线)如何连接在一起的属性(长度为0的变形部分,其指定的末端和控制点在同一位置,会被忽略)
329 * lineJoin?: 'bevel' | 'round' | 'miter';
330 * // 设置线的虚线样式,可以指定一个数组。一组描述交替绘制线段和间距(坐标空间单位)长度的数字。 如果数组元素的数量是奇数,数组的元素会被复制并重复。例如, [5, 15, 25] 会变成 [5, 15, 25, 5, 15, 25]。这个属性取决于浏览器是否支持 setLineDash() 函数。
331 * lineDash?: number[] | null;
332 * // Path 路径
333 * path?: string | object[];
334 * // 图形坐标点
335 * points?: object[];
336 * // 宽度
337 * width?: number;
338 * // 高度
339 * height?: number;
340 * // 阴影模糊效果程度
341 * shadowBlur?: number;
342 * // 阴影颜色
343 * shadowColor?: string | null;
344 * // 阴影 x 方向偏移量
345 * shadowOffsetX?: number;
346 * // 阴影 y 方向偏移量
347 * shadowOffsetY?: number;
348 * // 设置文本内容的当前对齐方式
349 * textAlign?: 'start' | 'center' | 'end' | 'left' | 'right';
350 * // 设置在绘制文本时使用的当前文本基线
351 * textBaseline?: 'top' | 'hanging' | 'middle' | 'alphabetic' | 'ideographic' | 'bottom';
352 * // 字体样式
353 * fontStyle?: 'normal' | 'italic' | 'oblique';
354 * // 文本字体大小
355 * fontSize?: number;
356 * // 文本字体
357 * fontFamily?: string;
358 * // 文本粗细
359 * fontWeight?: 'normal' | 'bold' | 'bolder' | 'lighter' | number;
360 * // 字体变体
361 * fontVariant?: 'normal' | 'small-caps' | string;
362 * // 文本行高
363 * lineHeight?: number;
364 * [key: string]: any;
365 * }
366 * ```
367 *
368 * 详见 {@link https://github.com/antvis/g/blob/28e3178b616573e0fa6d59694f1aaca2baaa9766/packages/g-base/src/types.ts#L37|ShapeAttrs}
369 */
370 style: ShapeAttrs;
371}
372/** shape 关键点信息 */
373export interface ShapePoint {
374 /** 数据点映射后对应 x 的值。 */
375 readonly x: number | number[];
376 /** 数据点映射后对应 y 的值。 */
377 readonly y?: number | number[];
378 /** 数据在 y 方向的最小值。 */
379 readonly y0?: number;
380 size?: number;
381}
382/** 小提琴图 shape 关键点信息 */
383export declare type ViolinShapePoint = ShapePoint & {
384 _size?: number[];
385};
386/** 注册 ShapeFactory 需要实现的接口。 */
387export interface RegisterShapeFactory {
388 /** 默认的 shape 类型。 */
389 readonly defaultShapeType: string;
390 /** 返回绘制 shape 所有的关键点集合。 */
391 readonly getDefaultPoints?: (pointInfo: ShapePoint) => Point[];
392 /** 获取 shape 的默认绘制样式 */
393 readonly getDefaultStyle?: (geometryTheme: LooseObject) => LooseObject;
394 /** 获取 shape 对应的缩略图配置。 */
395 readonly getMarker?: (shapeType: string, markerCfg: ShapeMarkerCfg) => ShapeMarkerAttrs;
396 /** 创建具体的 G.Shape 实例。 */
397 readonly drawShape?: (shapeType: string, cfg: ShapeInfo, container: IGroup) => IShape | IGroup;
398}
399/** 注册具体 shape 需要实现的接口。 */
400export interface RegisterShape {
401 /** 计算绘制需要的关键点,在注册具体的 shape 时由开发者自己定义。 */
402 readonly getPoints?: (pointInfo: ShapePoint) => Point[];
403 /** 获取 shape 对应的缩略图样式配置,在注册具体的 shape 时由开发者自己定义。 */
404 readonly getMarker?: (markerCfg: ShapeMarkerCfg) => ShapeMarkerAttrs;
405 /** 绘制函数。 */
406 readonly draw: (cfg: ShapeInfo, container: IGroup) => IShape | IGroup | void;
407}
408/** Shape 接口定义。 */
409export interface Shape extends RegisterShape {
410 /** 坐标系对象。 */
411 coordinate: Coordinate;
412 /** 工具函数,将 0~1 path 转化成实际画布 path。 */
413 parsePath: (path: any) => PathCommand[];
414 /** 工具函数,0~1 的坐标点转换成实际画布坐标点。 */
415 parsePoint: (point: Point) => Point;
416 /** 工具函数,0~1 的坐标点集合转换成实际画布坐标点集合。 */
417 parsePoints: (points: Point[]) => Point[];
418}
419/** ShapeFactory 接口定义。 */
420export interface ShapeFactory extends RegisterShapeFactory {
421 /** 工厂名。 */
422 geometryType: string;
423 /** 坐标系对象。 */
424 coordinate: Coordinate;
425 /** ShapeFactory 下所有的主题样式。 */
426 theme: LooseObject;
427 /** 根据名称获取具体的 shape 对象。 */
428 getShape: (shapeType: string | string[]) => Shape;
429 /** 获取构成 shape 的关键点。 */
430 getShapePoints: (shapeType: string | string[], pointInfo: ShapePoint) => Point[];
431}
432/** 自定义 Shape marker 的函数 */
433export declare type ShapeMarkerSymbol = (x: number, y: number, r: number) => PathCommand[];
434/** Annotation position 回调函数 */
435export declare type AnnotationPositionCallback = (xScales: Scale[] | Record<string, Scale>, yScales: Scale[] | Record<string, Scale>) => [number | string, number | string];
436/** Annotation 位置相关属性的类型定义 */
437export declare type AnnotationPosition = [number | string, number | string] | Record<string, number | string> | AnnotationPositionCallback;
438/** Annotation 定义的通用属性,chart.annotation().line({}) */
439export interface AnnotationBaseOption {
440 readonly type?: string;
441 /** 指定 annotation 是否绘制在 canvas 最上层,默认为 false, 即绘制在最下层 */
442 readonly top?: boolean;
443 /** 是否进行动画 */
444 readonly animate?: boolean;
445 /** 动画参数配置,当且仅当 `animate` 属性为 true,即动画开启时生效。 */
446 readonly animateOption?: ComponentAnimateOption;
447 /** x 方向的偏移量 */
448 readonly offsetX?: number;
449 /** y 方向的偏移量 */
450 readonly offsetY?: number;
451}
452/** 使用 RegionPosition 定位的组件配置 */
453export interface RegionPositionBaseOption extends AnnotationBaseOption {
454 /** 起始位置 */
455 readonly start: AnnotationPosition;
456 /** 结束位置 */
457 readonly end: AnnotationPosition;
458 /** 图形样式属性 */
459 readonly style?: ShapeAttrs;
460}
461/** 使用 PointPosition 定位的组件配置 */
462export interface PointPositionBaseOption extends AnnotationBaseOption {
463 /** Point 定位位置 */
464 readonly position: AnnotationPosition;
465}
466/** 使用 Image Annotation 组件的配置定义 */
467export interface ImageOption extends RegionPositionBaseOption {
468 /** 图片路径 */
469 readonly src: string;
470}
471/** 使用 Line Annotation 组件的配置定义 */
472export interface LineOption extends RegionPositionBaseOption {
473 /** 文本配置定义 */
474 readonly text?: LineAnnotationTextCfg;
475}
476/** 使用 Arc Annotation 组件的配置定义 */
477export declare type ArcOption = RegionPositionBaseOption;
478/** 使用 Region Annotation 组件的配置定义 */
479export declare type RegionOption = RegionPositionBaseOption;
480/** 使用 Text Annotation 组件的配置定义 */
481export interface TextOption extends PointPositionBaseOption, Omit<EnhancedTextCfg, 'content'> {
482 content?: string | number | ((filteredData: object[]) => string | number);
483}
484/** 使用 DataMarker Annotation 组件的配置定义 */
485export interface DataMarkerOption extends PointPositionBaseOption {
486 /** point 设置 */
487 readonly point?: null | {
488 style?: ShapeAttrs;
489 };
490 /** line 设置 */
491 readonly line?: null | {
492 style?: ShapeAttrs;
493 length?: number;
494 };
495 /** text 设置 */
496 readonly text: null | EnhancedTextCfg;
497 /** 文本超出绘制区域时,是否自动调节文本方向,默认为 true */
498 readonly autoAdjust?: boolean;
499 /** 朝向,默认为 upward,可选值为 'upward' 或者 'downward' */
500 readonly direction?: 'upward' | 'downward';
501}
502/** 使用 DataRegion Annotation 组件的配置定义 */
503export interface DataRegionOption extends RegionPositionBaseOption {
504 /** line长度,default为 0 */
505 readonly lineLength?: number;
506 /** 标注区间的配置 */
507 readonly region?: null | {
508 style?: ShapeAttrs;
509 };
510 /** 文本的配置 */
511 readonly text?: null | EnhancedTextCfg;
512}
513/** 使用 RegionFilter Annotation 组件的配置定义 */
514export interface RegionFilterOption extends RegionPositionBaseOption {
515 /** 染色色值 */
516 readonly color: string;
517 readonly apply?: string[];
518}
519/** Shape Annotation 的配置 */
520export interface ShapeAnnotationOption extends AnnotationBaseOption {
521 /** 自定义 Annotation 绘制函数 */
522 render: (container: IGroup, view: View, helpers: {
523 parsePosition: (position: [string | number, string | number] | Datum) => Point;
524 }) => void;
525}
526/**
527 * Html Annotation 配置
528 */
529export interface HtmlAnnotationOption extends PointPositionBaseOption {
530 /** 容器元素 */
531 container?: string | HTMLElement;
532 /** 自定义 HTML DOM 元素 */
533 html: string | HTMLElement | ((container: HTMLElement, view: View) => void | string | HTMLElement);
534 /** X 方向对齐 */
535 alignX?: 'left' | 'middle' | 'right';
536 /** Y 方向对齐 */
537 alignY?: 'top' | 'middle' | 'bottom';
538 /** X 方向偏移 */
539 offsetX?: number;
540 /** Y 方向偏移 */
541 offsetY?: number;
542}
543/** Tooltip 内容框的 css 样式定义 */
544export interface TooltipDomStyles {
545 'g2-tooltip'?: LooseObject;
546 'g2-tooltip-title'?: LooseObject;
547 'g2-tooltip-list'?: LooseObject;
548 'g2-tooltip-list-item'?: LooseObject;
549 'g2-tooltip-marker'?: LooseObject;
550 'g2-tooltip-value'?: LooseObject;
551 'g2-tooltip-name'?: LooseObject;
552}
553/** 目前组件动画允许的参数配置 */
554export interface ComponentAnimateCfg {
555 /** 动画执行时间 */
556 readonly duration?: number;
557 /** 动画缓动函数 */
558 readonly easing?: string;
559 /** 动画延迟时间 */
560 readonly delay?: number;
561}
562/** 组件各个动画类型配置 */
563export interface ComponentAnimateOption {
564 /** 初入场动画配置 */
565 appear?: ComponentAnimateCfg;
566 /** 更新动画配置 */
567 update?: ComponentAnimateCfg;
568 /** 更新后新入场的动画配置 */
569 enter?: ComponentAnimateCfg;
570 /** 离场动画配置 */
571 leave?: ComponentAnimateCfg;
572}
573/** 列定义配置项 */
574export interface ScaleOption extends ScaleConfig {
575 /** 声明度量类型。 */
576 type?: ScaleType;
577 /**
578 * 同步 scale
579 *
580 * @example
581 * ```ts
582 * chart.scale({
583 * x: { sync: true },
584 * y: { sync: true },
585 * x1: { sync: 'x1' },
586 * x2: { sync: 'x1' },
587 * });
588 * ```
589 *
590 * 通过以上配置,我们会分别对 xy 两个字段,x1x2 两个字段进行同步度量操作。
591 */
592 sync?: boolean | string;
593 /**
594 * 只对 type: 'time' 的 scale 生效,强制显示最后的日期 tick
595 */
596 showLast?: boolean;
597 /**
598 * 用于声明使用数据记录中的哪些字段来组成一条数据的唯一 id(如有多个字段,则使用 '-' 连接)。
599 * 数据 id 用于标识 Element 图形元素,应用于 Geometry 中的图形元素 Element 更新。
600 * 默认 G2 内部会有一套 ID 生成规则,如果不能满足用户需求,用户既可以使用该属性配置 id
601 * @example
602 *
603 * 下面的例子中,声明了将 'x' 和 'y' 字段的数值来作为每条数据记录的 id,即下面数据两条数据的 id 分别为:'1-23' 和 '2-2'。
604 * ```ts
605 * const data = [
606 * { x: 1, y: 23, z: 'a' },
607 * { x: 2, y: 2, z: 'b' },
608 * ];
609 *
610 * chart.scale({
611 * x: { key: true },
612 * y: { key: true },
613 * });
614 * ```
615 */
616 key?: boolean;
617}
618/** Geometry 动画参数配置。geometry.animate() */
619export interface AnimateOption {
620 /** chart 初始化渲染时的入场动画,false/null 表示关闭入场动画。 */
621 appear?: AnimateCfg | false | null;
622 /** chart 发生更新时,新增元素的入场动画,false/null 表示关闭入场动画。 */
623 enter?: AnimateCfg | false | null;
624 /** 更新动画配置,false/null 表示关闭更新动画。 */
625 update?: AnimateCfg | false | null;
626 /** 销毁动画配置,false/null 表示关闭销毁动画。 */
627 leave?: AnimateCfg | false | null;
628}
629/** 用于配置项式声明交互行为 */
630export interface InteractionOption {
631 /** 交互名称 */
632 type: string;
633 /** 交互配置 */
634 cfg?: LooseObject;
635}
636/** 用于配置项式的 Geometry 创建方式 */
637export interface GeometryOption {
638 /** Geometry 的类型。 */
639 type?: 'interval' | 'line' | 'path' | 'point' | 'area' | 'polygon' | 'schema' | 'edge' | 'heatmap' | string;
640 /** position 通道映射规则,对应 `geometry.position()`。 */
641 position?: string | AttributeOption;
642 /** color 通道映射规则,对应 `geometry.color()`。 */
643 color?: string | AttributeOption;
644 /** shape 通道映射规则,对应 `geometry.shape()`。 */
645 shape?: string | AttributeOption;
646 /** size 通道映射规则,对应 `geometry.size()`。 */
647 size?: number | string | AttributeOption;
648 /** adjust 数据调整方式,对应 `geometry.adjust()`。 */
649 adjust?: string | string[] | AdjustOption | AdjustOption[];
650 /** style 样式配置,对应 `geometry.size()`。 */
651 style?: StyleOption | LooseObject;
652 /** tooltip 配置,对应 `geometry.tooltip()`。 */
653 tooltip?: GeometryTooltipOption | boolean | string;
654 /** Geometry 动画配置,对应 `geometry.animate()`。 */
655 animate?: AnimateOption | boolean;
656 /** Label 配置,对应 `geometry.label()`。 */
657 label?: LabelOption | false | string;
658 /** state 样式配置,对应 `geometry.state()`。 */
659 state?: StateOption;
660 /** 其他配置 */
661 cfg?: {
662 /** 是否对数据进行排序 */
663 sortable?: boolean;
664 /** 是否可见 */
665 visible?: boolean;
666 /** 是否连接空值,仅对 'line', 'area' 和 'path' 生效 */
667 connectNulls?: boolean;
668 };
669}
670/** 用于配置型式的 View 声明方式 */
671export interface ViewOption {
672 /** view 的唯一表示 ID */
673 readonly id?: string;
674 /** view 的绘制范围,起始点为左上角。 */
675 readonly region?: Region;
676 /**
677 * 设置图表的内边距,使用方式参考 CSS 盒模型。
678 * 下图黄色区域即为 padding 的范围。
679 * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*pYwiQrdXGJ8AAAAAAAAAAABkARQnAQ)
680 *
681 * @example
682 * 1. padding: 20
683 * 2. padding: [ 10, 30, 30 ]
684 */
685 readonly padding?: ViewPadding;
686 /** 设置主题。 */
687 readonly theme?: LooseObject | string;
688 /** 是否可见。 */
689 readonly visible?: boolean;
690 /**
691 * 图表组件、图形映射等相关的配置。
692 */
693 readonly options?: Options;
694}
695/** Chart 构造方法的入参 */
696export interface ChartCfg extends Omit<ViewCfg, 'parent' | 'canvas' | 'foregroundGroup' | 'middleGroup' | 'backgroundGroup' | 'region'> {
697 /** 指定 chart 绘制的 DOM,可以传入 DOM id,也可以直接传入 dom 实例。 */
698 readonly container: string | HTMLElement;
699 /** 图表宽度。 */
700 readonly width?: number;
701 /** 图表高度。 */
702 readonly height?: number;
703 /**
704 * 图表是否自适应容器宽高,默认为 false,用户需要手动设置 width 和 height。
705 * 当 `autoFit: true` 时,会自动取图表容器的宽高,如果用户设置了 height,那么会以用户设置的 height 为准。
706 */
707 readonly autoFit?: boolean;
708 /** 指定渲染引擎,默认使用 canvas。 */
709 readonly renderer?: Renderer;
710 /** 设置设备像素比,默认取浏览器的值 `window.devicePixelRatio`。 */
711 readonly pixelRatio?: number;
712 /**
713 * 是否开启局部刷新,默认开启。
714 */
715 readonly localRefresh?: boolean;
716 /** 支持 CSS transform,开启后图表的交互以及事件将在页面设置了 css transform 属性时生效,默认关闭。 */
717 readonly supportCSSTransform?: boolean;
718 /**
719 * 配置图表默认交互,仅支持字符串形式。
720 */
721 readonly defaultInteractions?: string[];
722}
723export declare type SyncViewPaddingFn = (chart: View, views: View[], PC: PaddingCalCtor) => void;
724/** View 构造参数 */
725export interface ViewCfg {
726 /** View id,可以由外部传入 */
727 readonly id?: string;
728 /** 当前 view 的父级 view。 */
729 readonly parent: View;
730 /** canvas 实例。 */
731 readonly canvas: ICanvas;
732 /** 前景层 */
733 readonly foregroundGroup: IGroup;
734 /** 中间层 */
735 readonly middleGroup: IGroup;
736 /** 背景层 */
737 readonly backgroundGroup: IGroup;
738 /** view 的绘制范围 */
739 readonly region?: Region;
740 /** 是否对超出坐标系范围的 Geometry 进行剪切 */
741 readonly limitInPlot?: boolean;
742 /**
743 * 设置图表的内边距,使用方式参考 CSS 盒模型。
744 * 下图黄色区域即为 padding 的范围。
745 * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*pYwiQrdXGJ8AAAAAAAAAAABkARQnAQ)
746 *
747 * @example
748 * 1. padding: 20
749 * 2. padding: [ 10, 30, 30 ]
750 */
751 readonly padding?: ViewPadding;
752 /**
753 * 设置图表的内边距在padding的基础上增加appendPading的调整。
754 * @example
755 * 1. padding: 20
756 * 2. padding: [ 10, 30, 30 ]
757 */
758 readonly appendPadding?: ViewAppendPadding;
759 /**
760 * 是否同步子 view 的 padding,可以是 boolean / SyncViewPaddingFn
761 * 比如:
762 * view1 的 padding 10
763 * view2 的 padding 20
764 * 那么两个子 view 的 padding 统一变成最大的 20.
765 *
766 * 如果是 Funcion,则使用自定义的方式去计算子 view 的 padding,这个函数中去修改所有的 views autoPadding 值
767 */
768 readonly syncViewPadding?: boolean | SyncViewPaddingFn;
769 /** 设置 view 实例主题。 */
770 readonly theme?: LooseObject | string;
771 /**
772 * 图表组件、图形映射等相关的配置。
773 */
774 readonly options?: Options;
775 /** 是否可见。 */
776 readonly visible?: boolean;
777}
778/**
779 * @ignore
780 * 组件及布局的信息
781 */
782export interface ComponentOption {
783 readonly id?: string;
784 readonly component: GroupComponent | HtmlComponent;
785 readonly layer: LAYER;
786 direction: DIRECTION;
787 readonly type: COMPONENT_TYPE;
788 readonly extra?: any;
789}
790/** Legend marker 的配置结构 */
791export interface MarkerCfg extends LegendMarkerCfg {
792 /** 配置图例 marker 的 symbol 形状。 */
793 symbol?: Marker | MarkerCallback;
794 style?: ShapeAttrs | ((style: ShapeAttrs) => ShapeAttrs);
795}
796/** Legend item 各个图例项的数据结构 */
797export interface LegendItem {
798 /**
799 * 唯一值,用于动画或者查找
800 */
801 id?: string;
802 /** 名称 */
803 name: string;
804 /** 值 */
805 value: any;
806 /** 图形标记 */
807 marker?: MarkerCfg;
808 /** 初始是否处于未激活状态 */
809 unchecked?: boolean;
810}
811export interface G2LegendTitleCfg extends LegendTitleCfg {
812 /** title 文本显示内容 */
813 text?: string;
814}
815/**
816 * 图例项配置
817 */
818export interface LegendCfg {
819 /**
820 * 是否为自定义图例,当该属性为 true 时,需要声明 items 属性。
821 */
822 readonly custom?: boolean;
823 /**
824 * 布局方式: horizontal,vertical
825 */
826 layout?: 'horizontal' | 'vertical';
827 /**
828 * 图例标题配置,默认不展示。
829 *
830 * 属性结构如下:
831 *
832 * ```ts
833 * {
834 * spacing?: number; // 标题同图例项的间距
835 * style?: ShapeAttrs; // 文本样式配置项
836 * }
837 * ```
838 *
839 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L639|LegendTitleCfg},
840 */
841 title?: G2LegendTitleCfg;
842 /**
843 * 背景框配置项。
844 *
845 * 属性结构如下:
846 *
847 * ```ts
848 * {
849 * padding?: number | number[]; // 背景的留白
850 * style?: ShapeAttrs; // 背景样式配置项
851 * }
852 * ```
853 *
854 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L652|LegendBackgroundCfg}
855 */
856 background?: LegendBackgroundCfg;
857 /** 图例的位置。 */
858 position?: 'top' | 'top-left' | 'top-right' | 'right' | 'right-top' | 'right-bottom' | 'left' | 'left-top' | 'left-bottom' | 'bottom' | 'bottom-left' | 'bottom-right';
859 /** 动画开关,默认关闭。 */
860 animate?: boolean;
861 /** 动画参数配置,当且仅当 `animate` 属性为 true,即动画开启时生效。 */
862 animateOption?: ComponentAnimateOption;
863 /**
864 * **分类图例适用**,控制图例项水平方向的间距。
865 */
866 itemSpacing?: number;
867 /**
868 * **分类图例适用**,控制图例项垂直方向的间距。
869 */
870 itemMarginBottom?: number;
871 /**
872 * **分类图例适用**,图例项的最大宽度,超出则自动缩略。
873 * `maxItemWidth` 可以是像素值;
874 * 也可以是相对值(取 0 到 1 范围的数值),代表占图表宽度的多少
875 */
876 maxItemWidth?: number;
877 /**
878 * **分类图例适用**,图例项的宽度, 默认为 null,自动计算。
879 */
880 itemWidth?: number;
881 /**
882 * **分类图例适用**,图例的高度,默认为 null。
883 */
884 itemHeight?: number;
885 /**
886 * **分类图例适用**,图例项 name 文本的配置。
887 * 属性结构如下:
888 *
889 * ```ts
890 * {
891 * spacing?: number; // 图例项 name 同后面 value 的间距
892 * formatter?: (text: string, item: ListItem, index: number) => any; // 格式化文本函数
893 * style?: ShapeAttrs; // 文本配置项
894 * }
895 * ```
896 *
897 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L665|LegendItemNameCfg},
898 */
899 itemName?: LegendItemNameCfg;
900 /**
901 * **分类图例适用**,图例项 value 附加值的配置项。
902 * 属性结构如下:
903 *
904 * ```ts
905 * {
906 * alignRight?: boolean; // 是否右对齐,默认为 false,仅当设置图例项宽度时生效
907 * formatter?: (text: string, item: ListItem, index: number) => any; // 格式化文本函数
908 * style?: ShapeAttrs; // 图例项附加值的配置
909 * }
910 * ```
911 *
912 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L685|LegendItemValueCfg},
913 */
914 itemValue?: LegendItemValueCfg;
915 /**
916 * **分类图例适用**,图例项最大宽度设置。
917 */
918 maxWidth?: number;
919 /**
920 * **分类图例适用**,图例项最大高度设置。
921 */
922 maxHeight?: number;
923 /**
924 * **分类图例适用**,图例项的 marker 图标的配置。
925 */
926 marker?: MarkerCfg;
927 /**
928 * **适用于分类图例**,当图例项过多时是否进行分页。
929 */
930 flipPage?: boolean;
931 /**
932 * **适用于分类图例**,图例分页器的样式设置。
933 */
934 pageNavigator?: LegendPageNavigatorCfg;
935 /**
936 * **分类图例适用**,用户自己配置图例项的内容。
937 */
938 items?: LegendItem[];
939 /**
940 * **分类图例适用**,是否将图例项逆序展示。
941 */
942 reversed?: boolean;
943 /**
944 * **连续图例适用**,选择范围的最小值。
945 */
946 min?: number;
947 /**
948 * **连续图例适用**,选择范围的最大值。
949 */
950 max?: number;
951 /**
952 * **连续图例适用**,选择的值。
953 */
954 value?: number[];
955 /**
956 * **连续图例适用**,选择范围的色块样式配置项。
957 * 属性结构如下:
958 *
959 * ```ts
960 * {
961 * style?: ShapeAttrs; // 选定范围的样式
962 * }
963 * ```
964 *
965 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L574|ContinueLegendTrackCfg}
966 */
967 track?: ContinueLegendTrackCfg;
968 /**
969 * **连续图例适用**,图例滑轨(背景)的样式配置项。
970 * 属性结构如下:
971 *
972 * ```ts
973 * {
974 * type?: string; // rail 的类型,color, size
975 * size?: number; // 滑轨的宽度
976 * defaultLength?: number; // 滑轨的默认长度,,当限制了 maxWidth,maxHeight 时,不会使用这个属性会自动计算长度
977 * style?: ShapeAttrs; // 滑轨的样式
978 * }
979 * ```
980 *
981 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L595|ContinueLegendRailCfg},
982 */
983 rail?: ContinueLegendRailCfg;
984 /**
985 * **连续图例适用**,文本的配置项。
986 * 属性结构如下:
987 *
988 * ```ts
989 * {
990 * // 文本同滑轨的对齐方式,有五种类型
991 * // rail : 同滑轨对齐,在滑轨的两端
992 * // top, bottom: 图例水平布局时有效
993 * // left, right: 图例垂直布局时有效
994 * align?: string;
995 * spacing?: number; // 文本同滑轨的距离
996 * style?: ShapeAttrs; // 文本样式
997 * }
998 * ```
999 *
1000 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L618|ContinueLegendLabelCfg}
1001 */
1002 label?: ContinueLegendLabelCfg;
1003 /**
1004 * **连续图例适用**,滑块的配置项。
1005 * 属性结构如下:
1006 *
1007 * ```ts
1008 * {
1009 * size?: number; // 滑块的大小
1010 * style?: ShapeAttrs; // 滑块的样式设置
1011 * }
1012 * ```
1013 *
1014 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L582|ContinueLegendTrackCfg},
1015 */
1016 handler?: ContinueLegendHandlerCfg;
1017 /**
1018 * **连续图例适用**,滑块是否可以滑动。
1019 */
1020 slidable?: boolean;
1021 /** 图例 x 方向的偏移。 */
1022 offsetX?: number;
1023 /** 图例 y 方向的偏移。 */
1024 offsetY?: number;
1025 /** 图例在四个方向的偏移量 */
1026 padding?: number[];
1027 /**
1028 * 图例高亮状态,false 表示默认置灰,无或 true 表示高亮
1029 */
1030 selected?: {
1031 [key: string]: boolean;
1032 };
1033}
1034/**
1035 * Tooltip Crosshairs 的文本数据结构。
1036 */
1037export interface TooltipCrosshairsText extends CrosshairTextCfg {
1038 /** crosshairs 文本内容 */
1039 content?: string;
1040}
1041/**
1042 * 辅助线文本回调函数
1043 * @param type 对应当前 crosshairs 的类型,值为 'x' 或者 'y'
1044 * @param defaultContent 对应当前 crosshairs 默认的文本内容
1045 * @param items 对应当前 tooltip 内容框中的数据
1046 * @param currentPoint 对应当前坐标点
1047 * @returns 返回当前 crosshairs 对应的辅助线文本配置
1048 */
1049export declare type TooltipCrosshairsTextCallback = (type: string, defaultContent: any, items: any[], currentPoint: Point) => TooltipCrosshairsText;
1050/** Tooltip crosshairs 配置结构 */
1051export interface TooltipCrosshairs {
1052 /**
1053 * crosshairs 的类型: `x` 表示 x 轴上的辅助线,`y` 表示 y 轴上的辅助项。
1054 * 以下是在不同坐标系下,crosshairs 各个类型的表现:
1055 *
1056 * | 坐标系 | type = 'x' | type = 'xy' | type = 'y' |
1057 * | ------------ | ------------- | ------------- |
1058 * | 直角坐标系 | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*jmUBQ4nbtXsAAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*RpWXT76ZSQgAAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*Xjl8TLIJLuUAAAAAAAAAAABkARQnAQ) |
1059 * | 极坐标 | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*zbMVSoKTyFsAAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*k5EYRJspET0AAAAAAAAAAABkARQnAQ) | ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*n_TKQpUaXWEAAAAAAAAAAABkARQnAQ) |
1060 */
1061 type?: 'x' | 'y' | 'xy';
1062 /**
1063 * 辅助线的样式配置。
1064 * 属性结构如下:
1065 *
1066 * ```ts
1067 * {
1068 * style?: ShapeAttrs; // 线的样式配置
1069 * }
1070 * ```
1071 *
1072 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L1177|CrosshairLineCfg}
1073 */
1074 line?: CrosshairLineCfg;
1075 /**
1076 * 辅助线文本配置,支持回调。
1077 */
1078 text?: TooltipCrosshairsText | TooltipCrosshairsTextCallback;
1079 /**
1080 * 辅助线文本背景配置。
1081 * 属性结构如下:
1082 *
1083 * ```ts
1084 * {
1085 * padding?: number | number[]; // 文本背景周围的留白
1086 * style?: ShapeAttrs; // 文本背景的样式
1087 * }
1088 * ```
1089 *
1090 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L1185|CrosshairTextBackgroundCfg}
1091 */
1092 textBackground?: CrosshairTextBackgroundCfg;
1093 /** 辅助线是否跟随鼠标移动,默认为 false,即定位到数据点 */
1094 follow?: boolean;
1095}
1096export declare type TooltipTitle = string | ((title: string, datum: Datum) => string);
1097export declare type TooltipItem = {
1098 /** 原始数据 */
1099 readonly data: Datum;
1100 /** 映射之后的数据 */
1101 readonly mappingData: Datum;
1102 /** tooltip item 中名称 */
1103 readonly name: string;
1104 /** tooltip item 中值 */
1105 readonly value: string | number;
1106 /** tooltip item 中颜色 */
1107 readonly color: string;
1108 /** tooltip item 中图标类型 */
1109 readonly marker: string;
1110};
1111/** chart.tooltip() 接口配置属性 */
1112export interface TooltipCfg {
1113 /**
1114 * 设置 tooltip 内容框是否跟随鼠标移动。
1115 * 默认为 true,跟随鼠标移动,false 则固定位置不随鼠标移动。
1116 */
1117 follow?: boolean;
1118 /** tooltip 是否允许鼠标滑入,默认为 false,不允许 */
1119 enterable?: boolean;
1120 /** tooltip 显示延迟(ms),默认为 16ms,建议在 enterable = true 的时候才设置 */
1121 showDelay?: number;
1122 /** 是否展示 tooltip 标题。 */
1123 showTitle?: boolean;
1124 /**
1125 * 设置 tooltip 的标题内容:如果值为数据字段名,则会展示数据中对应该字段的数值,如果数据中不存在该字段,则直接展示 title 值。
1126 * 同时支持传入方法,回调的方式返回字符串
1127 */
1128 title?: TooltipTitle;
1129 /** 设置 tooltip 的固定展示位置,相对于数据点。 */
1130 position?: 'top' | 'bottom' | 'left' | 'right';
1131 /** true 表示合并当前点对应的所有数据并展示,false 表示只展示离当前点最逼近的数据内容。 */
1132 shared?: boolean;
1133 /** 是否展示 crosshairs。 */
1134 showCrosshairs?: boolean;
1135 /** 配置 tooltip 的 crosshairs,当且仅当 `showCrosshairs` 为 true 时生效。 */
1136 crosshairs?: TooltipCrosshairs;
1137 /** 是否渲染 tooltipMarkers。 */
1138 showMarkers?: boolean;
1139 /** tooltipMarker 的样式配置。 */
1140 marker?: object;
1141 /** 是否展示 tooltip 内容框 */
1142 showContent?: boolean | ((datum: Datum) => boolean);
1143 /** 自定义 tooltip 的容器。 */
1144 container?: string | HTMLElement;
1145 /** 用于指定图例容器的模板,自定义模板时必须包含各个 dom 节点的 class。 */
1146 containerTpl?: string;
1147 /** 每项记录的默认模板,自定义模板时必须包含各个 dom 节点的 class。 */
1148 itemTpl?: string;
1149 /** 传入各个 dom 的样式。 */
1150 domStyles?: TooltipDomStyles;
1151 /** tooltip 偏移量。 */
1152 offset?: number;
1153 /** 是否将 tooltip items 逆序 */
1154 reversed?: boolean;
1155 /** 是否显示空值的 tooltip 项目 */
1156 showNil?: boolean;
1157 /** 在 tooltip 渲染之前,对最终的 items 进行自定义处理(比如排序、过滤、格式化等) */
1158 customItems?: (originalItems: TooltipItem[]) => TooltipItem[];
1159 /** 支持自定义模板 */
1160 customContent?: (title: string, data: any[]) => string | HTMLElement;
1161}
1162/** 坐标系配置 */
1163export interface CoordinateOption {
1164 /** 坐标系类型 */
1165 type?: 'polar' | 'theta' | 'rect' | 'cartesian' | 'helix';
1166 /** 坐标系配置项,目前常用于极坐标。 */
1167 cfg?: CoordinateCfg;
1168 /**
1169 * 坐标系变换操作:
1170 * 1. rotate 表示旋转,使用弧度制。
1171 * 2. scale 表示沿着 x 和 y 方向的缩放比率。
1172 * 3. reflect 表示沿 x 方向镜像或者沿 y 轴方向映射。
1173 * 4. transpose 表示 x,y 轴置换。
1174 */
1175 actions?: CoordinateActions[];
1176}
1177/** 极坐标系支持的配置属性 */
1178export interface CoordinateCfg {
1179 /**
1180 * 用于极坐标,配置起始弧度。
1181 */
1182 startAngle?: number;
1183 /**
1184 * 用于极坐标,配置结束弧度。
1185 */
1186 endAngle?: number;
1187 /**
1188 * 用于极坐标,配置极坐标半径,0 - 1 范围的数值。
1189 */
1190 radius?: number;
1191 /**
1192 * 用于极坐标,极坐标内半径,0 -1 范围的数值。
1193 */
1194 innerRadius?: number;
1195}
1196/** 坐标轴网格线的配置属性 */
1197export interface AxisGridCfg {
1198 /**
1199 * 线的样式。
1200 * 属性结构如下:
1201 *
1202 * ```ts
1203 * {
1204 * type?: string; // 栅格线的类型,'line' 或者 'circle'
1205 * style?: ShapeAttrs; // 栅格线的样式配置项
1206 * }
1207 * ```
1208 *
1209 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L407|GridLineCfg}
1210 */
1211 line?: GridLineCfg;
1212 /**
1213 * 两个栅格线间的填充色。
1214 */
1215 alternateColor?: string | string[];
1216 /**
1217 * 对于 circle 是否关闭 grid。
1218 */
1219 closed?: boolean;
1220 /**
1221 * 是否同刻度线对齐,如果值为 false,则会显示在两个刻度中间。
1222 * ![image](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*YX6fS4GTTvMAAAAAAAAAAABkARQnAQ)
1223 */
1224 alignTick?: boolean;
1225}
1226/** 坐标轴配置属性,chart.axis() */
1227export interface AxisCfg {
1228 /**
1229 * 是否渲染在画布顶层,防止部分图形中,需要将 axis 显示在图形上面,避免被图形遮挡
1230 */
1231 top?: boolean;
1232 /**
1233 * 适用于直角坐标系,设置坐标轴的位置。
1234 */
1235 position?: 'top' | 'bottom' | 'right' | 'left';
1236 /**
1237 * 坐标轴线的配置项,null 表示不展示。
1238 * 属性结构如下:
1239 *
1240 * ```ts
1241 * {
1242 * style?: ShapeAttrs; // 坐标轴线的样式配置项
1243 * }
1244 * ```
1245 *
1246 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L91|AxisLineCfg}
1247 */
1248 line?: AxisLineCfg | null;
1249 /**
1250 * 坐标轴刻度线线的配置项,null 表示不展示。
1251 * 属性结构如下:
1252 *
1253 * ```ts
1254 * {
1255 * style?: ShapeAttrs; // 坐标轴刻度线的样式配置项
1256 * alignTick?: boolean; // 是否同 tick 对齐
1257 * length?: number; // 长度
1258 * }
1259 * ```
1260 *
1261 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L103|AxisTickLineCfg}
1262 */
1263 tickLine?: AxisTickLineCfg | null;
1264 /**
1265 * 坐标轴子刻度线的配置项,null 表示不展示。
1266 * 属性结构如下:
1267 *
1268 * ```ts
1269 * {
1270 * style?: ShapeAttrs; // 坐标轴刻度线的样式配置项
1271 * count?: number; // 子刻度个数
1272 * length?: number; // 子刻度线长度
1273 * }
1274 * ```
1275 *
1276 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L169|AxisSubTickLineCfg}
1277 */
1278 subTickLine?: AxisSubTickLineCfg | null;
1279 /**
1280 * 标题的配置项,null 表示不展示。
1281 * 属性结构如下:
1282 *
1283 * ```ts
1284 * {
1285 * offset?: number; // 标题距离坐标轴的距离
1286 * style?: ShapeAttrs; // 标题文本配置项
1287 * autoRotate?: boolean; // 是否自动旋转
1288 * }
1289 * ```
1290 *
1291 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L191|AxisTitleCfg}
1292 */
1293 title?: AxisTitleCfg | null;
1294 /**
1295 * 文本标签的配置项,null 表示不展示。
1296 * 属性结构如下:
1297 *
1298 * ```ts
1299 * {
1300 * // 坐标轴文本的样式
1301 * style?: ShapeAttrs;
1302 * // label 的偏移量
1303 * offset?: number;
1304 * // 文本旋转角度
1305 * rotate?: number;
1306 * // 格式化函数
1307 * formatter?: (text: string, item: ListItem, index: number) => any;
1308 * // 是否自动旋转,默认 false
1309 * autoRotate?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string;
1310 * // 是否自动隐藏,默认 true
1311 * autoHide?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string;
1312 * // 是否自动省略,默认 false
1313 * autoEllipsis?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string;
1314 * }
1315 * ```
1316 *
1317 * 详见 {@link https://github.com/antvis/component/blob/81890719a431b3f9088e0c31c4d5d382ef0089df/src/types.ts#L127|AxisLabelCfg}
1318 */
1319 label?: AxisLabelCfg | null;
1320 /** 坐标轴网格线的配置项,null 表示不展示。 */
1321 grid?: AxisGridCfg | null;
1322 /** 动画开关,默认开启。 */
1323 animate?: boolean;
1324 /** 动画参数配置。 */
1325 animateOption?: ComponentAnimateOption;
1326 /** 标记坐标轴 label 的方向,左侧为 1,右侧为 -1。 */
1327 verticalFactor?: number;
1328 /**
1329 * 配置坐标轴垂直方向的最大限制长度,对文本自适应有很大影响。
1330 * 1. 可以直接设置像素值,如 100;
1331 * 2. 也可设置绝对值,如 0.2,如果是 x 轴,则相对于图表的高度,如果是 y 轴,则相对于图表的宽度
1332 *
1333 * 在 G2 中,x 轴的文本默认最大高度为图表高度的 1/2,y 轴的文本默认最大长度为图表宽度的 1/3
1334 */
1335 verticalLimitLength?: number;
1336}
1337export interface SliderCfg {
1338 /** slider 高度 */
1339 readonly height?: number;
1340 /** 滑块背景区域配置 */
1341 readonly trendCfg?: TrendCfg;
1342 /** 滑块背景样式 */
1343 readonly backgroundStyle?: any;
1344 /** 滑块前景样式 */
1345 readonly foregroundStyle?: any;
1346 /** 滑块两个操作块样式 */
1347 readonly handlerStyle?: any;
1348 /** 文本样式 */
1349 readonly textStyle?: any;
1350 /** 允许滑动位置的最小值 */
1351 readonly minLimit?: number;
1352 /** 允许滑动位置的最大值 */
1353 readonly maxLimit?: number;
1354 /** 滑块初始化的起始位置 */
1355 readonly start?: number;
1356 /** 滑块初始化的结束位置 */
1357 readonly end?: number;
1358 /** 布局的 padding */
1359 readonly padding?: number[];
1360 /** 滑块文本格式化函数 */
1361 formatter?: (val: any, datum: Datum, idx: number) => any;
1362}
1363export declare type EventCallback = (event: LooseObject) => void;
1364/**
1365 * todo: 事件名可穷举,后续需要补充
1366 * 事件配置项
1367 */
1368export interface EventCfg {
1369 [key: string]: EventCallback;
1370}
1371/**
1372 * 缩略轴的配置项
1373 */
1374export declare type SliderOption = SliderCfg | boolean;
1375/** 滚动条组件配置项 */
1376export interface ScrollbarCfg {
1377 /** 滚动条类型,默认 horizontal */
1378 type?: 'horizontal' | 'vertical';
1379 /** 宽度,在 vertical 下生效 */
1380 width?: number;
1381 /** 高度,在 horizontal 下生效 */
1382 height?: number;
1383 /** 可选 padding */
1384 padding?: Padding;
1385 /** 对应水平滚动条,为 X 轴每个分类字段的宽度;对于垂直滚动条,为 X 轴每个分类字段的高度 */
1386 categorySize?: number;
1387 /** 滚动的时候是否开启动画,默认跟随 view 中 animate 配置 */
1388 animate?: boolean;
1389 /** 主题样式设置, 暂不提供 hover 高亮滑块样式配置 */
1390 style?: {
1391 /** 滑道颜色 */
1392 trackColor?: string;
1393 /** 滑块颜色 */
1394 thumbColor?: string;
1395 /** 滑块高亮样式,对应主题的 hover.style.thumbColor */
1396 thumbHighlightColor?: string;
1397 lineCap?: string;
1398 };
1399}
1400/** 滚动条配置 */
1401export declare type ScrollbarOption = ScrollbarCfg | boolean;
1402/** 配置项声明式 */
1403export interface Options {
1404 /** 数据源配置。 */
1405 readonly data?: Data;
1406 /** 设置数据过滤条件,以 data 中的数据属性为 key。 */
1407 readonly filters?: Record<string, FilterCondition>;
1408 /** 坐标轴配置,以 data 中的数据属性为 key。 */
1409 readonly axes?: Record<string, AxisOption> | boolean;
1410 /** 图例配置,以 data 中的数据属性为 key。 */
1411 readonly legends?: AllLegendsOptions;
1412 /** 列定义配置,用于配置数值的类型等,以 data 中的数据属性为 key。 */
1413 readonly scales?: Record<string, ScaleOption>;
1414 /** Tooltip 配置。 */
1415 readonly tooltip?: TooltipOption;
1416 /** 坐标系配置。 */
1417 readonly coordinate?: CoordinateOption;
1418 /** 静态辅助元素声明。 */
1419 readonly annotations?: (ArcOption | RegionFilterOption | ImageOption | LineOption | TextOption | RegionOption | DataMarkerOption | DataRegionOption)[];
1420 /** Geometry 配置 */
1421 readonly geometries?: GeometryOption[];
1422 /** 开启/关闭动画,默认开启 */
1423 readonly animate?: boolean;
1424 /** 配置需要使用的交互行为 */
1425 readonly interactions?: InteractionOption[];
1426 /** 事件配置 */
1427 readonly events?: EventCfg;
1428 /** 缩略轴的配置 */
1429 readonly slider?: SliderOption;
1430 /** 滚动条配置 */
1431 readonly scrollbar?: ScrollbarOption;
1432 /** 子 View */
1433 readonly views?: ViewOption[];
1434 /** 分面 */
1435 readonly facets?: (RectCfg | MirrorCfg | CircleCfg | ListCfg | TreeCfg)[];
1436 /** 其他自定义的 option */
1437 readonly [name: string]: any;
1438}
1439/** 支持的 Marker 类型 */
1440export declare type Marker = 'circle' | 'square' | 'diamond' | 'triangle' | 'triangle-down' | 'hexagon' | 'bowtie' | 'cross' | 'tick' | 'plus' | 'hyphen' | 'line';
1441/** 自定义 Marker 的回调函数定义 */
1442export declare type MarkerCallback = (x: number, y: number, r: number) => PathCommand;
1443/** chart.tooltip() 参数类型 */
1444export declare type TooltipOption = TooltipCfg | boolean;
1445export declare type FilterCondition = (value: any, datum: Datum, idx?: number) => boolean;
1446/** chart.axis() 参数类型 */
1447export declare type AxisOption = AxisCfg | boolean;
1448/** chart.legend() 参数类型 */
1449export declare type LegendOption = LegendCfg | boolean;
1450/** Options 中 legends 的配置定义 */
1451export declare type AllLegendsOptions = LegendCfg | Record<string, LegendOption> | boolean;
1452/** G2 支持的度量类型 */
1453export declare type ScaleType = 'linear' | 'cat' | 'category' | 'identity' | 'log' | 'pow' | 'time' | 'timeCat' | 'quantize' | 'quantile';
1454export declare type CoordinateRotate = ['rotate', number];
1455export declare type CoordinateReflect = ['reflect', 'x' | 'y'];
1456export declare type CoordinateScale = ['scale', number, number];
1457export declare type CoordinateTranspose = ['transpose'];
1458/** 坐标系支持的 action 配置 */
1459export declare type CoordinateActions = CoordinateRotate | CoordinateReflect | CoordinateScale | CoordinateTranspose;
1460export declare type FacetCtor = new (view: View, cfg: any) => Facet;
1461export interface Condition {
1462 readonly field: string;
1463 readonly value: any;
1464 readonly values: any[];
1465}
1466export declare type FacetDataFilter = (data: Datum[]) => boolean;
1467/**
1468 * 默认的基础配置
1469 */
1470export interface FacetCfg<D> {
1471 /** 布局类型。 */
1472 readonly type?: string;
1473 /** view 创建回调。 */
1474 readonly eachView: (innerView: View, facet?: D) => any;
1475 /** facet view padding。 */
1476 readonly padding?: ViewPadding;
1477 /** 是否显示标题。 */
1478 readonly showTitle?: boolean;
1479 /** facet 数据划分维度。 */
1480 readonly fields: string[];
1481}
1482/**
1483 * Facet title 配置项
1484 */
1485export interface FacetTitle {
1486 /** x 方向偏移。 */
1487 readonly offsetX?: number;
1488 /** y 方向偏移。 */
1489 readonly offsetY?: number;
1490 /** 文本样式。 */
1491 readonly style?: object;
1492 readonly formatter?: (val: any) => any;
1493}
1494/**
1495 * 分面数据
1496 */
1497export interface FacetData {
1498 /** 分面类型。 */
1499 readonly type: string;
1500 /** 当前分面子 view 的数据。 */
1501 readonly data: object[];
1502 /** 当前分面子 view 的范围。 */
1503 readonly region: Region;
1504 /** 当前分面子 view 的 padding。 */
1505 readonly padding?: number;
1506 /** 当前 facet 对应生成的 view。 */
1507 view?: View;
1508 /** 分面行字段。 */
1509 readonly rowField: string;
1510 /** 分面列字段。 */
1511 readonly columnField: string;
1512 /** 当前行分面的枚举值。 */
1513 readonly rowValue: string;
1514 /** 当前列分面的枚举值。 */
1515 readonly columnValue: string;
1516 /** 当前行索引。 */
1517 readonly rowIndex: number;
1518 /** 当前列索引。 */
1519 readonly columnIndex: number;
1520 /** 当前行字段的枚举值长度。 */
1521 readonly rowValuesLength: number;
1522 /** 当前列字段的枚举值长度。 */
1523 readonly columnValuesLength: number;
1524}
1525/** rect 分面类型配置 */
1526export interface RectCfg extends FacetCfg<RectData> {
1527 /** 行标题的样式。 */
1528 readonly columnTitle?: FacetTitle;
1529 /** 列标题的样式。 */
1530 readonly rowTitle?: FacetTitle;
1531}
1532export interface RectData extends FacetData {
1533}
1534/** mirror 分面类型配置 */
1535export interface MirrorCfg extends FacetCfg<MirrorData> {
1536 /** 是否转置。 */
1537 readonly transpose?: boolean;
1538 /** 标题样式。 */
1539 readonly title?: FacetTitle;
1540}
1541export interface MirrorData extends FacetData {
1542}
1543/** list 分面类型配置 */
1544export interface ListCfg extends FacetCfg<ListData> {
1545 /** 指定每行可显示分面的个数,超出时会自动换行。 */
1546 readonly cols?: number;
1547 /** 每个分面标题配置。 */
1548 readonly title?: FacetTitle;
1549}
1550export interface ListData extends FacetData {
1551 readonly total: number;
1552}
1553/** matrix 分面类型配置 */
1554export interface MatrixCfg extends FacetCfg<MirrorData> {
1555 /** 列标题的样式 */
1556 readonly columnTitle?: FacetTitle;
1557 /** 列标题的样式 */
1558 readonly rowTitle?: FacetTitle;
1559}
1560export interface MatrixData extends FacetData {
1561}
1562/** circle 分面类型配置 */
1563export interface CircleCfg extends FacetCfg<CircleData> {
1564 /** 分面标题配置。 */
1565 readonly title?: FacetTitle;
1566}
1567export interface CircleData extends FacetData {
1568}
1569export interface Line {
1570 readonly style?: ShapeAttrs;
1571 readonly smooth?: boolean;
1572}
1573/** tree 分面类型配置 */
1574export interface TreeCfg extends FacetCfg<TreeData> {
1575 readonly line?: Line;
1576 readonly title?: FacetTitle;
1577}
1578export interface TreeData extends FacetData {
1579 children?: TreeData[];
1580 originColIndex?: number;
1581}
1582/**
1583 * facet object map
1584 */
1585export interface FacetCfgMap {
1586 /** rect 类型分面配置 */
1587 readonly rect: RectCfg;
1588 /** mirror 类型分面配置 */
1589 readonly mirror: MirrorCfg;
1590 /** list 类型分面配置 */
1591 readonly list: ListCfg;
1592 /** matrix 类型分面配置 */
1593 readonly matrix: MatrixCfg;
1594 /** circle 类型分面配置 */
1595 readonly circle: CircleCfg;
1596 /** tree 类型分面配置 */
1597 readonly tree: TreeCfg;
1598}
1599export interface StyleSheet {
1600 /** 背景色 */
1601 backgroundColor?: string;
1602 /** 主题色 */
1603 brandColor?: string;
1604 /** 辅助色 */
1605 subColor?: string;
1606 /** 分类色板 1,在数据量小于等于 10 时使用 */
1607 paletteQualitative10?: string[];
1608 /** 分类色板 2,在数据量大于 10 时使用 */
1609 paletteQualitative20?: string[];
1610 /** 语义色 */
1611 paletteSemanticRed?: string;
1612 /** 语义色 */
1613 paletteSemanticGreen?: string;
1614 /** 语义色 */
1615 paletteSemanticYellow?: string;
1616 /** (单色)顺序色板 */
1617 paletteSequence?: string[];
1618 /** 字体 */
1619 fontFamily?: string;
1620 /** 坐标轴线颜色 */
1621 axisLineBorderColor?: string;
1622 /** 坐标轴线粗细 */
1623 axisLineBorder?: number;
1624 /** 坐标轴线 lineDash 设置 */
1625 axisLineDash?: number[];
1626 /** 坐标轴标题颜色 */
1627 axisTitleTextFillColor?: string;
1628 /** 坐标轴标题文本字体大小 */
1629 axisTitleTextFontSize?: number;
1630 /** 坐标轴标题文本行高 */
1631 axisTitleTextLineHeight?: number;
1632 /** 坐标轴标题文本字体粗细 */
1633 axisTitleTextFontWeight?: number | string;
1634 /** 坐标轴标题距离坐标轴文本的间距 */
1635 axisTitleSpacing?: number;
1636 /** 坐标轴刻度线颜色 */
1637 axisTickLineBorderColor?: string;
1638 /** 坐标轴刻度线长度 */
1639 axisTickLineLength?: number;
1640 /** 坐标轴刻度线粗细 */
1641 axisTickLineBorder?: number;
1642 /** 坐标轴次刻度线颜色 */
1643 axisSubTickLineBorderColor?: string;
1644 /** 坐标轴次刻度线长度 */
1645 axisSubTickLineLength?: number;
1646 /** 坐标轴次刻度线粗细 */
1647 axisSubTickLineBorder?: number;
1648 /** 坐标轴刻度文本颜色 */
1649 axisLabelFillColor?: string;
1650 /** 坐标轴刻度文本字体大小 */
1651 axisLabelFontSize?: number;
1652 /** 坐标轴刻度文本行高 */
1653 axisLabelLineHeight?: number;
1654 /** 坐标轴刻度文本字体粗细 */
1655 axisLabelFontWeight?: number | string;
1656 /** 坐标轴刻度文本距离坐标轴线的间距 */
1657 axisLabelOffset: number;
1658 /** 坐标轴网格线颜色 */
1659 axisGridBorderColor?: string;
1660 /** 坐标轴网格线粗细 */
1661 axisGridBorder?: number;
1662 /** 坐标轴网格线虚线设置 */
1663 axisGridLineDash?: number[];
1664 /** 图例标题颜色 */
1665 legendTitleTextFillColor?: string;
1666 /** 图例标题文本字体大小 */
1667 legendTitleTextFontSize?: number;
1668 /** 图例标题文本行高 */
1669 legendTitleTextLineHeight?: number;
1670 /** 图例标题文本字体粗细 */
1671 legendTitleTextFontWeight?: number | string;
1672 /** 图例 marker 颜色 */
1673 legendMarkerColor?: string;
1674 /** 图例 marker 距离图例文本的间距 */
1675 legendMarkerSpacing?: number;
1676 /** 图例 marker 默认半径大小 */
1677 legendMarkerSize?: number;
1678 /** 图例 'circle' marker 半径 */
1679 legendCircleMarkerSize?: number;
1680 /** 图例 'square' marker 半径 */
1681 legendSquareMarkerSize?: number;
1682 /** 图例 'line' marker 半径 */
1683 legendLineMarkerSize?: number;
1684 /** 图例项文本颜色 */
1685 legendItemNameFillColor?: string;
1686 /** 图例项文本字体大小 */
1687 legendItemNameFontSize?: number;
1688 /** 图例项文本行高 */
1689 legendItemNameLineHeight?: number;
1690 /** 图例项粗细 */
1691 legendItemNameFontWeight?: number | string;
1692 /** 图例项之间的水平间距 */
1693 legendItemSpacing?: number;
1694 /** 图例项垂直方向的间隔 */
1695 legendItemMarginBottom?: number;
1696 /** 图例与图表绘图区域的偏移距离 */
1697 legendPadding?: number[];
1698 /** 水平布局的图例与绘图区域偏移距离 */
1699 legendHorizontalPadding?: number[];
1700 /** 垂直布局的图例与绘图区域偏移距离 */
1701 legendVerticalPadding?: number[];
1702 /** 图例分页器 marker 大小 */
1703 legendPageNavigatorMarkerSize: number;
1704 /** 图例分页器 marker 非激活状态填充色 */
1705 legendPageNavigatorMarkerInactiveFillColor: string;
1706 /** 图例分页器 marker 非激活状态填充色透明度 */
1707 legendPageNavigatorMarkerInactiveFillOpacity: number;
1708 /** 图例分页器 marker 填充色 */
1709 legendPageNavigatorMarkerFillColor: string;
1710 /** 图例分页器 marker 填充色透明度 */
1711 legendPageNavigatorMarkerFillOpacity: number;
1712 /** 图例分页器文本颜色 */
1713 legendPageNavigatorTextFillColor: string;
1714 /** 图例分页器文本字体大小 */
1715 legendPageNavigatorTextFontSize: number;
1716 /** 连续图例滑块填充色 */
1717 sliderRailFillColor?: string;
1718 /** 连续图例滑块边框粗细 */
1719 sliderRailBorder?: number;
1720 /** 连续图例滑块边框颜色 */
1721 sliderRailBorderColor?: string;
1722 /** 连续图例滑块宽度 */
1723 sliderRailWidth?: number;
1724 /** 连续图例滑块高度 */
1725 sliderRailHeight?: number;
1726 /** 连续图例文本颜色 */
1727 sliderLabelTextFillColor?: string;
1728 /** 连续图例文本字体大小 */
1729 sliderLabelTextFontSize?: number;
1730 /** 连续图例文本行高 */
1731 sliderLabelTextLineHeight?: number;
1732 /** 连续图例文本字体粗细 */
1733 sliderLabelTextFontWeight?: number | string;
1734 /** 连续图例滑块颜色 */
1735 sliderHandlerFillColor?: string;
1736 /** 连续图例滑块宽度 */
1737 sliderHandlerWidth?: number;
1738 /** 连续图例滑块高度 */
1739 sliderHandlerHeight?: number;
1740 /** 连续图例滑块边框粗细 */
1741 sliderHandlerBorder?: number;
1742 /** 连续图例滑块边框颜色 */
1743 sliderHandlerBorderColor?: string;
1744 /** arc 图形标注描边颜色 */
1745 annotationArcBorderColor?: string;
1746 /** arc 图形标注粗细 */
1747 annotationArcBorder?: number;
1748 /** line 图形标注颜色 */
1749 annotationLineBorderColor?: string;
1750 /** line 图形标注粗细 */
1751 annotationLineBorder?: number;
1752 /** lube 图形标注的虚线间隔 */
1753 annotationLineDash?: number[];
1754 /** text 图形标注文本颜色 */
1755 annotationTextFillColor?: string;
1756 /** text 图形标注文本字体大小 */
1757 annotationTextFontSize?: number;
1758 /** text 图形标注文本行高 */
1759 annotationTextLineHeight?: number;
1760 /** text 图形标注文本字体粗细 */
1761 annotationTextFontWeight?: number | string;
1762 /** text 图形标注文本边框颜色 */
1763 annotationTextBorderColor?: string;
1764 /** text 图形标注文本边框粗细 */
1765 annotationTextBorder?: number;
1766 /** region 图形标注填充颜色 */
1767 annotationRegionFillColor?: string;
1768 /** region 图形标注填充颜色透明色 */
1769 annotationRegionFillOpacity?: number;
1770 /** region 图形标注描边粗细 */
1771 annotationRegionBorder?: number;
1772 /** region 图形标注描边颜色 */
1773 annotationRegionBorderColor?: string;
1774 /** dataMarker 图形标注的连接线长度 */
1775 annotationDataMarkerLineLength?: number;
1776 /** tooltip crosshairs 辅助线颜色 */
1777 tooltipCrosshairsBorderColor?: string;
1778 /** tooltip crosshairs 辅助线粗细 */
1779 tooltipCrosshairsBorder?: number;
1780 /** tooltip crosshairs 辅助线虚线间隔 */
1781 tooltipCrosshairsLineDash?: number[];
1782 /** tooltip 内容框背景色 */
1783 tooltipContainerFillColor?: string;
1784 /** tooltip 内容框背景透明度 */
1785 tooltipContainerFillOpacity?: number;
1786 /** tooltip 内容框阴影 */
1787 tooltipContainerShadow?: string;
1788 /** tooltip 内容框圆角 */
1789 tooltipContainerBorderRadius?: number;
1790 /** tooltip 文本颜色 */
1791 tooltipTextFillColor?: string;
1792 /** tooltip 文本字体大小 */
1793 tooltipTextFontSize?: number;
1794 /** tooltip 文本行高 */
1795 tooltipTextLineHeight?: number;
1796 /** tooltip 文本字体粗细 */
1797 tooltipTextFontWeight?: number | string;
1798 /** Geometry label 文本颜色 */
1799 labelFillColor?: string;
1800 /** Geometry label 暗色文本颜色 */
1801 labelFillColorDark?: string;
1802 /** Geometry label 亮色文本颜色 */
1803 labelFillColorLight?: string;
1804 /** Geometry label 文本字体大小 */
1805 labelFontSize?: number;
1806 /** Geometry label 文本行高 */
1807 labelLineHeight?: number;
1808 /** Geometry label 文本字体粗细 */
1809 labelFontWeight?: number | string;
1810 /** Geometry label 文本描边颜色 */
1811 labelBorderColor?: string;
1812 /** Geometry label 文本描边粗细 */
1813 labelBorder?: number;
1814 /** Geometry innerLabel 文本颜色 */
1815 innerLabelFillColor?: string;
1816 /** Geometry innerLabel 文本字体大小 */
1817 innerLabelFontSize?: number;
1818 /** Geometry innerLabel 文本行高 */
1819 innerLabelLineHeight?: number;
1820 /** Geometry innerLabel 文本字体粗细 */
1821 innerLabelFontWeight?: number | string;
1822 /** Geometry innerLabel 文本描边颜色 */
1823 innerLabelBorderColor?: string;
1824 /** Geometry innerLabel 文本描边粗细 */
1825 innerLabelBorder?: number;
1826 /** Geometry overflowLabel 文本颜色 */
1827 overflowLabelFillColor?: string;
1828 /** Geometry overflowLabel 暗色文本颜色 */
1829 overflowLabelFillColorDark?: string;
1830 /** Geometry overflowLabel 亮色文本颜色 */
1831 overflowLabelFillColorLight?: string;
1832 /** Geometry overflowLabel 文本字体大小 */
1833 overflowLabelFontSize?: number;
1834 /** Geometry overflowLabel 文本行高 */
1835 overflowLabelLineHeight?: number;
1836 /** Geometry overflowLabel 文本字体粗细 */
1837 overflowLabelFontWeight?: number | string;
1838 /** Geometry overflowLabel 文本描边颜色 */
1839 overflowLabelBorderColor?: string;
1840 /** Geometry overflowLabel 文本描边粗细 */
1841 overflowLabelBorder?: number;
1842 /** Geometry label 文本连接线粗细 */
1843 labelLineBorder?: number;
1844 /** Geometry label 文本连接线颜色 */
1845 labelLineBorderColor?: string;
1846 /** slider 滑道高度 */
1847 cSliderRailHieght?: number;
1848 /** slider 滑道背景色 */
1849 cSliderBackgroundFillColor?: string;
1850 /** slider 滑道背景色透明度 */
1851 cSliderBackgroundFillOpacity?: number;
1852 /** slider 滑道前景色 */
1853 cSliderForegroundFillColor?: string;
1854 /** slider 滑道前景色透明度 */
1855 cSliderForegroundFillOpacity?: number;
1856 /** slider 手柄高度 */
1857 cSliderHandlerHeight?: number;
1858 /** Slider 手柄宽度 */
1859 cSliderHandlerWidth?: number;
1860 /** Slider 手柄背景色 */
1861 cSliderHandlerFillColor?: string;
1862 /** Slider 手柄背景色透明度 */
1863 cSliderHandlerFillOpacity?: number;
1864 /** Slider 手柄高亮背景色 */
1865 cSliderHandlerHighlightFillColor?: string;
1866 /** Slider 手柄边框色 */
1867 cSliderHandlerBorderColor?: string;
1868 /** Slider 手柄边框粗细 */
1869 cSliderHandlerBorder?: number;
1870 /** Slider 手柄边框圆角 */
1871 cSliderHandlerBorderRadius?: number;
1872 /** Slider 字体标签颜色 */
1873 cSliderTextFillColor?: string;
1874 /** Slider 字体标签透明度 */
1875 cSliderTextFillOpacity?: number;
1876 /** Slider 字体标签大小 */
1877 cSliderTextFontSize?: number;
1878 /** Slider 字体标签行高 */
1879 cSliderTextLineHeight?: number;
1880 /** Slider 字体标签字重 */
1881 cSliderTextFontWeight?: number | string;
1882 /** Slider 字体标签描边色 */
1883 cSliderTextBorderColor?: string;
1884 /** Slider 字体标签描边粗细 */
1885 cSliderTextBorder?: number;
1886 /** 滚动条 滚道填充色 */
1887 scrollbarTrackFillColor?: string;
1888 /** 滚动条 滑块填充色 */
1889 scrollbarThumbFillColor?: string;
1890 /** 滚动条 滑块高亮填充色 */
1891 scrollbarThumbHighlightFillColor?: string;
1892 /** 点图的大小范围 */
1893 pointSizeRange?: [number, number];
1894 /** 点图填充颜色 */
1895 pointFillColor?: string;
1896 /** 点图填充颜色透明度 */
1897 pointFillOpacity?: number;
1898 /** 点图大小 */
1899 pointSize?: number;
1900 /** 点图描边粗细 */
1901 pointBorder?: number;
1902 /** 点图描边颜色 */
1903 pointBorderColor?: string;
1904 /** 点图描边透明度 */
1905 pointBorderOpacity?: number;
1906 /** 点图 active 状态下填充颜色 */
1907 pointActiveFillColor?: string;
1908 /** 点图 active 状态下填充颜色透明度 */
1909 pointActiveFillOpacity?: number;
1910 /** 点图 active 状态下大小 */
1911 pointActiveSize?: number;
1912 /** 点图 active 状态下描边粗细 */
1913 pointActiveBorder?: number;
1914 /** 点图 active 状态下描边颜色 */
1915 pointActiveBorderColor?: string;
1916 /** 点图 active 状态下描边透明度 */
1917 pointActiveBorderOpacity?: number;
1918 /** 点图 selected 状态下填充颜色 */
1919 pointSelectedFillColor?: string;
1920 /** 点图 selected 状态下填充颜色透明度 */
1921 pointSelectedFillOpacity?: number;
1922 /** 点图 selected 状态下大小 */
1923 pointSelectedSize?: number;
1924 /** 点图 selected 状态下描边粗细 */
1925 pointSelectedBorder?: number;
1926 /** 点图 selected 状态下描边颜色 */
1927 pointSelectedBorderColor?: string;
1928 /** 点图 selected 状态下描边透明度 */
1929 pointSelectedBorderOpacity?: number;
1930 /** 点图 inactive 状态下填充颜色 */
1931 pointInactiveFillColor?: string;
1932 /** 点图 inactive 状态下填充颜色透明度 */
1933 pointInactiveFillOpacity?: number;
1934 /** 点图 inactive 状态下大小 */
1935 pointInactiveSize?: number;
1936 /** 点图 inactive 状态下描边粗细 */
1937 pointInactiveBorder?: number;
1938 /** 点图 inactive 状态下描边颜色 */
1939 pointInactiveBorderColor?: string;
1940 /** 点图 inactive 状态下描边透明度 */
1941 pointInactiveBorderOpacity?: number;
1942 /** 描边点图大小 */
1943 hollowPointSize?: number;
1944 /** 描边点图描边粗细 */
1945 hollowPointBorder?: number;
1946 /** 描边点图描边颜色 */
1947 hollowPointBorderColor?: string;
1948 /** 描边点图描边透明度 */
1949 hollowPointBorderOpacity?: number;
1950 /** 描边点图填充颜色 */
1951 hollowPointFillColor?: string;
1952 /** 描边点图填充透明度 */
1953 hollowPointFillOpacity?: number;
1954 /** 点 描边 active 状态下大小 */
1955 hollowPointActiveSize?: number;
1956 /** 点 描边 active 状态下描边粗细 */
1957 hollowPointActiveBorder?: number;
1958 /** 点 描边 active 状态下描边颜色 */
1959 hollowPointActiveBorderColor?: string;
1960 /** 点 描边 active 状态下描边透明度 */
1961 hollowPointActiveBorderOpacity?: number;
1962 /** 点 描边 selected 状态下大小 */
1963 hollowPointSelectedSize?: number;
1964 /** 点 描边 selected 状态下描边粗细 */
1965 hollowPointSelectedBorder?: number;
1966 /** 点 描边 selected 状态下描边颜色 */
1967 hollowPointSelectedBorderColor?: string;
1968 /** 点 描边 selected 状态下描边透明度 */
1969 hollowPointSelectedBorderOpacity?: number;
1970 /** 点 描边 inactive 状态下大小 */
1971 hollowPointInactiveSize?: number;
1972 /** 点 描边 inactive 状态下描边粗细 */
1973 hollowPointInactiveBorder?: number;
1974 /** 点 描边 inactive 状态下描边颜色 */
1975 hollowPointInactiveBorderColor?: string;
1976 /** 点 描边 inactive 状态下描边透明度 */
1977 hollowPointInactiveBorderOpacity?: number;
1978 /** 线图粗细 */
1979 lineBorder?: number;
1980 /** 线图颜色 */
1981 lineBorderColor?: string;
1982 /** 线图透明度 */
1983 lineBorderOpacity?: number;
1984 /** 线图 active 状态下粗细 */
1985 lineActiveBorder?: number;
1986 /** 线图 active 状态下颜色 */
1987 lineActiveBorderColor?: string;
1988 /** 线图 active 状态下透明度 */
1989 lineActiveBorderOpacity?: number;
1990 /** 线图 selected 状态下粗细 */
1991 lineSelectedBorder?: number;
1992 /** 线图 selected 状态下颜色 */
1993 lineSelectedBorderColor?: string;
1994 /** 线图 selected 状态下透明度 */
1995 lineSelectedBorderOpacity?: number;
1996 /** 线图 inactive 状态下粗细 */
1997 lineInactiveBorder?: number;
1998 /** 线图 inactive 状态下颜色 */
1999 lineInactiveBorderColor?: string;
2000 /** 线图 inactive 状态下透明度 */
2001 lineInactiveBorderOpacity?: number;
2002 areaBorder?: number;
2003 /** area 边框颜色 */
2004 areaBorderColor?: string;
2005 /** area 边框透明度 */
2006 areaBorderOpacity?: number;
2007 /** area 填充颜色 */
2008 areaFillColor?: string;
2009 /** area 填充透明度 */
2010 areaFillOpacity?: number;
2011 /** area Active 状态下边框粗细 */
2012 areaActiveBorder?: number;
2013 /** area Active 状态下边框颜色 */
2014 areaActiveBorderColor?: string;
2015 /** area Active 状态下边框透明度 */
2016 areaActiveBorderOpacity?: number;
2017 /** area Active 状态下填充颜色 */
2018 areaActiveFillColor?: string;
2019 /** area Active 状态下填充透明度 */
2020 areaActiveFillOpacity?: number;
2021 /** area selected 状态下边框粗细 */
2022 areaSelectedBorder?: number;
2023 /** area selected 状态下边框颜色 */
2024 areaSelectedBorderColor?: string;
2025 /** area selected 状态下边框透明度 */
2026 areaSelectedBorderOpacity?: number;
2027 /** area selected 状态下填充颜色 */
2028 areaSelectedFillColor?: string;
2029 /** area selected 状态下填充透明度 */
2030 areaSelectedFillOpacity?: number;
2031 /** area inactive 状态下边框粗细 */
2032 areaInactiveBorder?: number;
2033 /** area inactive 状态下边框颜色 */
2034 areaInactiveBorderColor?: string;
2035 /** area inactive 状态下边框透明度 */
2036 areaInactiveBorderOpacity?: number;
2037 /** area inactive 状态下填充颜色 */
2038 areaInactiveFillColor?: string;
2039 /** area inactive 状态下填充透明度 */
2040 areaInactiveFillOpacity?: number;
2041 /** hollowArea 边框粗细 */
2042 hollowAreaBorder?: number;
2043 /** hollowArea 边框颜色 */
2044 hollowAreaBorderColor?: string;
2045 /** hollowArea 边框透明度 */
2046 hollowAreaBorderOpacity?: number;
2047 /** hollowArea Active 状态下边框粗细 */
2048 hollowAreaActiveBorder?: number;
2049 /** hollowArea Active 状态下边框颜色 */
2050 hollowAreaActiveBorderColor?: string;
2051 /** hollowArea Active 状态下边框透明度 */
2052 hollowAreaActiveBorderOpacity?: number;
2053 /** hollowArea selected 状态下边框粗细 */
2054 hollowAreaSelectedBorder?: number;
2055 /** hollowArea selected 状态下边框颜色 */
2056 hollowAreaSelectedBorderColor?: string;
2057 /** hollowArea selected 状态下边框透明度 */
2058 hollowAreaSelectedBorderOpacity?: number;
2059 /** hollowArea inactive 状态下边框粗细 */
2060 hollowAreaInactiveBorder?: number;
2061 /** hollowArea inactive 状态下边框颜色 */
2062 hollowAreaInactiveBorderColor?: string;
2063 /** hollowArea inactive 状态下边框透明度 */
2064 hollowAreaInactiveBorderOpacity?: number;
2065 /** interval 边框粗细 */
2066 intervalBorder?: number;
2067 /** interval 边框颜色 */
2068 intervalBorderColor?: string;
2069 /** interval 边框透明度 */
2070 intervalBorderOpacity?: number;
2071 /** interval 填充颜色 */
2072 intervalFillColor?: string;
2073 /** interval 填充透明度 */
2074 intervalFillOpacity?: number;
2075 /** interval active 状态下边框粗细 */
2076 intervalActiveBorder?: number;
2077 /** interval active 状态下边框颜色 */
2078 intervalActiveBorderColor?: string;
2079 /** interval active 状态下边框透明度 */
2080 intervalActiveBorderOpacity?: number;
2081 /** interval active 状态下填充颜色 */
2082 intervalActiveFillColor?: string;
2083 /** interval active 状态下填充透明度 */
2084 intervalActiveFillOpacity?: number;
2085 /** interval selected 状态下边框粗细 */
2086 intervalSelectedBorder?: number;
2087 /** interval selected 状态下边框颜色 */
2088 intervalSelectedBorderColor?: string;
2089 /** interval selected 状态下边框透明度 */
2090 intervalSelectedBorderOpacity?: number;
2091 /** interval selected 状态下填充颜色 */
2092 intervalSelectedFillColor?: string;
2093 /** interval selected 状态下填充透明度 */
2094 intervalSelectedFillOpacity?: number;
2095 /** interval inactive 状态下边框粗细 */
2096 intervalInactiveBorder?: number;
2097 /** interval inactive 状态下边框颜色 */
2098 intervalInactiveBorderColor?: string;
2099 /** interval inactive 状态下边框透明度 */
2100 intervalInactiveBorderOpacity?: number;
2101 /** interval inactive 状态下填充颜色 */
2102 intervalInactiveFillColor?: string;
2103 /** interval inactive 状态下填充透明度 */
2104 intervalInactiveFillOpacity?: number;
2105 /** hollowInterval 边框粗细 */
2106 hollowIntervalBorder?: number;
2107 /** hollowInterval 边框颜色 */
2108 hollowIntervalBorderColor?: string;
2109 /** hollowInterval 边框透明度 */
2110 hollowIntervalBorderOpacity?: number;
2111 /** hollowInterval 填充颜色 */
2112 hollowIntervalFillColor?: string;
2113 /** hollowInterval 填充透明度 */
2114 hollowIntervalFillOpacity?: number;
2115 /** hollowInterval active 状态下边框粗细 */
2116 hollowIntervalActiveBorder?: number;
2117 /** hollowInterval active 状态下边框颜色 */
2118 hollowIntervalActiveBorderColor?: string;
2119 /** hollowInterval active 状态下边框透明度 */
2120 hollowIntervalActiveBorderOpacity?: number;
2121 /** hollowInterval selected 状态下边框粗细 */
2122 hollowIntervalSelectedBorder?: number;
2123 /** hollowInterval selected 状态下边框颜色 */
2124 hollowIntervalSelectedBorderColor?: string;
2125 /** hollowInterval selected 状态下边框透明度 */
2126 hollowIntervalSelectedBorderOpacity?: number;
2127 /** hollowInterval inactive 状态下边框粗细 */
2128 hollowIntervalInactiveBorder?: number;
2129 /** hollowInterval inactive 状态下边框颜色 */
2130 hollowIntervalInactiveBorderColor?: string;
2131 /** hollowInterval inactive 状态下边框透明度 */
2132 hollowIntervalInactiveBorderOpacity?: number;
2133}
2134/** createTheme 主题样式表配置 */
2135export declare type StyleSheetCfg = Pick<StyleSheet, 'backgroundColor' | 'subColor' | 'brandColor' | 'paletteQualitative10' | 'paletteQualitative20' | 'paletteSemanticRed' | 'paletteSemanticGreen' | 'paletteSemanticYellow' | 'paletteSequence' | 'fontFamily'>;
2136/** 交互反馈的定义 */
2137export interface IAction {
2138 /**
2139 * 初始化
2140 */
2141 init(): any;
2142 /**
2143 * 交互 action (反馈)的名称
2144 */
2145 name: string;
2146 /**
2147 * 上下文
2148 */
2149 context: IInteractionContext;
2150 /**
2151 * 销毁函数
2152 */
2153 destroy(): any;
2154}
2155/** 交互上下文的接口定义 */
2156export interface IInteractionContext extends LooseObject {
2157 /** 事件对象 */
2158 event: LooseObject;
2159 /**
2160 * 当前的 view
2161 */
2162 view: View;
2163 /** 交互相关的 Actions */
2164 actions: IAction[];
2165 /**
2166 * 缓存属性,用于上下文传递信息
2167 * @param key 键名
2168 * @param value 值
2169 */
2170 cache(key: string, value?: any): any;
2171 /**
2172 * 获取 action
2173 * @param name - action 的名称
2174 * @returns 指定 name 的 Action
2175 */
2176 getAction(name: any): IAction;
2177 /**
2178 * 获取当前的点
2179 * @returns 返回当前的点
2180 */
2181 getCurrentPoint(): Point;
2182 /**
2183 * 获取当前的图形
2184 */
2185 getCurrentShape(): IShape;
2186 /**
2187 * 添加 action
2188 * @param action 指定交互 action
2189 */
2190 addAction(action: IAction): any;
2191 /**
2192 * 移除 action
2193 * @param action 移除的 action
2194 */
2195 removeAction(action: IAction): any;
2196 /**
2197 * 事件触发时是否在 view 内部
2198 */
2199 isInPlot(): any;
2200 /**
2201 * 是否在组件的包围盒内
2202 * @param name 组件名,可省略
2203 */
2204 isInComponent(name?: string): any;
2205 /**
2206 * 是否在指定的图形内
2207 * @param name shape 的名称
2208 */
2209 isInShape(name: any): any;
2210 /**
2211 * 销毁
2212 */
2213 destroy(): any;
2214}
2215/** G 的渲染类型 */
2216export declare type Renderer = 'svg' | 'canvas';
2217/** 数据的定义 */
2218export declare type Datum = Record<string, any>;
2219export declare type Data = Datum[];
2220export declare type ActionCallback = (context: IInteractionContext) => void;
2221export declare type Padding = [number, number, number, number];
2222export declare type ViewPadding = number | number[] | 'auto';
2223export declare type ViewAppendPadding = number | number[];
2224export declare type Position = [number, number];
2225export declare type AttributeType = 'position' | 'size' | 'color' | 'shape';
2226export declare type ShapeVertices = RangePoint[] | Point[] | Point[][];
2227/** easing 的回调函数, 入参 data 为对应的原始数据记录 */
2228export declare type AnimateEasingCallback = (data: Datum) => string;
2229/** delay 的回调函数, 入参 data 为对应的原始数据记录 */
2230export declare type AnimateDelayCallback = (data: Datum) => number;
2231/** duration 的回调函数, 入参 data 为对应的原始数据记录 */
2232export declare type AnimateDurationCallback = (data: Datum) => number;
2233
\No newline at end of file