Skip to content

Commit 9facc51

Browse files
committed
Use rangeslider range for width and set initial range
1 parent 63658e1 commit 9facc51

File tree

3 files changed

+23
-22
lines changed

3 files changed

+23
-22
lines changed

src/components/rangeslider/create_slider.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var helpers = require('./helpers');
1919
var rangePlot = require('./range_plot');
2020

2121

22-
module.exports = function createSlider(gd, minStart, maxStart) {
22+
module.exports = function createSlider(gd) {
2323
var fullLayout = gd._fullLayout,
2424
sliderContainer = fullLayout._infolayer.selectAll('g.range-slider'),
2525
options = fullLayout.xaxis.rangeslider,
@@ -30,8 +30,8 @@ module.exports = function createSlider(gd, minStart, maxStart) {
3030
x = fullLayout.margin.l,
3131
y = fullLayout.height - height - fullLayout.margin.b;
3232

33-
minStart = minStart || 0;
34-
maxStart = maxStart || width;
33+
var minStart = 0,
34+
maxStart = width;
3535

3636
var slider = document.createElementNS(svgNS, 'g');
3737
helpers.setAttributes(slider, {
@@ -130,10 +130,6 @@ module.exports = function createSlider(gd, minStart, maxStart) {
130130
});
131131

132132

133-
console.log('in create slider')
134-
console.log(Axes.getAutoRange(fullLayout.xaxis))
135-
console.log(fullLayout.xaxis.range)
136-
137133
slider.addEventListener('mousedown', function(event) {
138134
var target = event.target,
139135
startX = event.clientX,
@@ -182,8 +178,8 @@ module.exports = function createSlider(gd, minStart, maxStart) {
182178
min = min || -Infinity;
183179
max = max || Infinity;
184180

185-
var rangeMin = fullLayout.xaxis.range[0],
186-
rangeMax = fullLayout.xaxis.range[1],
181+
var rangeMin = options.range[0],
182+
rangeMax = options.range[1],
187183
range = rangeMax - rangeMin,
188184
pixelMin = (min - rangeMin) / range * width,
189185
pixelMax = (max - rangeMin) / range * width;
@@ -222,9 +218,8 @@ module.exports = function createSlider(gd, minStart, maxStart) {
222218
helpers.setAttributes(grabberMin, { 'transform': 'translate(' + (min - handleWidth - 1) + ')' });
223219
helpers.setAttributes(grabberMax, { 'transform': 'translate(' + max + ')' });
224220

225-
// call to set range on plot here
226-
var rangeMin = fullLayout.xaxis.range[0],
227-
rangeMax = fullLayout.xaxis.range[1],
221+
var rangeMin = options.range[0],
222+
rangeMax = options.range[1],
228223
range = rangeMax - rangeMin,
229224
dataMin = min / width * range + rangeMin,
230225
dataMax = max / width * range + rangeMin;
@@ -241,6 +236,11 @@ module.exports = function createSlider(gd, minStart, maxStart) {
241236
}
242237

243238

239+
// Set slider range using axis autorange if necessary.
240+
if(!options.range) {
241+
options.range = Axes.getAutoRange(fullLayout.xaxis);
242+
}
243+
244244
var rangePlots = rangePlot(gd, width, height);
245245

246246
helpers.appendChildren(slider, [
@@ -253,6 +253,9 @@ module.exports = function createSlider(gd, minStart, maxStart) {
253253
grabberMax
254254
]);
255255

256+
// Set initially selected range
257+
setRange(fullLayout.xaxis.range[0], fullLayout.xaxis.range[1]);
258+
256259
sliderContainer.data([0])
257260
.enter().append(function() {
258261
options.setRange = setRange;

src/components/rangeslider/range_plot.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ var svgNS = require('../../constants/xmlns_namespaces').svg;
1616

1717
module.exports = function rangePlot(gd, w, h) {
1818

19-
var traces = gd._fullData,
20-
xaxis = gd._fullLayout.xaxis,
21-
yaxis = gd._fullLayout.yaxis,
22-
minX = xaxis.range[0],
23-
maxX = xaxis.range[1],
19+
var fullLayout = gd._fullLayout,
20+
traces = gd._fullData,
21+
xaxis = fullLayout.xaxis,
22+
yaxis = fullLayout.yaxis,
23+
minX = xaxis.rangeslider.range[0],
24+
maxX = xaxis.rangeslider.range[1],
2425
minY = yaxis.range[0],
2526
maxY = yaxis.range[1];
2627

src/plots/cartesian/axes.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,6 @@ axes.doAutoRange = function(ax) {
200200
// TODO do we really need this?
201201
var hasDeps = (ax._min && ax._max && ax._min.length && ax._max.length);
202202

203-
console.log('in do autorange')
204-
205203
if(ax.autorange && hasDeps) {
206204
ax.range = axes.getAutoRange(ax);
207205

@@ -258,14 +256,13 @@ axes.saveRangeInitial = function(gd, overwrite) {
258256
// and make it a tight bound if possible
259257
var FP_SAFE = Number.MAX_VALUE/2;
260258
axes.expand = function(ax, data, options) {
261-
if(!(ax.autorange || (ax.rangeslider || {}).visible) || !data) return;
259+
// if(!(ax.autorange || (ax.rangeslider || {}).visible) || !data) return;
260+
if(!(ax.autorange || ax._needsExpand) || !data) return;
262261
if(!ax._min) ax._min = [];
263262
if(!ax._max) ax._max = [];
264263
if(!options) options = {};
265264
if(!ax._m) ax.setScale();
266265

267-
console.log('in exapnd', ax._name)
268-
269266
var len = data.length,
270267
extrappad = options.padded ? ax._length*0.05 : 0,
271268
tozero = options.tozero && (ax.type==='linear' || ax.type==='-'),

0 commit comments

Comments
 (0)