d3-dag
Version:
Layout algorithms for visualizing directed acylic graphs.
62 lines (61 loc) • 2.02 kB
TypeScript
import { Lane } from ".";
/**
* a lane operator that assigns lanes greedily, but quickly.
*
* Create with {@link laneGreedy}.
*/
export interface LaneGreedy extends Lane<unknown, unknown> {
/**
* set whether the greedy assignment should be top-down or bottom-up.
*
* These produce slightly different results with the way the nodes are assigned.
*
* (default: `true`)
*/
topDown(val: boolean): LaneGreedy;
/**
* get whether the current operator is set to assign top-down..
*/
topDown(): boolean;
/**
* set whether to used compressed output
*
* If output is compressed a free lane will be chosen over minimizing edge
* lengths. This can sometimes create cluttered layouts, but they will be
* less wide.
*
* (default: `true`)
*/
compressed(val: boolean): LaneGreedy;
/** get the current compressed setting */
compressed(): boolean;
/**
* set whether to assign bidirectional indices
*
* The first node will be assigned lane zero. If bidirectional, the lanes can
* fan out in either direction from there, otherwise new lanes will always be
* added to the right.
*
* (default: `false`)
*/
bidirectional(val: boolean): LaneGreedy;
/** get the current bidirectional setting */
bidirectional(): boolean;
/** @internal flag indicating that this is built in to d3dag and shouldn't error in specific instances */
readonly d3dagBuiltin: true;
}
/**
* create a default {@link LaneGreedy}
*
* This {@link Lane} operator doesn't completely remove edge crossing, but is
* much faster than {@link laneOpt}. This lane operator has three different
* settings that allow for alteration: {@link LaneGreedy#bidirectional},
* {@link LaneGreedy#compressed}, and {@link LaneGreedy#topDown}.
*
* @example
*
* ```ts
* const layout = grid().lane(laneGreedy().compressed(false));
* ```
*/
export declare function laneGreedy(...args: never[]): LaneGreedy;