@@ -451,9 +451,13 @@ export class CdkTree<T, K = T>
451451 } else if ( currentIndex == null ) {
452452 viewContainer . remove ( adjustedPreviousIndex ! ) ;
453453 const group = this . _getNodeGroup ( item . item ) ;
454- this . _levels . delete ( this . _getExpansionKey ( item . item ) ) ;
455- this . _parents . delete ( this . _getExpansionKey ( item . item ) ) ;
456- group . splice ( group . indexOf ( item . item ) , 1 ) ;
454+ const key = this . _getExpansionKey ( item . item ) ;
455+ this . _levels . delete ( key ) ;
456+ this . _parents . delete ( key ) ;
457+ group . splice (
458+ group . findIndex ( groupItem => this . _getExpansionKey ( groupItem ) === key ) ,
459+ 1 ,
460+ ) ;
457461 } else {
458462 const view = viewContainer . get ( adjustedPreviousIndex ! ) ;
459463 viewContainer . move ( view ! , currentIndex ) ;
@@ -690,7 +694,8 @@ export class CdkTree<T, K = T>
690694 if ( ! expanded ) {
691695 return [ ] ;
692696 }
693- const startIndex = flattenedNodes . indexOf ( dataNode ) ;
697+ const key = this . _getExpansionKey ( dataNode ) ;
698+ const startIndex = flattenedNodes . findIndex ( node => this . _getExpansionKey ( node ) === key ) ;
694699 const level = levelAccessor ( dataNode ) + 1 ;
695700 const results : T [ ] = [ ] ;
696701
@@ -762,7 +767,8 @@ export class CdkTree<T, K = T>
762767 */
763768 _getPositionInSet ( dataNode : T ) {
764769 const group = this . _getNodeGroup ( dataNode ) ;
765- return group . indexOf ( dataNode ) + 1 ;
770+ const key = this . _getExpansionKey ( dataNode ) ;
771+ return group . findIndex ( node => this . _getExpansionKey ( node ) === key ) + 1 ;
766772 }
767773
768774 /** Given a CdkTreeNode, gets the node that renders that node's parent's data. */
@@ -805,7 +811,10 @@ export class CdkTree<T, K = T>
805811 return observableOf ( this . treeControl . getDescendants ( dataNode ) ) ;
806812 }
807813 if ( this . levelAccessor ) {
808- const startIndex = this . _flattenedNodes . value . indexOf ( dataNode ) ;
814+ const key = this . _getExpansionKey ( dataNode ) ;
815+ const startIndex = this . _flattenedNodes . value . findIndex (
816+ node => this . _getExpansionKey ( node ) === key ,
817+ ) ;
809818 const results : T [ ] = [ ] ;
810819
811820 // Goes through flattened tree nodes in the `dataNodes` array, and get all descendants.
0 commit comments