From ee06dda39fb2cc30857971bde256ab110cedf880 Mon Sep 17 00:00:00 2001 From: kurkle Date: Wed, 17 Nov 2021 11:23:52 +0200 Subject: [PATCH 1/2] Update misleading sample comment --- docs/samples/scale-options/ticks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/samples/scale-options/ticks.md b/docs/samples/scale-options/ticks.md index 110047e4c56..591e42cc565 100644 --- a/docs/samples/scale-options/ticks.md +++ b/docs/samples/scale-options/ticks.md @@ -76,7 +76,7 @@ const config = { ticks: { // For a category axis, the val is the index so the lookup via getLabelForValue is needed callback: function(val, index) { - // Hide the label of every 2nd dataset + // Hide every 2nd tick label return index % 2 === 0 ? this.getLabelForValue(val) : ''; }, color: 'red', From a56d5dd9128c603d3904426003370591cdcf4569 Mon Sep 17 00:00:00 2001 From: kurkle Date: Wed, 17 Nov 2021 22:27:04 +0200 Subject: [PATCH 2/2] Configure all datasets before updating any --- src/controllers/controller.doughnut.js | 3 -- src/core/core.controller.js | 4 +++ src/core/core.datasetController.js | 3 +- .../doughnut-full-to-semi.js | 33 ++++++++++++++++++ .../doughnut-full-to-semi.png | Bin 0 -> 21562 bytes test/specs/controller.radar.tests.js | 7 ++-- 6 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 test/fixtures/controller.doughnut/doughnut-full-to-semi.js create mode 100644 test/fixtures/controller.doughnut/doughnut-full-to-semi.png diff --git a/src/controllers/controller.doughnut.js b/src/controllers/controller.doughnut.js index 3e0da333598..2be27615bcd 100644 --- a/src/controllers/controller.doughnut.js +++ b/src/controllers/controller.doughnut.js @@ -250,9 +250,6 @@ export default class DoughnutController extends DatasetController { meta = chart.getDatasetMeta(i); arcs = meta.data; controller = meta.controller; - if (controller !== this) { - controller.configure(); - } break; } } diff --git a/src/core/core.controller.js b/src/core/core.controller.js index ce6fbc7a876..cfa3ad937f8 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -540,6 +540,10 @@ class Chart { return; } + for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) { + this.getDatasetMeta(i).controller.configure(); + } + for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) { this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode); } diff --git a/src/core/core.datasetController.js b/src/core/core.datasetController.js index 1794c7031b9..ccbba232051 100644 --- a/src/core/core.datasetController.js +++ b/src/core/core.datasetController.js @@ -401,6 +401,7 @@ export default class DatasetController { const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true); this.options = config.createResolver(scopes, this.getContext()); this._parsing = this.options.parsing; + this._cachedDataOpts = {}; } /** @@ -659,8 +660,6 @@ export default class DatasetController { */ _update(mode) { const meta = this._cachedMeta; - this.configure(); - this._cachedDataOpts = {}; this.update(mode || 'default'); meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow()))); } diff --git a/test/fixtures/controller.doughnut/doughnut-full-to-semi.js b/test/fixtures/controller.doughnut/doughnut-full-to-semi.js new file mode 100644 index 00000000000..3e7058a8c41 --- /dev/null +++ b/test/fixtures/controller.doughnut/doughnut-full-to-semi.js @@ -0,0 +1,33 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/9832', + config: { + type: 'doughnut', + data: { + datasets: [{ + label: 'Set 1', + data: [50, 50, 25], + backgroundColor: ['#BF616A', '#D08770', '#EBCB8B'], + borderWidth: 0 + }, + { + label: 'Se1 2', + data: [50, 50, 25], + backgroundColor: ['#BF616A', '#D08770', '#EBCB8B'], + borderWidth: 0 + }] + }, + options: { + rotation: -90 + } + }, + options: { + canvas: { + width: 512, + height: 512 + }, + run(chart) { + chart.options.circumference = 180; + chart.update(); + } + } +}; diff --git a/test/fixtures/controller.doughnut/doughnut-full-to-semi.png b/test/fixtures/controller.doughnut/doughnut-full-to-semi.png new file mode 100644 index 0000000000000000000000000000000000000000..0585b4922f0bbd217f9a47e306cd0999dec665e4 GIT binary patch literal 21562 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