diff --git a/package.json b/package.json index e06b06c7cc..bfb7b0d871 100644 --- a/package.json +++ b/package.json @@ -138,6 +138,7 @@ "undici": "^7.3.0", "uuid": "^9.0.1", "vega": "^6.2.0", + "vega-lite": "^6.4.1", "vite-plugin-static-copy": "^2.2.0", "y-prosemirror": "^1.3.7", "yaml": "^2.7.1", diff --git a/src/lib/utils/index.ts b/src/lib/utils/index.ts index 51ec9e75cb..fb239e87b3 100644 --- a/src/lib/utils/index.ts +++ b/src/lib/utils/index.ts @@ -1601,7 +1601,14 @@ export const renderVegaVisualization = async (spec: string) => { try { const vega = await import('vega'); const parsedSpec = JSON.parse(spec); - const view = new vega.View(vega.parse(parsedSpec), { renderer: 'none' }); + let vegaSpec; + if (parsedSpec.$schema && parsedSpec.$schema.includes('vega-lite')) { + const vegaLite = await import('vega-lite'); + vegaSpec = vegaLite.compile(parsedSpec).spec; + } else { + vegaSpec = parsedSpec; + } + const view = new vega.View(vega.parse(vegaSpec), {renderer: 'none'}); const svg = await view.toSVG(); return svg; } catch (error) {