in src/visual.ts [269:328]
public update(options: VisualUpdateOptions): void {
this.visualHost.eventService.renderingStarted(options);
try {
if (!this.areValidOptions(options)) {
return;
}
let data: AsterPlotData = AsterPlot.converter(options.dataViews[0], this.colorPalette, this.colorHelper, this.visualHost, this.localizationManager);
if (!data) {
this.clear();
return;
}
this.layout.viewport = options.viewport;
this.data = data;
this.applySelectionStateToData();
this.renderLegend();
this.updateViewPortAccordingToLegend();
this.transformAndResizeMainSvgElements();
dataLabelUtils.cleanDataLabels(this.mainLabelsElement, true);
this.renderService = new DataRenderService(data,
this.settings,
this.layout,
this.tooltipServiceWrapper);
this.renderService.renderArcs(this.slicesElement, false);
if (!this.data.hasHighlights) {
this.removeHighlightedSlice();
} else {
this.renderService.renderArcs(this.slicesElement, true);
}
if (this.settings.labels.show) {
this.renderService.renderLabels(this.mainLabelsElement, this.data.hasHighlights);
} else {
this.renderService.cleanLabels(this.mainLabelsElement);
}
if (this.settings.label.show) {
this.renderService.drawCenterText(this.mainGroupElement);
} else {
this.renderService.cleanCenterText(this.mainGroupElement);
}
if (this.settings.outerLine.show) {
this.renderService.drawOuterLines(this.mainGroupElement);
} else {
this.renderService.cleanOuterLines(this.mainGroupElement);
}
this.bindInteractivityBehaviour();
this.visualHost.eventService.renderingFinished(options);
}
catch (e) {
this.visualHost.eventService.renderingFailed(options, e);
console.log(e);
}
}