40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
"use strict";
|
|
|
|
import parse_summary from './lib/parse_summary.mjs';
|
|
import make_graph from './lib/make_graph.mjs';
|
|
|
|
function do_visualisation() {
|
|
const el_in = document.querySelector("#input-summary");
|
|
const el_out = document.querySelector("#output-graph");
|
|
const el_link_source = document.querySelector("#button-download-source");
|
|
const el_link_svg = document.querySelector("#button-download-svg");
|
|
|
|
console.log(el_in, el_out);
|
|
const source = el_in.value.trim();
|
|
|
|
if(source.length === 0) return;
|
|
|
|
const summary = parse_summary(source);
|
|
console.log(summary);
|
|
|
|
const result = make_graph(summary);
|
|
|
|
const container = document.createElement("div");
|
|
container.innerHTML = result.svg;
|
|
|
|
el_out.replaceChildren(container);
|
|
|
|
el_link_source.setAttribute("href", `data:text/plain;base64,${btoa(result.source)}`);
|
|
el_link_source.setAttribute("download", "model.nomnoml");
|
|
el_link_svg.setAttribute("href", `data:text/plain;base64,${btoa(result.svg)}`);
|
|
el_link_svg.setAttribute("download", "model.svg");
|
|
}
|
|
|
|
window.addEventListener("load", () => {
|
|
const el_in = document.querySelector("#input-summary");
|
|
|
|
el_in.addEventListener("changed", do_visualisation);
|
|
el_in.addEventListener("keyup", do_visualisation);
|
|
|
|
do_visualisation();
|
|
}); |