import cytoscape from "cytoscape"; function downloadBlob(blob: Blob, filename: string): void { const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = filename; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); } export function exportSvg(cy: cytoscape.Core): void { const svgContent = cy.svg({ full: true }); const blob = new Blob([svgContent], { type: "image/svg+xml" }); downloadBlob(blob, "dfgraph.svg"); } export async function exportPng(cy: cytoscape.Core): Promise { const blob = await (cy.png({ full: true, output: "blob-promise", scale: 2, }) as Promise); downloadBlob(blob, "dfgraph.png"); } export async function copyPng(cy: cytoscape.Core): Promise { const blob = await (cy.png({ full: true, output: "blob-promise", scale: 2, }) as Promise); const item = new ClipboardItem({ "image/png": blob }); await navigator.clipboard.write([item]); }