@@ -5,7 +5,7 @@ import { Series, Points } from './chart-series';
5
5
import { DoubleRange } from '../utils/double-range' ;
6
6
import { ColumnBase } from './column-base' ;
7
7
import { IPointRenderEventArgs } from '../../chart/model/chart-interface' ;
8
- import { animationMode } from '@syncfusion/ej2-base' ;
8
+ import { animationMode , isNullOrUndefined } from '@syncfusion/ej2-base' ;
9
9
10
10
/**
11
11
* The `WaterfallSeries` module is used to render the waterfall series.
@@ -214,8 +214,10 @@ export class WaterfallSeries extends ColumnBase {
214
214
*/
215
215
public processInternalData ( json : Object [ ] , series : Series ) : Object [ ] {
216
216
const data : Object [ ] = json ; let index : number ; let sumValue : number = 0 ;
217
- const intermediateSum : number [ ] = series . intermediateSumIndexes ;
218
- const sumIndex : number [ ] = series . sumIndexes ;
217
+ const intermediateSum : number [ ] = ( ! isNullOrUndefined ( series . intermediateSumIndexes ) && series . intermediateSumIndexes . length > 0 ) ?
218
+ series . intermediateSumIndexes . sort ( ) : series . intermediateSumIndexes ;
219
+ const sumIndex : number [ ] = ( ! isNullOrUndefined ( series . sumIndexes ) && series . sumIndexes . length > 0 ) ? series . sumIndexes . sort ( ) :
220
+ series . sumIndexes ;
219
221
let cumulativeSum : number = 0 ;
220
222
for ( let i : number = 0 ; i < data . length ; i ++ ) {
221
223
cumulativeSum += data [ i as number ] [ series . yName ] !== undefined ? data [ i as number ] [ series . yName ] : 0 ;
@@ -241,15 +243,16 @@ export class WaterfallSeries extends ColumnBase {
241
243
for ( let j : number = 0 ; j < data . length ; j ++ ) {
242
244
if ( j === sumIndex [ k as number ] ) {
243
245
if ( intermediateSum !== undefined && intermediateSum . length > intermediateSumCount &&
244
- intermediateSum [ k as number ] !== sumIndex [ k as number ] ) {
246
+ intermediateSum [ k as number ] !== sumIndex [ k as number ] && intermediateSum [ k as number ] <
247
+ sumIndex [ k as number ] ) {
245
248
index = subArraySum ( data , intermediateSum . length <= 1 ? intermediateSum [ 0 ] - 1 :
246
249
intermediateSum [ k as number ] - 1 , sumIndex [ k as number ] , sumIndex , series ) ;
247
250
intermediateSumCount += 1 ;
248
251
} else {
249
252
if ( k === 0 ) {
250
253
index = subArraySum ( data , - 1 , sumIndex [ k as number ] , null , series ) ;
251
254
} else {
252
- index = subArraySum ( data , sumIndex [ k - 1 ] , sumIndex [ k as number ] , null , series ) ;
255
+ index = subArraySum ( data , sumIndex [ k as number - 1 ] , sumIndex [ k as number ] , null , series ) ;
253
256
}
254
257
}
255
258
sumValue += index ;
0 commit comments