@@ -14,11 +14,25 @@ var Color = require('../../components/color');
14
14
15
15
var attributes = require ( './attributes' ) ;
16
16
17
- module . exports = function supplyDefaults ( traceIn , traceOut , defaultColor , layout ) {
17
+ function supplyDefaults ( traceIn , traceOut , defaultColor , layout ) {
18
18
function coerce ( attr , dflt ) {
19
19
return Lib . coerce ( traceIn , traceOut , attributes , attr , dflt ) ;
20
20
}
21
21
22
+ handleSampleDefaults ( traceIn , traceOut , coerce , layout ) ;
23
+ if ( traceOut . visible === false ) return ;
24
+
25
+ coerce ( 'line.color' , ( traceIn . marker || { } ) . color || defaultColor ) ;
26
+ coerce ( 'line.width' ) ;
27
+ coerce ( 'fillcolor' , Color . addOpacity ( traceOut . line . color , 0.5 ) ) ;
28
+
29
+ coerce ( 'whiskerwidth' ) ;
30
+ coerce ( 'boxmean' ) ;
31
+
32
+ handlePointsDefaults ( traceIn , traceOut , coerce , { prefix : 'box' } ) ;
33
+ }
34
+
35
+ function handleSampleDefaults ( traceIn , traceOut , coerce , layout ) {
22
36
var y = coerce ( 'y' ) ;
23
37
var x = coerce ( 'x' ) ;
24
38
@@ -39,25 +53,22 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
39
53
handleCalendarDefaults ( traceIn , traceOut , [ 'x' , 'y' ] , layout ) ;
40
54
41
55
coerce ( 'orientation' , defaultOrientation ) ;
56
+ }
42
57
43
- coerce ( 'line.color' , ( traceIn . marker || { } ) . color || defaultColor ) ;
44
- coerce ( 'line.width' ) ;
45
- coerce ( 'fillcolor' , Color . addOpacity ( traceOut . line . color , 0.5 ) ) ;
46
-
47
- coerce ( 'whiskerwidth' ) ;
48
- coerce ( 'boxmean' ) ;
58
+ function handlePointsDefaults ( traceIn , traceOut , coerce , opts ) {
59
+ var prefix = opts . prefix ;
49
60
50
61
var outlierColorDflt = Lib . coerce2 ( traceIn , traceOut , attributes , 'marker.outliercolor' ) ;
51
62
var lineoutliercolor = coerce ( 'marker.line.outliercolor' ) ;
52
63
53
- var boxpoints = coerce (
54
- 'boxpoints ',
64
+ var points = coerce (
65
+ prefix + 'points ',
55
66
( outlierColorDflt || lineoutliercolor ) ? 'suspectedoutliers' : undefined
56
67
) ;
57
68
58
- if ( boxpoints ) {
59
- coerce ( 'jitter' , boxpoints === 'all' ? 0.3 : 0 ) ;
60
- coerce ( 'pointpos' , boxpoints === 'all' ? - 1.5 : 0 ) ;
69
+ if ( points ) {
70
+ coerce ( 'jitter' , points === 'all' ? 0.3 : 0 ) ;
71
+ coerce ( 'pointpos' , points === 'all' ? - 1.5 : 0 ) ;
61
72
62
73
coerce ( 'marker.symbol' ) ;
63
74
coerce ( 'marker.opacity' ) ;
@@ -66,7 +77,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
66
77
coerce ( 'marker.line.color' ) ;
67
78
coerce ( 'marker.line.width' ) ;
68
79
69
- if ( boxpoints === 'suspectedoutliers' ) {
80
+ if ( points === 'suspectedoutliers' ) {
70
81
coerce ( 'marker.line.outliercolor' , traceOut . marker . color ) ;
71
82
coerce ( 'marker.line.outlierwidth' ) ;
72
83
}
@@ -77,4 +88,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
77
88
}
78
89
79
90
coerce ( 'hoveron' ) ;
91
+ }
92
+
93
+ module . exports = {
94
+ supplyDefaults : supplyDefaults ,
95
+ handleSampleDefaults : handleSampleDefaults ,
96
+ handlePointsDefaults : handlePointsDefaults
80
97
} ;
0 commit comments