@@ -19,7 +19,7 @@ var helpers = require('./helpers');
19
19
var rangePlot = require ( './range_plot' ) ;
20
20
21
21
22
- module . exports = function createSlider ( gd , minStart , maxStart ) {
22
+ module . exports = function createSlider ( gd ) {
23
23
var fullLayout = gd . _fullLayout ,
24
24
sliderContainer = fullLayout . _infolayer . selectAll ( 'g.range-slider' ) ,
25
25
options = fullLayout . xaxis . rangeslider ,
@@ -30,8 +30,8 @@ module.exports = function createSlider(gd, minStart, maxStart) {
30
30
x = fullLayout . margin . l ,
31
31
y = fullLayout . height - height - fullLayout . margin . b ;
32
32
33
- minStart = minStart || 0 ;
34
- maxStart = maxStart || width ;
33
+ var minStart = 0 ,
34
+ maxStart = width ;
35
35
36
36
var slider = document . createElementNS ( svgNS , 'g' ) ;
37
37
helpers . setAttributes ( slider , {
@@ -130,10 +130,6 @@ module.exports = function createSlider(gd, minStart, maxStart) {
130
130
} ) ;
131
131
132
132
133
- console . log ( 'in create slider' )
134
- console . log ( Axes . getAutoRange ( fullLayout . xaxis ) )
135
- console . log ( fullLayout . xaxis . range )
136
-
137
133
slider . addEventListener ( 'mousedown' , function ( event ) {
138
134
var target = event . target ,
139
135
startX = event . clientX ,
@@ -182,8 +178,8 @@ module.exports = function createSlider(gd, minStart, maxStart) {
182
178
min = min || - Infinity ;
183
179
max = max || Infinity ;
184
180
185
- var rangeMin = fullLayout . xaxis . range [ 0 ] ,
186
- rangeMax = fullLayout . xaxis . range [ 1 ] ,
181
+ var rangeMin = options . range [ 0 ] ,
182
+ rangeMax = options . range [ 1 ] ,
187
183
range = rangeMax - rangeMin ,
188
184
pixelMin = ( min - rangeMin ) / range * width ,
189
185
pixelMax = ( max - rangeMin ) / range * width ;
@@ -222,9 +218,8 @@ module.exports = function createSlider(gd, minStart, maxStart) {
222
218
helpers . setAttributes ( grabberMin , { 'transform' : 'translate(' + ( min - handleWidth - 1 ) + ')' } ) ;
223
219
helpers . setAttributes ( grabberMax , { 'transform' : 'translate(' + max + ')' } ) ;
224
220
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 ] ,
228
223
range = rangeMax - rangeMin ,
229
224
dataMin = min / width * range + rangeMin ,
230
225
dataMax = max / width * range + rangeMin ;
@@ -241,6 +236,11 @@ module.exports = function createSlider(gd, minStart, maxStart) {
241
236
}
242
237
243
238
239
+ // Set slider range using axis autorange if necessary.
240
+ if ( ! options . range ) {
241
+ options . range = Axes . getAutoRange ( fullLayout . xaxis ) ;
242
+ }
243
+
244
244
var rangePlots = rangePlot ( gd , width , height ) ;
245
245
246
246
helpers . appendChildren ( slider , [
@@ -253,6 +253,9 @@ module.exports = function createSlider(gd, minStart, maxStart) {
253
253
grabberMax
254
254
] ) ;
255
255
256
+ // Set initially selected range
257
+ setRange ( fullLayout . xaxis . range [ 0 ] , fullLayout . xaxis . range [ 1 ] ) ;
258
+
256
259
sliderContainer . data ( [ 0 ] )
257
260
. enter ( ) . append ( function ( ) {
258
261
options . setRange = setRange ;
0 commit comments