mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 04:09:08 +02:00
Allow color plugin to work with custom dataset controllers (#10904)
This commit is contained in:
parent
5fdc0f71af
commit
8239567802
@ -1,3 +1,4 @@
|
||||
import {DoughnutController, PolarAreaController} from '../index.js';
|
||||
import type {Chart, ChartConfiguration, ChartDataset} from '../types.js';
|
||||
|
||||
export interface ColorsPluginOptions {
|
||||
@ -49,17 +50,17 @@ function colorizePolarAreaDataset(dataset: ChartDataset, i: number) {
|
||||
return i;
|
||||
}
|
||||
|
||||
function getColorizer(chartType: string) {
|
||||
function getColorizer(chart: Chart) {
|
||||
let i = 0;
|
||||
|
||||
return (dataset: ChartDataset) => {
|
||||
const type = dataset.type || chartType;
|
||||
return (dataset: ChartDataset, datasetIndex: number) => {
|
||||
const controller = chart.getDatasetMeta(datasetIndex).controller;
|
||||
|
||||
if (type === 'doughnut' || type === 'pie') {
|
||||
if (controller instanceof DoughnutController) {
|
||||
i = colorizeDoughnutDataset(dataset, i);
|
||||
} else if (type === 'polarArea') {
|
||||
} else if (controller instanceof PolarAreaController) {
|
||||
i = colorizePolarAreaDataset(dataset, i);
|
||||
} else if (type) {
|
||||
} else if (controller) {
|
||||
i = colorizeDefaultDataset(dataset, i);
|
||||
}
|
||||
};
|
||||
@ -101,7 +102,7 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
const colorizer = getColorizer(type);
|
||||
const colorizer = getColorizer(chart);
|
||||
|
||||
datasets.forEach(colorizer);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user