in src/services/dataRenderService.ts [426:455]
private getArcSvg(innerRadius: number, viewportRadius: number, maxHeight: number): any {
return arc<AsterArcDescriptor>()
.innerRadius(innerRadius)
.outerRadius((arcDescriptor: AsterArcDescriptor, i: number) => {
let height: number = 0;
if (this.maxHeight) {
let radius: number = viewportRadius - innerRadius,
sliceHeight: number = 1;
sliceHeight = arcDescriptor
&& arcDescriptor.data
&& !isNaN(arcDescriptor.data.sliceHeight)
? arcDescriptor.data.sliceHeight
: sliceHeight;
height = radius * sliceHeight / maxHeight;
}
// The chart should shrink if data labels are on
let heightIsLabelsOn = innerRadius + (this.settings.labels.show ? height * DataRenderService.AsterRadiusRatio : height);
// let heightIsLabelsOn = innerRadius + height;
if (this.ticksOptions) {
heightIsLabelsOn /= this.ticksOptions.diffPercent;
}
// Prevent from data to be inside the inner radius
return Math.max(heightIsLabelsOn, innerRadius);
});
}