private calcTickOptions()

in src/services/dataRenderService.ts [335:364]


    private calcTickOptions(value: number): CircleTicksOptions {
        let val: number = value > 0 ? Math.floor(value) : Math.ceil(value);
        let modifier = 1;

        if (val === 0) {
            for (let i = 0; i < value.toString().length - 3; ++i) {
                modifier *= 10;
                val = value * modifier;
                val = val > 0 ? Math.floor(val) : Math.ceil(val);

                if (val !== 0) {
                    break;
                }
            }
        }

        let step = Math.pow(10, val.toString().length - 1);

        let allTicksCount: number = Math.ceil((val) / step);
        let endPoint: number = allTicksCount * step / modifier;
        let diffPercent: number = endPoint / value;
        let threeTicks: number = 3;
        let twoTicks: number = 2;

        return {
            diffPercent,
            maxHeight: allTicksCount * step * modifier,
            ticksCount: allTicksCount % threeTicks === 0 ? threeTicks : twoTicks // 2 or 3 ticks only needed
        };
    }