@@ -37,24 +37,21 @@ export class ControlledDoc implements OnInit {
3737 }
3838
3939 expandAll ( ) {
40- this . files ( ) . forEach ( ( node ) => {
41- this . expandRecursive ( node , true ) ;
42- } ) ;
40+ const updatedFiles = this . files ( ) . map ( ( node ) => this . expandRecursive ( node , true ) ) ;
41+ this . files . set ( updatedFiles ) ;
4342 }
4443
4544 collapseAll ( ) {
46- this . files ( ) . forEach ( ( node ) => {
47- this . expandRecursive ( node , false ) ;
48- } ) ;
45+ const updatedFiles = this . files ( ) . map ( ( node ) => this . expandRecursive ( node , false ) ) ;
46+ this . files . set ( updatedFiles ) ;
4947 }
5048
51- private expandRecursive ( node : TreeNode , isExpand : boolean ) {
52- node . expanded = isExpand ;
53- if ( node . children ) {
54- node . children . forEach ( ( childNode ) => {
55- this . expandRecursive ( childNode , isExpand ) ;
56- } ) ;
57- }
49+ private expandRecursive ( node : TreeNode , isExpand : boolean ) : TreeNode {
50+ return {
51+ ...node ,
52+ expanded : isExpand ,
53+ children : node . children ? node . children . map ( ( child ) => this . expandRecursive ( child , isExpand ) ) : node . children
54+ } ;
5855 }
5956
6057 code : Code = {
@@ -96,24 +93,21 @@ export class TreeControlledDemo implements OnInit {
9693 }
9794
9895 expandAll() {
99- this.files().forEach((node) => {
100- this.expandRecursive(node, true);
101- });
96+ const updatedFiles = this.files().map((node) => this.expandRecursive(node, true));
97+ this.files.set(updatedFiles);
10298 }
10399
104100 collapseAll() {
105- this.files().forEach((node) => {
106- this.expandRecursive(node, false);
107- });
101+ const updatedFiles = this.files().map((node) => this.expandRecursive(node, false));
102+ this.files.set(updatedFiles);
108103 }
109104
110- private expandRecursive(node: TreeNode, isExpand: boolean) {
111- node.expanded = isExpand;
112- if (node.children) {
113- node.children.forEach((childNode) => {
114- this.expandRecursive(childNode, isExpand);
115- });
116- }
105+ private expandRecursive(node: TreeNode, isExpand: boolean): TreeNode {
106+ return {
107+ ...node,
108+ expanded: isExpand,
109+ children: node.children ? node.children.map((child) => this.expandRecursive(child, isExpand)) : node.children
110+ };
117111 }
118112
119113}` ,
0 commit comments