UNPKG

25.6 kBTypeScriptView Raw
1import { AnimateCfg, BBox, IGroup, IShape, Point, ShapeAttrs } from '@antv/g-base';
2export declare type LocationType = 'point' | 'Region' | 'points' | 'circle' | 'none';
3export { Point, BBox };
4/** 用于返回样式 ShapeAttrs 的 Callback 函数定义 */
5declare type ShapeAttrsCallback = (item: any, index: number, items: any[]) => ShapeAttrs;
6/** 对象 */
7export interface LooseObject {
8 [key: string]: any;
9}
10export interface OffsetPoint {
11 offsetX: number;
12 offsetY: number;
13}
14export interface Region {
15 /**
16 * 起始点
17 * @type {Point}
18 */
19 start: Point;
20 /**
21 * 结束点
22 * @type {Point}
23 */
24 end: Point;
25}
26export interface Range {
27 /**
28 * 开始值
29 * @type {number}
30 */
31 min: number;
32 /**
33 * 结束值
34 * @type {number}
35 */
36 max: number;
37}
38/** 文本背景框配置 */
39export interface EnhancedTextBackgroundCfg {
40 /** 文字内边距,同 css 盒模型 */
41 padding?: number | number[];
42 /** 文字包围盒样式 */
43 style?: ShapeAttrs;
44}
45/**
46 * 增强型文本配置:
47 * 1. 可自动缩略
48 * 2. 可绘制背景框
49 */
50export interface EnhancedTextCfg {
51 /** 文本标注内容 */
52 content: string | number;
53 /** 旋转,弧度制 */
54 rotate?: number;
55 /** 文本标注样式 */
56 style?: ShapeAttrs;
57 /** 文字包围盒样式设置 */
58 background?: EnhancedTextBackgroundCfg;
59 /** 文本的最大长度 */
60 maxLength?: number;
61 /** 超出 maxLength 是否自动省略 */
62 autoEllipsis?: boolean;
63 /** 文本在二维坐标系的显示位置,是沿着 x 轴显示 还是沿着 y 轴显示 */
64 isVertical?: boolean;
65 /** 文本截断的位置 */
66 ellipsisPosition?: 'head' | 'middle' | 'tail';
67}
68/**
69 * @interface
70 * 列表选项接口
71 */
72export interface ListItem {
73 /**
74 * 唯一值,用于动画或者查找
75 * @type {string}
76 */
77 id?: string;
78 /**
79 * 名称
80 * @type {string}
81 */
82 name: string;
83 /**
84 * 值
85 * @type {any}
86 */
87 value: any;
88 /**
89 * 图形标记
90 * @type {object|string}
91 */
92 marker?: object | string;
93 [key: string]: any;
94}
95/**
96 * @interface
97 * 栅格项的定义
98 */
99export interface GridItem {
100 /**
101 * 唯一值,用于动画或者查找
102 * @type {string}
103 */
104 id?: string;
105 /**
106 * 栅格线的点集合
107 * @type {Point[]}
108 */
109 points: Point[];
110 [key: string]: any;
111}
112/**
113 * @interface
114 * 坐标轴线定义
115 */
116export interface AxisLineCfg {
117 /**
118 * 坐标轴线的配置项
119 * @type {ShapeAttrs}
120 */
121 style?: ShapeAttrs;
122}
123/**
124 * @interface
125 * 坐标轴刻度定义
126 */
127export interface AxisTickLineCfg {
128 /**
129 * 坐标轴刻度线的配置项
130 * @type {ShapeAttrs}
131 */
132 style?: ShapeAttrs | ShapeAttrsCallback;
133 /**
134 * 是否同 tick 对齐
135 * @type {boolean}
136 */
137 alignTick?: boolean;
138 /**
139 * 长度
140 * @type {number}
141 */
142 length?: number;
143}
144declare type avoidCallback = (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean;
145/** 坐标轴自动隐藏的配置 */
146export interface AxisLabelAutoHideCfg {
147 /** 最小间距配置 */
148 minGap?: number;
149}
150/**
151 * @interface
152 * 坐标轴文本定义
153 */
154export interface AxisLabelCfg {
155 /**
156 * 坐标轴文本的样式
157 * @type {ShapeAttrs}
158 */
159 style?: ShapeAttrs | ShapeAttrsCallback;
160 /**
161 * label 的偏移量
162 * @type {number}
163 */
164 offset?: number;
165 /**
166 * 文本旋转角度
167 * @type {number}
168 */
169 rotate?: number;
170 /**
171 * 格式化函数
172 * @type {formatterCallback}
173 */
174 formatter?: formatterCallback;
175 /**
176 * 是否自动旋转,默认 true
177 * @type {boolean|avoidCallback|string}
178 */
179 autoRotate?: boolean | avoidCallback | string;
180 /**
181 * 是否自动隐藏,默认 false
182 * @type {boolean|avoidCallback|string|{type:string,cfg?:AxisLabelAutoHideCfg}}
183 */
184 autoHide?: boolean | avoidCallback | string | {
185 type: string;
186 cfg?: AxisLabelAutoHideCfg;
187 };
188 /**
189 * 是否自动省略,默认 false
190 * @type {boolean|avoidCallback|string}
191 */
192 autoEllipsis?: boolean | avoidCallback | string;
193}
194/**
195 * @interface
196 * 坐标轴子刻度定义
197 */
198export interface AxisSubTickLineCfg {
199 /**
200 * 坐标轴刻度线的配置项
201 * @type {ShapeAttrs}
202 */
203 style?: ShapeAttrs | ShapeAttrsCallback;
204 /**
205 * 子刻度个数
206 * @type {number}
207 */
208 count?: number;
209 /**
210 * 子刻度线长度
211 * @type {number}
212 */
213 length?: number;
214}
215/**
216 * @interface
217 * 坐标轴标题定义
218 */
219export interface AxisTitleCfg {
220 /**
221 * 标题距离坐标轴的距离
222 * @type {number}
223 */
224 offset?: number;
225 /**
226 * 标题距离坐标轴文本的距离
227 */
228 spacing?: number;
229 /**
230 * 标题文本配置项
231 * @type {ShapeAttrs}
232 */
233 style?: ShapeAttrs;
234 /**
235 * 是否自动旋转
236 * @type {boolean}
237 */
238 autoRotate?: boolean;
239 /**
240 * 设置文本
241 * @type {string}
242 */
243 text?: string;
244}
245export interface BaseCfg {
246 [key: string]: any;
247}
248export interface ComponentCfg extends BaseCfg {
249 /**
250 * 唯一标定组件的 id
251 * @type {string}
252 */
253 id?: string;
254 /**
255 * 定位的方式
256 * @type {string}
257 */
258 LocationType?: string;
259 /**
260 * 偏移位置 x
261 * @type {number}
262 */
263 offsetX?: number;
264 /**
265 * 偏移位置 y
266 * @type {number}
267 */
268 offsetY?: number;
269 /**
270 * 组件名称, axis, legend, tooltip
271 * @type {string}
272 */
273 name?: string;
274 /**
275 * 组件的类型,同 name 配合使用可以确定具体组件的类型,例如:
276 * name: 'axis',
277 * type: 'line'
278 */
279 type?: string;
280 /**
281 * 是否会捕捉事件
282 */
283 capture?: boolean;
284 /**
285 * 是否允许动画,不同组件允许动画的内容不同
286 * @type {boolean}
287 */
288 animate?: boolean;
289 /**
290 * 更新时自动渲染, 所有 html 的组件 update 时自动调用渲染,group 的组件默认 false
291 */
292 updateAutoRender?: boolean;
293 /**
294 * 动画的配置项
295 * @type {AnimateCfg}
296 */
297 animateOption?: AnimateOption;
298 /**
299 * 事件对象,可以在配置项中传入事件
300 * @example
301 * events: {
302 * itemclick: ev => {
303 *
304 * }
305 * }
306 * // 等效于
307 * component.on('itemclick', ev => {
308 *
309 * });
310 * @type {object}
311 */
312 events?: object;
313 /**
314 * @protected
315 * 配置项生效时的默认值,一些配置项是对象时,防止将一些内置的配置项清空,减少判空判断
316 * @example
317 * new Axis({
318 * tickLine: {
319 * length: 10 // 此时没有设置 style,内部调用 tickLine.style 时会出问题
320 * }
321 * })
322 * @type {object}
323 */
324 defaultCfg?: object;
325}
326export interface AnimateOption {
327 /** 初始化渲染时的入场动画,false/null 表示关闭入场动画 */
328 appear?: AnimateCfg | false | null;
329 /** 发生更新时,新增元素的入场动画,false/null 表示关闭入场动画 */
330 enter?: AnimateCfg | false | null;
331 /** 更新动画配置,false/null 表示关闭更新动画 */
332 update?: AnimateCfg | false | null;
333 /** 销毁动画配置,false/null 表示关闭销毁动画 */
334 leave?: AnimateCfg | false | null;
335}
336export interface GroupComponentCfg extends ComponentCfg {
337 /**
338 * 组件的容器
339 * @type {IGroup}
340 */
341 container: IGroup;
342 /**
343 * 当前组件对应的 group,一个 container 中可能会有多个组件,但是一个组件都有一个自己的 Group
344 * @type {IGroup}
345 */
346 group?: IGroup;
347 /**
348 * 组件是否可以被拾取
349 * @type {boolean}
350 */
351 capture?: boolean;
352}
353export interface HtmlComponentCfg extends ComponentCfg {
354 /**
355 * 组件的 DOM 容器
356 * @type {HTMLElement|string}
357 */
358 container?: HTMLElement | string;
359 /**
360 * 组件的父容器
361 */
362 parent?: HTMLElement | string;
363 /**
364 * 内部 DOM 的样式
365 */
366 domStyles?: LooseObject;
367}
368export interface AxisBaseCfg extends GroupComponentCfg {
369 /**
370 * 坐标轴刻度的集合
371 * @type {ListItem[]}
372 */
373 ticks: ListItem[];
374 /**
375 * 坐标轴线的配置项
376 * @type {AxisLineCfg}
377 */
378 line?: AxisLineCfg;
379 /**
380 * 坐标轴刻度线线的配置项
381 * @type {AxisTickLineCfg}
382 */
383 tickLine?: AxisTickLineCfg;
384 /**
385 * 坐标轴子刻度线的配置项
386 * @type {AxisSubTickLineCfg}
387 */
388 subTickLine?: AxisSubTickLineCfg;
389 /**
390 * 标题的配置项
391 * @type {AxisTitleCfg}
392 */
393 title?: AxisTitleCfg;
394 /**
395 * 文本标签的配置项
396 */
397 label?: AxisLabelCfg;
398 /**
399 * 垂直于坐标轴方向的因子,决定文本、title、tickLine 在坐标轴的哪一侧,默认是 1,在坐标轴逆时针方向
400 */
401 verticalFactor?: number;
402 /**
403 * 垂直于坐标轴方向的限制长度,防止文本超出
404 * @type {number}
405 */
406 verticalLimitLength?: number;
407 /**
408 * 处理遮挡时的顺序,默认 ['autoRotate', 'autoHide']
409 */
410 overlapOrder?: string[];
411}
412export interface LineAxisCfg extends AxisBaseCfg {
413 /**
414 * 坐标轴的起始点
415 * @type {Point}
416 */
417 start: Point;
418 /**
419 * 坐标轴的结束点
420 * @type {Point}
421 */
422 end: Point;
423}
424export interface CircleAxisCfg extends AxisBaseCfg {
425 /**
426 * 中心点, x, y
427 * @type {Point}
428 */
429 center: Point;
430 /**
431 * 半径
432 * @type {number}
433 */
434 radius: number;
435 /**
436 * 开始弧度
437 * @type {number}
438 */
439 startAngle?: number;
440 /**
441 * 结束弧度
442 * @type {number}
443 */
444 endAngle?: number;
445}
446export interface GridLineCfg {
447 /**
448 * 栅格线的类型
449 * @type {string}
450 */
451 type?: string;
452 /**
453 * 栅格线的配置项
454 * @type {ShapeAttrs}
455 */
456 style?: ShapeAttrs | ShapeAttrsCallback;
457}
458export interface GridBaseCfg extends GroupComponentCfg {
459 /**
460 * 线的样式
461 * @type {object}
462 */
463 line?: GridLineCfg;
464 /**
465 * 两个栅格线间的填充色,必须是一个数组
466 * @type {string|string[]}
467 */
468 alternateColor?: string | string[];
469 /**
470 * 绘制 grid 需要的点的集合
471 * @type {GridItem[]}
472 */
473 items: GridItem[];
474 /**
475 * 栅格线是否封闭
476 * @type {boolean}
477 */
478 closed?: boolean;
479}
480export interface CircleGridCfg extends GridBaseCfg {
481 /**
482 * 中心点
483 * @type {Point}
484 */
485 center: Point;
486}
487export interface LegendBaseCfg extends GroupComponentCfg {
488 /**
489 * 布局方式: horizontal,vertical
490 * @type {String}
491 */
492 layout?: string;
493 /**
494 * 位置 x
495 * @type {number}
496 */
497 x?: number;
498 /**
499 * 位置 y
500 * @type {number}
501 */
502 y?: number;
503 /**
504 * 标题
505 * @type {LegendTitleCfg}
506 */
507 title?: LegendTitleCfg;
508 /**
509 * 背景框配置项
510 * @type {LegendBackgroundCfg}
511 */
512 background?: LegendBackgroundCfg;
513}
514export interface CategoryLegendCfg extends LegendBaseCfg {
515 /**
516 * 图例项水平方向的间距
517 * @type {number}
518 */
519 itemSpacing?: number;
520 /**
521 * 图例项的最大宽度,默认为 null,由上层传入
522 */
523 maxItemWidth?: number;
524 /**
525 * 图例项的宽度, 默认为 null,自动计算
526 * @type {number}
527 */
528 itemWidth?: number;
529 /**
530 * 图例的高度,默认为 null
531 * @type {[type]}
532 */
533 itemHeight?: number;
534 /**
535 * 图例项 name 文本的配置
536 * @type {LegendItemNameCfg}
537 */
538 itemName?: LegendItemNameCfg;
539 /**
540 * 图例项 value 附加值的配置项
541 * @type {LegendItemValueCfg}
542 */
543 itemValue?: LegendItemValueCfg;
544 /**
545 * 最大宽度
546 * @type {number}
547 */
548 maxWidth?: number;
549 /**
550 * 最大高度
551 * @type {number}
552 */
553 maxHeight?: number;
554 /**
555 * 图例项的 marker 图标的配置
556 * @type {LegendMarkerCfg}
557 */
558 marker?: LegendMarkerCfg;
559 /**
560 * 图例项集合
561 * @type {ListItem[]}
562 */
563 items: ListItem[];
564}
565export interface ContinueLegendCfg extends LegendBaseCfg {
566 /**
567 * 选择范围的最小值
568 * @type {number}
569 */
570 min: number;
571 /**
572 * 选择范围的最大值
573 * @type {number}
574 */
575 max: number;
576 /**
577 * 选择的值
578 * @type {number[]}
579 */
580 value: number[];
581 /**
582 * 图例的颜色,可以写多个颜色
583 * @type {number[]}
584 */
585 colors: number[];
586 /**
587 * 选择范围的色块配置项
588 * @type {ContinueLegendTrackCfg}
589 */
590 track: ContinueLegendTrackCfg;
591 /**
592 * 图例滑轨(背景)的配置项
593 * @type {ContinueLegendRailCfg}
594 */
595 rail: ContinueLegendRailCfg;
596 /**
597 * 文本的配置项
598 * @type {ContinueLegendLabelCfg}
599 */
600 label: ContinueLegendLabelCfg;
601 /**
602 * 滑块的配置项
603 * @type {ContinueLegendHandlerCfg}
604 */
605 handler: ContinueLegendHandlerCfg;
606 /**
607 * 是否可以滑动
608 * @type {boolean}
609 */
610 slidable: boolean;
611}
612export interface ContinueLegendTrackCfg {
613 /**
614 * 选定范围的样式
615 * @type {ShapeAttrs}
616 */
617 style?: ShapeAttrs;
618}
619export interface ContinueLegendHandlerCfg {
620 /**
621 * 滑块大小
622 * @type {number}
623 */
624 size?: number;
625 /**
626 * 滑块样式
627 * @type {ShapeAttrs}
628 */
629 style?: ShapeAttrs;
630}
631export interface ContinueLegendRailCfg {
632 /**
633 * rail 的类型,color, size
634 * @type {string}
635 */
636 type?: string;
637 /**
638 * 滑轨的宽度
639 * @type {number}
640 */
641 size?: number;
642 /**
643 * 滑轨的默认长度,,当限制了 maxWidth,maxHeight 时,不会使用这个属性会自动计算长度
644 * @type {number}
645 */
646 defaultLength?: number;
647 /**
648 * 滑轨的样式
649 * @type {ShapeAttrs}
650 */
651 style?: ShapeAttrs;
652}
653export interface ContinueLegendLabelCfg {
654 /**
655 * 文本同滑轨的对齐方式,有五种类型
656 * - rail : 同滑轨对齐,在滑轨的两端
657 * - top, bottom: 图例水平布局时有效
658 * - left, right: 图例垂直布局时有效
659 * @type {string}
660 */
661 align?: string;
662 /**
663 * 文本同滑轨的距离
664 * @type {number}
665 */
666 spacing?: number;
667 /**
668 * 文本样式
669 * @type {ShapeAttrs}
670 */
671 style?: ShapeAttrs;
672}
673export interface LegendTitleCfg {
674 /**
675 * 标题同图例项的间距
676 * @type {number}
677 */
678 spacing?: number;
679 /**
680 * 文本配置项
681 * @type {ShapeAttrs}
682 */
683 style?: ShapeAttrs;
684}
685export interface LegendBackgroundCfg {
686 /**
687 * @type {number|number[]}
688 * 背景的留白
689 */
690 padding?: number | number[];
691 /**
692 * @type {ShapeAttrs}
693 * 背景配置项
694 */
695 style?: ShapeAttrs;
696}
697export interface LegendItemNameCfg {
698 /**
699 * 图例项 name 同后面 value 的间距
700 * @type {number}
701 */
702 spacing?: number;
703 /**
704 * 格式化文本函数
705 * @type {formatterCallback}
706 */
707 formatter?: formatterCallback;
708 /**
709 * 文本配置项
710 * @type {ShapeAttrs}
711 */
712 style?: ShapeAttrs;
713}
714declare type formatterCallback = (text: string, item: ListItem, index: number) => any;
715export interface LegendItemValueCfg {
716 /**
717 * 是否右对齐,默认为 false,仅当设置图例项宽度时生效
718 * @type {boolean}
719 */
720 alignRight?: boolean;
721 /**
722 * 格式化文本函数
723 * @type {formatterCallback}
724 */
725 formatter?: formatterCallback;
726 /**
727 * 图例项附加值的配置
728 * @type {ShapeAttrs}
729 */
730 style?: ShapeAttrs;
731}
732export interface LegendMarkerCfg {
733 /**
734 * 图例项 marker 同后面 name 的间距
735 * @type {number}
736 */
737 spacing?: number;
738 /**
739 * 图例 marker 形状
740 */
741 symbol?: string | ((x: number, y: number, r: number) => any);
742 /**
743 * 图例项 marker 的配置项
744 * @type {ShapeAttrs}
745 */
746 style?: ShapeAttrs;
747}
748export declare type TooltipPosition = 'top' | 'left' | 'right' | 'bottom' | 'auto';
749export interface TooltipCfg extends HtmlComponentCfg {
750 /**
751 * 位置 x
752 * @type {number}
753 */
754 x?: number;
755 /**
756 * 位置 y
757 * @type {number}
758 */
759 y?: number;
760 /**
761 * 列表项集合
762 * @type {ListItem[]}
763 */
764 items: ListItem[];
765 /**
766 * 容器的模板
767 * @type {string}
768 */
769 containerTpl?: string;
770 /**
771 * 列表项的模板
772 * @type {[type]}
773 */
774 itemTpl?: string;
775 /**
776 * 根据 x 定位的 crosshair 的模板
777 * @type {string}
778 */
779 xCrosshairTpl?: string;
780 /**
781 * 根据 y 定位的 crosshair 的模板
782 * @type {[type]}
783 */
784 yCrosshairTpl?: string;
785 /**
786 * tooltip 限制的区域
787 * @type {Region}
788 */
789 region?: Region;
790 /**
791 * crosshairs 限制的区域
792 * @type {Region}
793 */
794 crosshairsRegion?: Region;
795 /**
796 * crosshairs 的类型, x,y,xy
797 * @type {string}
798 */
799 crosshairs?: string;
800 /**
801 * 是否跟随鼠标移动,会影响 xy的定位
802 * @type {boolean}
803 */
804 follow?: boolean;
805 /**
806 * 偏移量,同 position 相关
807 * @type {number}
808 */
809 offset?: number;
810 /**
811 * 位置,top, bottom, left, right
812 * @type {string}
813 */
814 position?: TooltipPosition;
815 /**
816 * 传入各个 dom 的样式
817 * @type {object}
818 */
819 domStyles?: object;
820 /**
821 * 默认的各个 dom 的样式
822 * @type {object}
823 */
824 defaultStyles?: object;
825}
826export interface LocationCfg {
827 [key: string]: any;
828}
829export interface PointLocationCfg extends LocationCfg {
830 /**
831 * 位置 x
832 * @type {number}
833 */
834 x?: number;
835 /**
836 * 位置 y
837 * @type {number}
838 */
839 y?: number;
840}
841export interface RegionLocationCfg extends LocationCfg {
842 /**
843 * 起始点
844 * @type {Point}
845 */
846 start?: Point;
847 /**
848 * 结束点
849 * @type {Point}
850 */
851 end?: Point;
852}
853export interface PointsLocationCfg extends LocationCfg {
854 /**
855 * 定位点的集合
856 * @type {Point[]}
857 */
858 points?: Point[];
859}
860export interface CircleLocationCfg extends LocationCfg {
861 /**
862 * 圆心
863 * @type {Point}
864 */
865 center?: Point;
866 /**
867 * 半径
868 * @type {number}
869 */
870 radius?: number;
871 /**
872 * 起始角度
873 * @type {number}
874 */
875 startAngle?: number;
876 /**
877 * 结束角度
878 * @type {number}
879 */
880 endAngle?: number;
881}
882/**
883 * 自定义 Shape annotation 组件配置
884 */
885export interface ShapeAnnotationCfg extends GroupComponentCfg {
886 /** 自定义 render 函数,注意绘制的 shape/group 需要设置 id */
887 render: (container: IGroup) => void;
888}
889/**
890 * Html Annotation 组件配置
891 */
892export interface HtmlAnnotationCfg extends HtmlComponentCfg {
893 /** X 方向对齐,默认 left */
894 alignX?: 'left' | 'middle' | 'right';
895 /** Y 方向对齐,默认 top */
896 alignY?: 'top' | 'middle' | 'bottom';
897 /** 自定义 html */
898 html: string | HTMLElement | ((container: HTMLElement) => void | string | HTMLElement);
899 /** zIndex 设置 */
900 zIndex?: number;
901}
902export interface TextAnnotationCfg extends GroupComponentCfg, EnhancedTextCfg {
903 /**
904 * 文本标注位置 x
905 * @type {number}
906 */
907 x: number;
908 /**
909 * 文本标注位置 y
910 * @type {number}
911 */
912 y: number;
913}
914export interface LineAnnotationCfg extends GroupComponentCfg {
915 /**
916 * 起始点
917 * @type {Point}
918 */
919 start?: Point;
920 /**
921 * 结束点
922 * @type {Point}
923 */
924 end?: Point;
925 /**
926 * 线上的文本配置
927 * @type {LineAnnotationTextCfg}
928 */
929 text?: LineAnnotationTextCfg;
930 /**
931 * 线的样式
932 * @type {ShapeAttrs}
933 */
934 style?: ShapeAttrs;
935}
936export interface LineAnnotationTextCfg extends EnhancedTextCfg {
937 /**
938 * 位置,可以选择: start, end, center 和 '50%' 这类的百分比写法,默认 'center'
939 * @type {string}
940 */
941 position?: string;
942 /**
943 * 自动旋转,沿着线的方向,默认 true
944 * @type {boolean}
945 */
946 autoRotate?: boolean;
947 /**
948 * 文本的偏移 x
949 * @type {number}
950 */
951 offsetX?: number;
952 /**
953 * 文本的偏移 y
954 * @type {number}
955 */
956 offsetY?: number;
957}
958export interface RegionAnnotationCfg extends GroupComponentCfg {
959 /**
960 * 起始点
961 * @type {Point}
962 */
963 start?: Point;
964 /**
965 * 结束点
966 * @type {Point}
967 */
968 end?: Point;
969 /**
970 * 区域的样式
971 * @type {ShapeAttrs}
972 */
973 style?: ShapeAttrs;
974}
975export interface ImageAnnotationCfg extends GroupComponentCfg {
976 /**
977 * 起始点
978 * @type {Point}
979 */
980 start?: Point;
981 /**
982 * 结束点
983 * @type {Point}
984 */
985 end?: Point;
986 /**
987 * 图片地址
988 * @type {string}
989 */
990 src?: string;
991 /**
992 * 区域的样式
993 * @type {ShapeAttrs}
994 */
995 style?: ShapeAttrs;
996}
997export interface ArcAnnotationCfg extends GroupComponentCfg {
998 /**
999 * 圆心
1000 * @type {Point}
1001 */
1002 center?: Point;
1003 /**
1004 * 半径
1005 * @type {number}
1006 */
1007 radius?: number;
1008 /**
1009 * 其实角度
1010 * @type {number}
1011 */
1012 startAngle?: number;
1013 /**
1014 * 结束角度
1015 * @type {number}
1016 */
1017 endAngle?: number;
1018 /**
1019 * 区域的样式
1020 * @type {ShapeAttrs}
1021 */
1022 style?: ShapeAttrs;
1023}
1024export interface DataMarkerTextCfg extends EnhancedTextCfg {
1025 display?: boolean;
1026}
1027export interface DataMarkerAnnotationCfg extends GroupComponentCfg {
1028 /**
1029 * 标注位置 x
1030 * @type {number}
1031 */
1032 x: number;
1033 /**
1034 * 标注位置 y
1035 * @type {number}
1036 */
1037 y: number;
1038 point?: {
1039 display?: boolean;
1040 style?: ShapeAttrs;
1041 };
1042 line?: {
1043 display?: boolean;
1044 length?: number;
1045 style?: ShapeAttrs;
1046 };
1047 text: DataMarkerTextCfg;
1048 /**
1049 * 方向
1050 */
1051 direction?: 'upward' | 'downward';
1052 /**
1053 * 是否自动调整
1054 */
1055 autoAdjust?: boolean;
1056 /**
1057 * CoordBBox,用于 autoAdjust
1058 */
1059 coordBBox?: BBox;
1060}
1061export interface DataRegionAnnotationCfg extends GroupComponentCfg {
1062 /**
1063 * 位置点信息
1064 * @type {Point}
1065 */
1066 points: Point[];
1067 region?: {
1068 style?: ShapeAttrs;
1069 };
1070 text: EnhancedTextCfg;
1071}
1072export interface RegionFilterAnnotationCfg extends GroupComponentCfg {
1073 /**
1074 * 起始点
1075 * @type {Point}
1076 */
1077 start: Point;
1078 /**
1079 * 结束点
1080 * @type {Point}
1081 */
1082 end: Point;
1083 /**
1084 * 染色色值
1085 */
1086 color: string;
1087 /**
1088 * 图形上的 Shapes
1089 */
1090 shapes: IShape[];
1091}
1092export interface CrosshairBaseCfg extends GroupComponentCfg {
1093 /**
1094 * 线的样式
1095 * @type {CrosshairLineCfg}
1096 */
1097 line?: CrosshairLineCfg;
1098 /**
1099 * 附加文本的样式
1100 * @type {CrosshairTextCfg}
1101 */
1102 text?: CrosshairTextCfg;
1103 /**
1104 * 文本背景的配置项
1105 * @type {CrosshairTextBackgroundCfg}
1106 */
1107 textBackground?: CrosshairTextBackgroundCfg;
1108}
1109export interface LineCrosshairCfg extends CrosshairBaseCfg {
1110 /**
1111 * 起始点
1112 * @type {Point}
1113 */
1114 start: Point;
1115 /**
1116 * 结束点
1117 * @type {Point}
1118 */
1119 end: Point;
1120}
1121export interface CircleCrosshairCfg extends CrosshairBaseCfg {
1122 /**
1123 * 圆心
1124 * @type {Point}
1125 */
1126 center: Point;
1127 /**
1128 * 半径
1129 * @type {number}
1130 */
1131 radius: number;
1132 /**
1133 * 开始角度
1134 * @type {number}
1135 */
1136 startAngle: number;
1137 /**
1138 * 结束角度
1139 * @type {number}
1140 */
1141 endAngle: number;
1142}
1143export interface CrosshairTextBaseCfg {
1144 /**
1145 * 文本位置,只支持 startend
1146 * @type {string}
1147 */
1148 position?: string;
1149 /**
1150 * 文本内容
1151 */
1152 content?: string;
1153 /**
1154 * 距离线的距离
1155 * @type {number}
1156 */
1157 offset?: number;
1158}
1159export interface CrosshairTextCfg extends CrosshairTextBaseCfg {
1160 /**
1161 * 是否自动旋转
1162 * @type {boolean}
1163 */
1164 autoRotate?: boolean;
1165 /**
1166 * 文本的配置项
1167 * @type {ShapeAttrs}
1168 */
1169 style?: ShapeAttrs;
1170}
1171export interface HtmlCrossHairCfg extends HtmlComponentCfg {
1172 /**
1173 * 起始位置
1174 */
1175 start: Point;
1176 /**
1177 * 结束位置
1178 */
1179 end: Point;
1180 /**
1181 * crosshair 的模板
1182 */
1183 crossHairTpl: string;
1184 /**
1185 * 文本的模板
1186 */
1187 textTpl: string;
1188 /**
1189 * 文本
1190 */
1191 text: CrosshairTextBaseCfg;
1192}
1193export interface CrosshairLineCfg {
1194 /**
1195 * 线的配置项
1196 * @type {ShapeAttrs}
1197 */
1198 style?: ShapeAttrs;
1199}
1200export interface CrosshairTextBackgroundCfg {
1201 /**
1202 * 文本背景周围的留白
1203 * @type {number|number[]}
1204 */
1205 padding?: number | number[];
1206 /**
1207 * 文本背景的样式
1208 * @type {ShapeAttrs}
1209 */
1210 style?: ShapeAttrs;
1211}
1212export { SliderCfg, TrendCfg } from './slider';
1213
\No newline at end of file