FEAT: Add Vega-Lite Char Visualizer Renderer

### FEAT: Add Vega Char Visualizer Renderer

Add suport for Vega-Lite Specifications.
Vega-Lite is a "compiled" version of Vega Char Visualizer.
For be rendered with Vega it have to be compiled.
This PR add the check and compile if necessary, is a complement of recent Vega Renderer Feature added.
This commit is contained in:
_00_ 2025-10-04 06:41:07 +02:00
parent 351ba167f5
commit 039358e049
2 changed files with 9 additions and 1 deletions

View file

@ -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",

View file

@ -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) {