113 lines
1.9 KiB
JavaScript
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'});
|