@@ -115,33 +115,39 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
115
115
116
116
var bgColor = Color . combine ( plot_bgcolor , layoutOut . paper_bgcolor ) ;
117
117
118
+ var axLayoutIn , axLayoutOut ;
119
+
120
+ function coerce ( attr , dflt ) {
121
+ return Lib . coerce ( axLayoutIn , axLayoutOut , layoutAttributes , attr , dflt ) ;
122
+ }
123
+
118
124
axesList . forEach ( function ( axName ) {
119
- var axLetter = axName . charAt ( 0 ) ,
120
- axLayoutIn = layoutIn [ axName ] || { } ,
121
- axLayoutOut = { } ,
122
- defaultOptions = {
123
- letter : axLetter ,
124
- font : layoutOut . font ,
125
- outerTicks : outerTicks [ axName ] ,
126
- showGrid : ! noGrids [ axName ] ,
127
- name : axName ,
128
- data : fullData ,
129
- bgColor : bgColor ,
130
- calendar : layoutOut . calendar
131
- } ,
132
- positioningOptions = {
133
- letter : axLetter ,
134
- counterAxes : { x : yaList , y : xaList } [ axLetter ] . map ( axisIds . name2id ) ,
135
- overlayableAxes : { x : xaList , y : yaList } [ axLetter ] . filter ( function ( axName2 ) {
136
- return axName2 !== axName && ! ( layoutIn [ axName2 ] || { } ) . overlaying ;
137
- } ) . map ( axisIds . name2id )
138
- } ;
139
-
140
- function coerce ( attr , dflt ) {
141
- return Lib . coerce ( axLayoutIn , axLayoutOut , layoutAttributes , attr , dflt ) ;
142
- }
125
+ var axLetter = axName . charAt ( 0 ) ;
126
+
127
+ axLayoutIn = layoutIn [ axName ] || { } ;
128
+ axLayoutOut = { } ;
129
+
130
+ var defaultOptions = {
131
+ letter : axLetter ,
132
+ font : layoutOut . font ,
133
+ outerTicks : outerTicks [ axName ] ,
134
+ showGrid : ! noGrids [ axName ] ,
135
+ name : axName ,
136
+ data : fullData ,
137
+ bgColor : bgColor ,
138
+ calendar : layoutOut . calendar
139
+ } ;
143
140
144
141
handleAxisDefaults ( axLayoutIn , axLayoutOut , coerce , defaultOptions , layoutOut ) ;
142
+
143
+ var positioningOptions = {
144
+ letter : axLetter ,
145
+ counterAxes : { x : yaList , y : xaList } [ axLetter ] . map ( axisIds . name2id ) ,
146
+ overlayableAxes : { x : xaList , y : yaList } [ axLetter ] . filter ( function ( axName2 ) {
147
+ return axName2 !== axName && ! ( layoutIn [ axName2 ] || { } ) . overlaying ;
148
+ } ) . map ( axisIds . name2id )
149
+ } ;
150
+
145
151
handlePositionDefaults ( axLayoutIn , axLayoutOut , coerce , positioningOptions ) ;
146
152
147
153
layoutOut [ axName ] = axLayoutOut ;
@@ -158,17 +164,37 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
158
164
var rangeSliderDefaults = Registry . getComponentMethod ( 'rangeslider' , 'handleDefaults' ) ,
159
165
rangeSelectorDefaults = Registry . getComponentMethod ( 'rangeselector' , 'handleDefaults' ) ;
160
166
161
- axesList . forEach ( function ( axName ) {
162
- var axLetter = axName . charAt ( 0 ) ,
163
- axLayoutIn = layoutIn [ axName ] ,
164
- axLayoutOut = layoutOut [ axName ] ,
165
- counterAxes = { x : yaList , y : xaList } [ axLetter ] ;
167
+ xaList . forEach ( function ( axName ) {
168
+ axLayoutIn = layoutIn [ axName ] ;
169
+ axLayoutOut = layoutOut [ axName ] ;
166
170
167
- rangeSliderDefaults ( layoutIn , layoutOut , axName , counterAxes ) ;
171
+ rangeSliderDefaults ( layoutIn , layoutOut , axName ) ;
168
172
169
- if ( axLetter === 'x' && axLayoutOut . type === 'date' ) {
170
- rangeSelectorDefaults ( axLayoutIn , axLayoutOut , layoutOut , counterAxes ,
171
- axLayoutOut . calendar ) ;
173
+ if ( axLayoutOut . type === 'date' ) {
174
+ rangeSelectorDefaults (
175
+ axLayoutIn ,
176
+ axLayoutOut ,
177
+ layoutOut ,
178
+ yaList ,
179
+ axLayoutOut . calendar
180
+ ) ;
172
181
}
182
+
183
+ coerce ( 'fixedrange' ) ;
184
+ } ) ;
185
+
186
+ yaList . forEach ( function ( axName ) {
187
+ axLayoutIn = layoutIn [ axName ] ;
188
+ axLayoutOut = layoutOut [ axName ] ;
189
+
190
+ var anchoredAxis = layoutOut [ axisIds . id2name ( axLayoutOut . anchor ) ] ;
191
+
192
+ var fixedRangeDflt = (
193
+ anchoredAxis &&
194
+ anchoredAxis . rangeslider &&
195
+ anchoredAxis . rangeslider . visible
196
+ ) ;
197
+
198
+ coerce ( 'fixedrange' , fixedRangeDflt ) ;
173
199
} ) ;
174
200
} ;
0 commit comments