@@ -12,7 +12,7 @@ function maybeIntervalValue(value, {interval}) {
1212
1313function maybeIntervalK ( k , maybeInsetK , options , trivial ) {
1414 const { [ k ] : v , [ `${ k } 1` ] : v1 , [ `${ k } 2` ] : v2 } = options ;
15- const { value, interval} = maybeIntervalValue ( v , options ) ;
15+ const { value, interval, scale } = maybeIntervalValue ( v , options ) ;
1616 if ( value == null || ( interval == null && ! trivial ) ) return options ;
1717 const label = labelof ( v ) ;
1818 if ( interval == null ) {
@@ -33,31 +33,37 @@ function maybeIntervalK(k, maybeInsetK, options, trivial) {
3333 return maybeInsetK ( {
3434 ...options ,
3535 [ k ] : undefined ,
36- [ `${ k } 1` ] : v1 === undefined ? { transform, label} : v1 ,
37- [ `${ k } 2` ] : v2 === undefined ? { transform : ( data ) => transform ( data ) . map ( ( v ) => interval . offset ( v ) ) , label} : v2
36+ [ `${ k } 1` ] : v1 === undefined ? { value : { transform, label} , scale} : v1 ,
37+ [ `${ k } 2` ] :
38+ v2 === undefined
39+ ? { value : { transform : ( data ) => transform ( data ) . map ( ( v ) => interval . offset ( v ) ) , label} , scale}
40+ : v2
3841 } ) ;
3942}
4043
4144function maybeIntervalMidK ( k , maybeInsetK , options ) {
4245 const { [ k ] : v } = options ;
43- const { value, interval} = maybeIntervalValue ( v , options ) ;
46+ const { value, interval, scale } = maybeIntervalValue ( v , options ) ;
4447 if ( value == null || interval == null ) return options ;
4548 return maybeInsetK ( {
4649 ...options ,
4750 [ k ] : {
48- label : labelof ( v ) ,
49- transform : ( data ) => {
50- const V1 = map ( valueof ( data , value ) , ( v ) => interval . floor ( v ) ) ;
51- const V2 = V1 . map ( ( v ) => interval . offset ( v ) ) ;
52- return V1 . map (
53- isTemporal ( V1 )
54- ? ( v1 , v2 ) =>
55- v1 == null || isNaN ( ( v1 = + v1 ) ) || ( ( v2 = V2 [ v2 ] ) , v2 == null ) || isNaN ( ( v2 = + v2 ) )
56- ? undefined
57- : new Date ( ( v1 + v2 ) / 2 )
58- : ( v1 , v2 ) => ( v1 == null || ( ( v2 = V2 [ v2 ] ) , v2 == null ) ? NaN : ( + v1 + + v2 ) / 2 )
59- ) ;
60- }
51+ value : {
52+ label : labelof ( v ) ,
53+ transform : ( data ) => {
54+ const V1 = map ( valueof ( data , value ) , ( v ) => interval . floor ( v ) ) ;
55+ const V2 = V1 . map ( ( v ) => interval . offset ( v ) ) ;
56+ return V1 . map (
57+ isTemporal ( V1 )
58+ ? ( v1 , v2 ) =>
59+ v1 == null || isNaN ( ( v1 = + v1 ) ) || ( ( v2 = V2 [ v2 ] ) , v2 == null ) || isNaN ( ( v2 = + v2 ) )
60+ ? undefined
61+ : new Date ( ( v1 + v2 ) / 2 )
62+ : ( v1 , v2 ) => ( v1 == null || ( ( v2 = V2 [ v2 ] ) , v2 == null ) ? NaN : ( + v1 + + v2 ) / 2 )
63+ ) ;
64+ }
65+ } ,
66+ scale
6167 }
6268 } ) ;
6369}
0 commit comments