|
|
|
@ -123,19 +123,6 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy {
|
|
|
|
|
Tooltip
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
this.calculatorForm.setValue(
|
|
|
|
|
{
|
|
|
|
|
annualInterestRate: this.annualInterestRate,
|
|
|
|
|
paymentPerPeriod: this.savingsRate,
|
|
|
|
|
principalInvestmentAmount: 0,
|
|
|
|
|
projectedTotalAmount: this.projectedTotalAmount,
|
|
|
|
|
retirementDate: this.retirementDate ?? this.DEFAULT_RETIREMENT_DATE
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
emitEvent: false
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
this.calculatorForm.valueChanges
|
|
|
|
|
.pipe(takeUntil(this.unsubscribeSubject))
|
|
|
|
|
.subscribe(() => {
|
|
|
|
@ -169,9 +156,22 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ngOnChanges() {
|
|
|
|
|
this.periodsToRetire = this.getPeriodsToRetire();
|
|
|
|
|
|
|
|
|
|
if (isNumber(this.fireWealth) && this.fireWealth >= 0) {
|
|
|
|
|
this.calculatorForm.setValue(
|
|
|
|
|
{
|
|
|
|
|
annualInterestRate: this.annualInterestRate,
|
|
|
|
|
paymentPerPeriod: this.savingsRate,
|
|
|
|
|
principalInvestmentAmount: 0,
|
|
|
|
|
projectedTotalAmount: this.projectedTotalAmount,
|
|
|
|
|
retirementDate: this.retirementDate ?? this.DEFAULT_RETIREMENT_DATE
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
emitEvent: false
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
this.periodsToRetire = this.getPeriodsToRetire();
|
|
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
// Wait for the chartCanvas
|
|
|
|
|
this.calculatorForm.patchValue(
|
|
|
|
@ -409,9 +409,9 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy {
|
|
|
|
|
if (this.projectedTotalAmount) {
|
|
|
|
|
const periods = this.fireCalculatorService.calculatePeriodsToRetire({
|
|
|
|
|
P: this.getP(),
|
|
|
|
|
totalAmount: this.projectedTotalAmount,
|
|
|
|
|
PMT: this.getPMT(),
|
|
|
|
|
r: this.getR()
|
|
|
|
|
r: this.getR(),
|
|
|
|
|
totalAmount: this.projectedTotalAmount
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return periods;
|
|
|
|
|