@@ -12,36 +12,34 @@ var Axes = require('../../plots/cartesian/axes');
1212var Lib = require ( '../../lib' ) ;
1313var attributes = require ( './attributes' ) ;
1414
15+ var name = 'images' ;
1516
1617module . exports = function supplyLayoutDefaults ( layoutIn , layoutOut ) {
18+ var contIn = Array . isArray ( layoutIn [ name ] ) ? layoutIn [ name ] : [ ] ,
19+ contOut = layoutOut [ name ] = [ ] ;
1720
18- if ( ! layoutIn . images || ! Array . isArray ( layoutIn . images ) ) return ;
21+ for ( var i = 0 ; i < contIn . length ; i ++ ) {
22+ var itemIn = contIn [ i ] || { } ,
23+ itemOut = { } ;
1924
25+ imageDefaults ( itemIn , itemOut , layoutOut ) ;
2026
21- var containerIn = layoutIn . images ,
22- containerOut = layoutOut . images = [ ] ;
23-
24-
25- for ( var i = 0 ; i < containerIn . length ; i ++ ) {
26- var image = containerIn [ i ] ;
27-
28- if ( ! image . source ) continue ;
29-
30- var defaulted = imageDefaults ( containerIn [ i ] || { } , containerOut [ i ] || { } , layoutOut ) ;
31- containerOut . push ( defaulted ) ;
27+ contOut . push ( itemOut ) ;
3228 }
3329} ;
3430
3531
3632function imageDefaults ( imageIn , imageOut , fullLayout ) {
3733
38- imageOut = imageOut || { } ;
39-
4034 function coerce ( attr , dflt ) {
4135 return Lib . coerce ( imageIn , imageOut , attributes , attr , dflt ) ;
4236 }
4337
44- coerce ( 'source' ) ;
38+ var source = coerce ( 'source' ) ;
39+ var visible = coerce ( 'visible' , ! ! source ) ;
40+
41+ if ( ! visible ) return imageOut ;
42+
4543 coerce ( 'layer' ) ;
4644 coerce ( 'x' ) ;
4745 coerce ( 'y' ) ;
@@ -52,12 +50,12 @@ function imageDefaults(imageIn, imageOut, fullLayout) {
5250 coerce ( 'sizing' ) ;
5351 coerce ( 'opacity' ) ;
5452
55- for ( var i = 0 ; i < 2 ; i ++ ) {
56- var tdMock = { _fullLayout : fullLayout } ,
57- axLetter = [ 'x' , 'y' ] [ i ] ;
53+ var gdMock = { _fullLayout : fullLayout } ,
54+ axLetters = [ 'x' , 'y' ] ;
5855
56+ for ( var i = 0 ; i < 2 ; i ++ ) {
5957 // 'paper' is the fallback axref
60- Axes . coerceRef ( imageIn , imageOut , tdMock , axLetter , 'paper' ) ;
58+ Axes . coerceRef ( imageIn , imageOut , gdMock , axLetters [ i ] , 'paper' ) ;
6159 }
6260
6361 return imageOut ;
0 commit comments