MCPcopy Index your code
hub / github.com/angular/components / insertNode

Method insertNode

src/cdk/tree/tree.ts:595–627  ·  view source on GitHub ↗

* Create the embedded view for the data node template and place it in the correct index location * within the data node view container.

(nodeData: T, index: number, viewContainer?: ViewContainerRef, parentData?: T)

Source from the content-addressed store, hash-verified

593 * within the data node view container.
594 */
595 insertNode(nodeData: T, index: number, viewContainer?: ViewContainerRef, parentData?: T) {
596 const levelAccessor = this._getLevelAccessor();
597
598 const node = this._getNodeDef(nodeData, index);
599 const key = this._getExpansionKey(nodeData);
600
601 // Node context that will be provided to created embedded view
602 const context = new CdkTreeNodeOutletContext<T>(nodeData);
603 context.index = index;
604
605 parentData ??= this._parents.get(key) ?? undefined;
606 // If the tree is flat tree, then use the `getLevel` function in flat tree control
607 // Otherwise, use the level of parent node.
608 if (levelAccessor) {
609 context.level = levelAccessor(nodeData);
610 } else if (parentData !== undefined && this._levels.has(this._getExpansionKey(parentData))) {
611 context.level = this._levels.get(this._getExpansionKey(parentData))! + 1;
612 } else {
613 context.level = 0;
614 }
615 this._levels.set(key, context.level);
616
617 // Use default tree nodeOutlet, or nested node's nodeOutlet
618 const container = viewContainer ? viewContainer : this._nodeOutlet.viewContainer;
619 container.createEmbeddedView(node.template, context, index);
620
621 // Set the data to just created `CdkTreeNode`.
622 // The `CdkTreeNode` created from `createEmbeddedView` will be saved in static variable
623 // `mostRecentTreeNode`. We get it from static variable and pass the node data to it.
624 if (CdkTreeNode.mostRecentTreeNode) {
625 CdkTreeNode.mostRecentTreeNode.data = nodeData;
626 }
627 }
628
629 /** Whether the data node is expanded or collapsed. Returns true if it's expanded. */
630 isExpanded(dataNode: T): boolean {

Callers 1

renderNodeChangesMethod · 0.95

Calls 5

_getLevelAccessorMethod · 0.95
_getNodeDefMethod · 0.95
_getExpansionKeyMethod · 0.95
setMethod · 0.80
getMethod · 0.65

Tested by

no test coverage detected