diff --git a/public/app/plugins/panel/singlestat/module.ts b/public/app/plugins/panel/singlestat/module.ts index 5b75de44949..b1b85107898 100644 --- a/public/app/plugins/panel/singlestat/module.ts +++ b/public/app/plugins/panel/singlestat/module.ts @@ -3,6 +3,7 @@ import $ from 'jquery'; import 'vendor/flot/jquery.flot'; import 'vendor/flot/jquery.flot.gauge'; import 'app/features/panel/panellinks/link_srv'; +import { getDecimalsForValue } from '@grafana/ui'; import kbn from 'app/core/utils/kbn'; import config from 'app/core/config'; @@ -190,7 +191,7 @@ class SingleStatCtrl extends MetricsPanelCtrl { data.value = 0; data.valueRounded = 0; } else { - const decimalInfo = this.getDecimalsForValue(data.value); + const decimalInfo = getDecimalsForValue(data.value); const formatFunc = getValueFormat(this.panel.format); data.valueFormatted = formatFunc( @@ -243,47 +244,6 @@ class SingleStatCtrl extends MetricsPanelCtrl { this.render(); } - getDecimalsForValue(value) { - if (_.isNumber(this.panel.decimals)) { - return { decimals: this.panel.decimals, scaledDecimals: null }; - } - - const delta = value / 2; - let dec = -Math.floor(Math.log(delta) / Math.LN10); - - const magn = Math.pow(10, -dec); - const norm = delta / magn; // norm is between 1.0 and 10.0 - let size; - - if (norm < 1.5) { - size = 1; - } else if (norm < 3) { - size = 2; - // special case for 2.5, requires an extra decimal - if (norm > 2.25) { - size = 2.5; - ++dec; - } - } else if (norm < 7.5) { - size = 5; - } else { - size = 10; - } - - size *= magn; - - // reduce starting decimals if not needed - if (Math.floor(value) === value) { - dec = 0; - } - - const result: any = {}; - result.decimals = Math.max(0, dec); - result.scaledDecimals = result.decimals - Math.floor(Math.log(size) / Math.LN10) + 2; - - return result; - } - setValues(data) { data.flotpairs = []; @@ -319,7 +279,7 @@ class SingleStatCtrl extends MetricsPanelCtrl { data.value = this.series[0].stats[this.panel.valueName]; data.flotpairs = this.series[0].flotpairs; - const decimalInfo = this.getDecimalsForValue(data.value); + const decimalInfo = getDecimalsForValue(data.value); data.valueFormatted = formatFunc( data.value,