@@ -5,7 +5,7 @@ import { Series, Points } from './chart-series';
55import { DoubleRange } from '../utils/double-range' ;
66import { ColumnBase } from './column-base' ;
77import { IPointRenderEventArgs } from '../../chart/model/chart-interface' ;
8- import { animationMode } from '@syncfusion/ej2-base' ;
8+ import { animationMode , isNullOrUndefined } from '@syncfusion/ej2-base' ;
99
1010/**
1111 * The `WaterfallSeries` module is used to render the waterfall series.
@@ -214,8 +214,10 @@ export class WaterfallSeries extends ColumnBase {
214214 */
215215 public processInternalData ( json : Object [ ] , series : Series ) : Object [ ] {
216216 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 ;
219221 let cumulativeSum : number = 0 ;
220222 for ( let i : number = 0 ; i < data . length ; i ++ ) {
221223 cumulativeSum += data [ i as number ] [ series . yName ] !== undefined ? data [ i as number ] [ series . yName ] : 0 ;
@@ -241,15 +243,16 @@ export class WaterfallSeries extends ColumnBase {
241243 for ( let j : number = 0 ; j < data . length ; j ++ ) {
242244 if ( j === sumIndex [ k as number ] ) {
243245 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 ] ) {
245248 index = subArraySum ( data , intermediateSum . length <= 1 ? intermediateSum [ 0 ] - 1 :
246249 intermediateSum [ k as number ] - 1 , sumIndex [ k as number ] , sumIndex , series ) ;
247250 intermediateSumCount += 1 ;
248251 } else {
249252 if ( k === 0 ) {
250253 index = subArraySum ( data , - 1 , sumIndex [ k as number ] , null , series ) ;
251254 } 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 ) ;
253256 }
254257 }
255258 sumValue += index ;
0 commit comments