Skip to content

Commit 392619c

Browse files
committed
fill fullLayout._basePlotModules list in default trace loop,
- and in _basePlotModules in fullLayout._has() instead of loop over _modules
1 parent 313150e commit 392619c

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/plots/plots.js

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,9 @@ plots.sendDataToCloud = function(gd) {
446446
// gd._fullLayout._modules
447447
// is a list of all the trace modules required to draw the plot
448448
//
449+
// gd._fullLayout._basePlotModules
450+
// is a list of all the plot modules required to draw the plot
451+
//
449452
plots.supplyDefaults = function(gd) {
450453
var oldFullLayout = gd._fullLayout || {},
451454
newFullLayout = gd._fullLayout = {},
@@ -455,7 +458,8 @@ plots.supplyDefaults = function(gd) {
455458
newFullData = gd._fullData = [],
456459
newData = gd.data || [];
457460

458-
var modules = newFullLayout._modules = [];
461+
var modules = newFullLayout._modules = [],
462+
basePlotModules = newFullLayout._basePlotModules = [];
459463

460464
var i, _module;
461465

@@ -474,11 +478,13 @@ plots.supplyDefaults = function(gd) {
474478
// detect polar
475479
if('r' in fullTrace) newFullLayout._hasPolar = true;
476480

477-
// fill in modules list
478481
_module = fullTrace._module;
479-
if(_module && modules.indexOf(_module) === -1) modules.push(_module);
480-
}
482+
if(!_module) continue;
481483

484+
// fill in module lists
485+
Lib.fillUnique(modules, _module);
486+
Lib.fillUnique(basePlotModules, fullTrace._module.basePlotModule);
487+
}
482488
// attach helper method
483489
newFullLayout._has = hasPlotType.bind(newFullLayout);
484490

@@ -532,18 +538,17 @@ plots.supplyDefaults = function(gd) {
532538
};
533539

534540
// helper function to be bound to fullLayout to check
535-
// whether a certain plot type or layout categories is present on plot
541+
// whether a certain plot type is present on plot
536542
function hasPlotType(category) {
537-
var modules = this._modules || [];
543+
var basePlotModules = this._basePlotModules || [];
538544

539-
for(var i = 0; i < modules.length; i++) {
540-
var _module = modules[i];
545+
for(var i = 0; i < basePlotModules.length; i++) {
546+
var _module = basePlotModules[i];
541547

542-
if(_module.basePlotModule.name === category) return true;
548+
if(_module.name === category) return true;
543549
}
544550

545551
return false;
546-
}
547552

548553
plots.cleanPlot = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {
549554
var i, j;

0 commit comments

Comments
 (0)