@@ -43,28 +43,35 @@ ChartInternal.prototype.getShapeOffset = function (typeFilter, indices, isSub) {
43
43
var scale = isSub ? $$ . getSubYScale ( d . id ) : $$ . getYScale ( d . id ) ,
44
44
y0 = scale ( 0 ) , offset = y0 ;
45
45
targets . forEach ( function ( t ) {
46
+ // skip if not part of offset (part1)
47
+ if ( t . id === d . id || indices [ t . id ] !== indices [ d . id ] ) {
48
+ return ;
49
+ }
50
+
51
+ // skip if not part of offset (part 2)
52
+ if ( targetIds . indexOf ( t . id ) >= targetIds . indexOf ( d . id ) ) {
53
+ return ;
54
+ }
55
+
46
56
const rowValues = $$ . isStepType ( d ) ? $$ . convertValuesToStep ( t . values ) : t . values ;
47
57
const isTargetNormalized = $$ . isTargetNormalized ( d . id ) ;
48
58
const values = rowValues . map ( v => ( isTargetNormalized ? $$ . getRatio ( "index" , v , true ) : v . value ) ) ;
49
59
50
- if ( t . id === d . id || indices [ t . id ] !== indices [ d . id ] ) { return ; }
51
- if ( targetIds . indexOf ( t . id ) < targetIds . indexOf ( d . id ) ) {
52
- // check if the x values line up
53
- if ( isUndefined ( rowValues [ i ] ) || + rowValues [ i ] . x !== + d . x ) { // "+" for timeseries
54
- // if not, try to find the value that does line up
55
- i = - 1 ;
56
- rowValues . forEach ( function ( v , j ) {
57
- const x1 = v . x . constructor === Date ? + v . x : v . x ;
58
- const x2 = d . x . constructor === Date ? + d . x : d . x ;
60
+ // check if the x values line up
61
+ if ( isUndefined ( rowValues [ i ] ) || + rowValues [ i ] . x !== + d . x ) { // "+" for timeseries
62
+ // if not, try to find the value that does line up
63
+ i = - 1 ;
64
+ rowValues . forEach ( function ( v , j ) {
65
+ const x1 = v . x . constructor === Date ? + v . x : v . x ;
66
+ const x2 = d . x . constructor === Date ? + d . x : d . x ;
59
67
60
- if ( x1 === x2 ) {
61
- i = j ;
62
- }
63
- } ) ;
64
- }
65
- if ( i in rowValues && rowValues [ i ] . value * d . value >= 0 ) {
66
- offset += scale ( values [ i ] ) - y0 ;
67
- }
68
+ if ( x1 === x2 ) {
69
+ i = j ;
70
+ }
71
+ } ) ;
72
+ }
73
+ if ( i in rowValues && rowValues [ i ] . value * d . value >= 0 ) {
74
+ offset += scale ( values [ i ] ) - y0 ;
68
75
}
69
76
} ) ;
70
77
return offset ;
0 commit comments