11
11
var cleanTicks = require ( './clean_ticks' ) ;
12
12
13
13
module . exports = function handleTickValueDefaults ( containerIn , containerOut , coerce , axType ) {
14
+ function readInput ( attr ) {
15
+ var v = containerIn [ attr ] ;
16
+ return (
17
+ v !== undefined
18
+ ) ? v : ( containerOut . _template || { } ) [ attr ] ;
19
+ }
20
+
21
+ var _tick0 = readInput ( 'tick0' ) ;
22
+ var _dtick = readInput ( 'dtick' ) ;
23
+ var _tickvals = readInput ( 'tickvals' ) ;
24
+ var _tickmode = readInput ( 'tickmode' ) ;
14
25
var tickmode ;
15
26
16
- if ( containerIn . tickmode === 'array' &&
27
+ if ( _tickmode === 'array' &&
17
28
( axType === 'log' || axType === 'date' ) ) {
18
29
tickmode = containerOut . tickmode = 'auto' ;
19
30
} else {
20
- var tickmodeDefault = Array . isArray ( containerIn . tickvals ) ? 'array' :
21
- containerIn . dtick ? 'linear' :
31
+ var tickmodeDefault = Array . isArray ( _tickvals ) ? 'array' :
32
+ _dtick ? 'linear' :
22
33
'auto' ;
23
34
tickmode = coerce ( 'tickmode' , tickmodeDefault ) ;
24
35
}
@@ -29,9 +40,9 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe
29
40
// special strings available for log or date axes
30
41
// tick0 also has special logic
31
42
var dtick = containerOut . dtick = cleanTicks . dtick (
32
- containerIn . dtick , axType ) ;
43
+ _dtick , axType ) ;
33
44
containerOut . tick0 = cleanTicks . tick0 (
34
- containerIn . tick0 , axType , containerOut . calendar , dtick ) ;
45
+ _tick0 , axType , containerOut . calendar , dtick ) ;
35
46
} else if ( axType !== 'multicategory' ) {
36
47
var tickvals = coerce ( 'tickvals' ) ;
37
48
if ( tickvals === undefined ) containerOut . tickmode = 'auto' ;
0 commit comments