@antv/f6-plugin
Version:
F6 plugin
93 lines (92 loc) • 2.62 kB
TypeScript
import { Canvas as GCanvas } from '@antv/g-canvas';
import { ShapeStyle, IAbstractGraph as IGraph } from '@antv/f6-core';
import Base, { IPluginBaseConfig } from '../base';
interface MiniMapConfig extends IPluginBaseConfig {
viewportClassName?: string;
className?: string;
type?: 'default' | 'keyShape' | 'delegate';
size?: number[];
delegateStyle?: ShapeStyle;
refresh?: boolean;
padding?: number;
getCss?: Function;
}
export default class MiniMap extends Base {
constructor(config?: MiniMapConfig);
this: IGraph;
getDefaultCfgs(): MiniMapConfig;
getEvents(): {
beforepaint: string;
beforeanimate: string;
afteranimate: string;
viewportchange: string;
};
protected disableRefresh(): void;
protected enableRefresh(): void;
protected disableOneRefresh(): void;
private initViewport;
/**
* 更新 viewport 视图
*/
private updateViewport;
/**
* 将主图上的图形完全复制到小图
*/
private updateGraphShapes;
private updateKeyShapes;
/**
* 增加/更新单个元素的 keyShape
* @param item ICombo 实例
*/
private updateOneComboKeyShape;
/**
* 增加/更新单个元素的 keyShape
* @param item INode 实例
*/
private updateOneNodeKeyShape;
/**
* Minimap 中展示自定义的rect,支持用户自定义样式和节点大小
*/
private updateDelegateShapes;
private clearDestroyedShapes;
/**
* 设置只显示 edge 的 keyShape
* @param item IEdge 实例
*/
private updateOneEdgeKeyShape;
/**
* Minimap 中展示自定义的 rect,支持用户自定义样式和节点大小
* 增加/更新单个元素
* @param item INode 实例
*/
private updateOneNodeDelegateShape;
/**
* 主图更新的监听函数,使用 debounce 减少渲染频率
* e.g. 拖拽节点只会在松手后的 100ms 后执行 updateCanvas
* e.g. render 时大量 addItem 也只会执行一次 updateCanvas
*/
private handleUpdateCanvas;
init(): void;
/**
* 初始化 Minimap 的容器
*/
initContainer(): void;
updateCanvas(): void;
/**
* 获取minimap的画布
* @return {GCanvas} G的canvas实例
*/
getCanvas(): GCanvas;
/**
* 获取minimap的窗口
* @return {HTMLElement} 窗口的dom实例
*/
getViewport(): HTMLElement;
/**
* 获取minimap的容器dom
* @return {HTMLElement} dom
*/
getContainer(): HTMLElement;
destroy(): void;
}
export {};