private getArcSvg()

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);
            });
    }