Skip to content

Commit 3deab4c

Browse files
committed
move sliders to the updated automargin framework
1 parent 84a5695 commit 3deab4c

File tree

1 file changed

+21
-25
lines changed

1 file changed

+21
-25
lines changed

src/components/sliders/draw.js

+21-25
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,20 @@ module.exports = function draw(gd) {
3636
.classed(constants.containerClassName, true)
3737
.style('cursor', 'ew-resize');
3838

39-
sliders.exit().remove();
39+
function clearSlider(sliderOpts) {
40+
if(sliderOpts._commandObserver) {
41+
sliderOpts._commandObserver.remove();
42+
delete sliderOpts._commandObserver;
43+
}
44+
45+
Plots.autoMargin(gd, autoMarginId(sliderOpts));
46+
}
4047

41-
// If no more sliders, clear the margisn:
42-
if(sliders.exit().size()) clearPushMargins(gd);
48+
sliders.exit().each(function() {
49+
d3.select(this).selectAll('g.' + constants.groupClassName)
50+
.each(clearSlider);
51+
})
52+
.remove();
4353

4454
// Return early if no menus visible:
4555
if(sliderData.length === 0) return;
@@ -50,14 +60,9 @@ module.exports = function draw(gd) {
5060
sliderGroups.enter().append('g')
5161
.classed(constants.groupClassName, true);
5262

53-
sliderGroups.exit().each(function(sliderOpts) {
54-
d3.select(this).remove();
55-
56-
sliderOpts._commandObserver.remove();
57-
delete sliderOpts._commandObserver;
58-
59-
Plots.autoMargin(gd, constants.autoMarginIdRoot + sliderOpts._index);
60-
});
63+
sliderGroups.exit()
64+
.each(clearSlider)
65+
.remove();
6166

6267
// Find the dimensions of the sliders:
6368
for(var i = 0; i < sliderData.length; i++) {
@@ -92,6 +97,10 @@ module.exports = function draw(gd) {
9297
});
9398
};
9499

100+
function autoMarginId(sliderOpts) {
101+
return constants.autoMarginIdRoot + sliderOpts._index;
102+
}
103+
95104
// This really only just filters by visibility:
96105
function makeSliderData(fullLayout, gd) {
97106
var contOpts = fullLayout[constants.name],
@@ -239,7 +248,7 @@ function findDimensions(gd, sliderOpts) {
239248
marginOpts.r = dims.outerLength * FROM_BR[xanchor];
240249
}
241250

242-
Plots.autoMargin(gd, constants.autoMarginIdRoot + sliderOpts._index, marginOpts);
251+
Plots.autoMargin(gd, autoMarginId(sliderOpts), marginOpts);
243252
}
244253

245254
function drawSlider(gd, sliderGroup, sliderOpts) {
@@ -605,16 +614,3 @@ function drawRail(sliderGroup, sliderOpts) {
605614
(dims.inputAreaWidth - constants.railWidth) * 0.5 + dims.currentValueTotalHeight
606615
);
607616
}
608-
609-
function clearPushMargins(gd) {
610-
var pushMargins = gd._fullLayout._pushmargin || {},
611-
keys = Object.keys(pushMargins);
612-
613-
for(var i = 0; i < keys.length; i++) {
614-
var k = keys[i];
615-
616-
if(k.indexOf(constants.autoMarginIdRoot) !== -1) {
617-
Plots.autoMargin(gd, k);
618-
}
619-
}
620-
}

0 commit comments

Comments
 (0)