UNPKG

@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
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; }