Pārlūkot izejas kodu

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.
_00_ 2 dienas atpakaļ
vecāks
revīzija
039358e049
2 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 1 0
      package.json
  2. 8 1
      src/lib/utils/index.ts

+ 1 - 0
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",

+ 8 - 1
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) {