public update()

in src/visual.ts [70:116]


    public update(options: VisualUpdateOptions) {
        this.settings = BarChart.parseSettings(options && options.dataViews && options.dataViews[0]);
        console.log("Visual update", options);

        if (this.view && (options.type & VisualUpdateType.Resize || options.type & VisualUpdateType.ResizeEnd)) {
            this.view.width(options.viewport.width).height(options.viewport.height).run();
            return;
        }

        const r = visualTransform(options);

        if (!r) {
            this.target.innerHTML = "Need category and measure";
            this.view = null;
            return;
        }

        const { dataPoints, categoryTitle, valueTitle } = r;
        const spec: vl.TopLevelSpec = {
            $schema: "https://vega.github.io/schema/vega-lite/v4.json",
            width: options.viewport.width,
            height: options.viewport.height,
            padding: 0,
            autosize: {
                type: "fit",
                contains: "content"
            },
            data: {
                values: dataPoints as Dict<any>
            },
            mark: "bar",
            encoding: {
                x: { field: "category", type: "ordinal", axis: { title: categoryTitle } },
                y: { field: "value", type: "quantitative", axis: { title: valueTitle } }
            }
        };

        const vgSpec = vl.compile(spec).spec;

        const runtime = vega.parse(vgSpec);

        this.view = new vega.View(runtime)
            .logLevel(vega.Warn)
            .initialize(this.target)
            .renderer(this.settings.rendering.svg ? "svg" : "canvas")
            .run();
    }