in src/TornadoChart.ts [828:879]
private renderColumns(columnsData: TornadoChartPoint[], selectSecondSeries: boolean = false): void {
let hasSelection: boolean = this.interactivityService && this.interactivityService.hasSelection();
let columnsSelection: Selection<any> = this.columns
.selectAll(TornadoChart.Column.selectorName)
.data(columnsData);
let columnsSelectionMerged = columnsSelection
.enter()
.append("svg:rect")
.merge(columnsSelection);
columnsSelectionMerged.classed(TornadoChart.Column.className, true);
columnsSelectionMerged
.style("fill", (p: TornadoChartPoint) => this.colorHelper.isHighContrast ? this.colorHelper.getThemeColor() : p.color)
.style("stroke", (p: TornadoChartPoint) => p.color)
.style("fill-opacity", (p: TornadoChartPoint) => tornadoChartUtils.getOpacity(
p.selected,
p.highlight,
hasSelection,
this.dataView.hasHighlights))
.style("stroke-opacity", (p: TornadoChartPoint) => tornadoChartUtils.getOpacity(
p.selected,
p.highlight,
hasSelection,
this.dataView.hasHighlights))
.attr("transform", (p: TornadoChartPoint) => translateAndRotate(p.dx, p.dy, p.px, p.py, p.angle))
.attr("height", (p: TornadoChartPoint) => p.height)
.attr("width", (p: TornadoChartPoint) => p.width);
columnsSelection
.exit()
.remove();
let interactivityService = this.interactivityService;
if (interactivityService) {
interactivityService.applySelectionStateToData(columnsData);
let behaviorOptions: TornadoBehaviorOptions = {
columns: columnsSelectionMerged,
clearCatcher: this.clearCatcher,
interactivityService: this.interactivityService,
behavior: this.behavior,
dataPoints: columnsData
};
interactivityService.bind(behaviorOptions);
}
this.renderTooltip(columnsSelectionMerged);
}