@@ -12,36 +12,34 @@ var Axes = require('../../plots/cartesian/axes');
12
12
var Lib = require ( '../../lib' ) ;
13
13
var attributes = require ( './attributes' ) ;
14
14
15
+ var name = 'images' ;
15
16
16
17
module . exports = function supplyLayoutDefaults ( layoutIn , layoutOut ) {
18
+ var contIn = Array . isArray ( layoutIn [ name ] ) ? layoutIn [ name ] : [ ] ,
19
+ contOut = layoutOut [ name ] = [ ] ;
17
20
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 = { } ;
19
24
25
+ imageDefaults ( itemIn , itemOut , layoutOut ) ;
20
26
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 ) ;
32
28
}
33
29
} ;
34
30
35
31
36
32
function imageDefaults ( imageIn , imageOut , fullLayout ) {
37
33
38
- imageOut = imageOut || { } ;
39
-
40
34
function coerce ( attr , dflt ) {
41
35
return Lib . coerce ( imageIn , imageOut , attributes , attr , dflt ) ;
42
36
}
43
37
44
- coerce ( 'source' ) ;
38
+ var source = coerce ( 'source' ) ;
39
+ var visible = coerce ( 'visible' , ! ! source ) ;
40
+
41
+ if ( ! visible ) return imageOut ;
42
+
45
43
coerce ( 'layer' ) ;
46
44
coerce ( 'x' ) ;
47
45
coerce ( 'y' ) ;
@@ -52,12 +50,12 @@ function imageDefaults(imageIn, imageOut, fullLayout) {
52
50
coerce ( 'sizing' ) ;
53
51
coerce ( 'opacity' ) ;
54
52
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' ] ;
58
55
56
+ for ( var i = 0 ; i < 2 ; i ++ ) {
59
57
// 'paper' is the fallback axref
60
- Axes . coerceRef ( imageIn , imageOut , tdMock , axLetter , 'paper' ) ;
58
+ Axes . coerceRef ( imageIn , imageOut , gdMock , axLetters [ i ] , 'paper' ) ;
61
59
}
62
60
63
61
return imageOut ;
0 commit comments