Skip to content

Commit 257b32c

Browse files
committed
fix visiblity tweaks
1 parent eb630b5 commit 257b32c

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/traces/scattermapbox/plot.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ var ORDER = {
88
nonCluster: ['fill', 'line', 'circle', 'symbol'],
99
};
1010

11-
function ScatterMapbox(subplot, uid, clusterEnabled) {
11+
function ScatterMapbox(subplot, uid, clusterEnabled, isHidden) {
1212
this.type = 'scattermapbox';
1313
this.subplot = subplot;
1414
this.uid = uid;
1515
this.clusterEnabled = clusterEnabled;
16+
this.isHidden = isHidden;
1617

1718
this.sourceIds = {
1819
fill: 'source-' + uid + '-fill',
@@ -127,11 +128,12 @@ proto.update = function update(calcTrace) {
127128
}
128129
}
129130

130-
function reset() {
131+
function repaint() {
131132
var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;
132133
for(var i = 0; i < order.length; i++) {
133134
var k = order[i];
134135
var opts = optsAll[k];
136+
if(!opts) continue;
135137

136138
subplot.setOptions(lThis.layerIds[k], 'setLayoutProperty', opts.layout);
137139

@@ -144,14 +146,22 @@ proto.update = function update(calcTrace) {
144146
}
145147
}
146148

147-
if(hadCluster !== hasCluster) {
149+
var wasHidden = this.isHidden;
150+
var isHidden = trace.visible !== true;
151+
152+
if(isHidden && !wasHidden) {
153+
if(hadCluster) removeCluster(); else removeNonCluster();
154+
} else if(!isHidden && wasHidden) {
155+
if(hasCluster) addCluster(); else addNonCluster();
156+
} else if(hadCluster !== hasCluster) {
148157
if(hadCluster) removeCluster(); else removeNonCluster();
149158
if(hasCluster) addCluster(); else addNonCluster();
150159
} else {
151-
reset();
160+
repaint();
152161
}
153162

154163
this.clusterEnabled = hasCluster;
164+
this.isHidden = isHidden;
155165
this.below = below;
156166

157167
// link ref for quick update during selections
@@ -171,10 +181,13 @@ proto.dispose = function dispose() {
171181
module.exports = function createScatterMapbox(subplot, calcTrace) {
172182
var trace = calcTrace[0].trace;
173183
var hasCluster = trace.cluster && trace.cluster.enabled;
184+
var isHidden = trace.visible !== true;
185+
174186
var scatterMapbox = new ScatterMapbox(
175187
subplot,
176188
trace.uid,
177-
hasCluster
189+
hasCluster,
190+
isHidden
178191
);
179192

180193
var optsAll = convert(subplot.gd, calcTrace);

0 commit comments

Comments
 (0)