summaryrefslogtreecommitdiff
path: root/packages/frontend/src/utility/chart-legend.ts
blob: 490d6c449719c217c34b94d874f04db47af494fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*
 * SPDX-FileCopyrightText: syuilo and misskey-project
 * SPDX-License-Identifier: AGPL-3.0-only
 */

import type { Plugin } from 'chart.js';
import MkChartLegend from '@/components/MkChartLegend.vue';

export const chartLegend = (legend: InstanceType<typeof MkChartLegend> | null | undefined) => ({
	id: 'htmlLegend',
	afterUpdate(chart, args, options) {
		if (legend == null) return;

		// Reuse the built-in legendItems generator
		const items = chart.options.plugins!.legend!.labels!.generateLabels!(chart);

		legend.update(chart, items);
	},
}) as Plugin;