This commit is contained in:
parent
019647b04a
commit
78556c6c98
@ -1,5 +1,9 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 1.4.0
|
||||||
|
|
||||||
|
Allow specifying shapes for nodes
|
||||||
|
|
||||||
## 1.3.0
|
## 1.3.0
|
||||||
|
|
||||||
Stream:
|
Stream:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# @sapphirecode/graphviz-builder
|
# @sapphirecode/graphviz-builder
|
||||||
|
|
||||||
version: 1.3.x
|
version: 1.4.x
|
||||||
|
|
||||||
constructing graphviz files using an easy typescript interface
|
constructing graphviz files using an easy typescript interface
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { NodeStyles } from '../enums/Styles';
|
import { NodeStyles } from '../enums/Styles';
|
||||||
|
import { NodeShapes } from '../enums/Shapes';
|
||||||
import { Element } from './Element';
|
import { Element } from './Element';
|
||||||
import { Color } from './Color';
|
import { Color } from './Color';
|
||||||
|
|
||||||
@ -15,6 +16,7 @@ export class Node extends Element {
|
|||||||
public table_contents?: Array<Array<string>>;
|
public table_contents?: Array<Array<string>>;
|
||||||
public style?: NodeStyles;
|
public style?: NodeStyles;
|
||||||
public color?: Color;
|
public color?: Color;
|
||||||
|
public shape?: NodeShapes;
|
||||||
|
|
||||||
public constructor (name: string, parent: string, label?: string) {
|
public constructor (name: string, parent: string, label?: string) {
|
||||||
super (name, parent);
|
super (name, parent);
|
||||||
@ -47,6 +49,8 @@ export class Node extends Element {
|
|||||||
}
|
}
|
||||||
if (this.style)
|
if (this.style)
|
||||||
attributes.push ({ name: 'style', value: this.style.toString () });
|
attributes.push ({ name: 'style', value: this.style.toString () });
|
||||||
|
if (this.shape)
|
||||||
|
attributes.push ({ name: 'shape', value: this.shape.toString () });
|
||||||
if (this.color)
|
if (this.color)
|
||||||
attributes.push ({ name: 'color', value: this.color.toString () });
|
attributes.push ({ name: 'color', value: this.color.toString () });
|
||||||
|
|
||||||
|
63
lib/enums/Shapes.ts
Normal file
63
lib/enums/Shapes.ts
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
type NodeShapes =
|
||||||
|
''
|
||||||
|
|'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'
|
||||||
|
|
||||||
|
export {NodeShapes}
|
@ -6,34 +6,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
type EdgeStyles =
|
type EdgeStyles =
|
||||||
''
|
'' | 'bold' | 'dashed' | 'dotted' | 'solid'
|
||||||
|'solid'
|
|
||||||
|'dashed'
|
|
||||||
|'dotted'
|
|
||||||
|'bold'
|
|
||||||
|
|
||||||
|
|
||||||
type NodeStyles =
|
type NodeStyles =
|
||||||
''
|
'' | 'bold' | 'dashed' | 'diagonals' | 'dotted' | 'filled' | 'invis' | 'rounded' | 'solid' | 'striped' | 'wedged'
|
||||||
|'solid'
|
|
||||||
|'dashed'
|
|
||||||
|'dotted'
|
|
||||||
|'bold'
|
|
||||||
|'rounded'
|
|
||||||
|'diagonals'
|
|
||||||
|'filled'
|
|
||||||
|'striped'
|
|
||||||
|'wedged'
|
|
||||||
|'invis'
|
|
||||||
|
|
||||||
|
|
||||||
type GraphStyles =
|
type GraphStyles =
|
||||||
'solid'
|
'bold' | 'dashed' | 'dotted' | 'filled' | 'rounded' | 'solid' | 'striped'
|
||||||
| 'dashed'
|
|
||||||
| 'dotted'
|
|
||||||
| 'bold'
|
|
||||||
| 'rounded'
|
|
||||||
| 'filled'
|
|
||||||
| 'striped'
|
|
||||||
|
|
||||||
export { EdgeStyles, NodeStyles, GraphStyles };
|
export { EdgeStyles, NodeStyles, GraphStyles };
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@sapphirecode/graphviz-builder",
|
"name": "@sapphirecode/graphviz-builder",
|
||||||
"main": "dist/lib/index.js",
|
"main": "dist/lib/index.js",
|
||||||
"version": "1.3.4",
|
"version": "1.4.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Timo Hocker",
|
"name": "Timo Hocker",
|
||||||
"email": "timo@scode.ovh"
|
"email": "timo@scode.ovh"
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
import { Node, Color } from '../../lib';
|
import { Node, Color } from '../../lib';
|
||||||
|
|
||||||
const serialized_simple
|
const serialized_simple
|
||||||
= 'bar_foo [label="baz", style="dashed", color="#00ff00"]';
|
= 'bar_foo [label="baz", style="dashed", shape="tripleoctagon", color="#00ff00"]';
|
||||||
const serialized_table = `bar_foo [label=<<table>
|
const serialized_table = `bar_foo [label=<<table>
|
||||||
<tr><td>foo</td><td>bar</td><td>baz</td></tr>
|
<tr><td>foo</td><td>bar</td><td>baz</td></tr>
|
||||||
<tr><td>bar</td><td>baz</td><td>foo</td></tr>
|
<tr><td>bar</td><td>baz</td><td>foo</td></tr>
|
||||||
@ -21,6 +21,7 @@ describe ('node', () => {
|
|||||||
|
|
||||||
g.color = Color.green;
|
g.color = Color.green;
|
||||||
g.style = 'dashed';
|
g.style = 'dashed';
|
||||||
|
g.shape = 'tripleoctagon';
|
||||||
|
|
||||||
const serialized = g.toString ();
|
const serialized = g.toString ();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user