From ab55f6c97621004f1e0344af2983abe3599ed40d Mon Sep 17 00:00:00 2001 From: stockiNail Date: Wed, 18 Jan 2023 13:31:33 +0100 Subject: [PATCH] Check colors definition in the chart options (#11003) * Check colors definition in the chart options * Update src/plugins/plugin.colors.ts Co-authored-by: Dan Onoshko * Update src/plugins/plugin.colors.ts Co-authored-by: Dan Onoshko * Update src/plugins/plugin.colors.ts Co-authored-by: Dan Onoshko * apply review Co-authored-by: Dan Onoshko --- src/plugins/plugin.colors.ts | 13 ++++-- .../plugin.colors/chart-options-colors.js | 37 ++++++++++++++++++ .../plugin.colors/chart-options-colors.png | Bin 0 -> 15500 bytes 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 test/fixtures/plugin.colors/chart-options-colors.js create mode 100644 test/fixtures/plugin.colors/chart-options-colors.png diff --git a/src/plugins/plugin.colors.ts b/src/plugins/plugin.colors.ts index b2817c85a12..03af80eeabd 100644 --- a/src/plugins/plugin.colors.ts +++ b/src/plugins/plugin.colors.ts @@ -81,6 +81,12 @@ function containsColorsDefinitions( return false; } +function containsColorsDefinition( + descriptor: ColorsDescriptor +) { + return descriptor && (descriptor.borderColor || descriptor.backgroundColor); +} + export default { id: 'colors', @@ -95,11 +101,12 @@ export default { } const { - options: {elements}, - data: {datasets} + data: {datasets}, + options: chartOptions } = chart.config; + const {elements} = chartOptions; - if (!options.forceOverride && (containsColorsDefinitions(datasets) || elements && containsColorsDefinitions(elements))) { + if (!options.forceOverride && (containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || (elements && containsColorsDefinitions(elements)))) { return; } diff --git a/test/fixtures/plugin.colors/chart-options-colors.js b/test/fixtures/plugin.colors/chart-options-colors.js new file mode 100644 index 00000000000..5add0c25883 --- /dev/null +++ b/test/fixtures/plugin.colors/chart-options-colors.js @@ -0,0 +1,37 @@ +module.exports = { + config: { + type: 'bar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + data: [0, 5, 10, null, -10, -5], + }, + { + data: [10, 2, 3, null, 10, 5] + } + ] + }, + options: { + backgroundColor: ['red', 'green'], + scales: { + x: { + ticks: { + display: false, + } + }, + y: { + ticks: { + display: false, + } + } + }, + plugins: { + legend: false, + colors: { + enabled: true + } + } + } + } +}; diff --git a/test/fixtures/plugin.colors/chart-options-colors.png b/test/fixtures/plugin.colors/chart-options-colors.png new file mode 100644 index 0000000000000000000000000000000000000000..5b24310ed0bbd21ba043b17497004ef58c5d30b0 GIT binary patch literal 15500 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 literal 0 HcmV?d00001