diff options
Diffstat (limited to 'src/layout.js')
| -rw-r--r-- | src/layout.js | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/src/layout.js b/src/layout.js index b774c31..000d22c 100644 --- a/src/layout.js +++ b/src/layout.js @@ -6,41 +6,41 @@ const gv = new Viz({ workerURL: 'lib/lite.render.js' }); export default class Layout { constructor() { this.src = 'digraph { node [shape="rectangle"];\n'; - } + } - addNode(id, width, height) { - this.src += ` "${id}" [fixedsize=true; width=${width / 72}; height=${height / 72}];\n`; - } + addNode(id, width, height) { + this.src += ` "${id}" [fixedsize=true; width=${width / 72}; height=${height / 72}];\n`; + } - addLink(from, to) { - this.src += ` "${from}" -> "${to}";\n`; - } + addLink(from, to) { + this.src += ` "${from}" -> "${to}";\n`; + } - async render() { - this.src += '}'; + async render() { + this.src += '}'; - const info = await gv.renderJSONObject(this.src, { format: 'json0' }); - const [width, height] = info.bb.split(',').map(toNumber).slice(2); + const info = await gv.renderJSONObject(this.src, { format: 'json0' }); + const [width, height] = info.bb.split(',').map(toNumber).slice(2); const positions = {}; - for (const object of info.objects) { - const [x, y] = object.pos.split(',').map(toNumber); - positions[object.name] = [ x, height - y ]; - } - - const links = info.edges.map((edge) => { - const pos = edge.pos.slice(2); - return pos.split(' ').map(p => { - const [x, y] = p.split(','); - return [toNumber(x), height - toNumber(y)]; - }); - - }); - - return { - width, height, - positions, - links, - }; - } + for (const object of info.objects) { + const [x, y] = object.pos.split(',').map(toNumber); + positions[object.name] = [ x, height - y ]; + } + + const links = info.edges.map((edge) => { + const pos = edge.pos.slice(2); + return pos.split(' ').map(p => { + const [x, y] = p.split(','); + return [toNumber(x), height - toNumber(y)]; + }); + + }); + + return { + width, height, + positions, + links, + }; + } } |
