Skip to content

Commit bd0aa79

Browse files
committed
use '' valueformat as dflt
- use ax.setScale and Axes.calcTicks with mocked range [0, 1.5 * value] or the gauge.axis one to make that work. - fixup jasmine tests and baselines
1 parent 0e036a0 commit bd0aa79

12 files changed

+25
-42
lines changed

src/traces/indicator/attributes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ module.exports = {
162162
number: {
163163
valueformat: {
164164
valType: 'string',
165-
dflt: '.3s',
165+
dflt: '',
166166
role: 'info',
167167
editType: 'plot',
168168
description: [

src/traces/indicator/defaults.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
3333
traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1;
3434

3535
coerce('value');
36+
traceOut._range = [0, 1.5 * traceOut.value];
3637

3738
// Number attributes
3839
var auto = new Array(2);
3940
var bignumberFontSize;
4041
if(traceOut._hasNumber) {
4142
coerce('number.valueformat');
42-
if(!traceOut.number.valueformat) traceOut.number.valueformat = attributes.number.valueformat.dflt;
4343
coerce('number.font.color', layout.font.color);
4444
coerce('number.font.family', layout.font.family);
4545
coerce('number.font.size');
@@ -64,8 +64,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
6464
}
6565
coerce('delta.reference', traceOut.value);
6666
coerce('delta.relative');
67-
coerce('delta.valueformat');
68-
if(!traceOut.delta.valueformat) traceOut.delta.valueformat = traceOut.delta.relative ? '2%' : '.3s';
67+
coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '');
6968
coerce('delta.increasing.symbol');
7069
coerce('delta.increasing.color');
7170
coerce('delta.decreasing.symbol');
@@ -89,6 +88,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
8988
function coerceGaugeAxis(attr, dflt) {
9089
return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);
9190
}
91+
9292
if(traceOut._hasGauge) {
9393
gaugeIn = traceIn.gauge;
9494
if(!gaugeIn) gaugeIn = {};
@@ -132,7 +132,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
132132
if(gaugeIn) axisIn = gaugeIn.axis || {};
133133
axisOut = Template.newContainer(gaugeOut, 'axis');
134134
coerceGaugeAxis('visible');
135-
coerceGaugeAxis('range', [0, 1.5 * traceOut.value]);
135+
traceOut._range = coerceGaugeAxis('range', traceOut._range);
136136

137137
var opts = {outerTicks: true};
138138
handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear');

src/traces/indicator/plot.js

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ function drawBulletGauge(gd, plotGroup, cd, opts) {
256256
var bulletLeft = domain.x[0];
257257
var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * ((trace._hasNumber || trace._hasDelta) ? (1 - cn.bulletNumberDomainSize) : 1);
258258

259-
ax = mockAxis(gd, trace.gauge.axis, trace.gauge.axis.range);
259+
ax = mockAxis(gd, trace.gauge.axis);
260260
ax._id = 'xbulletaxis';
261261
ax.domain = [bulletLeft, bulletRight];
262262
ax.setScale();
@@ -567,8 +567,10 @@ function drawNumbers(gd, plotGroup, cd, opts) {
567567
}
568568

569569
function drawBignumber() {
570-
// bignumber
571-
var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat});
570+
var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat}, trace._range);
571+
bignumberAx.setScale();
572+
Axes.calcTicks(bignumberAx);
573+
572574
var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;};
573575
var bignumberSuffix = trace.number.suffix;
574576
var bignumberPrefix = trace.number.prefix;
@@ -607,8 +609,10 @@ function drawNumbers(gd, plotGroup, cd, opts) {
607609
}
608610

609611
function drawDelta() {
610-
// delta
611-
var deltaAx = mockAxis(gd, {tickformat: trace.delta.valueformat});
612+
var deltaAx = mockAxis(gd, {tickformat: trace.delta.valueformat}, trace._range);
613+
deltaAx.setScale();
614+
Axes.calcTicks(deltaAx);
615+
612616
var deltaFmt = function(v) { return Axes.tickText(deltaAx, v).text;};
613617
var deltaValue = function(d) {
614618
var value = trace.delta.relative ? d.relativeDelta : d.delta;
@@ -797,34 +801,12 @@ function arcTween(arc, endAngle, newAngle) {
797801
function mockAxis(gd, opts, zrange) {
798802
var fullLayout = gd._fullLayout;
799803

800-
var axisIn = {
801-
visible: opts.visible,
804+
var axisIn = Lib.extendFlat({
802805
type: 'linear',
803806
ticks: 'outside',
804807
range: zrange,
805-
tickmode: opts.tickmode,
806-
nticks: opts.nticks,
807-
tick0: opts.tick0,
808-
dtick: opts.dtick,
809-
tickvals: opts.tickvals,
810-
ticktext: opts.ticktext,
811-
ticklen: opts.ticklen,
812-
tickwidth: opts.tickwidth,
813-
tickcolor: opts.tickcolor,
814-
showticklabels: opts.showticklabels,
815-
tickfont: opts.tickfont,
816-
tickangle: opts.tickangle,
817-
tickformat: opts.tickformat,
818-
exponentformat: opts.exponentformat,
819-
separatethousands: opts.separatethousands,
820-
showexponent: opts.showexponent,
821-
showtickprefix: opts.showtickprefix,
822-
tickprefix: opts.tickprefix,
823-
showticksuffix: opts.showticksuffix,
824-
ticksuffix: opts.ticksuffix,
825-
title: opts.title,
826808
showline: true
827-
};
809+
}, opts);
828810

829811
var axisOut = {
830812
type: 'linear',
-3.31 KB
Loading
-362 Bytes
Loading
-5.34 KB
Loading
-1.76 KB
Loading
-1.95 KB
Loading
Loading
-1.33 KB
Loading
-1.84 KB
Loading

test/jasmine/tests/indicator_test.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,22 @@ describe('Indicator defaults', function() {
3939
});
4040
});
4141

42-
it('defaults to formatting numbers using SI prefix', function() {
43-
var out = _supply({type: 'indicator', mode: 'number+delta', value: 1});
44-
expect(out.number.valueformat).toBe('.3s');
45-
expect(out.delta.valueformat).toBe('.3s');
42+
it('defaults to blank formatting', function() {
43+
var out = _supply({type: 'indicator', mode: 'number+delta+gauge', value: 1});
44+
expect(out.number.valueformat).toBe('');
45+
expect(out.delta.valueformat).toBe('');
46+
expect(out.gauge.axis.tickformat).toBe('');
4647
});
4748

4849
it('defaults to displaying relative changes in percentage', function() {
4950
var out = _supply({type: 'indicator', mode: 'delta', delta: {relative: true}, value: 1});
5051
expect(out.delta.valueformat).toBe('2%');
5152
});
5253

53-
it('ignores empty valueformat', function() {
54+
it('should not ignore empty valueformat', function() {
5455
var out = _supply({type: 'indicator', mode: 'number+delta', number: {valueformat: ''}, delta: {valueformat: ''}, value: 1});
55-
expect(out.delta.valueformat).toBe('.3s');
56-
expect(out.number.valueformat).toBe('.3s');
56+
expect(out.delta.valueformat).toBe('');
57+
expect(out.number.valueformat).toBe('');
5758
});
5859

5960
it('defaults delta.reference to current value', function() {
@@ -298,7 +299,7 @@ describe('Indicator plot', function() {
298299
delta: {reference: 200}
299300
}], {width: 400, height: 400})
300301
.then(function() {
301-
assertContent(gd._fullData[0].delta.increasing.symbol + '20.0');
302+
assertContent(gd._fullData[0].delta.increasing.symbol + '20');
302303
return Plotly.restyle(gd, 'delta.relative', true);
303304
})
304305
.then(function() {

0 commit comments

Comments
 (0)