@@ -41,8 +41,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
41
41
var yaMustDisplay = { } ;
42
42
var yaMustNotReverse = { } ;
43
43
var yaMayReverse = { } ;
44
- var yaMustNotScaleanchor = { } ;
45
- var yaMayScaleanchor = { } ;
44
+ var axHasImage = { } ;
46
45
var outerTicks = { } ;
47
46
var noGrids = { } ;
48
47
var i , j ;
@@ -80,17 +79,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
80
79
} else {
81
80
if ( yaName ) yaMayHide [ yaName ] = true ;
82
81
}
83
- yaMustNotScaleanchor [ yaName ] = true ;
84
82
} else if ( trace . type === 'image' ) {
85
- if ( yaName ) {
86
- yaMayReverse [ yaName ] = true ;
87
- yaMayScaleanchor [ yaName ] = true ;
88
- }
83
+ if ( yaName ) axHasImage [ yaName ] = true ;
84
+ if ( xaName ) axHasImage [ xaName ] = true ;
89
85
} else {
90
86
if ( yaName ) {
91
87
yaMustDisplay [ yaName ] = true ;
92
88
yaMustNotReverse [ yaName ] = true ;
93
- yaMustNotScaleanchor [ yaName ] = true ;
94
89
}
95
90
96
91
if ( ! traceIs ( trace , 'carpet' ) || ( trace . type === 'carpet' && ! trace . _cheater ) ) {
@@ -201,7 +196,11 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
201
196
( axLetter === 'y' && ! yaMustDisplay [ axName ] && yaMayHide [ axName ] ) ;
202
197
203
198
var reverseDflt =
204
- ( axLetter === 'y' && ! yaMustNotReverse [ axName ] && yaMayReverse [ axName ] ) ;
199
+ ( axLetter === 'y' &&
200
+ (
201
+ ( ! yaMustNotReverse [ axName ] && yaMayReverse [ axName ] ) ||
202
+ axHasImage [ axName ]
203
+ ) ) ;
205
204
206
205
var defaultOptions = {
207
206
letter : axLetter ,
@@ -303,16 +302,21 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
303
302
axLayoutIn = layoutIn [ axName ] ;
304
303
axLayoutOut = layoutOut [ axName ] ;
305
304
306
- var scaleanchorDflt = null ;
307
- if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'scaleanchor' ) &&
308
- ! yaMustNotScaleanchor [ axName ] && yaMayScaleanchor [ axName ]
309
- ) {
305
+ var scaleanchorDflt ;
306
+ if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'scaleanchor' ) && axHasImage [ axName ] ) {
310
307
scaleanchorDflt = axLayoutOut . anchor ;
311
- }
308
+ } else { scaleanchorDflt = undefined ; }
309
+
310
+ var constrainDflt ;
311
+ if ( ! axLayoutIn . hasOwnProperty ( 'constrain' ) && axHasImage [ axName ] ) {
312
+ constrainDflt = 'domain' ;
313
+ } else { constrainDflt = undefined ; }
314
+
312
315
handleConstraintDefaults ( axLayoutIn , axLayoutOut , coerce , {
313
316
allAxisIds : allAxisIds ,
314
317
layoutOut : layoutOut ,
315
- scaleanchorDflt : scaleanchorDflt
318
+ scaleanchorDflt : scaleanchorDflt ,
319
+ constrainDflt : constrainDflt
316
320
} ) ;
317
321
}
318
322
0 commit comments