taxtank-core 0.30.142 → 0.30.143

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,6 @@ export var UserRolesEnum;
12
12
  UserRolesEnum["PROPERTY_TANK"] = "ROLE_USER_PROPERTY";
13
13
  UserRolesEnum["SOLE_TANK"] = "ROLE_USER_SOLE";
14
14
  UserRolesEnum["HOLDING_TANK"] = "ROLE_USER_HOLDING";
15
- UserRolesEnum["SWITCH_USER"] = "ROLE_PREVIOUS_ADMIN";
15
+ UserRolesEnum["SWITCH_USER"] = "IS_IMPERSONATOR";
16
16
  })(UserRolesEnum || (UserRolesEnum = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yb2xlcy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQWNYO0FBZEQsV0FBWSxhQUFhO0lBQ3ZCLCtDQUE4QixDQUFBO0lBQzlCLG1EQUFrQyxDQUFBO0lBQ2xDLHVDQUFzQixDQUFBO0lBQ3RCLDJDQUEwQixDQUFBO0lBQzFCLCtDQUE4QixDQUFBO0lBQzlCLHlDQUF3QixDQUFBO0lBQ3hCLG1DQUFrQixDQUFBO0lBQ2xCLHdEQUF1QyxDQUFBO0lBQ3ZDLDZDQUE0QixDQUFBO0lBQzVCLHFEQUFvQyxDQUFBO0lBQ3BDLDZDQUE0QixDQUFBO0lBQzVCLG1EQUFrQyxDQUFBO0lBQ2xDLG9EQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFkVyxhQUFhLEtBQWIsYUFBYSxRQWN4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFVzZXJSb2xlc0VudW0ge1xuICBGSVJNX09XTkVSID0gJ1JPTEVfRklSTV9PV05FUicsXG4gIEZJUk1fTUFOQUdFUiA9ICdST0xFX0ZJUk1fTUFOQUdFUicsXG4gIENMSUVOVCA9ICdST0xFX0NMSUVOVCcsXG4gIEVNUExPWUVFID0gJ1JPTEVfRU1QTE9ZRUUnLFxuICBBQ0NPVU5UQU5UID0gJ1JPTEVfQUNDT1VOVEFOVCcsXG4gIEFEVklTT1IgPSAnUk9MRV9BRFZJU09SJyxcbiAgVVNFUiA9ICdST0xFX1VTRVInLFxuICBTVUJTQ1JJUFRJT04gPSAnUk9MRV9VU0VSX1NVQlNDUklQVElPTicsXG4gIFdPUktfVEFOSyA9ICdST0xFX1VTRVJfV09SSycsXG4gIFBST1BFUlRZX1RBTksgPSAnUk9MRV9VU0VSX1BST1BFUlRZJyxcbiAgU09MRV9UQU5LID0gJ1JPTEVfVVNFUl9TT0xFJyxcbiAgSE9MRElOR19UQU5LID0gJ1JPTEVfVVNFUl9IT0xESU5HJyxcbiAgU1dJVENIX1VTRVIgPSAnUk9MRV9QUkVWSU9VU19BRE1JTicsXG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yb2xlcy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQWNYO0FBZEQsV0FBWSxhQUFhO0lBQ3ZCLCtDQUE4QixDQUFBO0lBQzlCLG1EQUFrQyxDQUFBO0lBQ2xDLHVDQUFzQixDQUFBO0lBQ3RCLDJDQUEwQixDQUFBO0lBQzFCLCtDQUE4QixDQUFBO0lBQzlCLHlDQUF3QixDQUFBO0lBQ3hCLG1DQUFrQixDQUFBO0lBQ2xCLHdEQUF1QyxDQUFBO0lBQ3ZDLDZDQUE0QixDQUFBO0lBQzVCLHFEQUFvQyxDQUFBO0lBQ3BDLDZDQUE0QixDQUFBO0lBQzVCLG1EQUFrQyxDQUFBO0lBQ2xDLGdEQUErQixDQUFBO0FBQ2pDLENBQUMsRUFkVyxhQUFhLEtBQWIsYUFBYSxRQWN4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFVzZXJSb2xlc0VudW0ge1xuICBGSVJNX09XTkVSID0gJ1JPTEVfRklSTV9PV05FUicsXG4gIEZJUk1fTUFOQUdFUiA9ICdST0xFX0ZJUk1fTUFOQUdFUicsXG4gIENMSUVOVCA9ICdST0xFX0NMSUVOVCcsXG4gIEVNUExPWUVFID0gJ1JPTEVfRU1QTE9ZRUUnLFxuICBBQ0NPVU5UQU5UID0gJ1JPTEVfQUNDT1VOVEFOVCcsXG4gIEFEVklTT1IgPSAnUk9MRV9BRFZJU09SJyxcbiAgVVNFUiA9ICdST0xFX1VTRVInLFxuICBTVUJTQ1JJUFRJT04gPSAnUk9MRV9VU0VSX1NVQlNDUklQVElPTicsXG4gIFdPUktfVEFOSyA9ICdST0xFX1VTRVJfV09SSycsXG4gIFBST1BFUlRZX1RBTksgPSAnUk9MRV9VU0VSX1BST1BFUlRZJyxcbiAgU09MRV9UQU5LID0gJ1JPTEVfVVNFUl9TT0xFJyxcbiAgSE9MRElOR19UQU5LID0gJ1JPTEVfVVNFUl9IT0xESU5HJyxcbiAgU1dJVENIX1VTRVIgPSAnSVNfSU1QRVJTT05BVE9SJyxcbn1cbiJdfQ==
@@ -1,27 +1,32 @@
1
1
  import { AbstractForm } from '../abstract.form';
2
+ import { BorrowingReport } from '../../models';
2
3
  import { FormControl, Validators } from '@angular/forms';
4
+ import { plainToClass } from 'class-transformer';
3
5
  /**
4
6
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4717608961/Borrowing+Power+Report+-+Property+Tank
5
7
  */
6
8
  export class BorrowingReportForm extends AbstractForm {
7
- constructor(report) {
9
+ /**
10
+ * extra params are auto-calculated numbers used if user didn't specify manual numbers
11
+ */
12
+ constructor(report = plainToClass(BorrowingReport, {}), netSalary, spouseNetSalary) {
8
13
  super({
9
14
  netRentIncome: new FormControl(report.netRentIncome, Validators.required),
10
15
  loanRepaymentAmount: new FormControl(report.loanRepaymentAmount, Validators.required),
11
- netSalary: new FormControl(report.netSalary),
12
- spouseNetSalary: new FormControl(report.spouseNetSalary),
16
+ netSalary: new FormControl(report.netSalary ?? netSalary),
17
+ spouseNetSalary: new FormControl(report.spouseNetSalary ?? spouseNetSalary),
13
18
  otherLiabilities: new FormControl(report.otherLiabilities, Validators.required),
14
19
  livingExpenses: new FormControl(report.livingExpenses, Validators.required),
15
20
  }, report);
16
21
  }
17
22
  /**
18
- * some fields are auto-calculated, shouldn't be updated until changedby user
23
+ * some fields are auto-calculated, shouldn't be updated until changed by user
19
24
  */
20
25
  submit(data = {}, includeDisabledFields = false) {
21
26
  return super.submit({
22
- netSalary: this.fieldChanged('netSalary') ? this.get('netSalary').value : null,
23
- spouseNetSalary: this.fieldChanged('spouseNetSalary') ? this.get('spouseNetSalary').value : null,
27
+ netSalary: (this.model.netSalary || this.fieldChanged('netSalary')) ? this.get('netSalary').value : null,
28
+ spouseNetSalary: (this.model.netSalary || this.fieldChanged('spouseNetSalary')) ? this.get('spouseNetSalary').value : null,
24
29
  }, includeDisabledFields);
25
30
  }
26
31
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93aW5nLXJlcG9ydC5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3Byb3BlcnR5L2JvcnJvd2luZy1yZXBvcnQuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUE2QjtJQUNwRSxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQztZQUNKLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDekUsbUJBQW1CLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDckYsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDNUMsZUFBZSxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7WUFDeEQsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDL0UsY0FBYyxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUM1RSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQWUsRUFBRSxFQUFFLHdCQUFpQyxLQUFLO1FBQzlELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDOUUsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNqRyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBCb3Jyb3dpbmdSZXBvcnQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NzE3NjA4OTYxL0JvcnJvd2luZytQb3dlcitSZXBvcnQrLStQcm9wZXJ0eStUYW5rXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dpbmdSZXBvcnRGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPEJvcnJvd2luZ1JlcG9ydD4ge1xuICBjb25zdHJ1Y3RvcihyZXBvcnQ6IEJvcnJvd2luZ1JlcG9ydCkge1xuICAgIHN1cGVyKHtcbiAgICAgIG5ldFJlbnRJbmNvbWU6IG5ldyBGb3JtQ29udHJvbChyZXBvcnQubmV0UmVudEluY29tZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBsb2FuUmVwYXltZW50QW1vdW50OiBuZXcgRm9ybUNvbnRyb2wocmVwb3J0LmxvYW5SZXBheW1lbnRBbW91bnQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgbmV0U2FsYXJ5OiBuZXcgRm9ybUNvbnRyb2wocmVwb3J0Lm5ldFNhbGFyeSksXG4gICAgICBzcG91c2VOZXRTYWxhcnk6IG5ldyBGb3JtQ29udHJvbChyZXBvcnQuc3BvdXNlTmV0U2FsYXJ5KSxcbiAgICAgIG90aGVyTGlhYmlsaXRpZXM6IG5ldyBGb3JtQ29udHJvbChyZXBvcnQub3RoZXJMaWFiaWxpdGllcywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBsaXZpbmdFeHBlbnNlczogbmV3IEZvcm1Db250cm9sKHJlcG9ydC5saXZpbmdFeHBlbnNlcywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgfSwgcmVwb3J0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzb21lIGZpZWxkcyBhcmUgYXV0by1jYWxjdWxhdGVkLCBzaG91bGRuJ3QgYmUgdXBkYXRlZCB1bnRpbCBjaGFuZ2VkYnkgdXNlclxuICAgKi9cbiAgc3VibWl0KGRhdGE6IG9iamVjdCA9IHt9LCBpbmNsdWRlRGlzYWJsZWRGaWVsZHM6IGJvb2xlYW4gPSBmYWxzZSk6IEJvcnJvd2luZ1JlcG9ydCB7XG4gICAgcmV0dXJuIHN1cGVyLnN1Ym1pdCh7XG4gICAgICBuZXRTYWxhcnk6IHRoaXMuZmllbGRDaGFuZ2VkKCduZXRTYWxhcnknKSA/IHRoaXMuZ2V0KCduZXRTYWxhcnknKS52YWx1ZSA6IG51bGwsXG4gICAgICBzcG91c2VOZXRTYWxhcnk6IHRoaXMuZmllbGRDaGFuZ2VkKCdzcG91c2VOZXRTYWxhcnknKSA/IHRoaXMuZ2V0KCdzcG91c2VOZXRTYWxhcnknKS52YWx1ZSA6IG51bGwsXG4gICAgfSwgaW5jbHVkZURpc2FibGVkRmllbGRzKTtcbiAgfVxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93aW5nLXJlcG9ydC5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3Byb3BlcnR5L2JvcnJvd2luZy1yZXBvcnQuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUE2QjtJQUNwRTs7T0FFRztJQUNILFlBQVksU0FBMEIsWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRSxTQUFrQixFQUFFLGVBQXdCO1FBQ25ILEtBQUssQ0FBQztZQUNKLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDekUsbUJBQW1CLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDckYsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDO1lBQ3pELGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQztZQUMzRSxnQkFBZ0IsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvRSxjQUFjLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzVFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBZSxFQUFFLEVBQUUsd0JBQWlDLEtBQUs7UUFDOUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDeEcsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDM0gsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgQm9ycm93aW5nUmVwb3J0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG4vKipcbiAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDcxNzYwODk2MS9Cb3Jyb3dpbmcrUG93ZXIrUmVwb3J0Ky0rUHJvcGVydHkrVGFua1xuICovXG5leHBvcnQgY2xhc3MgQm9ycm93aW5nUmVwb3J0Rm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxCb3Jyb3dpbmdSZXBvcnQ+IHtcbiAgLyoqXG4gICAqIGV4dHJhIHBhcmFtcyBhcmUgYXV0by1jYWxjdWxhdGVkIG51bWJlcnMgdXNlZCBpZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IG1hbnVhbCBudW1iZXJzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihyZXBvcnQ6IEJvcnJvd2luZ1JlcG9ydCA9IHBsYWluVG9DbGFzcyhCb3Jyb3dpbmdSZXBvcnQsIHt9KSwgbmV0U2FsYXJ5PzogbnVtYmVyLCBzcG91c2VOZXRTYWxhcnk/OiBudW1iZXIpIHtcbiAgICBzdXBlcih7XG4gICAgICBuZXRSZW50SW5jb21lOiBuZXcgRm9ybUNvbnRyb2wocmVwb3J0Lm5ldFJlbnRJbmNvbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgbG9hblJlcGF5bWVudEFtb3VudDogbmV3IEZvcm1Db250cm9sKHJlcG9ydC5sb2FuUmVwYXltZW50QW1vdW50LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIG5ldFNhbGFyeTogbmV3IEZvcm1Db250cm9sKHJlcG9ydC5uZXRTYWxhcnkgPz8gbmV0U2FsYXJ5KSxcbiAgICAgIHNwb3VzZU5ldFNhbGFyeTogbmV3IEZvcm1Db250cm9sKHJlcG9ydC5zcG91c2VOZXRTYWxhcnkgPz8gc3BvdXNlTmV0U2FsYXJ5KSxcbiAgICAgIG90aGVyTGlhYmlsaXRpZXM6IG5ldyBGb3JtQ29udHJvbChyZXBvcnQub3RoZXJMaWFiaWxpdGllcywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBsaXZpbmdFeHBlbnNlczogbmV3IEZvcm1Db250cm9sKHJlcG9ydC5saXZpbmdFeHBlbnNlcywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgfSwgcmVwb3J0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzb21lIGZpZWxkcyBhcmUgYXV0by1jYWxjdWxhdGVkLCBzaG91bGRuJ3QgYmUgdXBkYXRlZCB1bnRpbCBjaGFuZ2VkIGJ5IHVzZXJcbiAgICovXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSwgaW5jbHVkZURpc2FibGVkRmllbGRzOiBib29sZWFuID0gZmFsc2UpOiBCb3Jyb3dpbmdSZXBvcnQge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoe1xuICAgICAgbmV0U2FsYXJ5OiAodGhpcy5tb2RlbC5uZXRTYWxhcnkgfHwgdGhpcy5maWVsZENoYW5nZWQoJ25ldFNhbGFyeScpKSA/IHRoaXMuZ2V0KCduZXRTYWxhcnknKS52YWx1ZSA6IG51bGwsXG4gICAgICBzcG91c2VOZXRTYWxhcnk6ICh0aGlzLm1vZGVsLm5ldFNhbGFyeSB8fCB0aGlzLmZpZWxkQ2hhbmdlZCgnc3BvdXNlTmV0U2FsYXJ5JykpID8gdGhpcy5nZXQoJ3Nwb3VzZU5ldFNhbGFyeScpLnZhbHVlIDogbnVsbCxcbiAgICB9LCBpbmNsdWRlRGlzYWJsZWRGaWVsZHMpO1xuICB9XG59XG4iXX0=
@@ -21,13 +21,9 @@ export class BorrowingReport extends BorrowingReportBase {
21
21
  * some fields calculated automatically until user filled them manually
22
22
  */
23
23
  static calculate(salaryForecasts, incomeSourceForecasts, clientDetails = plainToClass(AnnualClientDetails, {}), report = plainToClass(BorrowingReport, {})) {
24
- if (!report.netSalary) {
25
- report.netSalary = new Collection(salaryForecasts).sumBy('monthlyAmount')
26
- + new IncomeSourceForecastCollection(incomeSourceForecasts).bonuses.sumBy('monthlyAmount');
27
- }
28
- if (!report.spouseNetSalary) {
29
- report.spouseNetSalary = clientDetails.spouseMonthlyIncome;
30
- }
24
+ report.netSalary = report.netSalary ?? new Collection(salaryForecasts).sumBy('monthlyAmount')
25
+ + new IncomeSourceForecastCollection(incomeSourceForecasts).bonuses.sumBy('monthlyAmount');
26
+ report.spouseNetSalary = report.spouseNetSalary ?? clientDetails.spouseMonthlyIncome;
31
27
  return report;
32
28
  }
33
29
  /**
@@ -51,4 +47,4 @@ export class BorrowingReport extends BorrowingReportBase {
51
47
  __decorate([
52
48
  Type(() => User)
53
49
  ], BorrowingReport.prototype, "user", void 0);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93aW5nLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcHJvcGVydHkvYm9ycm93aW5nLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR2hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUF4RDs7UUFJRSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO0lBeUM3QixDQUFDO0lBdkNDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FDZCxlQUFpQyxFQUNqQyxxQkFBNkMsRUFDN0MsZ0JBQXFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsRUFDMUUsU0FBMEIsWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFFM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO2tCQUNyRSxJQUFJLDhCQUE4QixDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5RjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsTUFBYyxFQUFFLGVBQXVCO1FBQ3pELE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWU7Y0FDeEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLE1BQWMsRUFBRSxlQUF1QjtRQUN4RCxJQUFJLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pFLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Y0FDOUYsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQTlDQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ04iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3Jyb3dpbmdSZXBvcnQgYXMgQm9ycm93aW5nUmVwb3J0QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9ib3Jyb3dpbmctcmVwb3J0JztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBbm51YWxDbGllbnREZXRhaWxzIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEluY29tZVNvdXJjZUZvcmVjYXN0LCBTYWxhcnlGb3JlY2FzdCB9IGZyb20gJy4uL2luY29tZS1zb3VyY2UnO1xuXG4vKipcbiAqIEJvcnJvd2luZyBwb3dlciByZXBvcnQsIHNob3dzIGlmIHUgY2FuIGFmZm9yZCBuZXcgcHJvcGVydHkgbG9hblxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NzE3NjA4OTYxL0JvcnJvd2luZytQb3dlcitSZXBvcnQrLStQcm9wZXJ0eStUYW5rXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dpbmdSZXBvcnQgZXh0ZW5kcyBCb3Jyb3dpbmdSZXBvcnRCYXNlIHtcbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBuZXRSZW50SW5jb21lOiBudW1iZXIgPSAwO1xuICBsb2FuUmVwYXltZW50QW1vdW50OiBudW1iZXIgPSAwO1xuICBvdGhlckxpYWJpbGl0aWVzOiBudW1iZXIgPSAwO1xuICBsaXZpbmdFeHBlbnNlczogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogc29tZSBmaWVsZHMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IHVudGlsIHVzZXIgZmlsbGVkIHRoZW0gbWFudWFsbHlcbiAgICovXG4gIHN0YXRpYyBjYWxjdWxhdGUoXG4gICAgc2FsYXJ5Rm9yZWNhc3RzOiBTYWxhcnlGb3JlY2FzdFtdLFxuICAgIGluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSxcbiAgICBjbGllbnREZXRhaWxzOiBBbm51YWxDbGllbnREZXRhaWxzID0gcGxhaW5Ub0NsYXNzKEFubnVhbENsaWVudERldGFpbHMsIHt9KSxcbiAgICByZXBvcnQ6IEJvcnJvd2luZ1JlcG9ydCA9IHBsYWluVG9DbGFzcyhCb3Jyb3dpbmdSZXBvcnQsIHt9KVxuICApOiBCb3Jyb3dpbmdSZXBvcnQge1xuICAgIGlmICghcmVwb3J0Lm5ldFNhbGFyeSkge1xuICAgICAgcmVwb3J0Lm5ldFNhbGFyeSA9IG5ldyBDb2xsZWN0aW9uKHNhbGFyeUZvcmVjYXN0cykuc3VtQnkoJ21vbnRobHlBbW91bnQnKVxuICAgICAgICArIG5ldyBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24oaW5jb21lU291cmNlRm9yZWNhc3RzKS5ib251c2VzLnN1bUJ5KCdtb250aGx5QW1vdW50Jyk7XG4gICAgfVxuICAgIGlmICghcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSkge1xuICAgICAgcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSA9IGNsaWVudERldGFpbHMuc3BvdXNlTW9udGhseUluY29tZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIGZyZWUgbW9uZXkgYWZ0ZXIgZXhwZW5zZXNcbiAgICovXG4gIGdldE5ldEluY29tZVN1cnBsdXMocHJvZml0OiBudW1iZXIsIHJlcGF5bWVudEFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvZml0ICsgdGhpcy5uZXRSZW50SW5jb21lICsgdGhpcy5uZXRTYWxhcnkgKyB0aGlzLnNwb3VzZU5ldFNhbGFyeSAtIHJlcGF5bWVudEFtb3VudFxuICAgICAgLSB0aGlzLmxvYW5SZXBheW1lbnRBbW91bnQgLSB0aGlzLm90aGVyTGlhYmlsaXRpZXMgLSB0aGlzLmxpdmluZ0V4cGVuc2VzXG4gIH1cblxuICAvKipcbiAgICogc3VycGx1cyBpbmNvbWUgdG8gY292ZXIgeW91ciBkZWJ0IG9ibGlnYXRpb25zXG4gICAqL1xuICBnZXROZXRTdXJwbHVzUmF0aW8ocHJvZml0OiBudW1iZXIsIHJlcGF5bWVudEFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIShyZXBheW1lbnRBbW91bnQgKyB0aGlzLmxvYW5SZXBheW1lbnRBbW91bnQgKyB0aGlzLm90aGVyTGlhYmlsaXRpZXMpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHByb2ZpdCArIHRoaXMubmV0UmVudEluY29tZSArIHRoaXMubmV0U2FsYXJ5ICsgdGhpcy5zcG91c2VOZXRTYWxhcnkgLSB0aGlzLmxpdmluZ0V4cGVuc2VzKVxuICAgICAgLyAocmVwYXltZW50QW1vdW50ICsgdGhpcy5sb2FuUmVwYXltZW50QW1vdW50ICsgdGhpcy5vdGhlckxpYWJpbGl0aWVzKTtcbiAgfVxufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93aW5nLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcHJvcGVydHkvYm9ycm93aW5nLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR2hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUF4RDs7UUFJRSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO0lBcUM3QixDQUFDO0lBbkNDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FDZCxlQUFpQyxFQUNqQyxxQkFBNkMsRUFDN0MsZ0JBQXFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsRUFDMUUsU0FBMEIsWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFFM0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7Y0FDekYsSUFBSSw4QkFBOEIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0YsTUFBTSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztRQUVyRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsZUFBdUI7UUFDekQsT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZTtjQUN4RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsTUFBYyxFQUFFLGVBQXVCO1FBQ3hELElBQUksQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDekUsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztjQUM5RixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNGO0FBMUNDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvcnJvd2luZ1JlcG9ydCBhcyBCb3Jyb3dpbmdSZXBvcnRCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L2JvcnJvd2luZy1yZXBvcnQnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IENvbGxlY3Rpb24sIEluY29tZVNvdXJjZUZvcmVjYXN0Q29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFubnVhbENsaWVudERldGFpbHMgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlRm9yZWNhc3QsIFNhbGFyeUZvcmVjYXN0IH0gZnJvbSAnLi4vaW5jb21lLXNvdXJjZSc7XG5cbi8qKlxuICogQm9ycm93aW5nIHBvd2VyIHJlcG9ydCwgc2hvd3MgaWYgdSBjYW4gYWZmb3JkIG5ldyBwcm9wZXJ0eSBsb2FuXG4gKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQ3MTc2MDg5NjEvQm9ycm93aW5nK1Bvd2VyK1JlcG9ydCstK1Byb3BlcnR5K1RhbmtcbiAqL1xuZXhwb3J0IGNsYXNzIEJvcnJvd2luZ1JlcG9ydCBleHRlbmRzIEJvcnJvd2luZ1JlcG9ydEJhc2Uge1xuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIG5ldFJlbnRJbmNvbWU6IG51bWJlciA9IDA7XG4gIGxvYW5SZXBheW1lbnRBbW91bnQ6IG51bWJlciA9IDA7XG4gIG90aGVyTGlhYmlsaXRpZXM6IG51bWJlciA9IDA7XG4gIGxpdmluZ0V4cGVuc2VzOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBzb21lIGZpZWxkcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgdW50aWwgdXNlciBmaWxsZWQgdGhlbSBtYW51YWxseVxuICAgKi9cbiAgc3RhdGljIGNhbGN1bGF0ZShcbiAgICBzYWxhcnlGb3JlY2FzdHM6IFNhbGFyeUZvcmVjYXN0W10sXG4gICAgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdLFxuICAgIGNsaWVudERldGFpbHM6IEFubnVhbENsaWVudERldGFpbHMgPSBwbGFpblRvQ2xhc3MoQW5udWFsQ2xpZW50RGV0YWlscywge30pLFxuICAgIHJlcG9ydDogQm9ycm93aW5nUmVwb3J0ID0gcGxhaW5Ub0NsYXNzKEJvcnJvd2luZ1JlcG9ydCwge30pXG4gICk6IEJvcnJvd2luZ1JlcG9ydCB7XG4gICAgcmVwb3J0Lm5ldFNhbGFyeSA9IHJlcG9ydC5uZXRTYWxhcnkgPz8gbmV3IENvbGxlY3Rpb24oc2FsYXJ5Rm9yZWNhc3RzKS5zdW1CeSgnbW9udGhseUFtb3VudCcpXG4gICAgICArIG5ldyBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24oaW5jb21lU291cmNlRm9yZWNhc3RzKS5ib251c2VzLnN1bUJ5KCdtb250aGx5QW1vdW50Jyk7XG4gICAgcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSA9IHJlcG9ydC5zcG91c2VOZXRTYWxhcnkgPz8gY2xpZW50RGV0YWlscy5zcG91c2VNb250aGx5SW5jb21lO1xuXG4gICAgcmV0dXJuIHJlcG9ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBmcmVlIG1vbmV5IGFmdGVyIGV4cGVuc2VzXG4gICAqL1xuICBnZXROZXRJbmNvbWVTdXJwbHVzKHByb2ZpdDogbnVtYmVyLCByZXBheW1lbnRBbW91bnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHByb2ZpdCArIHRoaXMubmV0UmVudEluY29tZSArIHRoaXMubmV0U2FsYXJ5ICsgdGhpcy5zcG91c2VOZXRTYWxhcnkgLSByZXBheW1lbnRBbW91bnRcbiAgICAgIC0gdGhpcy5sb2FuUmVwYXltZW50QW1vdW50IC0gdGhpcy5vdGhlckxpYWJpbGl0aWVzIC0gdGhpcy5saXZpbmdFeHBlbnNlc1xuICB9XG5cbiAgLyoqXG4gICAqIHN1cnBsdXMgaW5jb21lIHRvIGNvdmVyIHlvdXIgZGVidCBvYmxpZ2F0aW9uc1xuICAgKi9cbiAgZ2V0TmV0U3VycGx1c1JhdGlvKHByb2ZpdDogbnVtYmVyLCByZXBheW1lbnRBbW91bnQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCEocmVwYXltZW50QW1vdW50ICsgdGhpcy5sb2FuUmVwYXltZW50QW1vdW50ICsgdGhpcy5vdGhlckxpYWJpbGl0aWVzKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIChwcm9maXQgKyB0aGlzLm5ldFJlbnRJbmNvbWUgKyB0aGlzLm5ldFNhbGFyeSArIHRoaXMuc3BvdXNlTmV0U2FsYXJ5IC0gdGhpcy5saXZpbmdFeHBlbnNlcylcbiAgICAgIC8gKHJlcGF5bWVudEFtb3VudCArIHRoaXMubG9hblJlcGF5bWVudEFtb3VudCArIHRoaXMub3RoZXJMaWFiaWxpdGllcyk7XG4gIH1cbn1cbiJdfQ==
@@ -3826,7 +3826,7 @@ var UserRolesEnum;
3826
3826
  UserRolesEnum["PROPERTY_TANK"] = "ROLE_USER_PROPERTY";
3827
3827
  UserRolesEnum["SOLE_TANK"] = "ROLE_USER_SOLE";
3828
3828
  UserRolesEnum["HOLDING_TANK"] = "ROLE_USER_HOLDING";
3829
- UserRolesEnum["SWITCH_USER"] = "ROLE_PREVIOUS_ADMIN";
3829
+ UserRolesEnum["SWITCH_USER"] = "IS_IMPERSONATOR";
3830
3830
  })(UserRolesEnum || (UserRolesEnum = {}));
3831
3831
 
3832
3832
  const USER_WORK_POSITION = {
@@ -6043,13 +6043,10 @@ class BorrowingReport extends BorrowingReport$1 {
6043
6043
  * some fields calculated automatically until user filled them manually
6044
6044
  */
6045
6045
  static calculate(salaryForecasts, incomeSourceForecasts, clientDetails = plainToClass(AnnualClientDetails, {}), report = plainToClass(BorrowingReport, {})) {
6046
- if (!report.netSalary) {
6047
- report.netSalary = new Collection(salaryForecasts).sumBy('monthlyAmount')
6048
- + new IncomeSourceForecastCollection(incomeSourceForecasts).bonuses.sumBy('monthlyAmount');
6049
- }
6050
- if (!report.spouseNetSalary) {
6051
- report.spouseNetSalary = clientDetails.spouseMonthlyIncome;
6052
- }
6046
+ var _a, _b;
6047
+ report.netSalary = (_a = report.netSalary) !== null && _a !== void 0 ? _a : new Collection(salaryForecasts).sumBy('monthlyAmount')
6048
+ + new IncomeSourceForecastCollection(incomeSourceForecasts).bonuses.sumBy('monthlyAmount');
6049
+ report.spouseNetSalary = (_b = report.spouseNetSalary) !== null && _b !== void 0 ? _b : clientDetails.spouseMonthlyIncome;
6053
6050
  return report;
6054
6051
  }
6055
6052
  /**
@@ -21993,23 +21990,27 @@ class PropertySaleExemptionsForm extends AbstractForm {
21993
21990
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4717608961/Borrowing+Power+Report+-+Property+Tank
21994
21991
  */
21995
21992
  class BorrowingReportForm extends AbstractForm {
21996
- constructor(report) {
21993
+ /**
21994
+ * extra params are auto-calculated numbers used if user didn't specify manual numbers
21995
+ */
21996
+ constructor(report = plainToClass(BorrowingReport, {}), netSalary, spouseNetSalary) {
21997
+ var _a, _b;
21997
21998
  super({
21998
21999
  netRentIncome: new FormControl(report.netRentIncome, Validators.required),
21999
22000
  loanRepaymentAmount: new FormControl(report.loanRepaymentAmount, Validators.required),
22000
- netSalary: new FormControl(report.netSalary),
22001
- spouseNetSalary: new FormControl(report.spouseNetSalary),
22001
+ netSalary: new FormControl((_a = report.netSalary) !== null && _a !== void 0 ? _a : netSalary),
22002
+ spouseNetSalary: new FormControl((_b = report.spouseNetSalary) !== null && _b !== void 0 ? _b : spouseNetSalary),
22002
22003
  otherLiabilities: new FormControl(report.otherLiabilities, Validators.required),
22003
22004
  livingExpenses: new FormControl(report.livingExpenses, Validators.required),
22004
22005
  }, report);
22005
22006
  }
22006
22007
  /**
22007
- * some fields are auto-calculated, shouldn't be updated until changedby user
22008
+ * some fields are auto-calculated, shouldn't be updated until changed by user
22008
22009
  */
22009
22010
  submit(data = {}, includeDisabledFields = false) {
22010
22011
  return super.submit({
22011
- netSalary: this.fieldChanged('netSalary') ? this.get('netSalary').value : null,
22012
- spouseNetSalary: this.fieldChanged('spouseNetSalary') ? this.get('spouseNetSalary').value : null,
22012
+ netSalary: (this.model.netSalary || this.fieldChanged('netSalary')) ? this.get('netSalary').value : null,
22013
+ spouseNetSalary: (this.model.netSalary || this.fieldChanged('spouseNetSalary')) ? this.get('spouseNetSalary').value : null,
22013
22014
  }, includeDisabledFields);
22014
22015
  }
22015
22016
  }