Skip to content

Commit 7e62ce4

Browse files
committed
move override logic from template to supply default
1 parent 4b1c90e commit 7e62ce4

File tree

3 files changed

+35
-69
lines changed

3 files changed

+35
-69
lines changed

src/plots/geo/layout_defaults.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,26 @@ function handleGeoDefaults(geoLayoutIn, geoLayoutOut, coerce, opts) {
4646
var isClipped = geoLayoutOut._isClipped = !!constants.lonaxisSpan[projType];
4747

4848
var visible = coerce('visible');
49+
if(visible === false) {
50+
// should override template.layout.geo.show* - see issue 4482
51+
52+
// make a copy
53+
var newTemplate = Lib.extendDeep({}, geoLayoutOut._template);
54+
55+
// override show*
56+
newTemplate.showcoastlines = false;
57+
newTemplate.showcountries = false;
58+
newTemplate.showframe = false;
59+
newTemplate.showlakes = false;
60+
newTemplate.showland = false;
61+
newTemplate.showocean = false;
62+
newTemplate.showrivers = false;
63+
newTemplate.showsubunits = false;
64+
65+
// set ref to copy
66+
geoLayoutOut._template = newTemplate;
67+
}
68+
4969
var show;
5070

5171
for(var i = 0; i < axesNames.length; i++) {

src/plots/plots.js

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1446,29 +1446,6 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
14461446

14471447
var template = layoutIn.template;
14481448
if(Lib.isPlainObject(template)) {
1449-
if( // geo.visible false should override template.layout.geo.show* - see issue 4482
1450-
layoutIn.geo &&
1451-
layoutIn.geo.visible === false &&
1452-
template.layout &&
1453-
template.layout.geo
1454-
) {
1455-
// make a copy
1456-
var newTemplate = Lib.extendDeep({}, template);
1457-
1458-
// override show*
1459-
newTemplate.layout.geo.showcoastlines = false;
1460-
newTemplate.layout.geo.showcountries = false;
1461-
newTemplate.layout.geo.showframe = false;
1462-
newTemplate.layout.geo.showlakes = false;
1463-
newTemplate.layout.geo.showland = false;
1464-
newTemplate.layout.geo.showocean = false;
1465-
newTemplate.layout.geo.showrivers = false;
1466-
newTemplate.layout.geo.showsubunits = false;
1467-
1468-
// set ref to copy
1469-
template = newTemplate;
1470-
}
1471-
14721449
layoutOut.template = template;
14731450
layoutOut._template = template.layout;
14741451
layoutOut._dataTemplate = template.data;

test/jasmine/tests/geo_test.js

Lines changed: 15 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ describe('Test Geo layout defaults', function() {
624624
});
625625
});
626626

627-
describe('geo.visible should override show* defaults', function() {
627+
describe('geo.visible should override show* defaults even with template any show* is true', function() {
628628
var keys = [
629629
'lonaxis.showgrid',
630630
'lataxis.showgrid',
@@ -652,6 +652,20 @@ describe('Test Geo layout defaults', function() {
652652

653653
it('- base case', function() {
654654
layoutIn = {
655+
template: {
656+
layout: {
657+
geo: {
658+
showcoastlines: true,
659+
showcountries: true,
660+
showframe: true,
661+
showland: true,
662+
showlakes: true,
663+
showocean: true,
664+
showrivers: true,
665+
showsubunits: true
666+
}
667+
}
668+
},
655669
geo: { visible: false }
656670
};
657671

@@ -688,51 +702,6 @@ describe('Test Geo layout defaults', function() {
688702
});
689703
});
690704

691-
describe('geo visible false', function() {
692-
var gd;
693-
694-
beforeEach(function() { gd = createGraphDiv(); });
695-
696-
afterEach(destroyGraphDiv);
697-
698-
it('should override template.layout.geo.show*', function(done) {
699-
var keys = [
700-
'showcoastlines',
701-
'showcountries',
702-
'showframe',
703-
'showland',
704-
'showlakes',
705-
'showocean',
706-
'showrivers',
707-
'showsubunits'
708-
];
709-
710-
var layout = {
711-
geo: { visible: false },
712-
template: {
713-
layout: {
714-
geo: {}
715-
}
716-
}
717-
};
718-
719-
keys.forEach(function(k) {
720-
layout.template.layout.geo[k] = true;
721-
});
722-
723-
var data = [{ lon: [0], lat: [0], type: 'scattergeo' }];
724-
725-
Plotly.plot(gd, data, layout)
726-
.then(function() {
727-
keys.forEach(function(k) {
728-
expect(gd._fullLayout.template.layout.geo[k]).toBe(false, k);
729-
});
730-
})
731-
.catch(failTest)
732-
.then(done);
733-
});
734-
});
735-
736705
describe('geojson / topojson utils', function() {
737706
function _locationToFeature(topojson, loc, locationmode) {
738707
var trace = { locationmode: locationmode };

0 commit comments

Comments
 (0)