Skip to content

Commit b816a8e

Browse files
committed
fill in list of visible:true module in fullLayout._visibleModules
- to not have to guard against visible!==true traces in _module.style - to shortcut full list of modules in other places downstream
1 parent cf65abd commit b816a8e

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

src/plots/plots.js

+10-5
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,9 @@ var extraFormatKeys = [
277277
* gd._fullLayout._modules
278278
* is a list of all the trace modules required to draw the plot.
279279
*
280+
* gd._fullLayout._visibleModules
281+
* subset of _modules, a list of modules corresponding to visible:true traces.
282+
*
280283
* gd._fullLayout._basePlotModules
281284
* is a list of all the plot modules required to draw the plot.
282285
*
@@ -378,6 +381,7 @@ plots.supplyDefaults = function(gd, opts) {
378381

379382
// clear the lists of trace and baseplot modules, and subplots
380383
newFullLayout._modules = [];
384+
newFullLayout._visibleModules = [];
381385
newFullLayout._basePlotModules = [];
382386
var subplots = newFullLayout._subplots = emptySubplotLists();
383387

@@ -420,7 +424,7 @@ plots.supplyDefaults = function(gd, opts) {
420424
newFullLayout._has = plots._hasPlotType.bind(newFullLayout);
421425

422426
// special cases that introduce interactions between traces
423-
var _modules = newFullLayout._modules;
427+
var _modules = newFullLayout._visibleModules;
424428
for(i = 0; i < _modules.length; i++) {
425429
var _module = _modules[i];
426430
if(_module.cleanData) _module.cleanData(newFullData);
@@ -898,6 +902,7 @@ plots.clearExpandedTraceDefaultColors = function(trace) {
898902

899903
plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
900904
var modules = fullLayout._modules;
905+
var visibleModules = fullLayout._visibleModules;
901906
var basePlotModules = fullLayout._basePlotModules;
902907
var cnt = 0;
903908
var colorCnt = 0;
@@ -913,8 +918,8 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
913918
if(!_module) return;
914919

915920
Lib.pushUnique(modules, _module);
921+
if(fullTrace.visible === true) Lib.pushUnique(visibleModules, _module);
916922
Lib.pushUnique(basePlotModules, fullTrace._module.basePlotModule);
917-
918923
cnt++;
919924

920925
// TODO: do we really want color not to increment for explicitly invisible traces?
@@ -1475,7 +1480,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
14751480
}
14761481

14771482
// trace module layout defaults
1478-
var modules = layoutOut._modules;
1483+
var modules = layoutOut._visibleModules;
14791484
for(i = 0; i < modules.length; i++) {
14801485
_module = modules[i];
14811486

@@ -1579,7 +1584,7 @@ plots.purge = function(gd) {
15791584
};
15801585

15811586
plots.style = function(gd) {
1582-
var _modules = gd._fullLayout._modules;
1587+
var _modules = gd._fullLayout._visibleModules;
15831588
var styleModules = [];
15841589
var i;
15851590

@@ -2567,7 +2572,7 @@ function clearAxesCalc(axList) {
25672572
plots.doSetPositions = function(gd) {
25682573
var fullLayout = gd._fullLayout;
25692574
var subplots = fullLayout._subplots.cartesian;
2570-
var modules = fullLayout._modules;
2575+
var modules = fullLayout._visibleModules;
25712576
var methods = [];
25722577
var i, j;
25732578

test/jasmine/tests/transform_groupby_test.js

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ function supplyDataDefaults(dataIn, dataOut) {
1515
return Plots.supplyDataDefaults(dataIn, dataOut, {}, {
1616
_subplots: {cartesian: ['xy'], xaxis: ['x'], yaxis: ['y']},
1717
_modules: [],
18+
_visibleModules: [],
1819
_basePlotModules: [],
1920
_traceUids: dataIn.map(function() { return Lib.randstr(); })
2021
});

test/jasmine/tests/transform_multi_test.js

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ var assertStyle = customAssertions.assertStyle;
1616
var mockFullLayout = {
1717
_subplots: {cartesian: ['xy'], xaxis: ['x'], yaxis: ['y']},
1818
_modules: [],
19+
_visibleModules: [],
1920
_basePlotModules: [],
2021
_has: function() {},
2122
_dfltTitle: {x: 'xxx', y: 'yyy'},

0 commit comments

Comments
 (0)