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';
|
import type {Chart, ChartConfiguration, ChartDataset} from '../types.js';
|
||||||
|
|
||||||
export interface ColorsPluginOptions {
|
export interface ColorsPluginOptions {
|
||||||
@ -49,17 +50,17 @@ function colorizePolarAreaDataset(dataset: ChartDataset, i: number) {
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getColorizer(chartType: string) {
|
function getColorizer(chart: Chart) {
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
|
||||||
return (dataset: ChartDataset) => {
|
return (dataset: ChartDataset, datasetIndex: number) => {
|
||||||
const type = dataset.type || chartType;
|
const controller = chart.getDatasetMeta(datasetIndex).controller;
|
||||||
|
|
||||||
if (type === 'doughnut' || type === 'pie') {
|
if (controller instanceof DoughnutController) {
|
||||||
i = colorizeDoughnutDataset(dataset, i);
|
i = colorizeDoughnutDataset(dataset, i);
|
||||||
} else if (type === 'polarArea') {
|
} else if (controller instanceof PolarAreaController) {
|
||||||
i = colorizePolarAreaDataset(dataset, i);
|
i = colorizePolarAreaDataset(dataset, i);
|
||||||
} else if (type) {
|
} else if (controller) {
|
||||||
i = colorizeDefaultDataset(dataset, i);
|
i = colorizeDefaultDataset(dataset, i);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -101,7 +102,7 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const colorizer = getColorizer(type);
|
const colorizer = getColorizer(chart);
|
||||||
|
|
||||||
datasets.forEach(colorizer);
|
datasets.forEach(colorizer);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user