From 5c3dc932b615afa61580d06950712f79cfc7c4ef Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Fri, 15 Apr 2022 18:31:09 -0400 Subject: [PATCH] Enable configuration of radial scale point label border radius (#10293) --- docs/axes/radial/linear.md | 1 + src/scales/scale.radialLinear.js | 25 +++++++-- .../pointLabels/border-radius.js | 51 ++++++++++++++++++ .../pointLabels/border-radius.png | Bin 0 -> 30113 bytes types/index.esm.d.ts | 7 +++ 5 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 test/fixtures/scale.radialLinear/pointLabels/border-radius.js create mode 100644 test/fixtures/scale.radialLinear/pointLabels/border-radius.png diff --git a/docs/axes/radial/linear.md b/docs/axes/radial/linear.md index 18a6f7b63..6e0c681bf 100644 --- a/docs/axes/radial/linear.md +++ b/docs/axes/radial/linear.md @@ -120,6 +120,7 @@ Namespace: `options.scales[scaleId].pointLabels` | ---- | ---- | ------- | ------- | ----------- | `backdropColor` | [`Color`](../../general/colors.md) | `true` | `undefined` | Background color of the point label. | `backdropPadding` | [`Padding`](../../general/padding.md) | | `2` | Padding of label backdrop. +| `borderRadius` | `number`\|`object` | `true` | `0` | Border radius of the point label | `display` | `boolean` | | `true` | If true, point labels are shown. | `callback` | `function` | | | Callback function to transform data labels to point labels. The default implementation simply returns the current string. | `color` | [`Color`](../../general/colors.md) | Yes | `Chart.defaults.color` | Color of label. diff --git a/src/scales/scale.radialLinear.js b/src/scales/scale.radialLinear.js index 199ba7186..724a4be4e 100644 --- a/src/scales/scale.radialLinear.js +++ b/src/scales/scale.radialLinear.js @@ -1,10 +1,10 @@ import defaults from '../core/core.defaults'; -import {_longestText, renderText} from '../helpers/helpers.canvas'; +import {_longestText, addRoundedRectPath, renderText} from '../helpers/helpers.canvas'; import {HALF_PI, TAU, toDegrees, toRadians, _normalizeAngle, PI} from '../helpers/helpers.math'; import LinearScaleBase from './scale.linearbase'; import Ticks from '../core/core.ticks'; import {valueOrDefault, isArray, isFinite, callback as callCallback, isNullOrUndef} from '../helpers/helpers.core'; -import {createContext, toFont, toPadding} from '../helpers/helpers.options'; +import {createContext, toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options'; function getTickBackdropHeight(opts) { const tickOpts = opts.ticks; @@ -208,9 +208,28 @@ function drawPointLabels(scale, labelCount) { const {backdropColor} = optsAtIndex; if (!isNullOrUndef(backdropColor)) { + const borderRadius = toTRBLCorners(optsAtIndex.borderRadius); const padding = toPadding(optsAtIndex.backdropPadding); ctx.fillStyle = backdropColor; - ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height); + + const backdropLeft = left - padding.left; + const backdropTop = top - padding.top; + const backdropWidth = right - left + padding.width; + const backdropHeight = bottom - top + padding.height; + + if (Object.values(borderRadius).some(v => v !== 0)) { + ctx.beginPath(); + addRoundedRectPath(ctx, { + x: backdropLeft, + y: backdropTop, + w: backdropWidth, + h: backdropHeight, + radius: borderRadius, + }); + ctx.fill(); + } else { + ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight); + } } renderText( diff --git a/test/fixtures/scale.radialLinear/pointLabels/border-radius.js b/test/fixtures/scale.radialLinear/pointLabels/border-radius.js new file mode 100644 index 000000000..f3d334726 --- /dev/null +++ b/test/fixtures/scale.radialLinear/pointLabels/border-radius.js @@ -0,0 +1,51 @@ +module.exports = { + tolerance: 0.01, + config: { + type: 'radar', + data: { + labels: [ + ['VENTE ET', 'COMMERCIALISATION'], + ['GESTION', 'FINANCIÈRE'], + 'NUMÉRIQUE', + ['ADMINISTRATION', 'ET OPÉRATION'], + ['RESSOURCES', 'HUMAINES'], + 'INNOVATION' + ], + datasets: [ + { + backgroundColor: '#E43E51', + label: 'Compétences entrepreunariales', + data: [3, 2, 2, 1, 3, 1] + } + ] + }, + options: { + plugins: { + legend: false, + tooltip: false, + filler: false + }, + scales: { + r: { + min: 0, + max: 3, + pointLabels: { + backdropColor: 'blue', + backdropPadding: {left: 5, right: 5, top: 2, bottom: 2}, + borderRadius: 10, + }, + ticks: { + display: false, + stepSize: 1, + maxTicksLimit: 1 + } + } + }, + responsive: true, + maintainAspectRatio: false + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/scale.radialLinear/pointLabels/border-radius.png b/test/fixtures/scale.radialLinear/pointLabels/border-radius.png new file mode 100644 index 0000000000000000000000000000000000000000..30aba3ec06acf1c610194a375fa45638bb60691f GIT binary patch literal 30113 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 L); + /** + * Border radius + * @default 0 + * @since 3.8.0 + */ + borderRadius: Scriptable; + /** * if true, point labels are shown. * @default true