Styles in place for boxes

This commit is contained in:
knsv
2014-11-11 08:12:03 +01:00
parent c23a185b98
commit d158a13566
9 changed files with 163 additions and 127 deletions

View File

@@ -23,6 +23,11 @@
],
"devDependencies": {
"jasmine": "~2.0.4",
"requirejs": "~2.1.15"
"requirejs": "~2.1.15",
"raphael": "~2.1.2",
"snap": "*",
"Snap.svg": "~0.3.0",
"dagre": "~0.6.4",
"dagre-d3": "~0.3.2"
}
}

View File

@@ -2,14 +2,13 @@ var gulp = require('gulp');
var jison = require('gulp-jison');
var shell = require('gulp-shell')
gulp.task('jison', function() {
gulp.task('jison2', function() {
return gulp.src('./src/*.jison')
.pipe(jison({ moduleType: 'amd' }))
.pipe(gulp.dest('./src/'));
});
gulp.task('shorthand', shell.task([
'echo hello',
'echo world',
'jison src/parser/mermaid.jison -o src/parser/mermaid.js'
gulp.task('jison', shell.task([
'jison src/parser/mermaid.jison -o src/parser/mermaid.js',
'source scripts/compileJison.sh'
]))

View File

@@ -40,7 +40,7 @@
a[Lasa bok]-->b;
b{Fundera}-->c(Vidar)|Klocka;
b-->d(Bjarke)|Lego;
style a background:#aaa;
style a fill:#6ff,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5;
</div>
</body>
</html>

View File

@@ -2,28 +2,46 @@
* Created by knut on 14-11-06.
*/
// Now we're ready to require JointJS and write our application code.
define(['parser/graph','parser/mermaid'],function(graph,parser){
define('mermaid',['parser/graph','parser/mermaid'],function(graph,parser){
var addVertices = function(vert,g){
var keys = Object.keys(vert);
keys.forEach(function(id){
var vertice = vert[id];
var verticeText;
//console.log(vertice);
console.log(vertice.styles.length);
var i;
var style='';
for(i=0;i<vertice.styles.length;i++){
if(typeof vertice.styles[i] !== 'undefined'){
style=style+vertice.styles[i]+';';
}
}
if(vertice.text === undefined){
verticeText = vertice.id;
}
else{
verticeText = vertice.text;
}
if(style === ''){
style = graph.defaultStyle();
}
console.log('g.setNode("'+vertice.id+'", { label: "'+verticeText+'" });');
if(vertice.type==='round'){
g.setNode(vertice.id, { label: verticeText,rx:5,ry:5 });
g.setNode(vertice.id, { label: verticeText,rx:5,ry:5,style:style });
}else{
if(vertice.type==='diamond'){
g.setNode(vertice.id, {shape: "house", label: verticeText,rx:0,ry:0,style: "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;" });
//g.setNode(vertice.id, {shape: "house", label: verticeText,rx:0,ry:0,style: "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;" });
g.setNode(vertice.id, {shape: "house", label: verticeText,rx:0,ry:0,style: style });
}else{
g.setNode(vertice.id, { label: verticeText,rx:0,ry:0 });
g.setNode(vertice.id, { label: verticeText,rx:0,ry:0,style:style });
}
}
});

View File

@@ -18,7 +18,7 @@ define('parser/graph',function() {
}
if(typeof style !== 'undefined'){
if(style !== null){
//console.log('Adding style: '+style[0]);
console.log('Adding style: '+style);
style.forEach(function(s){
vertices[id].styles.push(s);
});
@@ -42,6 +42,9 @@ define('parser/graph',function() {
clear:function(){
vertices = {};
edges = [];
},
defaultStyle:function(){
return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
}
};

View File

@@ -5,26 +5,18 @@
%%
"style" return 'STYLE';
"background" return 'BKG';
"red" return 'COLOR';
"blue" return 'COLOR';
"black" return 'COLOR';
\#[a-f0-9]+ return 'HEX';
[0-9]+ return 'NUM';
"border" return 'BORDER';
"dotted" return 'BORDER_STYLE';
"dashed" return 'BORDER_STYLE';
"solid" return 'BORDER_STYLE';
"px" return 'UNIT';
"pt" return 'UNIT';
"dot" return 'UNIT';
":" return 'COLON';
\- return 'MINUS';
";" return ';';
"," return 'COMMA';
\-\-[x] return 'ARROW_CROSS';
\-\-">" return 'ARROW_POINT';
\-\-[o] return 'ARROW_CIRCLE';
\-\-\- return 'ARROW_OPEN';
[x] return 'ARROW_CROSS';
">" return 'ARROW_POINT';
[o] return 'ARROW_CIRCLE';
[a-zA-Z]+ return 'ALPHA';
"|" return 'PIPE';
"(" return 'PS';
@@ -61,7 +53,9 @@ graph
{ $$ = $1;}
;
edge: vertex link vertex PIPE text
edge: styleStatement
{$$ = 'ya';}
| vertex link vertex PIPE text
{ yy.addLink($1,$3,$2,$5);$$ = 'oy'}
| vertex link vertex
{ yy.addLink($1,$3,$2);$$ = 'oy'}
@@ -69,10 +63,11 @@ edge: vertex link vertex PIPE text
{$$ = 'yo';}
;
styleStatement:STYLE SPACE ALPHA SPACE stylesOpt
{console.log('a4');$$ = $1;yy.addVertex($3,undefined,undefined,$5);}
;
vertex: STYLE SPACE ALPHA SPACE styles
{$$ = $1;yy.addVertex($3,undefined,undefined,$5);}
| ALPHA SQS text SQE
vertex: ALPHA SQS text SQE
{$$ = $1;yy.addVertex($1,$3,'square');}
| ALPHA PS text PE
{$$ = $1;yy.addVertex($1,$3,'round');}
@@ -90,29 +85,44 @@ text: ALPHA SPACE text
{$$ = $1;}
;
link: ARROW_POINT
link: MINUS MINUS ARROW_POINT
{$$ = {"type":"arrow"};}
| ARROW_CIRCLE
| MINUS MINUS ARROW_CIRCLE
{$$ = {"type":"arrow_circle"};}
| ARROW_CROSS
| MINUS MINUS ARROW_CROSS
{$$ = {"type":"arrow_cross"};}
| ARROW_OPEN
| MINUS MINUS MINUS
{$$ = {"type":"arrow_open"};}
;
styles:
styledef
{$$ = [$1];}
| styles COMMA styledef
{$1.push($3);$$ = $1;}
stylesOpt: style
{console.log('a:'+$1);$$ = [$1]}
| stylesOpt COMMA style
{console.log('a3:'+$1.length+','+$3);$1.push($3);$$ = $1;}
;
styledef: BKG COLON colordef
{$$={"background":$3}}
| COL COLON COLORDEF
{$$={"color":$3}}
| BORDER COLON borderWidth SPACE borderStyle SPACE colordef
{$$={"border":$3+' '+$5+' '+$7}}
style: styleComponent
{$$=$1;}
|style styleComponent
{console.log('b1:');$$ = $1 + $2;}
;
styleComponent: ALPHA
{$$=$1}
| COLON
{$$=$1}
| MINUS
{$$=$1}
| NUM
{$$=$1}
| UNIT
{$$=$1}
| SPACE
{$$=$1}
| HEX
{$$=$1}
;
colordef: COLOR
{$$ = yytext;}
| HEX
@@ -129,5 +139,6 @@ borderStyle: BORDER_STYLE
%%
define('parser/mermaid',function(){
console.log('abc123'+parser.parseError);
return parser;
});

View File

@@ -72,12 +72,12 @@
}
*/
var parser = (function(){
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,6],$V2=[1,7],$V3=[8,11,22,23,24,25],$V4=[13,14],$V5=[1,24],$V6=[8,17,19,21],$V7=[1,36],$V8=[1,37],$V9=[1,38],$Va=[8,11,22,23,24,25,27],$Vb=[1,46],$Vc=[1,47];
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,7],$V2=[1,8],$V3=[8,12,23],$V4=[1,23],$V5=[8,18,20,22],$V6=[1,45],$V7=[1,40],$V8=[1,42],$V9=[1,41],$Va=[1,43],$Vb=[1,44],$Vc=[1,46],$Vd=[8,28],$Ve=[6,8,15,23,28,30,31,32,33];
var parser = {trace: function trace() { },
yy: {},
symbols_: {"error":2,"expressions":3,"graph":4,"EOF":5,"SPACE":6,"edge":7,";":8,"vertex":9,"link":10,"PIPE":11,"text":12,"STYLE":13,"ALPHA":14,"styles":15,"SQS":16,"SQE":17,"PS":18,"PE":19,"DIAMOND_START":20,"DIAMOND_STOP":21,"ARROW_POINT":22,"ARROW_CIRCLE":23,"ARROW_CROSS":24,"ARROW_OPEN":25,"styledef":26,"COMMA":27,"BKG":28,"COLON":29,"colordef":30,"COL":31,"COLORDEF":32,"BORDER":33,"borderWidth":34,"borderStyle":35,"COLOR":36,"HEX":37,"NUM":38,"UNIT":39,"BORDER_STYLE":40,"$accept":0,"$end":1},
terminals_: {2:"error",5:"EOF",6:"SPACE",8:";",11:"PIPE",13:"STYLE",14:"ALPHA",16:"SQS",17:"SQE",18:"PS",19:"PE",20:"DIAMOND_START",21:"DIAMOND_STOP",22:"ARROW_POINT",23:"ARROW_CIRCLE",24:"ARROW_CROSS",25:"ARROW_OPEN",27:"COMMA",28:"BKG",29:"COLON",31:"COL",32:"COLORDEF",33:"BORDER",36:"COLOR",37:"HEX",38:"NUM",39:"UNIT",40:"BORDER_STYLE"},
productions_: [0,[3,2],[4,2],[4,3],[4,2],[7,5],[7,3],[7,1],[9,5],[9,4],[9,4],[9,4],[9,1],[12,3],[12,2],[12,1],[10,1],[10,1],[10,1],[10,1],[15,1],[15,3],[26,3],[26,3],[26,7],[30,1],[30,1],[34,2],[35,1]],
symbols_: {"error":2,"expressions":3,"graph":4,"EOF":5,"SPACE":6,"edge":7,";":8,"styleStatement":9,"vertex":10,"link":11,"PIPE":12,"text":13,"STYLE":14,"ALPHA":15,"stylesOpt":16,"SQS":17,"SQE":18,"PS":19,"PE":20,"DIAMOND_START":21,"DIAMOND_STOP":22,"MINUS":23,"ARROW_POINT":24,"ARROW_CIRCLE":25,"ARROW_CROSS":26,"style":27,"COMMA":28,"styleComponent":29,"COLON":30,"NUM":31,"UNIT":32,"HEX":33,"colordef":34,"COLOR":35,"borderWidth":36,"borderStyle":37,"BORDER_STYLE":38,"$accept":0,"$end":1},
terminals_: {2:"error",5:"EOF",6:"SPACE",8:";",12:"PIPE",14:"STYLE",15:"ALPHA",17:"SQS",18:"SQE",19:"PS",20:"PE",21:"DIAMOND_START",22:"DIAMOND_STOP",23:"MINUS",24:"ARROW_POINT",25:"ARROW_CIRCLE",26:"ARROW_CROSS",28:"COMMA",30:"COLON",31:"NUM",32:"UNIT",33:"HEX",35:"COLOR",38:"BORDER_STYLE"},
productions_: [0,[3,2],[4,2],[4,3],[4,2],[7,1],[7,5],[7,3],[7,1],[9,5],[10,4],[10,4],[10,4],[10,1],[13,3],[13,2],[13,1],[11,3],[11,3],[11,3],[11,3],[16,1],[16,3],[27,1],[27,2],[29,1],[29,1],[29,1],[29,1],[29,1],[29,1],[29,1],[34,1],[34,1],[36,2],[37,1]],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
/* this == yyval */
@@ -93,75 +93,78 @@ case 4:
this.$ = $$[$0-1];
break;
case 5:
yy.addLink($$[$0-4],$$[$0-2],$$[$0-3],$$[$0]);this.$ = 'oy'
this.$ = 'ya';
break;
case 6:
yy.addLink($$[$0-2],$$[$0],$$[$0-1]);this.$ = 'oy'
yy.addLink($$[$0-4],$$[$0-2],$$[$0-3],$$[$0]);this.$ = 'oy'
break;
case 7:
this.$ = 'yo';
yy.addLink($$[$0-2],$$[$0],$$[$0-1]);this.$ = 'oy'
break;
case 8:
this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
this.$ = 'yo';
break;
case 9:
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
console.log('a4');this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
break;
case 10:
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
break;
case 11:
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
break;
case 12:
this.$ = $$[$0];yy.addVertex($$[$0]);
this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
break;
case 13:
this.$ = $$[$0-2] + ' ' +$$[$0];
this.$ = $$[$0];yy.addVertex($$[$0]);
break;
case 14:
this.$ = $$[$0-2] + ' ' +$$[$0];
break;
case 15:
this.$ = $$[$0-1];
break;
case 15: case 28:
case 16: case 35:
this.$ = $$[$0];
break;
case 16:
case 17:
this.$ = {"type":"arrow"};
break;
case 17:
case 18:
this.$ = {"type":"arrow_circle"};
break;
case 18:
case 19:
this.$ = {"type":"arrow_cross"};
break;
case 19:
case 20:
this.$ = {"type":"arrow_open"};
break;
case 20:
this.$ = [$$[$0]];
break;
case 21:
$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
console.log('a:'+$$[$0]);this.$ = [$$[$0]]
break;
case 22:
this.$={"background":$$[$0]}
console.log('a3:'+$$[$0-2].length+','+$$[$0]);$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
break;
case 23:
this.$={"color":$$[$0]}
this.$=$$[$0];
break;
case 24:
this.$={"border":$$[$0-4]+' '+$$[$0-2]+' '+$$[$0]}
console.log('b1:');this.$ = $$[$0-1] + $$[$0];
break;
case 25: case 26:
case 25: case 26: case 27: case 28: case 29: case 30: case 31:
this.$=$$[$0]
break;
case 32: case 33:
this.$ = yytext;
break;
case 27:
case 34:
this.$ = $$[$0-1]+''+$$[$0];
break;
}
},
table: [{3:1,4:2,6:$V0,7:4,9:5,13:$V1,14:$V2},{1:[3]},{5:[1,8]},{4:9,6:$V0,7:4,9:5,13:$V1,14:$V2},{8:[1,10]},{8:[2,7],10:11,22:[1,12],23:[1,13],24:[1,14],25:[1,15]},{6:[1,16]},o($V3,[2,12],{16:[1,17],18:[1,18],20:[1,19]}),{1:[2,1]},{5:[2,2]},{4:20,5:[2,4],6:$V0,7:4,9:5,13:$V1,14:$V2},{9:21,13:$V1,14:$V2},o($V4,[2,16]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{14:[1,22]},{12:23,14:$V5},{12:25,14:$V5},{12:26,14:$V5},{5:[2,3]},{8:[2,6],11:[1,27]},{6:[1,28]},{17:[1,29]},o($V6,[2,15],{6:[1,30]}),{19:[1,31]},{21:[1,32]},{12:33,14:$V5},{15:34,26:35,28:$V7,31:$V8,33:$V9},o($V3,[2,9]),o($V6,[2,14],{12:39,14:$V5}),o($V3,[2,10]),o($V3,[2,11]),{8:[2,5]},o($V3,[2,8],{27:[1,40]}),o($Va,[2,20]),{29:[1,41]},{29:[1,42]},{29:[1,43]},o($V6,[2,13]),{26:44,28:$V7,31:$V8,33:$V9},{30:45,36:$Vb,37:$Vc},{32:[1,48]},{34:49,38:[1,50]},o($Va,[2,21]),o($Va,[2,22]),o($Va,[2,25]),o($Va,[2,26]),o($Va,[2,23]),{6:[1,51]},{39:[1,52]},{35:53,40:[1,54]},{6:[2,27]},{6:[1,55]},{6:[2,28]},{30:56,36:$Vb,37:$Vc},o($Va,[2,24])],
defaultActions: {8:[2,1],9:[2,2],20:[2,3],33:[2,5],52:[2,27],54:[2,28]},
table: [{3:1,4:2,6:$V0,7:4,9:5,10:6,14:$V1,15:$V2},{1:[3]},{5:[1,9]},{4:10,6:$V0,7:4,9:5,10:6,14:$V1,15:$V2},{8:[1,11]},{8:[2,5]},{8:[2,8],11:12,23:[1,13]},{6:[1,14]},o($V3,[2,13],{17:[1,15],19:[1,16],21:[1,17]}),{1:[2,1]},{5:[2,2]},{4:18,5:[2,4],6:$V0,7:4,9:5,10:6,14:$V1,15:$V2},{10:19,15:$V2},{23:[1,20]},{15:[1,21]},{13:22,15:$V4},{13:24,15:$V4},{13:25,15:$V4},{5:[2,3]},{8:[2,7],12:[1,26]},{23:[1,30],24:[1,27],25:[1,28],26:[1,29]},{6:[1,31]},{18:[1,32]},o($V5,[2,16],{6:[1,33]}),{20:[1,34]},{22:[1,35]},{13:36,15:$V4},{15:[2,17]},{15:[2,18]},{15:[2,19]},{15:[2,20]},{6:$V6,15:$V7,16:37,23:$V8,27:38,29:39,30:$V9,31:$Va,32:$Vb,33:$Vc},o($V3,[2,10]),o($V5,[2,15],{13:47,15:$V4}),o($V3,[2,11]),o($V3,[2,12]),{8:[2,6]},{8:[2,9],28:[1,48]},o($Vd,[2,21],{29:49,6:$V6,15:$V7,23:$V8,30:$V9,31:$Va,32:$Vb,33:$Vc}),o($Ve,[2,23]),o($Ve,[2,25]),o($Ve,[2,26]),o($Ve,[2,27]),o($Ve,[2,28]),o($Ve,[2,29]),o($Ve,[2,30]),o($Ve,[2,31]),o($V5,[2,14]),{6:$V6,15:$V7,23:$V8,27:50,29:39,30:$V9,31:$Va,32:$Vb,33:$Vc},o($Ve,[2,24]),o($Vd,[2,22],{29:49,6:$V6,15:$V7,23:$V8,30:$V9,31:$Va,32:$Vb,33:$Vc})],
defaultActions: {5:[2,5],9:[2,1],10:[2,2],18:[2,3],27:[2,17],28:[2,18],29:[2,19],30:[2,20],36:[2,6]},
parseError: function parseError(str, hash) {
if (hash.recoverable) {
this.trace(str);
@@ -231,7 +234,7 @@ parse: function parse(input) {
} else {
errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
}
this.parseError(errStr, {
console.log(errStr, {
text: lexer.match,
token: this.terminals_[symbol] || symbol,
line: lexer.yylineno,
@@ -308,6 +311,7 @@ parse: function parse(input) {
}};
define('parser/mermaid',function(){
console.log('abc123'+parser.parseError);
return parser;
});/* generated by jison-lex 0.3.4 */
var lexer = (function(){
@@ -637,74 +641,58 @@ options: {},
performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
var YYSTATE=YY_START;
switch($avoiding_name_collisions) {
case 0:return 13;
case 0:return 14;
break;
case 1:return 28;
case 1:return 33;
break;
case 2:return 36;
case 2:return 31;
break;
case 3:return 36;
case 3:return 32;
break;
case 4:return 36;
case 4:return 32;
break;
case 5:return 37;
case 5:return 32;
break;
case 6:return 38;
case 6:return 30;
break;
case 7:return 33;
case 7:return 23;
break;
case 8:return 40;
case 8:return 8;
break;
case 9:return 40;
case 9:return 28;
break;
case 10:return 40;
case 10:return 26;
break;
case 11:return 39;
case 11:return 24;
break;
case 12:return 39;
case 12:return 25;
break;
case 13:return 39;
case 13:return 15;
break;
case 14:return 29;
case 14:return 12;
break;
case 15:return 8;
case 15:return 19;
break;
case 16:return 27;
case 16:return 20;
break;
case 17:return 24;
case 17:return 17;
break;
case 18:return 22;
case 18:return 18;
break;
case 19:return 23;
case 19:return 21
break;
case 20:return 25;
case 20:return 22
break;
case 21:return 14;
case 21:return 6;
break;
case 22:return 11;
case 22:return 'NEWLINE';
break;
case 23:return 18;
break;
case 24:return 19;
break;
case 25:return 16;
break;
case 26:return 17;
break;
case 27:return 20
break;
case 28:return 21
break;
case 29:return 6;
break;
case 30:return 'NEWLINE';
break;
case 31:return 5;
case 23:return 5;
break;
}
},
rules: [/^(?:style\b)/,/^(?:background\b)/,/^(?:red\b)/,/^(?:blue\b)/,/^(?:black\b)/,/^(?:#[a-f0-9]+)/,/^(?:[0-9]+)/,/^(?:border\b)/,/^(?:dotted\b)/,/^(?:dashed\b)/,/^(?:solid\b)/,/^(?:px\b)/,/^(?:pt\b)/,/^(?:dot\b)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:--[x])/,/^(?:-->)/,/^(?:--[o])/,/^(?:---)/,/^(?:[a-zA-Z]+)/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:\s)/,/^(?:\n)/,/^(?:$)/],
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"inclusive":true}}
rules: [/^(?:style\b)/,/^(?:#[a-f0-9]+)/,/^(?:[0-9]+)/,/^(?:px\b)/,/^(?:pt\b)/,/^(?:dot\b)/,/^(?::)/,/^(?:-)/,/^(?:;)/,/^(?:,)/,/^(?:[x])/,/^(?:>)/,/^(?:[o])/,/^(?:[a-zA-Z]+)/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:\s)/,/^(?:\n)/,/^(?:$)/],
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"inclusive":true}}
});
return lexer;
})();
@@ -732,4 +720,4 @@ exports.main = function commonjsMain(args) {
if (typeof module !== 'undefined' && require.main === module) {
exports.main(process.argv.slice(1));
}
}
}

View File

@@ -7,6 +7,9 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
beforeEach(function(){
graph.clear();
p.yy = graph;
/*p.parse.parseError= function parseError(str, hash) {
console.log(str);
}*/
});
it('should handle a nodes and edges',function(){
@@ -145,7 +148,7 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
var style = vert['Q'].styles[0];
expect(vert['Q'].styles.length).toBe(1);
expect(vert['Q'].styles[0].background).toBe('#fff');
expect(vert['Q'].styles[0]).toBe('background:#fff');
});
it('should handle multiple styles for a vortex',function(){
var res = p.parse('style R background:#fff,border:1px solid red;');
@@ -154,8 +157,8 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
var edges = p.yy.getEdges();
expect(vert['R'].styles.length).toBe(2);
expect(vert['R'].styles[0].background).toBe('#fff');
expect(vert['R'].styles[1].border).toBe('1px solid red');
expect(vert['R'].styles[0]).toBe('background:#fff');
expect(vert['R'].styles[1]).toBe('border:1px solid red');
});
it('should handle multiple styles in a graph',function(){
@@ -166,9 +169,9 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
expect(vert['S'].styles.length).toBe(1);
expect(vert['T'].styles.length).toBe(2);
expect(vert['S'].styles[0].background).toBe('#aaa');
expect(vert['T'].styles[0].background).toBe('#bbb');
expect(vert['T'].styles[1].border).toBe('1px solid red');
expect(vert['S'].styles[0]).toBe('background:#aaa');
expect(vert['T'].styles[0]).toBe('background:#bbb');
expect(vert['T'].styles[1]).toBe('border:1px solid red');
});
it('should handle styles and graph definitons in a graph',function(){
@@ -179,11 +182,20 @@ define('parser/mermaid.spec',['parser/graph','parser/mermaid'],function(graph, p
expect(vert['S'].styles.length).toBe(1);
expect(vert['T'].styles.length).toBe(2);
expect(vert['S'].styles[0].background).toBe('#aaa');
expect(vert['T'].styles[0].background).toBe('#bbb');
expect(vert['T'].styles[1].border).toBe('1px solid red');
expect(vert['S'].styles[0]).toBe('background:#aaa');
expect(vert['T'].styles[0]).toBe('background:#bbb');
expect(vert['T'].styles[1]).toBe('border:1px solid red');
});
it('should handle styles and graph definitons in a graph',function(){
var res = p.parse('style T background:#bbb,border:1px solid red;');
//var res = p.parse('style T background: #bbb;');
var vert = p.yy.getVertices();
expect(vert['T'].styles.length).toBe(2);
expect(vert['T'].styles[0]).toBe('background:#bbb');
expect(vert['T'].styles[1]).toBe('border:1px solid red');
});
//console.log(p.parse('style S background:#aaa;\nstyle T background:#bbb,border:1px solid red;'));
});