OR-1 dataflow CPU sketch
at main 37 lines 1.0 kB view raw
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}