1111var cleanTicks = require ( './clean_ticks' ) ;
1212
1313module . 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' ) ;
1425 var tickmode ;
1526
16- if ( containerIn . tickmode === 'array' &&
27+ if ( _tickmode === 'array' &&
1728 ( axType === 'log' || axType === 'date' ) ) {
1829 tickmode = containerOut . tickmode = 'auto' ;
1930 } else {
20- var tickmodeDefault = Array . isArray ( containerIn . tickvals ) ? 'array' :
21- containerIn . dtick ? 'linear' :
31+ var tickmodeDefault = Array . isArray ( _tickvals ) ? 'array' :
32+ _dtick ? 'linear' :
2233 'auto' ;
2334 tickmode = coerce ( 'tickmode' , tickmodeDefault ) ;
2435 }
@@ -29,9 +40,9 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe
2940 // special strings available for log or date axes
3041 // tick0 also has special logic
3142 var dtick = containerOut . dtick = cleanTicks . dtick (
32- containerIn . dtick , axType ) ;
43+ _dtick , axType ) ;
3344 containerOut . tick0 = cleanTicks . tick0 (
34- containerIn . tick0 , axType , containerOut . calendar , dtick ) ;
45+ _tick0 , axType , containerOut . calendar , dtick ) ;
3546 } else if ( axType !== 'multicategory' ) {
3647 var tickvals = coerce ( 'tickvals' ) ;
3748 if ( tickvals === undefined ) containerOut . tickmode = 'auto' ;
0 commit comments