- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
78 lines
2.2 KiB
TypeScript
78 lines
2.2 KiB
TypeScript
import { GraphData, ShapeStyle } from '@antv/g6-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;
|
|
flipPage?: boolean;
|
|
horiSep?: number;
|
|
vertiSep?: number;
|
|
layout?: 'vertical' | 'horizontal';
|
|
width?: number | 'fit-content';
|
|
height?: number | 'fit-content';
|
|
align?: 'center' | 'right' | 'left';
|
|
title?: string;
|
|
titleConfig?: {
|
|
position?: 'center' | 'right' | 'left';
|
|
offsetX?: number;
|
|
offsetY?: number;
|
|
[key: string]: unknown;
|
|
};
|
|
filter?: {
|
|
enable?: boolean;
|
|
multiple?: boolean;
|
|
trigger?: 'click' | 'mouseenter';
|
|
legendStateStyles?: {
|
|
active?: ShapeStyle;
|
|
inactive?: ShapeStyle;
|
|
};
|
|
graphActiveState?: string;
|
|
graphInactiveState?: string;
|
|
filterFunctions?: {
|
|
[key: string]: (d: any) => boolean;
|
|
};
|
|
};
|
|
}
|
|
export default class Legend extends Base {
|
|
constructor(config?: LegendConfig);
|
|
getDefaultCfgs(): LegendConfig;
|
|
init(): void;
|
|
protected getContainerPos(size?: number[]): any;
|
|
bindEvents(): void;
|
|
/**
|
|
* 更新 legend 数据,开放给用户控制
|
|
* @param param
|
|
*/
|
|
changeData(data: GraphData): void;
|
|
activateLegend(shape: any): void;
|
|
private findLegendItemsByState;
|
|
clearActiveLegend(): void;
|
|
/**
|
|
* 高亮和置灰图例,并过滤主图元素
|
|
* @param param
|
|
*/
|
|
filterData(e: any): void;
|
|
/**
|
|
* 清除主图相关状态
|
|
* @param param
|
|
*/
|
|
clearFilter(): void;
|
|
/**
|
|
* 渲染 legend 图
|
|
* @param param
|
|
*/
|
|
protected render(): number[];
|
|
protected layoutItems(): void;
|
|
protected processData(): void;
|
|
getContainer(): HTMLDivElement;
|
|
protected formatArray(key: string): any;
|
|
private getShapeSize;
|
|
private getStyle;
|
|
destroy(): void;
|
|
}
|
|
export {};
|