@@ -73,16 +73,16 @@ export default function buildAxisLinear<TDatum>(
7373 // Give the scale a home
7474 return options . scaleType === 'time' || options . scaleType === 'localTime'
7575 ? buildTimeAxis (
76- isPrimary ,
77- options ,
78- series ,
79- allDatums ,
80- isVertical ,
81- range ,
82- outerRange
83- )
76+ isPrimary ,
77+ options ,
78+ series ,
79+ allDatums ,
80+ isVertical ,
81+ range ,
82+ outerRange
83+ )
8484 : options . scaleType === 'linear' || options . scaleType === 'log'
85- ? buildLinearAxis (
85+ ? buildLinearAxis (
8686 isPrimary ,
8787 options ,
8888 series ,
@@ -91,11 +91,11 @@ export default function buildAxisLinear<TDatum>(
9191 range ,
9292 outerRange
9393 )
94- : options . scaleType === 'band'
95- ? buildBandAxis ( isPrimary , options , series , isVertical , range , outerRange )
96- : ( ( ) => {
97- throw new Error ( 'Invalid scale type' )
98- } ) ( )
94+ : options . scaleType === 'band'
95+ ? buildBandAxis ( isPrimary , options , series , isVertical , range , outerRange )
96+ : ( ( ) => {
97+ throw new Error ( 'Invalid scale type' )
98+ } ) ( )
9999}
100100
101101function buildTimeAxis < TDatum > (
@@ -111,6 +111,11 @@ function buildTimeAxis<TDatum>(
111111
112112 let isInvalid = false
113113
114+ series = isPrimary ? series : series
115+ . filter ( s => s . secondaryAxisId === options . id )
116+
117+ allDatums = isPrimary ? allDatums : allDatums . filter ( d => d . secondaryAxisId === options . id )
118+
114119 // Now set the range
115120 const scale = scaleFn ( range )
116121
@@ -144,7 +149,7 @@ function buildTimeAxis<TDatum>(
144149 }
145150
146151 if ( minValue === undefined || maxValue === undefined ) {
147- console . info ( 'Invalid scale min/max was detect for a chart: ' , {
152+ console . info ( 'Invalid scale min/max' , {
148153 options,
149154 series,
150155 range,
@@ -242,28 +247,32 @@ function buildLinearAxis<TDatum>(
242247
243248 let isInvalid = false
244249
250+ series = isPrimary ? series : series
251+ . filter ( s => s . secondaryAxisId === options . id )
252+
253+ allDatums = isPrimary ? allDatums : allDatums . filter ( d => d . secondaryAxisId === options . id )
254+
245255 if ( options . stacked ) {
246256 stackSeries ( series , options )
247257 }
248258
249259 let [ minValue , maxValue ] = options . stacked
250260 ? extent (
251- series
252- . map ( s =>
253- s . datums . map ( datum => {
254- const value = options . getValue ( datum . originalDatum )
255- datum [ isPrimary ? 'primaryValue' : 'secondaryValue' ] = value
256-
257- return datum . stackData ?? [ ]
258- } )
259- )
260- . flat ( 2 ) as unknown as number [ ]
261- )
261+ series
262+ . map ( s =>
263+ s . datums . map ( datum => {
264+ const value = options . getValue ( datum . originalDatum )
265+ datum [ isPrimary ? 'primaryValue' : 'secondaryValue' ] = value
266+ return datum . stackData ?? [ ]
267+ } )
268+ )
269+ . flat ( 2 ) as unknown as number [ ]
270+ )
262271 : extent ( allDatums , datum => {
263- const value = options . getValue ( datum . originalDatum )
264- datum [ isPrimary ? 'primaryValue' : 'secondaryValue' ] = value
265- return value
266- } )
272+ const value = options . getValue ( datum . originalDatum )
273+ datum [ isPrimary ? 'primaryValue' : 'secondaryValue' ] = value
274+ return value
275+ } )
267276
268277 let shouldNice = options . shouldNice
269278
@@ -310,7 +319,7 @@ function buildLinearAxis<TDatum>(
310319 } )
311320 minValue = minValue ?? 0
312321 maxValue = maxValue ?? 0
313- // throw new Error('Invalid scale min/max')
322+ // throw new Error('Invalid scale min/max'
314323 }
315324
316325 // Set the domain
@@ -465,13 +474,12 @@ function stackSeries<TDatum>(
465474 series : Series < TDatum > [ ] ,
466475 axisOptions : AxisOptions < TDatum >
467476) {
468- const axisSeries = series . filter ( s => s . secondaryAxisId === axisOptions . id )
469- const seriesIndices = Object . keys ( axisSeries )
477+ const seriesIndices = Object . keys ( series )
470478 const stacker = stack ( )
471479 . keys ( seriesIndices )
472480 . value ( ( _ , seriesIndex , index ) => {
473481 const originalDatum =
474- axisSeries [ Number ( seriesIndex ) ] ?. datums [ index ] ?. originalDatum
482+ series [ Number ( seriesIndex ) ] ?. datums [ index ] ?. originalDatum
475483
476484 const val =
477485 typeof originalDatum !== 'undefined'
@@ -488,7 +496,7 @@ function stackSeries<TDatum>(
488496
489497 const stacked = stacker (
490498 Array . from ( {
491- length : axisSeries . sort ( ( a , b ) => b . datums . length - a . datums . length ) [ 0 ]
499+ length : series . sort ( ( a , b ) => b . datums . length - a . datums . length ) [ 0 ]
492500 . datums . length ,
493501 } )
494502 )
@@ -499,11 +507,11 @@ function stackSeries<TDatum>(
499507 for ( let i = 0 ; i < s . length ; i ++ ) {
500508 const datum = s [ i ]
501509
502- if ( axisSeries [ sIndex ] . datums [ i ] ) {
510+ if ( series [ sIndex ] . datums [ i ] ) {
503511 // @ts -ignore
504- datum . data = axisSeries [ sIndex ] . datums [ i ]
512+ datum . data = series [ sIndex ] . datums [ i ]
505513
506- axisSeries [ sIndex ] . datums [ i ] . stackData =
514+ series [ sIndex ] . datums [ i ] . stackData =
507515 datum as unknown as StackDatum < TDatum >
508516 }
509517 }
@@ -561,9 +569,7 @@ function buildSeriesBandScale<TDatum>(
561569 primaryBandScale : ScaleBand < number > ,
562570 series : Series < TDatum > [ ]
563571) {
564- const bandDomain = d3Range (
565- series . filter ( d => d . secondaryAxisId === options . id ) . length
566- )
572+ const bandDomain = d3Range ( series . length )
567573
568574 const seriesBandScale = scaleBand ( bandDomain , [
569575 0 ,
@@ -572,11 +578,11 @@ function buildSeriesBandScale<TDatum>(
572578 . round ( false )
573579 . paddingOuter (
574580 options . outerSeriesBandPadding ??
575- ( options . outerBandPadding ? options . outerBandPadding / 2 : 0 )
581+ ( options . outerBandPadding ? options . outerBandPadding / 2 : 0 )
576582 )
577583 . paddingInner (
578584 options . innerSeriesBandPadding ??
579- ( options . innerBandPadding ? options . innerBandPadding / 2 : 0 )
585+ ( options . innerBandPadding ? options . innerBandPadding / 2 : 0 )
580586 )
581587
582588 const scale = ( seriesIndex : number ) =>
0 commit comments