1
1
import { BasicField } from 'src/app/model/DataSelection/Profile/Fields/BasicFields/BasicField' ;
2
+ import { Component , EventEmitter , Input , OnDestroy , OnInit , Output } from '@angular/core' ;
2
3
import { FieldsTreeAdapter } from 'src/app/shared/models/TreeNode/Adapter/FieldTreeAdapter' ;
3
4
import { map , Subscription , take } from 'rxjs' ;
4
5
import { SelectedBasicField } from 'src/app/model/DataSelection/Profile/Fields/BasicFields/SelectedBasicField' ;
5
6
import { SelectedBasicFieldCloner } from 'src/app/model/Utilities/DataSelecionCloner/ProfileFields/SelectedFieldCloner' ;
6
7
import { SelectedProfileFieldsService } from 'src/app/service/DataSelection/SelectedProfileFields.service' ;
7
8
import { TreeNode } from 'src/app/shared/models/TreeNode/TreeNodeInterface' ;
8
- import { Component , EventEmitter , Input , OnDestroy , OnInit , Output } from '@angular/core' ;
9
9
10
10
@Component ( {
11
11
selector : 'num-edit-fields' ,
@@ -45,7 +45,7 @@ export class EditFieldsComponent implements OnInit, OnDestroy {
45
45
. getDeepCopyBasicFields ( )
46
46
. pipe (
47
47
take ( 1 ) ,
48
- map ( ( profileFields ) => {
48
+ map ( ( profileFields : BasicField [ ] ) => {
49
49
this . setSelectedChildrenFields ( ) ;
50
50
this . tree = FieldsTreeAdapter . fromTree ( profileFields ) ;
51
51
} )
@@ -70,8 +70,10 @@ export class EditFieldsComponent implements OnInit, OnDestroy {
70
70
const node : BasicField = element . originalEntry as BasicField ;
71
71
const index = this . getIndexInSelectedFields ( node . getElementId ( ) ) ;
72
72
if ( index !== - 1 ) {
73
+ node . setIsSelected ( false ) ;
73
74
this . spliceAndEmit ( index ) ;
74
75
} else {
76
+ node . setIsSelected ( true ) ;
75
77
this . addNodeToSelectedFields ( node ) ;
76
78
}
77
79
this . traversAndUpddateTree ( ) ;
@@ -92,6 +94,12 @@ export class EditFieldsComponent implements OnInit, OnDestroy {
92
94
const index = this . getIndexInSelectedFields ( node . getElementId ( ) ) ;
93
95
if ( index !== - 1 ) {
94
96
this . spliceAndEmit ( index ) ;
97
+ this . fieldTree = this . selectedDataSelectionProfileFieldsService . updateNodeInDeepCopy (
98
+ this . fieldTree ,
99
+ node . getSelectedField ( ) ,
100
+ false
101
+ ) ;
102
+ this . tree = FieldsTreeAdapter . fromTree ( this . fieldTree ) ;
95
103
}
96
104
}
97
105
@@ -112,9 +120,6 @@ export class EditFieldsComponent implements OnInit, OnDestroy {
112
120
this . selectedBasicFields
113
121
) ;
114
122
this . updatedSelectedBasicFields . emit ( clonedSelectedFields ) ;
115
- // Only update the selection status, don't trigger tree rebuilding
116
123
this . traversAndUpddateTree ( ) ;
117
- // Remove this line that causes the circular trigger:
118
- // this.selectedDataSelectionProfileFieldsService.setDeepCopyFields(this.fieldTree);
119
124
}
120
125
}
0 commit comments