@@ -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