Skip to content

Commit 6780a3d

Browse files
committed
texttemplate: do not coerce texttemplate when no text is displayed
1 parent e700fc2 commit 6780a3d

File tree

11 files changed

+38
-15
lines changed

11 files changed

+38
-15
lines changed

Diff for: src/traces/bar/defaults.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
3636
coerce('width');
3737

3838
coerce('text');
39-
coerce('texttemplate');
4039
coerce('hovertext');
4140
coerce('hovertemplate');
4241

@@ -156,6 +155,8 @@ function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {
156155
if(moduleHasConstrain) coerce('constraintext');
157156
if(moduleHasCliponaxis) coerce('cliponaxis');
158157
if(moduleHasTextangle) coerce('textangle');
158+
159+
coerce('texttemplate');
159160
}
160161

161162
if(hasInside) {

Diff for: src/traces/funnel/defaults.js

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
3232
coerce('width');
3333

3434
var text = coerce('text');
35-
coerce('texttemplate');
3635

3736
coerce('hovertext');
3837
coerce('hovertemplate');

Diff for: src/traces/scatter/defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
3737
var defaultMode = !stackGroupOpts && (len < constants.PTS_LINESONLY) ?
3838
'lines+markers' : 'lines';
3939
coerce('text');
40-
coerce('texttemplate');
4140
coerce('hovertext');
4241
coerce('mode', defaultMode);
4342

@@ -53,6 +52,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
5352
}
5453

5554
if(subTypes.hasText(traceOut)) {
55+
coerce('texttemplate');
5656
handleTextDefaults(traceIn, traceOut, layout, coerce);
5757
}
5858

Diff for: src/traces/scatter3d/defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
3131
}
3232

3333
coerce('text');
34-
coerce('texttemplate');
3534
coerce('hovertext');
3635
coerce('hovertemplate');
3736
coerce('mode');
@@ -46,6 +45,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
4645
}
4746

4847
if(subTypes.hasText(traceOut)) {
48+
coerce('texttemplate');
4949
handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true});
5050
}
5151

Diff for: src/traces/scatter3d/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module.exports = {
2929
moduleType: 'trace',
3030
name: 'scatter3d',
3131
basePlotModule: require('../../plots/gl3d'),
32-
categories: ['gl3d', 'symbols', 'showLegend'],
32+
categories: ['gl3d', 'symbols', 'showLegend', 'scatter-like'],
3333
meta: {
3434
hrName: 'scatter_3d',
3535
description: [

Diff for: src/traces/scattergeo/defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
3232
}
3333

3434
coerce('text');
35-
coerce('texttemplate');
3635
coerce('hovertext');
3736
coerce('hovertemplate');
3837
coerce('mode');
@@ -47,6 +46,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
4746
}
4847

4948
if(subTypes.hasText(traceOut)) {
49+
coerce('texttemplate');
5050
handleTextDefaults(traceIn, traceOut, layout, coerce);
5151
}
5252

Diff for: src/traces/scattergl/defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
3636
var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';
3737

3838
coerce('text');
39-
coerce('texttemplate');
4039
coerce('hovertext');
4140
coerce('hovertemplate');
4241
coerce('mode', defaultMode);
@@ -53,6 +52,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
5352
}
5453

5554
if(subTypes.hasText(traceOut)) {
55+
coerce('texttemplate');
5656
handleTextDefaults(traceIn, traceOut, layout, coerce);
5757
}
5858

Diff for: src/traces/scattermapbox/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ module.exports = {
2828
moduleType: 'trace',
2929
name: 'scattermapbox',
3030
basePlotModule: require('../../plots/mapbox'),
31-
categories: ['mapbox', 'gl', 'symbols', 'showLegend', 'scatterlike'],
31+
categories: ['mapbox', 'gl', 'symbols', 'showLegend', 'scatter-like'],
3232
meta: {
3333
hrName: 'scatter_mapbox',
3434
description: [

Diff for: src/traces/scatterpolar/defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
3434
coerce('thetaunit');
3535
coerce('mode', len < PTS_LINESONLY ? 'lines+markers' : 'lines');
3636
coerce('text');
37-
coerce('texttemplate');
3837
coerce('hovertext');
3938
if(traceOut.hoveron !== 'fills') coerce('hovertemplate');
4039

@@ -49,6 +48,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
4948
}
5049

5150
if(subTypes.hasText(traceOut)) {
51+
coerce('texttemplate');
5252
handleTextDefaults(traceIn, traceOut, layout, coerce);
5353
}
5454

Diff for: src/traces/scatterpolargl/defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
3434
coerce('thetaunit');
3535
coerce('mode', len < PTS_LINESONLY ? 'lines+markers' : 'lines');
3636
coerce('text');
37-
coerce('texttemplate');
3837
coerce('hovertext');
3938
if(traceOut.hoveron !== 'fills') coerce('hovertemplate');
4039

@@ -48,6 +47,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
4847
}
4948

5049
if(subTypes.hasText(traceOut)) {
50+
coerce('texttemplate');
5151
handleTextDefaults(traceIn, traceOut, layout, coerce);
5252
}
5353

Diff for: test/jasmine/assets/check_texttemplate.js

+28-5
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,39 @@ var supplyAllDefaults = require('../assets/supply_defaults');
1212
module.exports = function checkTextTemplate(mock, selector, tests) {
1313
var isGL = Registry.traceIs(mock[0].type, 'gl');
1414
var isPolar = Registry.traceIs(mock[0].type, 'polar');
15+
var isScatterLike = Registry.traceIs(mock[0].type, 'scatter-like');
16+
var isBarLike = Registry.traceIs(mock[0].type, 'bar-like');
1517

16-
it('should not coerce textinfo when texttemplate', function() {
18+
it('should not coerce textinfo when texttemplate is defined', function() {
1719
var gd = {};
18-
gd.data = Lib.extendDeep(mock, {});
20+
gd.data = Lib.extendDeep([], mock);
1921
gd.data[0].textinfo = 'text';
20-
gd.data[0].texttemplate = tests[0][0];
22+
gd.data[0].texttemplate = 'texttemplate';
2123
supplyAllDefaults(gd);
2224
expect(gd._fullData[0].textinfo).toBe(undefined);
2325
});
2426

27+
if(isScatterLike) {
28+
it('should not coerce texttemplate when mode has no `text` flag', function() {
29+
var gd = {};
30+
gd.data = Lib.extendDeep([], mock);
31+
gd.data[0].mode = 'markers';
32+
gd.data[0].texttemplate = 'texttemplate';
33+
supplyAllDefaults(gd);
34+
expect(gd._fullData[0].texttemplate).toBe(undefined);
35+
});
36+
}
37+
38+
if(isBarLike) {
39+
it('should not coerce texttemplate when textposition is `none`', function() {
40+
var gd = {};
41+
gd.data = Lib.extendDeep([], mock);
42+
gd.data[0].textposition = 'none';
43+
gd.data[0].texttemplate = 'texttemplate';
44+
supplyAllDefaults(gd);
45+
expect(gd._fullData[0].texttemplate).toBe(undefined);
46+
});
47+
}
2548

2649
var N = tests[0][1].length;
2750
var i;
@@ -46,7 +69,7 @@ module.exports = function checkTextTemplate(mock, selector, tests) {
4669
tests.forEach(function(test) {
4770
it('@gl should support texttemplate', function(done) {
4871
var gd = createGraphDiv();
49-
var mockCopy = Lib.extendDeep(mock, {});
72+
var mockCopy = Lib.extendDeep([], mock);
5073
mockCopy[0].texttemplate = test[0];
5174
Plotly.newPlot(gd, mockCopy)
5275
.then(function() {
@@ -78,7 +101,7 @@ module.exports = function checkTextTemplate(mock, selector, tests) {
78101
tests.forEach(function(test) {
79102
it('should support texttemplate', function(done) {
80103
var gd = createGraphDiv();
81-
var mockCopy = Lib.extendDeep(mock, {});
104+
var mockCopy = Lib.extendDeep([], mock);
82105
mockCopy[0].texttemplate = test[0];
83106
Plotly.newPlot(gd, mockCopy)
84107
.then(function() {

0 commit comments

Comments
 (0)