@mozaic-ds/chart
Version:
<p align="center"> <img alt="ADEO Design system - Chart library" src="./.storybook/assets/adeo-design-system-chart-banner.svg" /> </p>
37 lines (32 loc) • 1.5 kB
text/typescript
export function formatTicks(val: number, unit?: string, minimumFractionDigits = 0, maximumFractionDigits = 0): string {
return `${formatDecimalNumber(val, minimumFractionDigits, maximumFractionDigits)}${unit ? ' ' + unit : ''}`;
}
export function formatWithThousandsSeprators(value: number, minimumFractionDigits = 2, maximumFractionDigits = 2): string {
if (Math.abs(Number(value)) >= 1.0e6) {
return formatDecimalNumber(value / 1.0e6, minimumFractionDigits, maximumFractionDigits) + ' M';
} else if (Math.abs(Number(value)) >= 1.0e3) {
return formatDecimalNumber(value / 1.0e3, minimumFractionDigits, maximumFractionDigits) + ' K';
} else {
return formatDecimalNumber(value, minimumFractionDigits, maximumFractionDigits);
}
}
export function formatDecimalNumber(value: number, minimumFractionDigits = 2, maximumFractionDigits = 2) {
return new Intl.NumberFormat(
new Intl.NumberFormat().resolvedOptions().locale,
{
style: 'decimal',
minimumFractionDigits,
maximumFractionDigits
}
).format(value);
}
export function getPatternIndexWithShift(
dataSetIndex: number,
patternShifting?: number
) {
return patternShifting ? (dataSetIndex + patternShifting) % 6 : dataSetIndex;
}
export function formatValueAndRate(doughnutData: any, dataIndex: number) {
const textValue = `${formatWithThousandsSeprators(doughnutData.data[dataIndex].value)} (${formatWithThousandsSeprators(doughnutData.data[dataIndex].rate)}%)`;
return textValue;
}