@@ -33,7 +33,7 @@ import {
3333 ViewContainerRef ,
3434 DOCUMENT
3535} from '@angular/core' ;
36- import { columnFieldPath , formatDate , resizeObservable } from '../core/utils' ;
36+ import { areEqualArrays , columnFieldPath , formatDate , resizeObservable } from '../core/utils' ;
3737import { IgcTrialWatermark } from 'igniteui-trial-watermark' ;
3838import { Subject , pipe , fromEvent , animationFrameScheduler , merge } from 'rxjs' ;
3939import { takeUntil , first , filter , throttleTime , map , shareReplay , takeWhile } from 'rxjs/operators' ;
@@ -3358,6 +3358,7 @@ export abstract class IgxGridBaseDirective implements GridType,
33583358 private _defaultRowHeight = 50 ;
33593359 private _rowCount : number ;
33603360 private _cellMergeMode : GridCellMergeMode = GridCellMergeMode . onSort ;
3361+ private _prevVisibleColumns : IgxColumnComponent [ ] = [ ] ;
33613362
33623363 /**
33633364 * @hidden @internal
@@ -4733,7 +4734,12 @@ export abstract class IgxGridBaseDirective implements GridType,
47334734 if ( this . _visibleColumns . length ) {
47344735 return this . _visibleColumns ;
47354736 }
4736- this . _visibleColumns = this . _columns . filter ( c => ! c . hidden ) ;
4737+ const newCollection = this . _columns . filter ( c => ! c . hidden ) ;
4738+ if ( areEqualArrays ( newCollection , this . _prevVisibleColumns ) ) {
4739+ return this . _prevVisibleColumns ;
4740+ }
4741+ this . _visibleColumns = newCollection ;
4742+ this . _prevVisibleColumns = [ ...this . _visibleColumns ] ;
47374743 return this . _visibleColumns ;
47384744 }
47394745
0 commit comments