@@ -16,6 +16,25 @@ var constants = require('../../constants/numerical');
1616var EPOCHJD = constants . EPOCHJD ;
1717var ONEDAY = constants . ONEDAY ;
1818
19+ var attributes = {
20+ valType : 'enumerated' ,
21+ values : Object . keys ( calendars . calendars ) ,
22+ role : 'info' ,
23+ dflt : 'gregorian'
24+ } ;
25+
26+ var handleDefaults = function ( contIn , contOut , attr , dflt ) {
27+ var attrs = { } ;
28+ attrs [ attr ] = attributes ;
29+
30+ return Lib . coerce ( contIn , contOut , attrs , attr , dflt ) ;
31+ } ;
32+
33+ var handleTraceDefaults = function ( traceIn , traceOut , coords , layout ) {
34+ for ( var i = 0 ; i < coords . length ; i ++ ) {
35+ handleDefaults ( traceIn , traceOut , coords [ i ] + 'calendar' , layout . calendar ) ;
36+ }
37+ } ;
1938// each calendar needs its own default canonical tick. I would love to use
2039// 2000-01-01 (or even 0000-01-01) for them all but they don't necessarily
2140// all support either of those dates. Instead I'll use the most significant
@@ -149,6 +168,10 @@ module.exports = {
149168 moduleType : 'component' ,
150169 name : 'calendars' ,
151170
171+
172+ handleDefaults : handleDefaults ,
173+ handleTraceDefaults : handleTraceDefaults ,
174+
152175 CANONICAL_SUNDAY : CANONICAL_SUNDAY ,
153176 CANONICAL_TICK : CANONICAL_TICK ,
154177 DFLTRANGE : DFLTRANGE ,
0 commit comments