@hpcc-js/wasm-graphviz
Version:
hpcc-js - WASM Graphviz
311 lines (310 loc) • 10.7 kB
TypeScript
export type Shape = "box" | "polygon" | "ellipse" | "oval" | "circle" | "point" | "egg" | "triangle" | "plaintext" | "plain" | "diamond" | "trapezium" | "parallelogram" | "house" | "pentagon" | "hexagon" | "septagon" | "octagon" | "doublecircle" | "doubleoctagon" | "tripleoctagon" | "invtriangle" | "invtrapezium" | "invhouse" | "Mdiamond" | "Msquare" | "Mcircle" | "rect" | "rectangle" | "square" | "star" | "none" | "underline" | "cylinder" | "note" | "tab" | "folder" | "box3d" | "component" | "promoter" | "cds" | "terminator" | "utr" | "primersite" | "restrictionsite" | "fivepoverhang" | "threepoverhang" | "noverhang" | "assembly" | "signature" | "insulator" | "ribosite" | "rnastab" | "proteasesite" | "proteinstab" | "rpromoter" | "rarrow" | "larrow" | "lpromoter" | "record" | "Mrecord";
export type ArrowType = "normal" | "inv" | "dot" | "invdot" | "odot" | "invodot" | "none" | "tee" | "empty" | "invempty" | "diamond" | "odiamond" | "ediamond" | "crow" | "box" | "obox" | "open" | "halfopen" | "vee";
export type DirType = "forward" | "back" | "both" | "none";
export type EdgeStyle = "solid" | "dashed" | "dotted" | "bold" | "invis" | "tapered";
export type NodeStyle = "solid" | "dashed" | "dotted" | "bold" | "invis" | "filled" | "striped" | "wedged" | "diagonals" | "rounded" | "radial";
export type ClusterStyle = "solid" | "dashed" | "dotted" | "bold" | "invis" | "filled" | "striped" | "rounded" | "radial";
/** Cluster ranking mode (https://graphviz.org/docs/attr-types/clusterMode/) */
export type ClusterMode = "local" | "global" | "none";
/** Output draw order (https://graphviz.org/docs/attr-types/outputMode/) */
export type OutputMode = "breadthfirst" | "nodesfirst" | "edgesfirst";
/** Graph layout direction (https://graphviz.org/docs/attr-types/rankdir/) */
export type RankDir = "TB" | "LR" | "BT" | "RL";
/** Subgraph rank constraint (https://graphviz.org/docs/attr-types/rankType/) */
export type RankType = "same" | "min" | "source" | "max" | "sink";
/** Page output order (https://graphviz.org/docs/attr-types/pagedir/) */
export type PageDir = "BL" | "BR" | "TL" | "TR" | "RB" | "RT" | "LB" | "LT";
/** Component packing granularity (https://graphviz.org/docs/attr-types/packMode/) */
export type PackMode = "node" | "cluster" | "graph";
/** Smoothing method for sfdp (https://graphviz.org/docs/attr-types/smoothType/) */
export type SmoothType = "none" | "avg_dist" | "graph_dist" | "power_dist" | "rng" | "spring" | "triangle";
/** Quadtree scheme for sfdp (https://graphviz.org/docs/attr-types/quadType/) */
export type QuadType = "normal" | "fast" | "none";
/** Compass point for port positions (https://graphviz.org/docs/attr-types/portPos/) */
export type CompassPoint = "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "c" | "_";
/** Vertical placement of labels for nodes, root graphs and clusters (https://graphviz.org/docs/attr-types/labelloc/) */
export type LabelLoc = "t" | "c" | "b";
export interface NodeAttrs {
area?: number;
class?: string;
color?: string;
colorscheme?: string;
comment?: string;
distortion?: number;
fillcolor?: string;
fixedsize?: boolean | string;
fontcolor?: string;
fontname?: string;
fontsize?: number;
gradientangle?: number;
group?: string;
height?: number;
href?: string;
id?: string;
image?: string;
imagepos?: string;
imagescale?: boolean | string;
label?: string;
labelloc?: LabelLoc;
layer?: string;
margin?: number | string;
nojustify?: boolean;
ordering?: string;
orientation?: number;
penwidth?: number;
peripheries?: number;
pin?: boolean;
pos?: string;
rects?: string;
regular?: boolean;
root?: string | boolean;
samplepoints?: number;
shape?: Shape;
shapefile?: string;
showboxes?: number;
sides?: number;
skew?: number;
sortv?: number;
style?: string;
target?: string;
tooltip?: string;
URL?: string;
vertices?: string;
width?: number;
xlabel?: string;
xlp?: string;
z?: number;
}
export interface EdgeAttrs {
arrowhead?: ArrowType;
arrowsize?: number;
arrowtail?: ArrowType;
class?: string;
color?: string;
colorscheme?: string;
comment?: string;
constraint?: boolean;
decorate?: boolean;
dir?: DirType;
edgehref?: string;
edgetarget?: string;
edgetooltip?: string;
edgeURL?: string;
fillcolor?: string;
fontcolor?: string;
fontname?: string;
fontsize?: number;
head_lp?: string;
headclip?: boolean;
headhref?: string;
headlabel?: string;
headport?: string;
headtarget?: string;
headtooltip?: string;
headURL?: string;
href?: string;
id?: string;
label?: string;
labelangle?: number;
labeldistance?: number;
labelfloat?: boolean;
labelfontcolor?: string;
labelfontname?: string;
labelfontsize?: number;
labelhref?: string;
labeltarget?: string;
labeltooltip?: string;
labelURL?: string;
layer?: string;
len?: number;
lhead?: string;
lp?: string;
ltail?: string;
minlen?: number;
nojustify?: boolean;
penwidth?: number;
pos?: string;
radius?: number;
samehead?: string;
sametail?: string;
showboxes?: number;
style?: EdgeStyle | string;
tail_lp?: string;
tailclip?: boolean;
tailhref?: string;
taillabel?: string;
tailport?: string;
tailtarget?: string;
tailtooltip?: string;
tailURL?: string;
target?: string;
tooltip?: string;
URL?: string;
weight?: number;
xlabel?: string;
xlp?: string;
}
export interface ClusterAttrs {
area?: number;
bb?: string;
bgcolor?: string;
class?: string;
cluster?: boolean;
color?: string;
colorscheme?: string;
fillcolor?: string;
fontcolor?: string;
fontname?: string;
fontsize?: number;
gradientangle?: number;
href?: string;
id?: string;
K?: number;
label?: string;
labeljust?: string;
labelloc?: LabelLoc;
layer?: string;
lheight?: number;
lp?: string;
lwidth?: number;
margin?: number | string;
nojustify?: boolean;
pencolor?: string;
penwidth?: number;
peripheries?: number;
rank?: RankType;
sortv?: number;
style?: string;
target?: string;
tooltip?: string;
URL?: string;
}
export interface GraphAttrs {
_background?: string;
bb?: string;
beautify?: boolean;
bgcolor?: string;
center?: boolean;
charset?: string;
class?: string;
clusterrank?: ClusterMode;
colorscheme?: string;
comment?: string;
compound?: boolean;
concentrate?: boolean;
Damping?: number;
defaultdist?: number;
dim?: number;
dimen?: number;
diredgeconstraints?: string | boolean;
dpi?: number;
epsilon?: number;
esep?: string;
fontcolor?: string;
fontname?: string;
fontnames?: string;
fontpath?: string;
fontsize?: number;
forcelabels?: boolean;
gradientangle?: number;
href?: string;
id?: string;
imagepath?: string;
inputscale?: number;
K?: number;
label?: string;
label_scheme?: number;
labeljust?: string;
labelloc?: LabelLoc;
landscape?: boolean;
layerlistsep?: string;
layers?: string;
layerselect?: string;
layersep?: string;
layout?: string;
levels?: number;
levelsgap?: number;
lheight?: number;
linelength?: number;
lp?: string;
lwidth?: number;
margin?: number | string;
maxiter?: number;
mclimit?: number;
mindist?: number;
mode?: string;
model?: string;
newrank?: boolean;
nodesep?: number;
nojustify?: boolean;
normalize?: number | boolean;
notranslate?: boolean;
nslimit?: number;
nslimit1?: number;
oneblock?: boolean;
ordering?: string;
orientation?: string;
outputorder?: OutputMode;
overlap?: string | boolean;
overlap_scaling?: number;
overlap_shrink?: boolean;
pack?: boolean | number;
packmode?: string;
pad?: number | string;
page?: number | string;
pagedir?: PageDir;
quantum?: number;
rankdir?: RankDir;
ranksep?: number | string;
ratio?: number | string;
remincross?: boolean;
repulsiveforce?: number;
resolution?: number;
root?: string | boolean;
rotate?: number;
rotation?: number;
scale?: number | string;
searchsize?: number;
sep?: string;
showboxes?: number;
size?: number | string;
smoothing?: SmoothType;
sortv?: number;
splines?: boolean | string;
start?: string;
style?: string;
stylesheet?: string;
target?: string;
TBbalance?: string;
tooltip?: string;
truecolor?: boolean;
URL?: string;
viewport?: string;
voro_margin?: number;
xdotversion?: string;
}
type NodeWriteOnly = "rects" | "vertices" | "xlp";
type EdgeWriteOnly = "head_lp" | "tail_lp" | "lp" | "xlp";
type ClusterWriteOnly = "bb" | "lheight" | "lp" | "lwidth";
type GraphExcluded = "type" | "strict" | "nodeDefaults" | "edgeDefaults" | "graphDefaults" | "bb" | "lheight" | "lp" | "lwidth";
export type NodeDotAttr = Exclude<keyof NodeAttrs, NodeWriteOnly>;
export type EdgeDotAttr = Exclude<keyof EdgeAttrs, EdgeWriteOnly>;
export type ClusterDotAttr = Exclude<keyof ClusterAttrs, ClusterWriteOnly>;
export type GraphDotAttr = Exclude<keyof GraphAttrs, GraphExcluded>;
/** Node DOT attributes (excludes inherited base keys and write-only: rects, vertices, xlp) */
export declare const NODE_DOT_ATTRS: readonly NodeDotAttr[];
/** Edge DOT attributes (excludes inherited base keys and write-only: head_lp, tail_lp, lp, xlp) */
export declare const EDGE_DOT_ATTRS: readonly EdgeDotAttr[];
/** Cluster DOT attributes (excludes inherited base keys and write-only: bb, lheight, lp, lwidth) */
export declare const CLUSTER_DOT_ATTRS: readonly ClusterDotAttr[];
/** Graph DOT attributes (excludes write-only: bb, lheight, lp, lwidth; and non-DOT: type) */
export declare const GRAPH_DOT_ATTRS: readonly GraphDotAttr[];
/**
* Various graphic and data formats for end user, web, documents and other applications. See [Output Formats](https://graphviz.org/docs/outputs/) for more information.
*/
export type Format = "svg" | "svg_inline" | "dot" | "json" | "dot_json" | "xdot_json" | "plain" | "plain-ext" | "canon";
/**
* Various algorithms for projecting abstract graphs into a space for visualization. See [Layout Engines](https://graphviz.org/docs/layouts/) for more details.
*/
export type Engine = "circo" | "dot" | "fdp" | "sfdp" | "neato" | "osage" | "patchwork" | "twopi" | "nop" | "nop2";
export {};