You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.1 KiB

4 months ago
import { BaseLayout } from '../layouts';
import type { GraphData, LayoutOptions } from '../spec';
import type { STDLayoutOptions } from '../spec/layout';
import type { DrawData } from '../transforms/types';
import type { RuntimeContext } from './types';
export declare class LayoutController {
private context;
private supervisor?;
private instance?;
private instances;
private animationResult?;
private get presetOptions();
private get options();
constructor(context: RuntimeContext);
getLayoutInstance(): BaseLayout[];
/**
* <zh/>
*
* <en/> Pre-layout, that is, perform layout before drawing
* @param data - <zh/> | <en/> Draw data
* @remarks
* <zh/>
*
* <en/> Pre-layout should only be executed before the first drawing, and subsequent updates will not trigger
*/
preLayout(data: DrawData): Promise<void>;
/**
* <zh/>
*
* <en/> Post layout, that is, perform layout after drawing
* @param layoutOptions - <zh/> | <en/> Layout options
*/
postLayout(layoutOptions?: LayoutOptions | undefined): Promise<void>;
private transformDataAfterLayout;
/**
* <zh/>
*
* <en/> Simulate layout
* @returns <zh/> | <en/> Simulated layout result
*/
simulate(): Promise<GraphData>;
stepLayout(data: GraphData, options: STDLayoutOptions, index: number): Promise<GraphData>;
private graphLayout;
private treeLayout;
private inferTreeLayoutOffset;
stopLayout(): void;
getLayoutData(options: STDLayoutOptions): GraphData;
/**
* <zh/>
*
* <en/> Create layout instance
* @param options - <zh/> | <en/> Layout options
* @returns <zh/> | <en/> Layout object
*/
private initGraphLayout;
private updateElementPosition;
destroy(): void;
}