Files
fa-diagrams/localtests.js
T
2019-07-12 16:40:41 +02:00

113 lines
1.9 KiB
JavaScript

const faDiagrams = require('./src/index');
const fs = require('fs');
/*const data = {
options: {
font: 'Courier New'
},
nodes: [
{
name: 'node1',
icon: 'server',
bottom: {text: 'myserver' },
top: {icon: 'node'}
},
{
name: 'node2',
icon: 'globe',
bottom: {text: 'world'}
}
],
links: [
{
type: 'arrow',
from: 'node1',
to: 'node2',
direction: 'right',
bottom: {text: 'Hello World!'}
}
]
};*/
const data = {
options: {
rendering: {
beautify: true
},
placing: {
diagonals: true
}
},
nodes: [
{
name: '1',
icon: 'circle',
},
{
name: '2',
icon: 'circle'
},
{
name: '3',
icon: 'circle'
},
{
name: '4',
icon: 'circle'
},
{
name: '5',
icon: 'circle'
},
{
name: '6',
icon: 'circle'
},
],
links: [
{from: '1', to: '2', direction: 'right', type: ''},
{from: '1', to: '3', direction: 'down', type: ''},
{from: '3', to: '4', direction: 'right', type: ''},
{from: '4', to: '5', direction: 'up', type: 'double'},
{from: '3', to: '6', direction: 'left', type: ''}
]
};
fs.writeFileSync('out.svg', faDiagrams.compute(data), {encoding: 'utf-8'});
const rendering = require('./src/rendering')({
'beautify': false,
'scale': 1,
'h-spacing': 1,
'icons': {
'scale': 0.1
},
'links': {
'scale': 1
},
});
const g = [];
let y = 0;
for (let i = 0; i < 20; i++) {
if (i % 5 === 0)
y = 0;
['', 'double', 'line'].forEach(type => {
g.push({
'_attributes': {
'transform': `translate(${Math.pow(Math.floor(i / 5), 1.6) * 720} ${256 * (y++)})`
},
'path': {
'_attributes': {
'd': rendering.getLinkPath(type, (i + 1) / 5)
}
}
});
});
}
fs.writeFileSync('out2.svg', rendering.toXML({g: g}, {w: 7000, h: 256 * 16}), {encoding: 'utf-8'});