Skip to content

Commit eee0128

Browse files
committed
fix(cdk/tree): fix build errors
1 parent 541b6e3 commit eee0128

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

src/cdk/tree/tree.ts

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export class CdkTree<T, K = T> implements AfterContentChecked, CollectionViewer,
9494
private _dataSubscription: Subscription | null;
9595

9696
/** Level of nodes */
97-
private _levels: Map<T, number> = new Map<T, number>();
97+
private _levels: Map<K, number> = new Map<K, number>();
9898

9999
/** The mapping between data nodes and the parent node. `null` if no parent. */
100100
private _parents: Map<K, T | null> = new Map<K, T | null>();
@@ -351,8 +351,8 @@ export class CdkTree<T, K = T> implements AfterContentChecked, CollectionViewer,
351351
} else if (currentIndex == null) {
352352
viewContainer.remove(adjustedPreviousIndex!);
353353
const group = this._getNodeGroup(item.item);
354-
this._levels.delete(item.item);
355-
this._parents.delete(item.item);
354+
this._levels.delete(this._trackExpansionKey(item.item));
355+
this._parents.delete(this._trackExpansionKey(item.item));
356356
group.splice(group.indexOf(item.item), 1);
357357
} else {
358358
const view = viewContainer.get(adjustedPreviousIndex!);
@@ -401,21 +401,24 @@ export class CdkTree<T, K = T> implements AfterContentChecked, CollectionViewer,
401401
const levelAccessor = this._getLevelAccessor();
402402
if (levelAccessor) {
403403
context.level = levelAccessor(nodeData);
404-
} else if (typeof parentData !== 'undefined' && this._levels.has(parentData)) {
405-
context.level = this._levels.get(parentData)! + 1;
404+
} else if (
405+
typeof parentData !== 'undefined' &&
406+
this._levels.has(this._trackExpansionKey(parentData))
407+
) {
408+
context.level = this._levels.get(this._trackExpansionKey(parentData))! + 1;
406409
} else {
407410
context.level = 0;
408411
}
409-
this._levels.set(nodeData, context.level);
412+
this._levels.set(this._trackExpansionKey(nodeData), context.level);
410413
const parent = parentData ?? this._findParentForNode(nodeData, index);
411-
this._parents.set(nodeData, parent);
414+
this._parents.set(this._trackExpansionKey(nodeData), parent);
412415

413416
// Determine where to insert this new node into the group, then insert it.
414417
// We do this by looking at the previous node in our flattened node list. If it's in the same
415418
// group, we place the current node after. Otherwise, we place it at the start of the group.
416419
const currentGroup = this._groups.get(context.level) ?? new Map<T | null, T[]>();
417420
const group = currentGroup.get(parent) ?? [];
418-
const previousNode = this._dataNodes?.[index - 1];
421+
const previousNode = this._dataNodes.value?.[index - 1];
419422
const groupInsertionIndex = (previousNode && group.indexOf(previousNode) + 1) ?? 0;
420423
group.splice(groupInsertionIndex, 0, nodeData);
421424
currentGroup.set(parent, group);
@@ -624,13 +627,13 @@ export class CdkTree<T, K = T> implements AfterContentChecked, CollectionViewer,
624627
this._nodes.next(this._nodes.value);
625628
}
626629

630+
/**
631+
* For the given node, determine the level where this node appears in the tree.
632+
*
633+
* This is intended to be used for `aria-level` but is 0-indexed.
634+
*/
627635
_getLevel(node: T) {
628-
return this._levels.get(node);
629-
}
630-
631-
_getPositionInSet(dataNode: T) {
632-
const group = this._getNodeGroup(dataNode);
633-
return group.indexOf(dataNode) + 1;
636+
return this._levels.get(this._trackExpansionKey(node));
634637
}
635638

636639
/**
@@ -797,8 +800,8 @@ export class CdkTree<T, K = T> implements AfterContentChecked, CollectionViewer,
797800
}
798801

799802
private _getNodeGroup(node: T) {
800-
const level = this._levels.get(node);
801-
const parent = this._parents.get(node);
803+
const level = this._levels.get(this._trackExpansionKey(node));
804+
const parent = this._parents.get(this._trackExpansionKey(node));
802805
const group = this._groups.get(level ?? 0)?.get(parent ?? null);
803806
return group ?? [node];
804807
}
@@ -810,10 +813,10 @@ export class CdkTree<T, K = T> implements AfterContentChecked, CollectionViewer,
810813
if (!this._dataNodes) {
811814
return null;
812815
}
813-
const currentLevel = this._levels.get(node) ?? 0;
816+
const currentLevel = this._levels.get(this._trackExpansionKey(node)) ?? 0;
814817
for (let parentIndex = index; parentIndex >= 0; parentIndex--) {
815-
const parentNode = this._dataNodes[parentIndex];
816-
const parentLevel = this._levels.get(parentNode) ?? 0;
818+
const parentNode = this._dataNodes.value[parentIndex];
819+
const parentLevel = this._levels.get(this._trackExpansionKey(parentNode)) ?? 0;
817820

818821
if (parentLevel < currentLevel) {
819822
return parentNode;

0 commit comments

Comments
 (0)