mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-22 18:06:35 +00:00
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import { formattedValueToString, getValueFormat } from '@grafana/data';
|
|
|
|
export const getYAxisFormattedValue = (
|
|
value: string,
|
|
format: string,
|
|
): string => {
|
|
let decimalPrecision: number | undefined;
|
|
const parsedValue = getValueFormat(format)(
|
|
parseFloat(value),
|
|
undefined,
|
|
undefined,
|
|
undefined,
|
|
);
|
|
try {
|
|
const decimalSplitted = parsedValue.text.split('.');
|
|
if (decimalSplitted.length === 1) {
|
|
decimalPrecision = 0;
|
|
} else {
|
|
const decimalDigits = decimalSplitted[1].split('');
|
|
decimalPrecision = decimalDigits.length;
|
|
let nonZeroCtr = 0;
|
|
for (let idx = 0; idx < decimalDigits.length; idx += 1) {
|
|
if (decimalDigits[idx] !== '0') {
|
|
nonZeroCtr += 1;
|
|
if (nonZeroCtr >= 2) {
|
|
decimalPrecision = idx + 1;
|
|
}
|
|
} else if (nonZeroCtr) {
|
|
decimalPrecision = idx;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return formattedValueToString(
|
|
getValueFormat(format)(
|
|
parseFloat(value),
|
|
decimalPrecision,
|
|
undefined,
|
|
undefined,
|
|
),
|
|
);
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
return `${parseFloat(value)}`;
|
|
};
|
|
|
|
export const getToolTipValue = (value: string, format: string): string => {
|
|
try {
|
|
return formattedValueToString(
|
|
getValueFormat(format)(parseFloat(value), undefined, undefined, undefined),
|
|
);
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
return `${value}`;
|
|
};
|