@@ -115,18 +115,34 @@ 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 ;
118
+ var axName , axLayoutIn , axLayoutOut ;
119
119
120
120
function coerce ( attr , dflt ) {
121
121
return Lib . coerce ( axLayoutIn , axLayoutOut , layoutAttributes , attr , dflt ) ;
122
122
}
123
123
124
- axesList . forEach ( function ( axName ) {
125
- var axLetter = axName . charAt ( 0 ) ;
124
+ function getCounterAxes ( axLetter ) {
125
+ var list = { x : yaList , y : xaList } [ axLetter ] ;
126
+
127
+ return list . map ( axisIds . name2id ) ;
128
+ }
129
+
130
+ function getOverlayableAxes ( axLetter , axName ) {
131
+ var list = { x : xaList , y : yaList } [ axLetter ] ;
132
+
133
+ return list . filter ( function ( axName2 ) {
134
+ return axName2 !== axName && ! ( layoutIn [ axName2 ] || { } ) . overlaying ;
135
+ } )
136
+ . map ( axisIds . name2id ) ;
137
+ }
126
138
139
+ for ( i = 0 ; i < axesList . length ; i ++ ) {
140
+ axName = axesList [ i ] ;
127
141
axLayoutIn = layoutIn [ axName ] || { } ;
128
142
axLayoutOut = { } ;
129
143
144
+ var axLetter = axName . charAt ( 0 ) ;
145
+
130
146
var defaultOptions = {
131
147
letter : axLetter ,
132
148
font : layoutOut . font ,
@@ -142,10 +158,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
142
158
143
159
var positioningOptions = {
144
160
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 )
161
+ counterAxes : getCounterAxes ( axLetter ) ,
162
+ overlayableAxes : getOverlayableAxes ( axLetter , axName )
149
163
} ;
150
164
151
165
handlePositionDefaults ( axLayoutIn , axLayoutOut , coerce , positioningOptions ) ;
@@ -157,14 +171,14 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
157
171
if ( ! layoutIn [ axName ] && axLayoutIn . type !== '-' ) {
158
172
layoutIn [ axName ] = { type : axLayoutIn . type } ;
159
173
}
160
-
161
- } ) ;
174
+ }
162
175
163
176
// quick second pass for range slider and selector defaults
164
177
var rangeSliderDefaults = Registry . getComponentMethod ( 'rangeslider' , 'handleDefaults' ) ,
165
178
rangeSelectorDefaults = Registry . getComponentMethod ( 'rangeselector' , 'handleDefaults' ) ;
166
179
167
- xaList . forEach ( function ( axName ) {
180
+ for ( i = 0 ; i < xaList . length ; i ++ ) {
181
+ axName = xaList [ i ] ;
168
182
axLayoutIn = layoutIn [ axName ] ;
169
183
axLayoutOut = layoutOut [ axName ] ;
170
184
@@ -181,9 +195,10 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
181
195
}
182
196
183
197
coerce ( 'fixedrange' ) ;
184
- } ) ;
198
+ }
185
199
186
- yaList . forEach ( function ( axName ) {
200
+ for ( i = 0 ; i < yaList . length ; i ++ ) {
201
+ axName = yaList [ i ] ;
187
202
axLayoutIn = layoutIn [ axName ] ;
188
203
axLayoutOut = layoutOut [ axName ] ;
189
204
@@ -196,5 +211,5 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
196
211
) ;
197
212
198
213
coerce ( 'fixedrange' , fixedRangeDflt ) ;
199
- } ) ;
214
+ }
200
215
} ;
0 commit comments