1
1
import { BasicField } from 'src/app/model/DataSelection/Profile/Fields/BasicFields/BasicField' ;
2
2
import { FieldsTreeAdapter } from 'src/app/shared/models/TreeNode/Adapter/FieldTreeAdapter' ;
3
- import { map , Subscription } from 'rxjs' ;
3
+ import { map , Subscription , take } from 'rxjs' ;
4
4
import { SelectedBasicField } from 'src/app/model/DataSelection/Profile/Fields/BasicFields/SelectedBasicField' ;
5
+ import { SelectedBasicFieldCloner } from 'src/app/model/Utilities/DataSelecionCloner/ProfileFields/SelectedFieldCloner' ;
5
6
import { SelectedProfileFieldsService } from 'src/app/service/DataSelection/SelectedProfileFields.service' ;
6
7
import { TreeNode } from 'src/app/shared/models/TreeNode/TreeNodeInterface' ;
7
- import {
8
- Component ,
9
- EventEmitter ,
10
- Input ,
11
- OnChanges ,
12
- OnDestroy ,
13
- OnInit ,
14
- Output ,
15
- SimpleChanges ,
16
- } from '@angular/core' ;
17
- import { SelectedBasicFieldCloner } from 'src/app/model/Utilities/DataSelecionCloner/ProfileFields/SelectedFieldCloner' ;
8
+ import { Component , EventEmitter , Input , OnDestroy , OnInit , Output } from '@angular/core' ;
18
9
19
10
@Component ( {
20
11
selector : 'num-edit-fields' ,
21
12
templateUrl : './edit-fields.component.html' ,
22
13
styleUrls : [ './edit-fields.component.scss' ] ,
23
14
providers : [ SelectedProfileFieldsService ] ,
24
15
} )
25
- export class EditFieldsComponent implements OnInit , OnChanges , OnDestroy {
16
+ export class EditFieldsComponent implements OnInit , OnDestroy {
26
17
@Input ( )
27
18
fieldTree : BasicField [ ] ;
28
19
@@ -38,9 +29,7 @@ export class EditFieldsComponent implements OnInit, OnChanges, OnDestroy {
38
29
deepCopyFieldsSubscription : Subscription ;
39
30
constructor ( private selectedDataSelectionProfileFieldsService : SelectedProfileFieldsService ) { }
40
31
41
- ngOnInit ( ) { }
42
-
43
- ngOnChanges ( changes : SimpleChanges ) : void {
32
+ ngOnInit ( ) {
44
33
this . traversAndUpddateTree ( ) ;
45
34
this . buildTreeFromProfileFields ( ) ;
46
35
}
@@ -55,6 +44,7 @@ export class EditFieldsComponent implements OnInit, OnChanges, OnDestroy {
55
44
this . deepCopyFieldsSubscription = this . selectedDataSelectionProfileFieldsService
56
45
. getDeepCopyBasicFields ( )
57
46
. pipe (
47
+ take ( 1 ) ,
58
48
map ( ( profileFields ) => {
59
49
this . setSelectedChildrenFields ( ) ;
60
50
this . tree = FieldsTreeAdapter . fromTree ( profileFields ) ;
@@ -122,7 +112,9 @@ export class EditFieldsComponent implements OnInit, OnChanges, OnDestroy {
122
112
this . selectedBasicFields
123
113
) ;
124
114
this . updatedSelectedBasicFields . emit ( clonedSelectedFields ) ;
115
+ // Only update the selection status, don't trigger tree rebuilding
125
116
this . traversAndUpddateTree ( ) ;
126
- this . selectedDataSelectionProfileFieldsService . setDeepCopyFields ( this . fieldTree ) ;
117
+ // Remove this line that causes the circular trigger:
118
+ // this.selectedDataSelectionProfileFieldsService.setDeepCopyFields(this.fieldTree);
127
119
}
128
120
}
0 commit comments