@@ -277,6 +277,9 @@ var extraFormatKeys = [
277
277
* gd._fullLayout._modules
278
278
* is a list of all the trace modules required to draw the plot.
279
279
*
280
+ * gd._fullLayout._visibleModules
281
+ * subset of _modules, a list of modules corresponding to visible:true traces.
282
+ *
280
283
* gd._fullLayout._basePlotModules
281
284
* is a list of all the plot modules required to draw the plot.
282
285
*
@@ -378,6 +381,7 @@ plots.supplyDefaults = function(gd, opts) {
378
381
379
382
// clear the lists of trace and baseplot modules, and subplots
380
383
newFullLayout . _modules = [ ] ;
384
+ newFullLayout . _visibleModules = [ ] ;
381
385
newFullLayout . _basePlotModules = [ ] ;
382
386
var subplots = newFullLayout . _subplots = emptySubplotLists ( ) ;
383
387
@@ -420,7 +424,7 @@ plots.supplyDefaults = function(gd, opts) {
420
424
newFullLayout . _has = plots . _hasPlotType . bind ( newFullLayout ) ;
421
425
422
426
// special cases that introduce interactions between traces
423
- var _modules = newFullLayout . _modules ;
427
+ var _modules = newFullLayout . _visibleModules ;
424
428
for ( i = 0 ; i < _modules . length ; i ++ ) {
425
429
var _module = _modules [ i ] ;
426
430
if ( _module . cleanData ) _module . cleanData ( newFullData ) ;
@@ -898,6 +902,7 @@ plots.clearExpandedTraceDefaultColors = function(trace) {
898
902
899
903
plots . supplyDataDefaults = function ( dataIn , dataOut , layout , fullLayout ) {
900
904
var modules = fullLayout . _modules ;
905
+ var visibleModules = fullLayout . _visibleModules ;
901
906
var basePlotModules = fullLayout . _basePlotModules ;
902
907
var cnt = 0 ;
903
908
var colorCnt = 0 ;
@@ -913,8 +918,8 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
913
918
if ( ! _module ) return ;
914
919
915
920
Lib . pushUnique ( modules , _module ) ;
921
+ if ( fullTrace . visible === true ) Lib . pushUnique ( visibleModules , _module ) ;
916
922
Lib . pushUnique ( basePlotModules , fullTrace . _module . basePlotModule ) ;
917
-
918
923
cnt ++ ;
919
924
920
925
// TODO: do we really want color not to increment for explicitly invisible traces?
@@ -1475,7 +1480,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
1475
1480
}
1476
1481
1477
1482
// trace module layout defaults
1478
- var modules = layoutOut . _modules ;
1483
+ var modules = layoutOut . _visibleModules ;
1479
1484
for ( i = 0 ; i < modules . length ; i ++ ) {
1480
1485
_module = modules [ i ] ;
1481
1486
@@ -1579,7 +1584,7 @@ plots.purge = function(gd) {
1579
1584
} ;
1580
1585
1581
1586
plots . style = function ( gd ) {
1582
- var _modules = gd . _fullLayout . _modules ;
1587
+ var _modules = gd . _fullLayout . _visibleModules ;
1583
1588
var styleModules = [ ] ;
1584
1589
var i ;
1585
1590
@@ -2567,7 +2572,7 @@ function clearAxesCalc(axList) {
2567
2572
plots . doSetPositions = function ( gd ) {
2568
2573
var fullLayout = gd . _fullLayout ;
2569
2574
var subplots = fullLayout . _subplots . cartesian ;
2570
- var modules = fullLayout . _modules ;
2575
+ var modules = fullLayout . _visibleModules ;
2571
2576
var methods = [ ] ;
2572
2577
var i , j ;
2573
2578
0 commit comments