@@ -43,6 +43,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
4343 var yaMayReverse = { } ;
4444 var yaMustNotScaleanchor = { } ;
4545 var yaMayScaleanchor = { } ;
46+ var yaMustNotConstrainDomain = { } ;
47+ var yaMayConstrainDomain = { } ;
4648 var outerTicks = { } ;
4749 var noGrids = { } ;
4850 var i , j ;
@@ -81,16 +83,19 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
8183 if ( yaName ) yaMayHide [ yaName ] = true ;
8284 }
8385 yaMustNotScaleanchor [ yaName ] = true ;
86+ yaMustNotConstrainDomain [ yaName ] = true ;
8487 } else if ( trace . type === 'image' ) {
8588 if ( yaName ) {
8689 yaMayReverse [ yaName ] = true ;
8790 yaMayScaleanchor [ yaName ] = true ;
91+ yaMayConstrainDomain [ yaName ] = true ;
8892 }
8993 } else {
9094 if ( yaName ) {
9195 yaMustDisplay [ yaName ] = true ;
9296 yaMustNotReverse [ yaName ] = true ;
9397 yaMustNotScaleanchor [ yaName ] = true ;
98+ yaMustNotConstrainDomain [ yaName ] = true ;
9499 }
95100
96101 if ( ! traceIs ( trace , 'carpet' ) || ( trace . type === 'carpet' && ! trace . _cheater ) ) {
@@ -309,10 +314,18 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
309314 ) {
310315 scaleanchorDflt = axLayoutOut . anchor ;
311316 }
317+
318+ var constrainDflt = null ;
319+ if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'constrain' ) &&
320+ ! yaMustNotConstrainDomain [ axName ] && yaMayConstrainDomain [ axName ]
321+ ) {
322+ constrainDflt = 'domain' ;
323+ }
312324 handleConstraintDefaults ( axLayoutIn , axLayoutOut , coerce , {
313325 allAxisIds : allAxisIds ,
314326 layoutOut : layoutOut ,
315- scaleanchorDflt : scaleanchorDflt
327+ scaleanchorDflt : scaleanchorDflt ,
328+ constrainDflt : constrainDflt
316329 } ) ;
317330 }
318331
0 commit comments