@hpcc-js/wasm-graphviz 1.22.2 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +176 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
- package/src/graphviz.ts +696 -1
- package/src/index.ts +1 -1
- package/src/types.ts +607 -0
- package/types/graphviz.d.ts +443 -0
- package/types/graphvizlib.d.ts +63 -0
- package/types/types.d.ts +299 -0
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./graphviz.ts";
|
|
1
|
+
export * from "./graphviz.ts";
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,607 @@
|
|
|
1
|
+
// --- Node shapes (https://graphviz.org/doc/info/shapes.html) ---
|
|
2
|
+
|
|
3
|
+
export type Shape =
|
|
4
|
+
| "box" | "polygon" | "ellipse" | "oval" | "circle" | "point" | "egg" | "triangle"
|
|
5
|
+
| "plaintext" | "plain" | "diamond" | "trapezium" | "parallelogram" | "house"
|
|
6
|
+
| "pentagon" | "hexagon" | "septagon" | "octagon" | "doublecircle" | "doubleoctagon"
|
|
7
|
+
| "tripleoctagon" | "invtriangle" | "invtrapezium" | "invhouse" | "Mdiamond"
|
|
8
|
+
| "Msquare" | "Mcircle" | "rect" | "rectangle" | "square" | "star" | "none"
|
|
9
|
+
| "underline" | "cylinder" | "note" | "tab" | "folder" | "box3d" | "component"
|
|
10
|
+
| "promoter" | "cds" | "terminator" | "utr" | "primersite" | "restrictionsite"
|
|
11
|
+
| "fivepoverhang" | "threepoverhang" | "noverhang" | "assembly" | "signature"
|
|
12
|
+
| "insulator" | "ribosite" | "rnastab" | "proteasesite" | "proteinstab"
|
|
13
|
+
| "rpromoter" | "rarrow" | "larrow" | "lpromoter" | "record" | "Mrecord";
|
|
14
|
+
|
|
15
|
+
// --- Arrow type (https://graphviz.org/docs/attr-types/arrowType/) ---
|
|
16
|
+
|
|
17
|
+
export type ArrowType =
|
|
18
|
+
| "normal" | "inv" | "dot" | "invdot" | "odot" | "invodot" | "none" | "tee"
|
|
19
|
+
| "empty" | "invempty" | "diamond" | "odiamond" | "ediamond" | "crow"
|
|
20
|
+
| "box" | "obox" | "open" | "halfopen" | "vee";
|
|
21
|
+
|
|
22
|
+
// --- Edge direction type (https://graphviz.org/docs/attr-types/dirType/) ---
|
|
23
|
+
|
|
24
|
+
export type DirType = "forward" | "back" | "both" | "none";
|
|
25
|
+
|
|
26
|
+
// --- Style types (https://graphviz.org/docs/attr-types/style/) ---
|
|
27
|
+
|
|
28
|
+
export type EdgeStyle = "solid" | "dashed" | "dotted" | "bold" | "invis" | "tapered";
|
|
29
|
+
|
|
30
|
+
export type NodeStyle = "solid" | "dashed" | "dotted" | "bold" | "invis" | "filled" | "striped" | "wedged" | "diagonals" | "rounded" | "radial";
|
|
31
|
+
|
|
32
|
+
export type ClusterStyle = "solid" | "dashed" | "dotted" | "bold" | "invis" | "filled" | "striped" | "rounded" | "radial";
|
|
33
|
+
|
|
34
|
+
// --- Graph layout enums ---
|
|
35
|
+
|
|
36
|
+
/** Cluster ranking mode (https://graphviz.org/docs/attr-types/clusterMode/) */
|
|
37
|
+
export type ClusterMode = "local" | "global" | "none";
|
|
38
|
+
|
|
39
|
+
/** Output draw order (https://graphviz.org/docs/attr-types/outputMode/) */
|
|
40
|
+
export type OutputMode = "breadthfirst" | "nodesfirst" | "edgesfirst";
|
|
41
|
+
|
|
42
|
+
/** Graph layout direction (https://graphviz.org/docs/attr-types/rankdir/) */
|
|
43
|
+
export type RankDir = "TB" | "LR" | "BT" | "RL";
|
|
44
|
+
|
|
45
|
+
/** Subgraph rank constraint (https://graphviz.org/docs/attr-types/rankType/) */
|
|
46
|
+
export type RankType = "same" | "min" | "source" | "max" | "sink";
|
|
47
|
+
|
|
48
|
+
/** Page output order (https://graphviz.org/docs/attr-types/pagedir/) */
|
|
49
|
+
export type PageDir = "BL" | "BR" | "TL" | "TR" | "RB" | "RT" | "LB" | "LT";
|
|
50
|
+
|
|
51
|
+
/** Component packing granularity (https://graphviz.org/docs/attr-types/packMode/) */
|
|
52
|
+
export type PackMode = "node" | "cluster" | "graph";
|
|
53
|
+
|
|
54
|
+
/** Smoothing method for sfdp (https://graphviz.org/docs/attr-types/smoothType/) */
|
|
55
|
+
export type SmoothType = "none" | "avg_dist" | "graph_dist" | "power_dist" | "rng" | "spring" | "triangle";
|
|
56
|
+
|
|
57
|
+
/** Quadtree scheme for sfdp (https://graphviz.org/docs/attr-types/quadType/) */
|
|
58
|
+
export type QuadType = "normal" | "fast" | "none";
|
|
59
|
+
|
|
60
|
+
/** Compass point for port positions (https://graphviz.org/docs/attr-types/portPos/) */
|
|
61
|
+
export type CompassPoint = "n" | "ne" | "e" | "se" | "s" | "sw" | "w" | "nw" | "c" | "_";
|
|
62
|
+
|
|
63
|
+
/** Vertical placement of labels for nodes, root graphs and clusters (https://graphviz.org/docs/attr-types/labelloc/) */
|
|
64
|
+
export type LabelLoc = "t" | "c" | "b";
|
|
65
|
+
|
|
66
|
+
// --- Node Attributes (https://graphviz.org/docs/nodes) ---
|
|
67
|
+
|
|
68
|
+
export interface NodeAttrs {
|
|
69
|
+
area?: number;
|
|
70
|
+
class?: string;
|
|
71
|
+
color?: string;
|
|
72
|
+
colorscheme?: string;
|
|
73
|
+
comment?: string;
|
|
74
|
+
distortion?: number;
|
|
75
|
+
fillcolor?: string;
|
|
76
|
+
fixedsize?: boolean | string;
|
|
77
|
+
fontcolor?: string;
|
|
78
|
+
fontname?: string;
|
|
79
|
+
fontsize?: number;
|
|
80
|
+
gradientangle?: number;
|
|
81
|
+
group?: string;
|
|
82
|
+
height?: number;
|
|
83
|
+
href?: string;
|
|
84
|
+
image?: string;
|
|
85
|
+
imagepos?: string;
|
|
86
|
+
imagescale?: boolean | string;
|
|
87
|
+
label?: string;
|
|
88
|
+
labelloc?: LabelLoc;
|
|
89
|
+
layer?: string;
|
|
90
|
+
margin?: number | string;
|
|
91
|
+
nojustify?: boolean;
|
|
92
|
+
ordering?: string;
|
|
93
|
+
orientation?: number;
|
|
94
|
+
penwidth?: number;
|
|
95
|
+
peripheries?: number;
|
|
96
|
+
pin?: boolean;
|
|
97
|
+
pos?: string;
|
|
98
|
+
rects?: string;
|
|
99
|
+
regular?: boolean;
|
|
100
|
+
root?: string | boolean;
|
|
101
|
+
samplepoints?: number;
|
|
102
|
+
shape?: Shape;
|
|
103
|
+
shapefile?: string;
|
|
104
|
+
showboxes?: number;
|
|
105
|
+
sides?: number;
|
|
106
|
+
skew?: number;
|
|
107
|
+
sortv?: number;
|
|
108
|
+
style?: string;
|
|
109
|
+
target?: string;
|
|
110
|
+
tooltip?: string;
|
|
111
|
+
URL?: string;
|
|
112
|
+
vertices?: string;
|
|
113
|
+
width?: number;
|
|
114
|
+
xlabel?: string;
|
|
115
|
+
xlp?: string;
|
|
116
|
+
z?: number;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// --- Edge Attributes (https://graphviz.org/docs/edges) ---
|
|
120
|
+
|
|
121
|
+
export interface EdgeAttrs {
|
|
122
|
+
arrowhead?: ArrowType;
|
|
123
|
+
arrowsize?: number;
|
|
124
|
+
arrowtail?: ArrowType;
|
|
125
|
+
class?: string;
|
|
126
|
+
color?: string;
|
|
127
|
+
colorscheme?: string;
|
|
128
|
+
comment?: string;
|
|
129
|
+
constraint?: boolean;
|
|
130
|
+
decorate?: boolean;
|
|
131
|
+
dir?: DirType;
|
|
132
|
+
edgehref?: string;
|
|
133
|
+
edgetarget?: string;
|
|
134
|
+
edgetooltip?: string;
|
|
135
|
+
edgeURL?: string;
|
|
136
|
+
fillcolor?: string;
|
|
137
|
+
fontcolor?: string;
|
|
138
|
+
fontname?: string;
|
|
139
|
+
fontsize?: number;
|
|
140
|
+
head_lp?: string;
|
|
141
|
+
headclip?: boolean;
|
|
142
|
+
headhref?: string;
|
|
143
|
+
headlabel?: string;
|
|
144
|
+
headport?: string;
|
|
145
|
+
headtarget?: string;
|
|
146
|
+
headtooltip?: string;
|
|
147
|
+
headURL?: string;
|
|
148
|
+
href?: string;
|
|
149
|
+
label?: string;
|
|
150
|
+
labelangle?: number;
|
|
151
|
+
labeldistance?: number;
|
|
152
|
+
labelfloat?: boolean;
|
|
153
|
+
labelfontcolor?: string;
|
|
154
|
+
labelfontname?: string;
|
|
155
|
+
labelfontsize?: number;
|
|
156
|
+
labelhref?: string;
|
|
157
|
+
labeltarget?: string;
|
|
158
|
+
labeltooltip?: string;
|
|
159
|
+
labelURL?: string;
|
|
160
|
+
layer?: string;
|
|
161
|
+
len?: number;
|
|
162
|
+
lhead?: string;
|
|
163
|
+
lp?: string;
|
|
164
|
+
ltail?: string;
|
|
165
|
+
minlen?: number;
|
|
166
|
+
nojustify?: boolean;
|
|
167
|
+
penwidth?: number;
|
|
168
|
+
pos?: string;
|
|
169
|
+
radius?: number;
|
|
170
|
+
samehead?: string;
|
|
171
|
+
sametail?: string;
|
|
172
|
+
showboxes?: number;
|
|
173
|
+
style?: EdgeStyle | string;
|
|
174
|
+
tail_lp?: string;
|
|
175
|
+
tailclip?: boolean;
|
|
176
|
+
tailhref?: string;
|
|
177
|
+
taillabel?: string;
|
|
178
|
+
tailport?: string;
|
|
179
|
+
tailtarget?: string;
|
|
180
|
+
tailtooltip?: string;
|
|
181
|
+
tailURL?: string;
|
|
182
|
+
target?: string;
|
|
183
|
+
tooltip?: string;
|
|
184
|
+
URL?: string;
|
|
185
|
+
weight?: number;
|
|
186
|
+
xlabel?: string;
|
|
187
|
+
xlp?: string;
|
|
188
|
+
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// --- Cluster Attributes (https://graphviz.org/docs/clusters) ---
|
|
192
|
+
|
|
193
|
+
export interface ClusterAttrs {
|
|
194
|
+
area?: number;
|
|
195
|
+
bb?: string;
|
|
196
|
+
bgcolor?: string;
|
|
197
|
+
class?: string;
|
|
198
|
+
cluster?: boolean;
|
|
199
|
+
color?: string;
|
|
200
|
+
colorscheme?: string;
|
|
201
|
+
fillcolor?: string;
|
|
202
|
+
fontcolor?: string;
|
|
203
|
+
fontname?: string;
|
|
204
|
+
fontsize?: number;
|
|
205
|
+
gradientangle?: number;
|
|
206
|
+
href?: string;
|
|
207
|
+
K?: number;
|
|
208
|
+
label?: string;
|
|
209
|
+
labeljust?: string;
|
|
210
|
+
labelloc?: LabelLoc;
|
|
211
|
+
layer?: string;
|
|
212
|
+
lheight?: number;
|
|
213
|
+
lp?: string;
|
|
214
|
+
lwidth?: number;
|
|
215
|
+
margin?: number | string;
|
|
216
|
+
nojustify?: boolean;
|
|
217
|
+
pencolor?: string;
|
|
218
|
+
penwidth?: number;
|
|
219
|
+
peripheries?: number;
|
|
220
|
+
rank?: RankType;
|
|
221
|
+
sortv?: number;
|
|
222
|
+
style?: string;
|
|
223
|
+
target?: string;
|
|
224
|
+
tooltip?: string;
|
|
225
|
+
URL?: string;
|
|
226
|
+
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// --- Graph Attributes (https://graphviz.org/docs/graph) ---
|
|
230
|
+
|
|
231
|
+
export interface GraphAttrs {
|
|
232
|
+
_background?: string;
|
|
233
|
+
bb?: string;
|
|
234
|
+
beautify?: boolean;
|
|
235
|
+
bgcolor?: string;
|
|
236
|
+
center?: boolean;
|
|
237
|
+
charset?: string;
|
|
238
|
+
class?: string;
|
|
239
|
+
clusterrank?: ClusterMode;
|
|
240
|
+
colorscheme?: string;
|
|
241
|
+
comment?: string;
|
|
242
|
+
compound?: boolean;
|
|
243
|
+
concentrate?: boolean;
|
|
244
|
+
Damping?: number;
|
|
245
|
+
defaultdist?: number;
|
|
246
|
+
dim?: number;
|
|
247
|
+
dimen?: number;
|
|
248
|
+
diredgeconstraints?: string | boolean;
|
|
249
|
+
dpi?: number;
|
|
250
|
+
epsilon?: number;
|
|
251
|
+
esep?: string;
|
|
252
|
+
fontcolor?: string;
|
|
253
|
+
fontname?: string;
|
|
254
|
+
fontnames?: string;
|
|
255
|
+
fontpath?: string;
|
|
256
|
+
fontsize?: number;
|
|
257
|
+
forcelabels?: boolean;
|
|
258
|
+
gradientangle?: number;
|
|
259
|
+
href?: string;
|
|
260
|
+
id?: string;
|
|
261
|
+
imagepath?: string;
|
|
262
|
+
inputscale?: number;
|
|
263
|
+
K?: number;
|
|
264
|
+
label?: string;
|
|
265
|
+
label_scheme?: number;
|
|
266
|
+
labeljust?: string;
|
|
267
|
+
labelloc?: LabelLoc;
|
|
268
|
+
landscape?: boolean;
|
|
269
|
+
layerlistsep?: string;
|
|
270
|
+
layers?: string;
|
|
271
|
+
layerselect?: string;
|
|
272
|
+
layersep?: string;
|
|
273
|
+
layout?: string;
|
|
274
|
+
levels?: number;
|
|
275
|
+
levelsgap?: number;
|
|
276
|
+
lheight?: number;
|
|
277
|
+
linelength?: number;
|
|
278
|
+
lp?: string;
|
|
279
|
+
lwidth?: number;
|
|
280
|
+
margin?: number | string;
|
|
281
|
+
maxiter?: number;
|
|
282
|
+
mclimit?: number;
|
|
283
|
+
mindist?: number;
|
|
284
|
+
mode?: string;
|
|
285
|
+
model?: string;
|
|
286
|
+
newrank?: boolean;
|
|
287
|
+
nodesep?: number;
|
|
288
|
+
nojustify?: boolean;
|
|
289
|
+
normalize?: number | boolean;
|
|
290
|
+
notranslate?: boolean;
|
|
291
|
+
nslimit?: number;
|
|
292
|
+
nslimit1?: number;
|
|
293
|
+
oneblock?: boolean;
|
|
294
|
+
ordering?: string;
|
|
295
|
+
orientation?: string;
|
|
296
|
+
outputorder?: OutputMode;
|
|
297
|
+
overlap?: string | boolean;
|
|
298
|
+
overlap_scaling?: number;
|
|
299
|
+
overlap_shrink?: boolean;
|
|
300
|
+
pack?: boolean | number;
|
|
301
|
+
packmode?: string;
|
|
302
|
+
pad?: number | string;
|
|
303
|
+
page?: number | string;
|
|
304
|
+
pagedir?: PageDir;
|
|
305
|
+
quantum?: number;
|
|
306
|
+
rankdir?: RankDir;
|
|
307
|
+
ranksep?: number | string;
|
|
308
|
+
ratio?: number | string;
|
|
309
|
+
remincross?: boolean;
|
|
310
|
+
repulsiveforce?: number;
|
|
311
|
+
resolution?: number;
|
|
312
|
+
root?: string | boolean;
|
|
313
|
+
rotate?: number;
|
|
314
|
+
rotation?: number;
|
|
315
|
+
scale?: number | string;
|
|
316
|
+
searchsize?: number;
|
|
317
|
+
sep?: string;
|
|
318
|
+
showboxes?: number;
|
|
319
|
+
size?: number | string;
|
|
320
|
+
smoothing?: SmoothType;
|
|
321
|
+
sortv?: number;
|
|
322
|
+
splines?: boolean | string;
|
|
323
|
+
start?: string;
|
|
324
|
+
style?: string;
|
|
325
|
+
stylesheet?: string;
|
|
326
|
+
target?: string;
|
|
327
|
+
TBbalance?: string;
|
|
328
|
+
tooltip?: string;
|
|
329
|
+
truecolor?: boolean;
|
|
330
|
+
URL?: string;
|
|
331
|
+
viewport?: string;
|
|
332
|
+
voro_margin?: number;
|
|
333
|
+
xdotversion?: string;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// --- DOT attribute name arrays for generic collection ---
|
|
337
|
+
// Uses Record<Key, true> pattern to guarantee completeness at compile time:
|
|
338
|
+
// adding a property to an interface without updating the corresponding record
|
|
339
|
+
// produces a TypeScript error for the missing key.
|
|
340
|
+
|
|
341
|
+
/** Extracts keys from a validated Record<K, true> as an immutable typed array. */
|
|
342
|
+
function attrsOf<K extends string>(record: Record<K, true>): readonly K[] {
|
|
343
|
+
return Object.freeze(Object.keys(record) as K[]);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
// Write-only attributes are set by layout engines, not user input
|
|
347
|
+
type NodeWriteOnly = "rects" | "vertices" | "xlp";
|
|
348
|
+
type EdgeWriteOnly = "head_lp" | "tail_lp" | "lp" | "xlp";
|
|
349
|
+
type ClusterWriteOnly = "bb" | "lheight" | "lp" | "lwidth";
|
|
350
|
+
type GraphExcluded = "type" | "strict" | "nodeDefaults" | "edgeDefaults" | "graphDefaults" | "bb" | "lheight" | "lp" | "lwidth";
|
|
351
|
+
|
|
352
|
+
// DOT attribute key types — derived from interfaces minus excluded keys.
|
|
353
|
+
// If a new property is added to an interface, the corresponding record below
|
|
354
|
+
// will fail to compile until the key is added (or explicitly excluded).
|
|
355
|
+
export type NodeDotAttr = Exclude<keyof NodeAttrs, NodeWriteOnly>;
|
|
356
|
+
export type EdgeDotAttr = Exclude<keyof EdgeAttrs, EdgeWriteOnly>;
|
|
357
|
+
export type ClusterDotAttr = Exclude<keyof ClusterAttrs, ClusterWriteOnly>;
|
|
358
|
+
export type GraphDotAttr = Exclude<keyof GraphAttrs, GraphExcluded>;
|
|
359
|
+
|
|
360
|
+
/** Node DOT attributes (excludes inherited base keys and write-only: rects, vertices, xlp) */
|
|
361
|
+
export const NODE_DOT_ATTRS: readonly NodeDotAttr[] = attrsOf<NodeDotAttr>({
|
|
362
|
+
area: true,
|
|
363
|
+
class: true,
|
|
364
|
+
color: true,
|
|
365
|
+
colorscheme: true,
|
|
366
|
+
comment: true,
|
|
367
|
+
distortion: true,
|
|
368
|
+
fillcolor: true,
|
|
369
|
+
fixedsize: true,
|
|
370
|
+
fontcolor: true,
|
|
371
|
+
fontname: true,
|
|
372
|
+
fontsize: true,
|
|
373
|
+
gradientangle: true,
|
|
374
|
+
group: true,
|
|
375
|
+
height: true,
|
|
376
|
+
href: true,
|
|
377
|
+
image: true,
|
|
378
|
+
imagepos: true,
|
|
379
|
+
imagescale: true,
|
|
380
|
+
label: true,
|
|
381
|
+
labelloc: true,
|
|
382
|
+
layer: true,
|
|
383
|
+
margin: true,
|
|
384
|
+
nojustify: true,
|
|
385
|
+
ordering: true,
|
|
386
|
+
orientation: true,
|
|
387
|
+
penwidth: true,
|
|
388
|
+
peripheries: true,
|
|
389
|
+
pin: true,
|
|
390
|
+
pos: true,
|
|
391
|
+
regular: true,
|
|
392
|
+
root: true,
|
|
393
|
+
samplepoints: true,
|
|
394
|
+
shape: true,
|
|
395
|
+
shapefile: true,
|
|
396
|
+
showboxes: true,
|
|
397
|
+
sides: true,
|
|
398
|
+
skew: true,
|
|
399
|
+
sortv: true,
|
|
400
|
+
style: true,
|
|
401
|
+
target: true,
|
|
402
|
+
tooltip: true,
|
|
403
|
+
URL: true,
|
|
404
|
+
width: true,
|
|
405
|
+
xlabel: true,
|
|
406
|
+
z: true,
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
/** Edge DOT attributes (excludes inherited base keys and write-only: head_lp, tail_lp, lp, xlp) */
|
|
410
|
+
export const EDGE_DOT_ATTRS: readonly EdgeDotAttr[] = attrsOf<EdgeDotAttr>({
|
|
411
|
+
arrowhead: true,
|
|
412
|
+
arrowsize: true,
|
|
413
|
+
arrowtail: true,
|
|
414
|
+
class: true,
|
|
415
|
+
color: true,
|
|
416
|
+
colorscheme: true,
|
|
417
|
+
comment: true,
|
|
418
|
+
constraint: true,
|
|
419
|
+
decorate: true,
|
|
420
|
+
dir: true,
|
|
421
|
+
edgehref: true,
|
|
422
|
+
edgetarget: true,
|
|
423
|
+
edgetooltip: true,
|
|
424
|
+
edgeURL: true,
|
|
425
|
+
fillcolor: true,
|
|
426
|
+
fontcolor: true,
|
|
427
|
+
fontname: true,
|
|
428
|
+
fontsize: true,
|
|
429
|
+
headclip: true,
|
|
430
|
+
headhref: true,
|
|
431
|
+
headlabel: true,
|
|
432
|
+
headport: true,
|
|
433
|
+
headtarget: true,
|
|
434
|
+
headtooltip: true,
|
|
435
|
+
headURL: true,
|
|
436
|
+
href: true,
|
|
437
|
+
label: true,
|
|
438
|
+
labelangle: true,
|
|
439
|
+
labeldistance: true,
|
|
440
|
+
labelfloat: true,
|
|
441
|
+
labelfontcolor: true,
|
|
442
|
+
labelfontname: true,
|
|
443
|
+
labelfontsize: true,
|
|
444
|
+
labelhref: true,
|
|
445
|
+
labeltarget: true,
|
|
446
|
+
labeltooltip: true,
|
|
447
|
+
labelURL: true,
|
|
448
|
+
layer: true,
|
|
449
|
+
len: true,
|
|
450
|
+
lhead: true,
|
|
451
|
+
ltail: true,
|
|
452
|
+
minlen: true,
|
|
453
|
+
nojustify: true,
|
|
454
|
+
penwidth: true,
|
|
455
|
+
pos: true,
|
|
456
|
+
radius: true,
|
|
457
|
+
samehead: true,
|
|
458
|
+
sametail: true,
|
|
459
|
+
showboxes: true,
|
|
460
|
+
style: true,
|
|
461
|
+
tailclip: true,
|
|
462
|
+
tailhref: true,
|
|
463
|
+
taillabel: true,
|
|
464
|
+
tailport: true,
|
|
465
|
+
tailtarget: true,
|
|
466
|
+
tailtooltip: true,
|
|
467
|
+
tailURL: true,
|
|
468
|
+
target: true,
|
|
469
|
+
tooltip: true,
|
|
470
|
+
URL: true,
|
|
471
|
+
weight: true,
|
|
472
|
+
xlabel: true,
|
|
473
|
+
});
|
|
474
|
+
|
|
475
|
+
/** Cluster DOT attributes (excludes inherited base keys and write-only: bb, lheight, lp, lwidth) */
|
|
476
|
+
export const CLUSTER_DOT_ATTRS: readonly ClusterDotAttr[] = attrsOf<ClusterDotAttr>({
|
|
477
|
+
area: true,
|
|
478
|
+
bgcolor: true,
|
|
479
|
+
class: true,
|
|
480
|
+
cluster: true,
|
|
481
|
+
color: true,
|
|
482
|
+
colorscheme: true,
|
|
483
|
+
fillcolor: true,
|
|
484
|
+
fontcolor: true,
|
|
485
|
+
fontname: true,
|
|
486
|
+
fontsize: true,
|
|
487
|
+
gradientangle: true,
|
|
488
|
+
href: true,
|
|
489
|
+
K: true,
|
|
490
|
+
label: true,
|
|
491
|
+
labeljust: true,
|
|
492
|
+
labelloc: true,
|
|
493
|
+
layer: true,
|
|
494
|
+
margin: true,
|
|
495
|
+
nojustify: true,
|
|
496
|
+
pencolor: true,
|
|
497
|
+
penwidth: true,
|
|
498
|
+
peripheries: true,
|
|
499
|
+
rank: true,
|
|
500
|
+
sortv: true,
|
|
501
|
+
style: true,
|
|
502
|
+
target: true,
|
|
503
|
+
tooltip: true,
|
|
504
|
+
URL: true,
|
|
505
|
+
});
|
|
506
|
+
|
|
507
|
+
/** Graph DOT attributes (excludes write-only: bb, lheight, lp, lwidth; and non-DOT: type) */
|
|
508
|
+
export const GRAPH_DOT_ATTRS: readonly GraphDotAttr[] = attrsOf<GraphDotAttr>({
|
|
509
|
+
_background: true,
|
|
510
|
+
beautify: true,
|
|
511
|
+
bgcolor: true,
|
|
512
|
+
center: true,
|
|
513
|
+
charset: true,
|
|
514
|
+
class: true,
|
|
515
|
+
clusterrank: true,
|
|
516
|
+
colorscheme: true,
|
|
517
|
+
comment: true,
|
|
518
|
+
compound: true,
|
|
519
|
+
concentrate: true,
|
|
520
|
+
Damping: true,
|
|
521
|
+
defaultdist: true,
|
|
522
|
+
dim: true,
|
|
523
|
+
dimen: true,
|
|
524
|
+
diredgeconstraints: true,
|
|
525
|
+
dpi: true,
|
|
526
|
+
epsilon: true,
|
|
527
|
+
esep: true,
|
|
528
|
+
fontcolor: true,
|
|
529
|
+
fontname: true,
|
|
530
|
+
fontnames: true,
|
|
531
|
+
fontpath: true,
|
|
532
|
+
fontsize: true,
|
|
533
|
+
forcelabels: true,
|
|
534
|
+
gradientangle: true,
|
|
535
|
+
href: true,
|
|
536
|
+
id: true,
|
|
537
|
+
imagepath: true,
|
|
538
|
+
inputscale: true,
|
|
539
|
+
K: true,
|
|
540
|
+
label: true,
|
|
541
|
+
label_scheme: true,
|
|
542
|
+
labeljust: true,
|
|
543
|
+
labelloc: true,
|
|
544
|
+
landscape: true,
|
|
545
|
+
layerlistsep: true,
|
|
546
|
+
layers: true,
|
|
547
|
+
layerselect: true,
|
|
548
|
+
layersep: true,
|
|
549
|
+
layout: true,
|
|
550
|
+
levels: true,
|
|
551
|
+
levelsgap: true,
|
|
552
|
+
linelength: true,
|
|
553
|
+
margin: true,
|
|
554
|
+
maxiter: true,
|
|
555
|
+
mclimit: true,
|
|
556
|
+
mindist: true,
|
|
557
|
+
mode: true,
|
|
558
|
+
model: true,
|
|
559
|
+
newrank: true,
|
|
560
|
+
nodesep: true,
|
|
561
|
+
nojustify: true,
|
|
562
|
+
normalize: true,
|
|
563
|
+
notranslate: true,
|
|
564
|
+
nslimit: true,
|
|
565
|
+
nslimit1: true,
|
|
566
|
+
oneblock: true,
|
|
567
|
+
ordering: true,
|
|
568
|
+
orientation: true,
|
|
569
|
+
outputorder: true,
|
|
570
|
+
overlap: true,
|
|
571
|
+
overlap_scaling: true,
|
|
572
|
+
overlap_shrink: true,
|
|
573
|
+
pack: true,
|
|
574
|
+
packmode: true,
|
|
575
|
+
pad: true,
|
|
576
|
+
page: true,
|
|
577
|
+
pagedir: true,
|
|
578
|
+
quantum: true,
|
|
579
|
+
rankdir: true,
|
|
580
|
+
ranksep: true,
|
|
581
|
+
ratio: true,
|
|
582
|
+
remincross: true,
|
|
583
|
+
repulsiveforce: true,
|
|
584
|
+
resolution: true,
|
|
585
|
+
root: true,
|
|
586
|
+
rotate: true,
|
|
587
|
+
rotation: true,
|
|
588
|
+
scale: true,
|
|
589
|
+
searchsize: true,
|
|
590
|
+
sep: true,
|
|
591
|
+
showboxes: true,
|
|
592
|
+
size: true,
|
|
593
|
+
smoothing: true,
|
|
594
|
+
sortv: true,
|
|
595
|
+
splines: true,
|
|
596
|
+
start: true,
|
|
597
|
+
style: true,
|
|
598
|
+
stylesheet: true,
|
|
599
|
+
target: true,
|
|
600
|
+
TBbalance: true,
|
|
601
|
+
tooltip: true,
|
|
602
|
+
truecolor: true,
|
|
603
|
+
URL: true,
|
|
604
|
+
viewport: true,
|
|
605
|
+
voro_margin: true,
|
|
606
|
+
xdotversion: true,
|
|
607
|
+
});
|