From 560d59d2028920d9400cc3cf27c7752d8574db4e Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Wed, 14 Jul 2021 01:49:34 +0200 Subject: [PATCH 01/11] lower z index of scale border so it draws behind the chart elements again --- src/core/core.scale.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index b6113f794b7..c3eb48afdb3 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1620,7 +1620,7 @@ export default class Scale extends Element { me.drawTitle(); } }, { - z: gz + 1, // TODO, v4 move border options to its own object and add z + z: gz, // TODO, v4 move border options to its own object and add z draw() { me.drawBorder(); } From 750c38b44d6b19afae1bcf422665894a870c29b9 Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Wed, 14 Jul 2021 02:03:46 +0200 Subject: [PATCH 02/11] lower default tick and grid z indez to -1 instead because color descrapancies with scale borderColor --- src/core/core.scale.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index c3eb48afdb3..f6bce5b9166 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1599,8 +1599,8 @@ export default class Scale extends Element { _layers() { const me = this; const opts = me.options; - const tz = opts.ticks && opts.ticks.z || 0; - const gz = opts.grid && opts.grid.z || 0; + const tz = opts.ticks && opts.ticks.z || -1; + const gz = opts.grid && opts.grid.z || -1; if (!me._isVisible() || me.draw !== Scale.prototype.draw) { // backward compatibility: draw has been overridden by custom scale @@ -1620,7 +1620,7 @@ export default class Scale extends Element { me.drawTitle(); } }, { - z: gz, // TODO, v4 move border options to its own object and add z + z: gz + 1, // TODO, v4 move border options to its own object and add z draw() { me.drawBorder(); } From df4944786709fb2b3a9038e6676f5491d9243a14 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Wed, 14 Jul 2021 02:14:29 -0400 Subject: [PATCH 03/11] Limit Math.asin inputs to the range [-1, 1] (#9410) --- src/core/core.scale.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index b6113f794b7..25c4b0ebe2c 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -593,8 +593,8 @@ export default class Scale extends Element { - tickOpts.padding - getTitleHeight(options.title, me.chart.options.font); maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight); labelRotation = toDegrees(Math.min( - Math.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)), - Math.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal) + Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), + Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1)) )); labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation)); } From 7105d90ba6d16307374f1737756427c2be7fac2d Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Wed, 14 Jul 2021 13:04:05 +0200 Subject: [PATCH 04/11] revert label z-index back to original, use valueordefault for grid z index --- src/core/core.scale.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index f6bce5b9166..5aff3d6edbc 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1599,8 +1599,8 @@ export default class Scale extends Element { _layers() { const me = this; const opts = me.options; - const tz = opts.ticks && opts.ticks.z || -1; - const gz = opts.grid && opts.grid.z || -1; + const tz = opts.ticks && opts.ticks.z || 0; + const gz = valueOrDefault(opts.grid && opts.grid.z, -1); if (!me._isVisible() || me.draw !== Scale.prototype.draw) { // backward compatibility: draw has been overridden by custom scale From fb45d8aa958e131ebb02c22242274764f8c3ad86 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Wed, 14 Jul 2021 14:39:22 +0300 Subject: [PATCH 05/11] Update a failing fixture (#9414) --- .../controller.bar/minBarLength/vertical.png | Bin 9228 -> 9405 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/fixtures/controller.bar/minBarLength/vertical.png b/test/fixtures/controller.bar/minBarLength/vertical.png index c79c4f3f3c90fa3675a166bcae2708f5d4618a9f..2074397ea0fec427722fcb79502c93b5e61675b6 100644 GIT binary patch literal 9405 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 From 11045a731a312fdeb69fd864a5182a07c0ce63d7 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Thu, 15 Jul 2021 08:20:22 -0400 Subject: [PATCH 06/11] Fix center axis title positions (#9413) * Fix the title positions for center positioned axes * Handle center position for vertical axes * Tests --- src/core/core.scale.js | 28 ++++++++-- .../core.scale/title/horizontal-center.js | 49 +++++++++++++++++ .../core.scale/title/horizontal-center.png | Bin 0 -> 4182 bytes .../core.scale/title/horizontal-value.js | 51 ++++++++++++++++++ .../core.scale/title/horizontal-value.png | Bin 0 -> 4224 bytes .../core.scale/title/vertical-center.js | 49 +++++++++++++++++ .../core.scale/title/vertical-center.png | Bin 0 -> 4282 bytes .../core.scale/title/vertical-value.js | 51 ++++++++++++++++++ .../core.scale/title/vertical-value.png | Bin 0 -> 4676 bytes 9 files changed, 224 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/core.scale/title/horizontal-center.js create mode 100644 test/fixtures/core.scale/title/horizontal-center.png create mode 100644 test/fixtures/core.scale/title/horizontal-value.js create mode 100644 test/fixtures/core.scale/title/horizontal-value.png create mode 100644 test/fixtures/core.scale/title/vertical-center.js create mode 100644 test/fixtures/core.scale/title/vertical-center.png create mode 100644 test/fixtures/core.scale/title/vertical-value.js create mode 100644 test/fixtures/core.scale/title/vertical-value.png diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 25c4b0ebe2c..c04899d25a1 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -132,16 +132,36 @@ function titleAlign(align, position, reverse) { } function titleArgs(scale, offset, position, align) { - const {top, left, bottom, right} = scale; + const {top, left, bottom, right, chart} = scale; + const {chartArea, scales} = chart; let rotation = 0; let maxWidth, titleX, titleY; + const height = bottom - top; + const width = right - left; if (scale.isHorizontal()) { titleX = _alignStartEnd(align, left, right); - titleY = offsetFromEdge(scale, position, offset); + + if (isObject(position)) { + const positionAxisID = Object.keys(position)[0]; + const value = position[positionAxisID]; + titleY = scales[positionAxisID].getPixelForValue(value) + height - offset; + } else if (position === 'center') { + titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset; + } else { + titleY = offsetFromEdge(scale, position, offset); + } maxWidth = right - left; } else { - titleX = offsetFromEdge(scale, position, offset); + if (isObject(position)) { + const positionAxisID = Object.keys(position)[0]; + const value = position[positionAxisID]; + titleX = scales[positionAxisID].getPixelForValue(value) - width + offset; + } else if (position === 'center') { + titleX = (chartArea.left + chartArea.right) / 2 - width + offset; + } else { + titleX = offsetFromEdge(scale, position, offset); + } titleY = _alignStartEnd(align, bottom, top); rotation = position === 'left' ? -HALF_PI : HALF_PI; } @@ -1557,7 +1577,7 @@ export default class Scale extends Element { const align = title.align; let offset = font.lineHeight / 2; - if (position === 'bottom') { + if (position === 'bottom' || position === 'center' || isObject(position)) { offset += padding.bottom; if (isArray(title.text)) { offset += font.lineHeight * (title.text.length - 1); diff --git a/test/fixtures/core.scale/title/horizontal-center.js b/test/fixtures/core.scale/title/horizontal-center.js new file mode 100644 index 00000000000..68e488d8a5a --- /dev/null +++ b/test/fixtures/core.scale/title/horizontal-center.js @@ -0,0 +1,49 @@ +module.exports = { + config: { + type: 'line', + options: { + events: [], + scales: { + y: { + type: 'linear', + position: 'left', + min: 0, + max: 100, + ticks: { + display: false + }, + grid: { + display: false + }, + title: { + display: true, + text: 'vertical' + } + }, + x: { + type: 'linear', + position: 'center', + min: 0, + max: 100, + ticks: { + display: false + }, + grid: { + display: false + }, + title: { + display: true, + text: 'horizontal' + } + }, + } + } + }, + options: { + spriteText: true, + canvas: { + height: 256, + width: 256 + }, + } +}; diff --git a/test/fixtures/core.scale/title/horizontal-center.png b/test/fixtures/core.scale/title/horizontal-center.png new file mode 100644 index 0000000000000000000000000000000000000000..b3abf341cda8145dd70e4fe9582fee376d7b2eeb GIT binary patch literal 4182 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/core.scale/title/vertical-center.js b/test/fixtures/core.scale/title/vertical-center.js new file mode 100644 index 00000000000..89669be6d3f --- /dev/null +++ b/test/fixtures/core.scale/title/vertical-center.js @@ -0,0 +1,49 @@ +module.exports = { + config: { + type: 'line', + options: { + events: [], + scales: { + y: { + type: 'linear', + position: 'center', + min: 0, + max: 100, + ticks: { + display: false + }, + grid: { + display: false + }, + title: { + display: true, + text: 'vertical' + } + }, + x: { + type: 'linear', + position: 'bottom', + min: 0, + max: 100, + ticks: { + display: false + }, + grid: { + display: false + }, + title: { + display: true, + text: 'horizontal' + } + }, + } + } + }, + options: { + spriteText: true, + canvas: { + height: 256, + width: 256 + }, + } +}; diff --git a/test/fixtures/core.scale/title/vertical-center.png b/test/fixtures/core.scale/title/vertical-center.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebdad43d8656c1c2df07cd926c8165a6595c126 GIT binary patch literal 4282 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 IwDF4jH)IhCEdT%j literal 0 HcmV?d00001 diff --git a/test/fixtures/core.scale/title/vertical-value.js b/test/fixtures/core.scale/title/vertical-value.js new file mode 100644 index 00000000000..b8a0de6373b --- /dev/null +++ b/test/fixtures/core.scale/title/vertical-value.js @@ -0,0 +1,51 @@ +module.exports = { + config: { + type: 'line', + options: { + events: [], + scales: { + y: { + type: 'linear', + position: { + x: 40 + }, + min: 0, + max: 100, + ticks: { + display: false + }, + grid: { + display: false + }, + title: { + display: true, + text: 'vertical' + } + }, + x: { + type: 'linear', + position: 'bottom', + min: 0, + max: 100, + ticks: { + display: false + }, + grid: { + display: false + }, + title: { + display: true, + text: 'horizontal' + } + }, + } + } + }, + options: { + spriteText: true, + canvas: { + height: 256, + width: 256 + }, + } +}; diff --git a/test/fixtures/core.scale/title/vertical-value.png b/test/fixtures/core.scale/title/vertical-value.png new file mode 100644 index 0000000000000000000000000000000000000000..eb4b201db5a93e614187e6f8a19cdc13ae670d87 GIT binary patch literal 4676 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 Date: Wed, 14 Jul 2021 01:49:34 +0200 Subject: [PATCH 07/11] lower z index of scale border so it draws behind the chart elements again --- src/core/core.scale.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index c04899d25a1..e4928026f23 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1640,7 +1640,7 @@ export default class Scale extends Element { me.drawTitle(); } }, { - z: gz + 1, // TODO, v4 move border options to its own object and add z + z: gz, // TODO, v4 move border options to its own object and add z draw() { me.drawBorder(); } From ad4721756ee2273a679f7bfa65802500368fa27a Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Wed, 14 Jul 2021 02:03:46 +0200 Subject: [PATCH 08/11] lower default tick and grid z indez to -1 instead because color descrapancies with scale borderColor --- src/core/core.scale.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index e4928026f23..62e292d943b 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1619,8 +1619,8 @@ export default class Scale extends Element { _layers() { const me = this; const opts = me.options; - const tz = opts.ticks && opts.ticks.z || 0; - const gz = opts.grid && opts.grid.z || 0; + const tz = opts.ticks && opts.ticks.z || -1; + const gz = opts.grid && opts.grid.z || -1; if (!me._isVisible() || me.draw !== Scale.prototype.draw) { // backward compatibility: draw has been overridden by custom scale @@ -1640,7 +1640,7 @@ export default class Scale extends Element { me.drawTitle(); } }, { - z: gz, // TODO, v4 move border options to its own object and add z + z: gz + 1, // TODO, v4 move border options to its own object and add z draw() { me.drawBorder(); } From a9b7575c3edf7471cd6c231fbe386b6072b1e460 Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Wed, 14 Jul 2021 13:04:05 +0200 Subject: [PATCH 09/11] revert label z-index back to original, use valueordefault for grid z index --- src/core/core.scale.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 62e292d943b..7eaa656c6ce 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1619,8 +1619,8 @@ export default class Scale extends Element { _layers() { const me = this; const opts = me.options; - const tz = opts.ticks && opts.ticks.z || -1; - const gz = opts.grid && opts.grid.z || -1; + const tz = opts.ticks && opts.ticks.z || 0; + const gz = valueOrDefault(opts.grid && opts.grid.z, -1); if (!me._isVisible() || me.draw !== Scale.prototype.draw) { // backward compatibility: draw has been overridden by custom scale From 5252ab9d5a64da18a4747af84bf7c8880adafd37 Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Fri, 16 Jul 2021 01:02:39 +0200 Subject: [PATCH 10/11] add test js file --- .../core.scale/border-behind-elements.js | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/fixtures/core.scale/border-behind-elements.js diff --git a/test/fixtures/core.scale/border-behind-elements.js b/test/fixtures/core.scale/border-behind-elements.js new file mode 100644 index 00000000000..aed868e9099 --- /dev/null +++ b/test/fixtures/core.scale/border-behind-elements.js @@ -0,0 +1,41 @@ +module.exports = { + config: { + type: 'bubble', + data: { + datasets: [ + { + label: '# of Votes', + data: [{x: 19, y: 3, r: 3}, {x: 2, y: 2, r: 60}], + radius: 100, + backgroundColor: 'pink' + } + ] + }, + options: { + plugins: { + legend: { + display: false + } + }, + scales: { + y: { + ticks: { + display: false + } + }, + x: { + ticks: { + display: false + } + } + } + } + }, + + options: { + canvas: { + height: 512, + width: 512 + } + } +}; From b262c2bd02492034f0343ebb07a4751eee3f2e48 Mon Sep 17 00:00:00 2001 From: Jacco van den Berg Date: Fri, 16 Jul 2021 01:21:19 +0200 Subject: [PATCH 11/11] increase color and with of border so test will pick difference up --- .../core.scale/border-behind-elements.js | 8 ++++++++ .../core.scale/border-behind-elements.png | Bin 0 -> 16643 bytes 2 files changed, 8 insertions(+) create mode 100644 test/fixtures/core.scale/border-behind-elements.png diff --git a/test/fixtures/core.scale/border-behind-elements.js b/test/fixtures/core.scale/border-behind-elements.js index aed868e9099..c5d17182383 100644 --- a/test/fixtures/core.scale/border-behind-elements.js +++ b/test/fixtures/core.scale/border-behind-elements.js @@ -21,11 +21,19 @@ module.exports = { y: { ticks: { display: false + }, + grid: { + borderColor: 'red', + borderWidth: 5 } }, x: { ticks: { display: false + }, + grid: { + borderColor: 'red', + borderWidth: 5 } } } diff --git a/test/fixtures/core.scale/border-behind-elements.png b/test/fixtures/core.scale/border-behind-elements.png new file mode 100644 index 0000000000000000000000000000000000000000..d3f37719d7eab5fd3c4a6e3419addb2646385e46 GIT binary patch literal 16643 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 literal 0 HcmV?d00001