@@ -21,6 +21,8 @@ var handleCategoryOrderDefaults = require('./category_order_defaults');
21
21
var handleLineGridDefaults = require ( './line_grid_defaults' ) ;
22
22
var setConvert = require ( './set_convert' ) ;
23
23
24
+ var DAY_OF_WEEK = require ( './constants' ) . WEEKDAY_PATTERN ;
25
+
24
26
/**
25
27
* options: object containing:
26
28
*
@@ -161,6 +163,27 @@ function rangebreaksDefaults(itemIn, itemOut, containerOut) {
161
163
itemOut . bounds = itemOut . bounds . slice ( 0 , 2 ) ;
162
164
}
163
165
166
+ var dfltPattern = '' ;
167
+ var i , q ;
168
+ for ( i = 0 ; i < bnds . length ; i ++ ) {
169
+ q = indexOfDay ( bnds [ i ] ) ;
170
+ if ( q !== - 1 ) {
171
+ dfltPattern = DAY_OF_WEEK ;
172
+ break ;
173
+ }
174
+ }
175
+ var pattern = coerce ( 'pattern' , dfltPattern ) ;
176
+
177
+ if ( pattern === DAY_OF_WEEK ) {
178
+ for ( i = 0 ; i < bnds . length ; i ++ ) {
179
+ q = indexOfDay ( bnds [ i ] ) ;
180
+ if ( q !== - 1 ) {
181
+ // convert to integers i.e 'Monday' --> 1
182
+ itemOut . bounds [ i ] = bnds [ i ] = q ;
183
+ }
184
+ }
185
+ }
186
+
164
187
if ( containerOut . autorange === false ) {
165
188
var rng = containerOut . range ;
166
189
@@ -175,8 +198,6 @@ function rangebreaksDefaults(itemIn, itemOut, containerOut) {
175
198
return ;
176
199
}
177
200
}
178
-
179
- coerce ( 'pattern' ) ;
180
201
} else {
181
202
var values = coerce ( 'values' ) ;
182
203
@@ -189,3 +210,18 @@ function rangebreaksDefaults(itemIn, itemOut, containerOut) {
189
210
}
190
211
}
191
212
}
213
+
214
+ var weekSTR = [
215
+ 'sun' ,
216
+ 'mon' ,
217
+ 'tue' ,
218
+ 'wed' ,
219
+ 'thu' ,
220
+ 'fri' ,
221
+ 'sat'
222
+ ] ;
223
+
224
+ function indexOfDay ( v ) {
225
+ var str = String ( v ) . substr ( 0 , 3 ) . toLowerCase ( ) ;
226
+ return weekSTR . indexOf ( str ) ;
227
+ }
0 commit comments