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