From c51d697d7f9df8dff3f785beece4753e1b87cb97 Mon Sep 17 00:00:00 2001 From: stockiNail Date: Sat, 1 Oct 2022 20:26:45 +0200 Subject: [PATCH] Use the correct area to clip for dataset drawing when stacked scales are used (#10691) * Use the correct area to clip when stacked scales are used * adds test cases * fix CI issue * apply review * Update .size-limit.cjs Co-authored-by: Jacco van den Berg Co-authored-by: Jacco van den Berg --- .size-limit.cjs | 2 +- src/core/core.controller.js | 14 ++- .../core.layouts/stacked-boxes-max-index.js | 109 ++++++++++++++++++ .../core.layouts/stacked-boxes-max-index.png | Bin 0 -> 16627 bytes .../core.layouts/stacked-boxes-max.js | 109 ++++++++++++++++++ .../core.layouts/stacked-boxes-max.png | Bin 0 -> 22012 bytes 6 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/core.layouts/stacked-boxes-max-index.js create mode 100644 test/fixtures/core.layouts/stacked-boxes-max-index.png create mode 100644 test/fixtures/core.layouts/stacked-boxes-max.js create mode 100644 test/fixtures/core.layouts/stacked-boxes-max.png diff --git a/.size-limit.cjs b/.size-limit.cjs index 175477082..f4606e0b7 100644 --- a/.size-limit.cjs +++ b/.size-limit.cjs @@ -7,7 +7,7 @@ function modifyWebpackConfig(config) { module.exports = [ { path: 'dist/chart.js', - limit: '77.2 KB', + limit: '77.5 KB', webpack: false, running: false }, diff --git a/src/core/core.controller.js b/src/core/core.controller.js index 396193a17..9991263b7 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -101,6 +101,18 @@ function determineLastEvent(e, lastEvent, inChartArea, isClick) { return e; } +function getDatasetArea(meta) { + const {xScale, yScale} = meta; + if (xScale && yScale) { + return { + left: xScale.left, + right: xScale.right, + top: yScale.top, + bottom: yScale.bottom + }; + } +} + class Chart { static defaults = defaults; @@ -784,7 +796,7 @@ class Chart { const ctx = this.ctx; const clip = meta._clip; const useClip = !clip.disabled; - const area = this.chartArea; + const area = getDatasetArea(meta) || this.chartArea; const args = { meta, index: meta.index, diff --git a/test/fixtures/core.layouts/stacked-boxes-max-index.js b/test/fixtures/core.layouts/stacked-boxes-max-index.js new file mode 100644 index 000000000..60fd5f45a --- /dev/null +++ b/test/fixtures/core.layouts/stacked-boxes-max-index.js @@ -0,0 +1,109 @@ +module.exports = { + config: { + type: 'line', + data: { + datasets: [ + {data: [{x: 5, y: 1}, {x: 10, y: 2}, {x: 5, y: 3}], borderColor: 'red'}, + {data: [{x: 5, y: 1}, {x: 10, y: 2}, {x: 5, y: 3}], yAxisID: 'y1', xAxisID: 'x1', borderColor: 'green'}, + {data: [{x: 5, y: 1}, {x: 10, y: 2}, {x: 5, y: 3}], yAxisID: 'y2', xAxisID: 'x2', borderColor: 'blue'}, + ], + labels: ['tick1', 'tick2', 'tick3'] + }, + options: { + plugins: false, + scales: { + x: { + type: 'linear', + position: 'bottom', + stack: '1', + offset: true, + bounds: 'data', + border: { + color: 'red' + }, + ticks: { + autoSkip: false, + maxRotation: 0, + count: 3 + }, + max: 7 + }, + x1: { + type: 'linear', + position: 'bottom', + stack: '1', + offset: true, + bounds: 'data', + border: { + color: 'green' + }, + ticks: { + autoSkip: false, + maxRotation: 0, + count: 3 + }, + max: 7 + }, + x2: { + type: 'linear', + position: 'bottom', + stack: '1', + offset: true, + bounds: 'data', + border: { + color: 'blue' + }, + ticks: { + autoSkip: false, + maxRotation: 0, + count: 3 + }, + max: 7 + }, + y: { + type: 'linear', + position: 'left', + stack: '1', + offset: true, + border: { + color: 'red' + }, + ticks: { + precision: 0 + } + }, + y1: { + type: 'linear', + position: 'left', + stack: '1', + offset: true, + border: { + color: 'green' + }, + ticks: { + precision: 0 + } + }, + y2: { + type: 'linear', + position: 'left', + stack: '1', + offset: true, + border: { + color: 'blue', + }, + ticks: { + precision: 0 + } + } + } + } + }, + options: { + spriteText: true, + canvas: { + height: 384, + width: 384 + } + } +}; diff --git a/test/fixtures/core.layouts/stacked-boxes-max-index.png b/test/fixtures/core.layouts/stacked-boxes-max-index.png new file mode 100644 index 0000000000000000000000000000000000000000..60c829a478c043e3ab4f1b27ba61646411e4cb84 GIT binary patch literal 16627 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 bOzY=&`tJD`2||c-MVzv>JyHEF?#jOb8O2pk literal 0 HcmV?d00001