// instantiate view and invoke headless render method function render(spec) { const view = new vega.View(vega.parse(spec, config), { loader: vega.loader({baseURL: base}), // load files from base path logger: vega.logger(loglevel, 'error'), // route all logging to stderr renderer: 'none' // no primary renderer needed }).finalize(); // clear any timers, etc return (type === 'svg' ? view.toSVG(scale) : view.toCanvas(scale, opt) ).then(_ => callback(_, arg)); }
async _initViewCustomizations() { // In some cases, Vega may be initialized twice... TBD if (!this._$container) return; const view = new vega.View(vega.parse(this._parser.spec), this._vegaViewConfig); this.setDebugValues(view, this._parser.spec, this._parser.vlspec); view.warn = this.onWarn.bind(this); view.error = this.onError.bind(this); if (this._parser.useResize) this.updateVegaSize(view); view.initialize(this._$container.get(0), this._$controls.get(0)); if (this._parser.useHover) view.hover(); this._addDestroyHandler(() => { this._view = null; view.finalize(); }); await view.runAsync(); this._view = view; }