@antv/f6-plugin
Version:
F6 plugin
85 lines (84 loc) • 2.27 kB
TypeScript
import { GraphData, ShapeStyle } from '@antv/f6-core';
import Base from '../base';
interface LegendConfig {
data: GraphData;
position?: 'top' | 'top-left' | 'top-right' | 'right' | 'right-top' | 'right-bottom' | 'left' | 'left-top' | 'left-bottom' | 'bottom' | 'bottom-left' | 'bottom-right';
padding?: number | number[];
margin?: number | number[];
offsetX?: number;
offsetY?: number;
containerStyle?: ShapeStyle;
layout?: 'vertical' | 'horizontal';
width?: number;
height?: number;
align?: 'center' | 'right' | 'left';
title?: string;
titleConfig?: {
position?: 'center' | 'right' | 'left';
offsetX?: number;
offsetY?: number;
[key: string]: unknown;
};
itemConfig?: {
width?: number;
height?: number;
fontSize?: number;
margin?: 'string';
};
filter?: {
enable?: boolean;
multiple?: boolean;
trigger?: 'click';
legendStateStyles?: {
active?: ShapeStyle;
inactive?: ShapeStyle;
};
graphActiveState?: string;
graphInactiveState?: string;
filterFunctions?: {
[key: string]: (d: any) => boolean;
};
};
}
/**
* 不支持mouseenter
*/
export default class Legend extends Base {
active: any[];
inActive: any[];
constructor(config?: LegendConfig);
getDefaultCfgs(): LegendConfig;
init(): void;
protected getContainerPos(size?: number[]): any;
bindEvents(): void;
/**
* 更新 legend 数据,开放给用户控制
* @param param
*/
changeData(data: GraphData): void;
goActive(node: any): void;
goDefault(node: any): void;
goInActive(node: any): void;
activateLegend(node: any): void;
clearActiveLegend(): void;
/**
* 高亮和置灰图例,并过滤主图元素
* @param param
*/
filterData(activeNode: any): void;
/**
* 清除主图相关状态
* @param param
*/
clearFilter(): void;
/**
* 渲染 legend 图
* @param param
*/
protected render(): number[];
protected processData(): void;
protected formatArray(key: string): any;
private getStyle;
destroy(): void;
}
export {};