@@ -19,7 +19,7 @@ var helpers = require('./helpers');
1919var 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 ;
0 commit comments