Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2488f4b

Browse files
committed
add per-basePlot-module updateFx methods
- making doModebar update subroutine much more manageable
1 parent 935e4ac commit 2488f4b

File tree

5 files changed

+40
-23
lines changed

5 files changed

+40
-23
lines changed

src/plot_api/subroutines.js

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -490,35 +490,15 @@ exports.doTicksRelayout = function(gd) {
490490

491491
exports.doModeBar = function(gd) {
492492
var fullLayout = gd._fullLayout;
493-
var subplotIds, subplotLayout, subplotObj, i;
494493

495494
ModeBar.manage(gd);
496495
initInteractions(gd);
497496

498-
subplotIds = Plots.getSubplotIds(fullLayout, 'gl3d');
499-
for(i = 0; i < subplotIds.length; i++) {
500-
subplotObj = fullLayout[subplotIds[i]]._scene;
501-
subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);
497+
for(var i = 0; i < fullLayout._basePlotModules.length; i++) {
498+
var updateFx = fullLayout._basePlotModules[i].updateFx;
499+
if(updateFx) updateFx(fullLayout);
502500
}
503501

504-
subplotIds = Plots.getSubplotIds(fullLayout, 'gl2d');
505-
for(i = 0; i < subplotIds.length; i++) {
506-
subplotObj = fullLayout._plots[subplotIds[i]]._scene2d;
507-
subplotObj.updateFx(fullLayout.dragmode);
508-
}
509-
510-
subplotIds = Plots.getSubplotIds(fullLayout, 'mapbox');
511-
for(i = 0; i < subplotIds.length; i++) {
512-
subplotObj = fullLayout[subplotIds[i]]._subplot;
513-
subplotObj.updateFx(fullLayout);
514-
}
515-
516-
subplotIds = Plots.getSubplotIds(fullLayout, 'geo');
517-
for(i = 0; i < subplotIds.length; i++) {
518-
subplotLayout = fullLayout[subplotIds[i]];
519-
subplotObj = subplotLayout._subplot;
520-
subplotObj.updateFx(fullLayout, subplotLayout);
521-
}
522502

523503
return Plots.previousPromises(gd);
524504
};

src/plots/geo/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,13 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
7777
}
7878
}
7979
};
80+
81+
exports.updateFx = function(fullLayout) {
82+
var subplotIds = Plots.getSubplotIds(fullLayout, GEO);
83+
84+
for(var i = 0; i < subplotIds.length; i++) {
85+
var subplotLayout = fullLayout[subplotIds[i]];
86+
var subplotObj = subplotLayout._subplot;
87+
subplotObj.updateFx(fullLayout, subplotLayout);
88+
}
89+
};

src/plots/gl2d/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,12 @@ exports.toSVG = function(gd) {
130130
scene.destroy();
131131
}
132132
};
133+
134+
exports.updateFx = function(fullLayout) {
135+
var subplotIds = Plots.getSubplotIds(fullLayout, 'gl2d');
136+
137+
for(var i = 0; i < subplotIds.length; i++) {
138+
var subplotObj = fullLayout._plots[subplotIds[i]]._scene2d;
139+
subplotObj.updateFx(fullLayout.dragmode);
140+
}
141+
};

src/plots/gl3d/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,12 @@ exports.cleanId = function cleanId(id) {
128128

129129
return SCENE + sceneNum;
130130
};
131+
132+
exports.updateFx = function(fullLayout) {
133+
var subplotIds = Plots.getSubplotIds(fullLayout, GL3D);
134+
135+
for(var i = 0; i < subplotIds.length; i++) {
136+
var subplotObj = fullLayout[subplotIds[i]]._scene;
137+
subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);
138+
}
139+
};

src/plots/mapbox/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,12 @@ function findAccessToken(gd, mapboxIds) {
155155

156156
return accessToken;
157157
}
158+
159+
exports.updateFx = function(fullLayout) {
160+
var subplotIds = Plots.getSubplotIds(fullLayout, MAPBOX);
161+
162+
for(var i = 0; i < subplotIds.length; i++) {
163+
var subplotObj = fullLayout[subplotIds[i]]._subplot;
164+
subplotObj.updateFx(fullLayout);
165+
}
166+
};

0 commit comments

Comments
 (0)