diff --git a/app/components/Chart/SplitSparkline.vue b/app/components/Chart/SplitSparkline.vue index d9dd5be2ff..cf7bd9cb09 100644 --- a/app/components/Chart/SplitSparkline.vue +++ b/app/components/Chart/SplitSparkline.vue @@ -31,9 +31,7 @@ const props = defineProps<{ const { locale } = useI18n() const colorMode = useColorMode() -const numberFormatter = useNumberFormatter({ - maximumFractionDigits: 0, -}) +const numberFormatter = useNumberFormatter() const resolvedMode = shallowRef<'light' | 'dark'>('light') const rootEl = shallowRef(null) const palette = getPalette('') diff --git a/app/components/Package/TrendsChart.vue b/app/components/Package/TrendsChart.vue index 4b7bd5ac5a..a8b0120eb6 100644 --- a/app/components/Package/TrendsChart.vue +++ b/app/components/Package/TrendsChart.vue @@ -1540,7 +1540,7 @@ const chartConfig = computed(() => { const rows = items .map((d: Record) => { const label = String(d?.name ?? '').trim() - const raw = Math.round(Number(d?.value ?? 0)) + const raw = Number(d?.value ?? 0) const v = compactNumberFormatter.value.format(Number.isFinite(raw) ? raw : 0) if (!hasMultipleItems) { diff --git a/app/components/Package/WeeklyDownloadStats.vue b/app/components/Package/WeeklyDownloadStats.vue index 0f8d9d51a2..02a179c29e 100644 --- a/app/components/Package/WeeklyDownloadStats.vue +++ b/app/components/Package/WeeklyDownloadStats.vue @@ -60,9 +60,7 @@ function handleModalTransitioned() { } const { fetchPackageDownloadEvolution } = useCharts() -const numberFormatter = useNumberFormatter({ - maximumFractionDigits: 0, -}) +const numberFormatter = useNumberFormatter() const { accentColors, selectedAccentColor } = useAccentColor() diff --git a/app/utils/chart-data-correction.ts b/app/utils/chart-data-correction.ts index 6e61d28072..4f94ee5663 100644 --- a/app/utils/chart-data-correction.ts +++ b/app/utils/chart-data-correction.ts @@ -83,7 +83,7 @@ export interface ChartFilterSettings { } /** - * Applies moving average then smoothing in sequence. + * Applies moving average, smoothing and then rounding up in sequence. */ export function applyDataCorrection( data: T[], @@ -92,5 +92,6 @@ export function applyDataCorrection( let result = data result = movingAverage(result, settings.averageWindow) result = smoothing(result, settings.smoothingTau) + result = result.map(d => ({ ...d, value: Math.ceil(d.value) })) return result }