Skip to content

Commit cade877

Browse files
authored
Merge pull request #6246 from paulovieira/indicator-prefix-suffix
add `delta.prefix` and `delta.suffix` in Indicator trace
2 parents e98f6cf + 6f040fa commit cade877

File tree

5 files changed

+28
-9
lines changed

5 files changed

+28
-9
lines changed

draftlogs/6246_add.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Add `delta.prefix` and `delta.suffix` to Indicator trace [[#6246](https://github.com/plotly/plotly.js/pull/6246)],
2+
with thanks to @paulovieira for the contribution!

src/traces/indicator/attributes.js

+16
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,22 @@ module.exports = {
248248
'Set the font used to display the delta'
249249
].join(' ')
250250
}),
251+
prefix: {
252+
valType: 'string',
253+
dflt: '',
254+
editType: 'plot',
255+
description: [
256+
'Sets a prefix appearing before the delta.'
257+
].join(' ')
258+
},
259+
suffix: {
260+
valType: 'string',
261+
dflt: '',
262+
editType: 'plot',
263+
description: [
264+
'Sets a suffix appearing next to the delta.'
265+
].join(' ')
266+
},
251267
editType: 'calc'
252268
},
253269
gauge: {

src/traces/indicator/defaults.js

+2
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
6363
coerce('delta.decreasing.symbol');
6464
coerce('delta.decreasing.color');
6565
coerce('delta.position');
66+
coerce('delta.prefix');
67+
coerce('delta.suffix');
6668
deltaFontSize = traceOut.delta.font.size;
6769
}
6870
traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false;

src/traces/indicator/plot.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -571,15 +571,15 @@ function drawNumbers(gd, plotGroup, cd, opts) {
571571
bignumberAx.setScale();
572572
Axes.prepTicks(bignumberAx);
573573

574-
var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;};
574+
var bignumberFmt = function(v) { return Axes.tickText(bignumberAx, v).text;};
575575
var bignumberSuffix = trace.number.suffix;
576576
var bignumberPrefix = trace.number.prefix;
577577

578578
var number = numbers.select('text.number');
579579

580580
function writeNumber() {
581581
var txt = typeof cd[0].y === 'number' ?
582-
bignumberPrefix + fmt(cd[0].y) + bignumberSuffix :
582+
bignumberPrefix + bignumberFmt(cd[0].y) + bignumberSuffix :
583583
'-';
584584
number.text(txt)
585585
.call(Drawing.font, trace.number.font)
@@ -598,7 +598,7 @@ function drawNumbers(gd, plotGroup, cd, opts) {
598598
var interpolator = interpolateNumber(cd[0].lastY, cd[0].y);
599599
trace._lastValue = cd[0].y;
600600

601-
var transitionFmt = transitionFormat(trace.number.valueformat, fmt, cd[0].lastY, cd[0].y);
601+
var transitionFmt = transitionFormat(trace.number.valueformat, bignumberFmt, cd[0].lastY, cd[0].y);
602602
return function(t) {
603603
that.text(bignumberPrefix + transitionFmt(interpolator(t)) + bignumberSuffix);
604604
};
@@ -607,7 +607,7 @@ function drawNumbers(gd, plotGroup, cd, opts) {
607607
writeNumber();
608608
}
609609

610-
bignumberbBox = measureText(bignumberPrefix + fmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);
610+
bignumberbBox = measureText(bignumberPrefix + bignumberFmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);
611611
return number;
612612
}
613613

@@ -617,13 +617,16 @@ function drawNumbers(gd, plotGroup, cd, opts) {
617617
Axes.prepTicks(deltaAx);
618618

619619
var deltaFmt = function(v) { return Axes.tickText(deltaAx, v).text;};
620+
var deltaSuffix = trace.delta.suffix;
621+
var deltaPrefix = trace.delta.prefix;
622+
620623
var deltaValue = function(d) {
621624
var value = trace.delta.relative ? d.relativeDelta : d.delta;
622625
return value;
623626
};
624627
var deltaFormatText = function(value, numberFmt) {
625628
if(value === 0 || typeof value !== 'number' || isNaN(value)) return '-';
626-
return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + numberFmt(value);
629+
return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + deltaPrefix + numberFmt(value) + deltaSuffix;
627630
};
628631
var deltaFill = function(d) {
629632
return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color;

test/image/mocks/indicator_scatter.json

-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@
88
"type": "indicator",
99
"mode": "number+delta",
1010
"delta": {"reference": 512, "valueformat": ".0f"},
11-
"ticker": {
12-
"showticker": true
13-
},
14-
"vmax": 500,
1511
"value": 492
1612
}, {
1713
"name": "Users online",

0 commit comments

Comments
 (0)