@@ -675,6 +675,8 @@ export class IgxHierarchicalGridNavigationService extends IgxGridNavigationServi
675675 }
676676
677677 private focusNextRow ( elem , visibleColumnIndex , grid , isSummary ?) {
678+ const lastCellIndex = grid . unpinnedColumns [ grid . unpinnedColumns . length - 1 ] . visibleIndex ;
679+ visibleColumnIndex = Math . min ( lastCellIndex , visibleColumnIndex ) ;
678680 const cellSelector = this . getCellSelector ( visibleColumnIndex , isSummary ) ;
679681 if ( grid . navigation . isColumnFullyVisible ( visibleColumnIndex ) || grid . rowList . length === 0 ) {
680682 const cell =
@@ -694,13 +696,21 @@ export class IgxHierarchicalGridNavigationService extends IgxGridNavigationServi
694696 cell . focus ( { preventScroll : true } ) ;
695697 }
696698 } else {
697- const cellElem = elem . querySelector ( ` ${ cellSelector } ` ) ;
698- const rowIndex = parseInt ( cellElem . getAttribute ( 'data-rowindex' ) , 10 ) ;
699- grid . navigation . performHorizontalScrollToCell ( rowIndex , visibleColumnIndex ) ;
699+ this . horizontalScrollGridToIndex ( grid , visibleColumnIndex , ( ) => {
700+ this . focusNextRow ( elem , visibleColumnIndex , grid , isSummary ) ;
701+ } ) ;
700702 }
701703 }
704+ public getColumnUnpinnedIndex ( visibleColumnIndex : number , grid ?: IgxHierarchicalGridComponent ) {
705+ const currGrid = grid || this . grid ;
706+ const column = currGrid . unpinnedColumns . find ( ( col ) => ! col . columnGroup && col . visibleIndex === visibleColumnIndex ) ;
707+ return currGrid . pinnedColumns . length ? currGrid . unpinnedColumns . filter ( ( c ) => ! c . columnGroup ) . indexOf ( column ) :
708+ visibleColumnIndex ;
709+ }
702710
703711 private focusPrevRow ( elem , visibleColumnIndex , grid , inChild ?, isSummary ?) {
712+ const lastCellIndex = grid . unpinnedColumns [ grid . unpinnedColumns . length - 1 ] . visibleIndex ;
713+ visibleColumnIndex = Math . min ( lastCellIndex , visibleColumnIndex ) ;
704714 if ( grid . navigation . isColumnFullyVisible ( visibleColumnIndex ) ) {
705715 const cellSelector = this . getCellSelector ( visibleColumnIndex , isSummary ) ;
706716 const cells = elem . querySelectorAll ( `${ cellSelector } [data-visibleIndex="${ visibleColumnIndex } "]` ) ;
@@ -735,7 +745,7 @@ export class IgxHierarchicalGridNavigationService extends IgxGridNavigationServi
735745 }
736746
737747 private horizontalScrollGridToIndex ( grid , visibleColumnIndex , callBackFunc ) {
738- const unpinnedIndex = this . getColumnUnpinnedIndex ( visibleColumnIndex ) ;
748+ const unpinnedIndex = this . getColumnUnpinnedIndex ( visibleColumnIndex , grid ) ;
739749 grid . parentVirtDir . onChunkLoad
740750 . pipe ( first ( ) )
741751 . subscribe ( callBackFunc ) ;
0 commit comments