UNPKG

d3-dag

Version:

Layout algorithms for visualizing directed acylic graphs.

65 lines (64 loc) 2.02 kB
/** * A {@link Lane} that assigns lanes to minimize edge crossings. * * @packageDocumentation */ import { Lane } from "."; import { OptChecking } from "../../layout"; /** * a lane operator that assigns lanes to minimize edge crossings. * * Create with {@link laneOpt}. */ export interface LaneOpt extends Lane<unknown, unknown> { /** * set whether to used compressed output * * If output is compressed then the number of crossings will be minimized * subject to the fewest number of lanes necessary. * * (default: `false`) */ compressed(val: boolean): LaneOpt; /** get the current compressed setting */ compressed(): boolean; /** * set whether to also minimize distance between connected nodes * * This adds more variables and constraints so will take longer, but will * likely produce a better layout. * * (default: `true`) */ dist(val: boolean): LaneOpt; /** get whether the current layout minimized distance */ dist(): boolean; /** * set the large dag handling * * Setting to anything but `"fast"` will allow running on larger dags, but * the layout may run forever, or crash the vm. * * (default: `"fast"`) */ check(val: OptChecking): LaneOpt; /** Return the handling of large graphs. */ check(): OptChecking; /** @internal flag indicating that this is built in to d3dag and shouldn't error in specific instances */ readonly d3dagBuiltin: true; } /** * create a default {@link LaneOpt} * * This {@link Lane} operator optimally minimizes edge crossings, but can take * a long time and may crash on large graphs. The {@link LaneOpt#check} option * is set to error if the graph is too big. {@link LaneOpt#compressed} and * {@link LaneOpt#dist} slightly tweak the resulting layout. * * @example * * ```ts * const builder = grid().lane(laneOpt().compressed(true)); * ``` */ export declare function laneOpt(...args: never[]): LaneOpt;