mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-11 20:05:19 +00:00
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:
parent
351ba167f5
commit
039358e049
2 changed files with 9 additions and 1 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue