1
- import { Component , EventEmitter , Input , Output } from '@angular/core' ;
1
+ import { Component , EventEmitter , Input , OnChanges , Output , SimpleChanges } from '@angular/core' ;
2
2
import { UntypedFormBuilder , UntypedFormControl , UntypedFormGroup , Validators } from '@angular/forms' ;
3
3
import { CapitalizedIncome } from '../loan-product-payment-strategy-step/payment-allocation-model' ;
4
4
import { StringEnumOptionData } from 'app/shared/models/option-data.model' ;
@@ -8,7 +8,7 @@ import { StringEnumOptionData } from 'app/shared/models/option-data.model';
8
8
templateUrl : './loan-product-capitalized-income-step.component.html' ,
9
9
styleUrls : [ './loan-product-capitalized-income-step.component.scss' ]
10
10
} )
11
- export class LoanProductCapitalizedIncomeStepComponent {
11
+ export class LoanProductCapitalizedIncomeStepComponent implements OnChanges {
12
12
@Input ( ) capitalizedIncome : CapitalizedIncome ;
13
13
@Input ( ) capitalizedIncomeCalculationTypeOptions : StringEnumOptionData [ ] ;
14
14
@Input ( ) capitalizedIncomeStrategyOptions : StringEnumOptionData [ ] ;
@@ -46,22 +46,45 @@ export class LoanProductCapitalizedIncomeStepComponent {
46
46
}
47
47
}
48
48
49
+ ngOnChanges ( changes : SimpleChanges ) : void {
50
+ this . enableIncomeCapitalization = this . capitalizedIncome . enableIncomeCapitalization ;
51
+ if ( this . enableIncomeCapitalization ) {
52
+ this . loanIncomeCapitalizationForm . patchValue ( {
53
+ enableIncomeCapitalization : this . enableIncomeCapitalization ,
54
+ incomeCapitalizationCalculationType : this . capitalizedIncome . incomeCapitalizationCalculationType ,
55
+ incomeCapitalizationStrategy : this . capitalizedIncome . incomeCapitalizationStrategy
56
+ } ) ;
57
+ }
58
+ }
59
+
49
60
setConditionalControls ( ) {
50
61
this . loanIncomeCapitalizationForm . get ( 'enableIncomeCapitalization' ) . valueChanges . subscribe ( ( enabled : boolean ) => {
51
62
this . enableIncomeCapitalization = enabled ;
52
63
if ( this . enableIncomeCapitalization ) {
64
+ const incomeCapitalizationCalculationType =
65
+ this . capitalizedIncome . incomeCapitalizationCalculationType == ''
66
+ ? this . capitalizedIncomeCalculationTypeOptions [ 0 ] . id
67
+ : this . capitalizedIncome . incomeCapitalizationCalculationType ;
53
68
this . loanIncomeCapitalizationForm . addControl (
54
69
'incomeCapitalizationCalculationType' ,
55
- new UntypedFormControl ( this . capitalizedIncome . incomeCapitalizationCalculationType , Validators . required )
70
+ new UntypedFormControl (
71
+ this . capitalizedIncome . incomeCapitalizationCalculationType ||
72
+ this . capitalizedIncomeCalculationTypeOptions [ 0 ] . id ,
73
+ Validators . required
74
+ )
56
75
) ;
76
+ const incomeCapitalizationStrategy =
77
+ this . capitalizedIncome . incomeCapitalizationStrategy == ''
78
+ ? this . capitalizedIncomeStrategyOptions [ 0 ] . id
79
+ : this . capitalizedIncome . incomeCapitalizationStrategy ;
57
80
this . loanIncomeCapitalizationForm . addControl (
58
81
'incomeCapitalizationStrategy' ,
59
- new UntypedFormControl ( this . capitalizedIncome . incomeCapitalizationStrategy , Validators . required )
82
+ new UntypedFormControl ( incomeCapitalizationStrategy , Validators . required )
60
83
) ;
61
84
this . setCapitalizedIncome . emit ( {
62
85
enableIncomeCapitalization : true ,
63
- incomeCapitalizationCalculationType : '' ,
64
- incomeCapitalizationStrategy : ''
86
+ incomeCapitalizationCalculationType : incomeCapitalizationCalculationType ,
87
+ incomeCapitalizationStrategy : incomeCapitalizationStrategy
65
88
} ) ;
66
89
67
90
this . loanIncomeCapitalizationForm
0 commit comments