OR-1 dataflow CPU sketch
1import cytoscape from "cytoscape";
2
3function downloadBlob(blob: Blob, filename: string): void {
4 const url = URL.createObjectURL(blob);
5 const a = document.createElement("a");
6 a.href = url;
7 a.download = filename;
8 document.body.appendChild(a);
9 a.click();
10 document.body.removeChild(a);
11 URL.revokeObjectURL(url);
12}
13
14export function exportSvg(cy: cytoscape.Core): void {
15 const svgContent = cy.svg({ full: true });
16 const blob = new Blob([svgContent], { type: "image/svg+xml" });
17 downloadBlob(blob, "dfgraph.svg");
18}
19
20export async function exportPng(cy: cytoscape.Core): Promise<void> {
21 const blob = await (cy.png({
22 full: true,
23 output: "blob-promise",
24 scale: 2,
25 }) as Promise<Blob>);
26 downloadBlob(blob, "dfgraph.png");
27}
28
29export async function copyPng(cy: cytoscape.Core): Promise<void> {
30 const blob = await (cy.png({
31 full: true,
32 output: "blob-promise",
33 scale: 2,
34 }) as Promise<Blob>);
35 const item = new ClipboardItem({ "image/png": blob });
36 await navigator.clipboard.write([item]);
37}