|
|
@@ -1,5 +1,6 @@
|
|
|
<script>
|
|
|
import { ArcElement, Chart, DoughnutController, Legend, Title, Tooltip } from 'chart.js';
|
|
|
+ import ChartDataLabels from 'chartjs-plugin-datalabels';
|
|
|
import { onDestroy } from 'svelte';
|
|
|
|
|
|
export let data = {};
|
|
|
@@ -50,7 +51,7 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- Chart.register(DoughnutController, ArcElement, Tooltip, Legend, Title, centerTextPlugin);
|
|
|
+ Chart.register(DoughnutController, ArcElement, Tooltip, Legend, Title, centerTextPlugin, ChartDataLabels);
|
|
|
|
|
|
const groupByMarket = (stocks) => {
|
|
|
const groups = {
|
|
|
@@ -114,14 +115,26 @@
|
|
|
callbacks: {
|
|
|
label: function(tooltipItem) {
|
|
|
const value = tooltipItem.raw;
|
|
|
- const percentage = ((value / total) * 100).toFixed(2);
|
|
|
- return `${formatCurrency(value, currency)} (${percentage}%)`;
|
|
|
+ return `${formatCurrency(value, currency)}`;
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
centerText: {
|
|
|
displayTotal: total,
|
|
|
displayCurrency: currency
|
|
|
+ },
|
|
|
+ datalabels: {
|
|
|
+ color: '#fff',
|
|
|
+ font: {
|
|
|
+ weight: 'bold'
|
|
|
+ },
|
|
|
+ formatter: (value) => {
|
|
|
+ const percentage = (value / total) * 100;
|
|
|
+ if (percentage < 0.1) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ return `${percentage.toFixed(1)}%`;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
};
|