@@ -11,6 +11,11 @@ export interface Category {
1111 show : boolean ,
1212}
1313
14+ export interface Label {
15+ name : string ,
16+ textWidth : number ,
17+ }
18+
1419export type Node = NodeObject < {
1520 id : number ,
1621 name : string ,
@@ -62,18 +67,21 @@ export class Graph {
6267
6368 private id : string ;
6469 private categories : Category [ ] ;
70+ private labels : Label [ ] ;
6571 private elements : GraphData ;
66-
6772 private categoriesMap : Map < string , Category > ;
73+ private labelsMap : Map < string , Label > ;
6874 private nodesMap : Map < number , Node > ;
6975 private linksMap : Map < number , Link > ;
7076
71- private constructor ( id : string , categories : Category [ ] , elements : GraphData ,
72- categoriesMap : Map < string , Category > , nodesMap : Map < number , Node > , edgesMap : Map < number , Link > ) {
77+ private constructor ( id : string , categories : Category [ ] , labels : Label [ ] , elements : GraphData ,
78+ categoriesMap : Map < string , Category > , labelsMap : Map < string , Label > , nodesMap : Map < number , Node > , edgesMap : Map < number , Link > ) {
7379 this . id = id ;
7480 this . categories = categories ;
81+ this . labels = labels ;
7582 this . elements = elements ;
7683 this . categoriesMap = categoriesMap ;
84+ this . labelsMap = labelsMap ;
7785 this . nodesMap = nodesMap ;
7886 this . linksMap = edgesMap ;
7987 }
@@ -90,6 +98,14 @@ export class Graph {
9098 return this . categoriesMap ;
9199 }
92100
101+ get Labels ( ) : Label [ ] {
102+ return this . labels ;
103+ }
104+
105+ get LabelsMap ( ) : Map < string , Label > {
106+ return this . labelsMap ;
107+ }
108+
93109 get Elements ( ) : GraphData {
94110 return this . elements ;
95111 }
@@ -111,7 +127,7 @@ export class Graph {
111127 }
112128
113129 public static empty ( ) : Graph {
114- return new Graph ( "" , [ ] , { nodes : [ ] , links : [ ] } , new Map < string , Category > ( ) , new Map < number , Node > ( ) , new Map < number , Link > ( ) )
130+ return new Graph ( "" , [ ] , [ ] , { nodes : [ ] , links : [ ] } , new Map < string , Category > ( ) , new Map < string , Label > ( ) , new Map < number , Node > ( ) , new Map < number , Link > ( ) )
115131 }
116132
117133 public static create ( results : any , graphName : string ) : Graph {
@@ -207,6 +223,13 @@ export class Graph {
207223 this . nodesMap . set ( edgeData . dest_node , target )
208224 }
209225
226+ let label = this . labelsMap . get ( edgeData . relation )
227+ if ( ! label ) {
228+ label = { name : edgeData . relation , textWidth : 0 }
229+ this . labelsMap . set ( edgeData . relation , label )
230+ this . labels . push ( label )
231+ }
232+
210233 link = {
211234 id : edgeData . id ,
212235 source,
0 commit comments