|
@@ -1,9 +1,15 @@
|
|
|
import React, { PureComponent } from 'react';
|
|
import React, { PureComponent } from 'react';
|
|
|
import $ from 'jquery';
|
|
import $ from 'jquery';
|
|
|
-import { BasicGaugeColor, Threshold, TimeSeriesVMs, MappingType, ValueMapping } from '@grafana/ui';
|
|
|
|
|
-
|
|
|
|
|
-import config from '../core/config';
|
|
|
|
|
-import kbn from '../core/utils/kbn';
|
|
|
|
|
|
|
+import {
|
|
|
|
|
+ BasicGaugeColor,
|
|
|
|
|
+ Threshold,
|
|
|
|
|
+ TimeSeriesVMs,
|
|
|
|
|
+ MappingType,
|
|
|
|
|
+ ValueMapping,
|
|
|
|
|
+ getValueFormat,
|
|
|
|
|
+ Theme,
|
|
|
|
|
+ Themes,
|
|
|
|
|
+} from '@grafana/ui';
|
|
|
|
|
|
|
|
export interface Props {
|
|
export interface Props {
|
|
|
decimals: number;
|
|
decimals: number;
|
|
@@ -20,6 +26,7 @@ export interface Props {
|
|
|
suffix: string;
|
|
suffix: string;
|
|
|
unit: string;
|
|
unit: string;
|
|
|
width: number;
|
|
width: number;
|
|
|
|
|
+ theme?: Theme;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export class Gauge extends PureComponent<Props> {
|
|
export class Gauge extends PureComponent<Props> {
|
|
@@ -68,7 +75,7 @@ export class Gauge extends PureComponent<Props> {
|
|
|
formatValue(value) {
|
|
formatValue(value) {
|
|
|
const { decimals, valueMappings, prefix, suffix, unit } = this.props;
|
|
const { decimals, valueMappings, prefix, suffix, unit } = this.props;
|
|
|
|
|
|
|
|
- const formatFunc = kbn.valueFormats[unit];
|
|
|
|
|
|
|
+ const formatFunc = getValueFormat(unit);
|
|
|
const formattedValue = formatFunc(value, decimals);
|
|
const formattedValue = formatFunc(value, decimals);
|
|
|
|
|
|
|
|
if (valueMappings.length > 0) {
|
|
if (valueMappings.length > 0) {
|
|
@@ -116,6 +123,7 @@ export class Gauge extends PureComponent<Props> {
|
|
|
width,
|
|
width,
|
|
|
height,
|
|
height,
|
|
|
stat,
|
|
stat,
|
|
|
|
|
+ theme,
|
|
|
} = this.props;
|
|
} = this.props;
|
|
|
|
|
|
|
|
let value: string | number = '';
|
|
let value: string | number = '';
|
|
@@ -127,7 +135,7 @@ export class Gauge extends PureComponent<Props> {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const dimension = Math.min(width, height * 1.3);
|
|
const dimension = Math.min(width, height * 1.3);
|
|
|
- const backgroundColor = config.bootData.user.lightTheme ? 'rgb(230,230,230)' : 'rgb(38,38,38)';
|
|
|
|
|
|
|
+ const backgroundColor = theme === Themes.Light ? 'rgb(230,230,230)' : 'rgb(38,38,38)';
|
|
|
const fontScale = parseInt('80', 10) / 100;
|
|
const fontScale = parseInt('80', 10) / 100;
|
|
|
const fontSize = Math.min(dimension / 5, 100) * fontScale;
|
|
const fontSize = Math.min(dimension / 5, 100) * fontScale;
|
|
|
const gaugeWidthReduceRatio = showThresholdLabels ? 1.5 : 1;
|
|
const gaugeWidthReduceRatio = showThresholdLabels ? 1.5 : 1;
|