taxtank-core 2.0.37 → 2.0.38

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.
@@ -973,6 +973,13 @@ var AnnualFrequencyEnum;
973
973
  AnnualFrequencyEnum[AnnualFrequencyEnum["WEEKLY"] = 52] = "WEEKLY";
974
974
  })(AnnualFrequencyEnum || (AnnualFrequencyEnum = {}));
975
975
 
976
+ var DailyFrequencyEnum;
977
+ (function (DailyFrequencyEnum) {
978
+ DailyFrequencyEnum[DailyFrequencyEnum["MONTHLY"] = 30] = "MONTHLY";
979
+ DailyFrequencyEnum[DailyFrequencyEnum["FORTNIGHTLY"] = 14] = "FORTNIGHTLY";
980
+ DailyFrequencyEnum[DailyFrequencyEnum["WEEKLY"] = 7] = "WEEKLY";
981
+ })(DailyFrequencyEnum || (DailyFrequencyEnum = {}));
982
+
976
983
  var ChartAccountsCategoryEnum;
977
984
  (function (ChartAccountsCategoryEnum) {
978
985
  ChartAccountsCategoryEnum[ChartAccountsCategoryEnum["PROPERTY_INCOME"] = 1] = "PROPERTY_INCOME";
@@ -1325,6 +1332,24 @@ var ChartAccountsPropertyAdjustmentsListEnum;
1325
1332
  ChartAccountsPropertyAdjustmentsListEnum[ChartAccountsPropertyAdjustmentsListEnum["LANDLORD_REIMBURSEMENT"] = 908] = "LANDLORD_REIMBURSEMENT";
1326
1333
  })(ChartAccountsPropertyAdjustmentsListEnum || (ChartAccountsPropertyAdjustmentsListEnum = {}));
1327
1334
 
1335
+ const EXPENSE_CATEGORY_BY_TYPE = {
1336
+ [TankTypeEnum.PROPERTY]: ChartAccountsCategoryEnum.PROPERTY_EXPENSE,
1337
+ [TankTypeEnum.WORK]: ChartAccountsCategoryEnum.WORK_EXPENSE,
1338
+ [TankTypeEnum.OTHER]: ChartAccountsCategoryEnum.OTHER_EXPENSE,
1339
+ [TankTypeEnum.SOLE]: ChartAccountsCategoryEnum.SOLE_EXPENSE,
1340
+ [TankTypeEnum.HOLDING]: ChartAccountsCategoryEnum.HOLDING_EXPENSE,
1341
+ [TankTypeEnum.PERSONAL]: ChartAccountsCategoryEnum.PERSONAL_EXPENSE,
1342
+ };
1343
+
1344
+ const INCOME_CATEGORY_BY_TYPE = {
1345
+ [TankTypeEnum.PROPERTY]: ChartAccountsCategoryEnum.PROPERTY_INCOME,
1346
+ [TankTypeEnum.WORK]: ChartAccountsCategoryEnum.WORK_INCOME,
1347
+ [TankTypeEnum.OTHER]: ChartAccountsCategoryEnum.OTHER_INCOME,
1348
+ [TankTypeEnum.SOLE]: ChartAccountsCategoryEnum.SOLE_INCOME,
1349
+ [TankTypeEnum.HOLDING]: ChartAccountsCategoryEnum.HOLDING_INCOME,
1350
+ [TankTypeEnum.PERSONAL]: ChartAccountsCategoryEnum.PERSONAL_INCOME,
1351
+ };
1352
+
1328
1353
  var DateFormatsEnum;
1329
1354
  (function (DateFormatsEnum) {
1330
1355
  /** 23:59 */
@@ -1693,27 +1718,12 @@ var LoanBankTypeEnum;
1693
1718
  LoanBankTypeEnum[LoanBankTypeEnum["OTHER"] = 8] = "OTHER";
1694
1719
  })(LoanBankTypeEnum || (LoanBankTypeEnum = {}));
1695
1720
 
1696
- var LoanFrequencyEnum;
1697
- (function (LoanFrequencyEnum) {
1698
- LoanFrequencyEnum[LoanFrequencyEnum["ANNUAL"] = 1] = "ANNUAL";
1699
- LoanFrequencyEnum[LoanFrequencyEnum["MONTHLY"] = 12] = "MONTHLY";
1700
- LoanFrequencyEnum[LoanFrequencyEnum["FORTNIGHTLY"] = 26] = "FORTNIGHTLY";
1701
- LoanFrequencyEnum[LoanFrequencyEnum["WEEKLY"] = 52] = "WEEKLY";
1702
- })(LoanFrequencyEnum || (LoanFrequencyEnum = {}));
1703
-
1704
1721
  var LoanInterestTypeEnum;
1705
1722
  (function (LoanInterestTypeEnum) {
1706
1723
  LoanInterestTypeEnum[LoanInterestTypeEnum["FIXED_RATE"] = 1] = "FIXED_RATE";
1707
1724
  LoanInterestTypeEnum[LoanInterestTypeEnum["VARIABLE"] = 2] = "VARIABLE";
1708
1725
  })(LoanInterestTypeEnum || (LoanInterestTypeEnum = {}));
1709
1726
 
1710
- var LoanRepaymentFrequencyEnum;
1711
- (function (LoanRepaymentFrequencyEnum) {
1712
- LoanRepaymentFrequencyEnum[LoanRepaymentFrequencyEnum["WEEKLY"] = 1] = "WEEKLY";
1713
- LoanRepaymentFrequencyEnum[LoanRepaymentFrequencyEnum["FORTNIGHTLY"] = 2] = "FORTNIGHTLY";
1714
- LoanRepaymentFrequencyEnum[LoanRepaymentFrequencyEnum["MONTHLY"] = 3] = "MONTHLY";
1715
- })(LoanRepaymentFrequencyEnum || (LoanRepaymentFrequencyEnum = {}));
1716
-
1717
1727
  var LoanRepaymentTypeEnum;
1718
1728
  (function (LoanRepaymentTypeEnum) {
1719
1729
  LoanRepaymentTypeEnum[LoanRepaymentTypeEnum["INTEREST_ONLY"] = 1] = "INTEREST_ONLY";
@@ -3890,14 +3900,6 @@ var IncomeSourceTypeEnum;
3890
3900
  IncomeSourceTypeEnum[IncomeSourceTypeEnum["HOLDING"] = 4] = "HOLDING";
3891
3901
  })(IncomeSourceTypeEnum || (IncomeSourceTypeEnum = {}));
3892
3902
 
3893
- var SalaryForecastFrequencyEnum;
3894
- (function (SalaryForecastFrequencyEnum) {
3895
- SalaryForecastFrequencyEnum[SalaryForecastFrequencyEnum["ANNUAL"] = 1] = "ANNUAL";
3896
- SalaryForecastFrequencyEnum[SalaryForecastFrequencyEnum["MONTHLY"] = 12] = "MONTHLY";
3897
- SalaryForecastFrequencyEnum[SalaryForecastFrequencyEnum["FORTNIGHTLY"] = 26] = "FORTNIGHTLY";
3898
- SalaryForecastFrequencyEnum[SalaryForecastFrequencyEnum["WEEKLY"] = 52] = "WEEKLY";
3899
- })(SalaryForecastFrequencyEnum || (SalaryForecastFrequencyEnum = {}));
3900
-
3901
3903
  class SalaryForecast extends SalaryForecast$1 {
3902
3904
  get grossAmount() {
3903
3905
  return this.netPay + this.tax;
@@ -3907,11 +3909,11 @@ class SalaryForecast extends SalaryForecast$1 {
3907
3909
  }
3908
3910
  get monthlyAmount() {
3909
3911
  switch (this.frequency) {
3910
- case SalaryForecastFrequencyEnum.ANNUAL:
3912
+ case AnnualFrequencyEnum.ANNUAL:
3911
3913
  return this.netPay / FinancialYear.monthsInYear;
3912
- case SalaryForecastFrequencyEnum.FORTNIGHTLY:
3914
+ case AnnualFrequencyEnum.FORTNIGHTLY:
3913
3915
  return this.netPay * FinancialYear.weeksInYear / FinancialYear.monthsInYear / 2;
3914
- case SalaryForecastFrequencyEnum.WEEKLY:
3916
+ case AnnualFrequencyEnum.WEEKLY:
3915
3917
  return this.netPay * FinancialYear.weeksInYear / FinancialYear.monthsInYear;
3916
3918
  default:
3917
3919
  return this.netPay;
@@ -4007,7 +4009,7 @@ class IncomeSourceForecast extends IncomeSourceForecast$1 {
4007
4009
  constructor() {
4008
4010
  super(...arguments);
4009
4011
  this.paygIncome = 0;
4010
- this.frequency = SalaryForecastFrequencyEnum.ANNUAL;
4012
+ this.frequency = AnnualFrequencyEnum.ANNUAL;
4011
4013
  this.isTaxFree = false;
4012
4014
  }
4013
4015
  /**
@@ -10180,9 +10182,9 @@ class Loan extends Loan$1 {
10180
10182
  }
10181
10183
  get monthlyRepaymentAmount() {
10182
10184
  switch (this.repaymentFrequency) {
10183
- case LoanRepaymentFrequencyEnum.WEEKLY:
10185
+ case AnnualFrequencyEnum.WEEKLY:
10184
10186
  return this.repaymentAmount * FinancialYear.weeksInYear / FinancialYear.monthsInYear;
10185
- case LoanRepaymentFrequencyEnum.FORTNIGHTLY:
10187
+ case AnnualFrequencyEnum.FORTNIGHTLY:
10186
10188
  return this.repaymentAmount * FinancialYear.weeksInYear / FinancialYear.monthsInYear / 2;
10187
10189
  default:
10188
10190
  return this.repaymentAmount;
@@ -11357,6 +11359,11 @@ var SharesightPortfolioMessages;
11357
11359
  })(SharesightPortfolioMessages || (SharesightPortfolioMessages = {}));
11358
11360
 
11359
11361
  class BudgetRule extends BudgetRule$1 {
11362
+ constructor() {
11363
+ super(...arguments);
11364
+ this.inCalendar = false;
11365
+ this.frequency = DailyFrequencyEnum.MONTHLY;
11366
+ }
11360
11367
  }
11361
11368
  __decorate([
11362
11369
  Type(() => Budget)
@@ -11364,6 +11371,24 @@ __decorate([
11364
11371
  __decorate([
11365
11372
  Type(() => ChartAccounts)
11366
11373
  ], BudgetRule.prototype, "chartAccounts", void 0);
11374
+ __decorate([
11375
+ Type(() => Date)
11376
+ ], BudgetRule.prototype, "startDate", void 0);
11377
+ __decorate([
11378
+ Type(() => Date)
11379
+ ], BudgetRule.prototype, "endDate", void 0);
11380
+ __decorate([
11381
+ Type(() => BankAccount)
11382
+ ], BudgetRule.prototype, "bankAccount", void 0);
11383
+ __decorate([
11384
+ Type(() => Property)
11385
+ ], BudgetRule.prototype, "property", void 0);
11386
+ __decorate([
11387
+ Type(() => SoleBusiness)
11388
+ ], BudgetRule.prototype, "business", void 0);
11389
+ __decorate([
11390
+ Type(() => IncomeSource)
11391
+ ], BudgetRule.prototype, "incomeSource", void 0);
11367
11392
 
11368
11393
  var YoutubeVideosEnum;
11369
11394
  (function (YoutubeVideosEnum) {
@@ -11405,23 +11430,13 @@ class Budget extends Budget$1 {
11405
11430
  thumbnail: 'income-budget.png',
11406
11431
  videoId: YoutubeVideosEnum.BUDGET_INCOME,
11407
11432
  description: 'Keep track of your income by creating budgets based on income categories!',
11408
- categories: {
11409
- personal: ChartAccountsCategoryEnum.PERSONAL_INCOME,
11410
- property: ChartAccountsCategoryEnum.PROPERTY_INCOME,
11411
- work: ChartAccountsCategoryEnum.WORK_INCOME,
11412
- sole: ChartAccountsCategoryEnum.SOLE_INCOME,
11413
- },
11433
+ categories: INCOME_CATEGORY_BY_TYPE,
11414
11434
  } : {
11415
11435
  name: 'Expense',
11416
11436
  thumbnail: 'expense-budget.png',
11417
11437
  videoId: YoutubeVideosEnum.BUDGET_EXPENSE,
11418
11438
  description: 'Effortlessly monitor your spending by setting budgets for selected expense categories!',
11419
- categories: {
11420
- personal: ChartAccountsCategoryEnum.PERSONAL_EXPENSE,
11421
- property: ChartAccountsCategoryEnum.PROPERTY_EXPENSE,
11422
- work: ChartAccountsCategoryEnum.WORK_EXPENSE,
11423
- sole: ChartAccountsCategoryEnum.SOLE_EXPENSE,
11424
- },
11439
+ categories: EXPENSE_CATEGORY_BY_TYPE,
11425
11440
  };
11426
11441
  }
11427
11442
  isIncome() {
@@ -11441,13 +11456,6 @@ __decorate([
11441
11456
  class BudgetMetadataInterface {
11442
11457
  }
11443
11458
 
11444
- var FinancialGoalPaymentFrequencyEnum;
11445
- (function (FinancialGoalPaymentFrequencyEnum) {
11446
- FinancialGoalPaymentFrequencyEnum[FinancialGoalPaymentFrequencyEnum["MONTHLY"] = 1] = "MONTHLY";
11447
- FinancialGoalPaymentFrequencyEnum[FinancialGoalPaymentFrequencyEnum["FORTNIGHTLY"] = 2] = "FORTNIGHTLY";
11448
- FinancialGoalPaymentFrequencyEnum[FinancialGoalPaymentFrequencyEnum["WEEKLY"] = 3] = "WEEKLY";
11449
- })(FinancialGoalPaymentFrequencyEnum || (FinancialGoalPaymentFrequencyEnum = {}));
11450
-
11451
11459
  var FinancialGoalTypeEnum;
11452
11460
  (function (FinancialGoalTypeEnum) {
11453
11461
  FinancialGoalTypeEnum[FinancialGoalTypeEnum["DEBIT"] = 1] = "DEBIT";
@@ -11466,11 +11474,32 @@ var FinancialGoalStatusEnum;
11466
11474
  class FinancialGoal extends AbstractModel {
11467
11475
  constructor() {
11468
11476
  super(...arguments);
11469
- this.startDate = new Date();
11477
+ this.startDate = moment().startOf('day').toDate();
11478
+ this.paymentFrequency = DailyFrequencyEnum.MONTHLY;
11479
+ }
11480
+ /**
11481
+ * How much user saved so far.
11482
+ */
11483
+ get progress() {
11484
+ return Math.abs(this.bankAccount.currentBalance - this.initialValue);
11485
+ }
11486
+ /**
11487
+ * How much is left to reach the goal from the current balance.
11488
+ */
11489
+ get remaining() {
11490
+ return this.target - this.progress;
11491
+ }
11492
+ /**
11493
+ * How much needs to deposit to achieve the goal from the start
11494
+ */
11495
+ get target() {
11496
+ return Math.abs(this.targetValue - this.initialValue);
11470
11497
  }
11471
- /** Remaining amount to reach the goal */
11472
- getRequiredAmount() {
11473
- return this.targetValue - this.initialValue;
11498
+ /**
11499
+ * How much of the goal is reached in percents.
11500
+ */
11501
+ get progressPercent() {
11502
+ return this.progress / this.target;
11474
11503
  }
11475
11504
  }
11476
11505
  __decorate([
@@ -12843,6 +12872,24 @@ var BudgetMessagesEnum;
12843
12872
  BudgetMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete budgeting?";
12844
12873
  })(BudgetMessagesEnum || (BudgetMessagesEnum = {}));
12845
12874
 
12875
+ class BudgetRuleService extends RestService$1 {
12876
+ constructor() {
12877
+ super(...arguments);
12878
+ this.modelClass = BudgetRule;
12879
+ this.collectionClass = BudgetRuleCollection;
12880
+ this.endpointUri = 'budget-rules';
12881
+ this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
12882
+ }
12883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BudgetRuleService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
12884
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BudgetRuleService, providedIn: 'root' }); }
12885
+ }
12886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BudgetRuleService, decorators: [{
12887
+ type: Injectable,
12888
+ args: [{
12889
+ providedIn: 'root'
12890
+ }]
12891
+ }] });
12892
+
12846
12893
  class FinancialGoalService extends RestService$1 {
12847
12894
  constructor() {
12848
12895
  super(...arguments);
@@ -21383,6 +21430,10 @@ const ENDPOINTS = {
21383
21430
  BUDGETS_POST: new Endpoint('POST', '\\/budgets'),
21384
21431
  BUDGETS_PUT: new Endpoint('PUT', '\\/budgets\\/\\d+'),
21385
21432
  BUDGETS_DELETE: new Endpoint('DELETE', '\\/budgets\\/\\d+'),
21433
+ BUDGET_RULES_GET: new Endpoint('GET', '\\/budget-rules'),
21434
+ BUDGET_RULES_POST: new Endpoint('POST', '\\/budget-rules'),
21435
+ BUDGET_RULES_PUT: new Endpoint('PUT', '\\/budget-rules\\/\\d+'),
21436
+ BUDGET_RULES_DELETE: new Endpoint('DELETE', '\\/budget-rules\\/\\d+'),
21386
21437
  BORROWING_EXPENSES_GET: new Endpoint('GET', '\\/borrowing-expenses'),
21387
21438
  CHARTS_INCOME_GET: new Endpoint('GET', '\\/charts\\/\\incomes'),
21388
21439
  CHARTS_EXPENSES_GET: new Endpoint('GET', '\\/charts\\/\\expenses'),
@@ -22893,6 +22944,24 @@ class BudgetForm extends AbstractForm {
22893
22944
  }
22894
22945
  }
22895
22946
 
22947
+ class BudgetRuleForm extends AbstractForm {
22948
+ constructor(rule) {
22949
+ super({
22950
+ tankType: new FormControl(rule.chartAccounts?.tankType ?? TankTypeEnum.PERSONAL, [Validators.required]),
22951
+ chartAccounts: new FormControl({ value: rule.chartAccounts, disabled: !!rule.chartAccounts?.category }, [Validators.required, RxwebValidators.unique()]),
22952
+ amount: new FormControl(rule.amount, Validators.required),
22953
+ startDate: new FormControl({ value: rule.startDate, disabled: true }),
22954
+ endDate: new FormControl(rule.endDate),
22955
+ inCalendar: new FormControl(rule.inCalendar),
22956
+ frequency: new FormControl(rule.frequency),
22957
+ bankAccount: new FormControl(rule.endDate),
22958
+ property: new FormControl(rule.property),
22959
+ business: new FormControl(rule.business),
22960
+ incomeSource: new FormControl(rule.incomeSource),
22961
+ }, rule);
22962
+ }
22963
+ }
22964
+
22896
22965
  /**
22897
22966
  * general validation rules
22898
22967
  */
@@ -22998,47 +23067,12 @@ class LoanForm extends AbstractForm {
22998
23067
  return;
22999
23068
  }
23000
23069
  const termControl = this.get('term');
23001
- const maxTermValue = LoanMaxNumberOfPaymentsEnum[LoanRepaymentFrequencyEnum[currentRepaymentFrequency]];
23070
+ const maxTermValue = LoanMaxNumberOfPaymentsEnum[AnnualFrequencyEnum[currentRepaymentFrequency]];
23002
23071
  termControl.setValidators([Validators.max(maxTermValue)]);
23003
23072
  termControl.updateValueAndValidity();
23004
23073
  }
23005
23074
  }
23006
23075
 
23007
- class FinancialGoalForm extends AbstractForm {
23008
- constructor(goal = plainToClass(FinancialGoal, {})) {
23009
- super({
23010
- type: new FormControl(goal.type || FinancialGoalTypeEnum.DEBIT, Validators.required),
23011
- name: new FormControl(goal.name, Validators.required),
23012
- bankAccount: new FormControl(goal.bankAccount, Validators.required),
23013
- targetValue: new FormControl(goal.finalValue, Validators.required),
23014
- initialValue: new FormControl({ value: goal.initialValue, disabled: true }, Validators.required),
23015
- finalValue: new FormControl({ value: goal.finalValue, disabled: true }),
23016
- startDate: new FormControl({ value: goal.startDate, disabled: true }, Validators.required),
23017
- endDate: new FormControl(goal.endDate, Validators.required),
23018
- paymentFrequency: new FormControl(goal.paymentFrequency || FinancialGoalPaymentFrequencyEnum.MONTHLY, Validators.required),
23019
- paymentAmount: new FormControl(goal.paymentAmount, Validators.required),
23020
- file: new FormControl(goal.file),
23021
- description: new FormControl(goal.description),
23022
- }, goal);
23023
- this.includeDisabledFields = true;
23024
- this.listenEvents();
23025
- }
23026
- listenEvents() {
23027
- this.listenTypeChanges();
23028
- this.listenBankAccountsChanges();
23029
- }
23030
- listenTypeChanges() {
23031
- this.get('type').valueChanges.subscribe(() => {
23032
- this.get('bankAccount').setValue(null, { onlySelf: true });
23033
- });
23034
- }
23035
- listenBankAccountsChanges() {
23036
- this.get('bankAccount').valueChanges.subscribe((bankAccount) => {
23037
- this.get('initialValue').setValue(bankAccount?.currentBalance);
23038
- });
23039
- }
23040
- }
23041
-
23042
23076
  /**
23043
23077
  * Check if at least one form field is true, otherwise form is invalid.
23044
23078
  * Use with groups of boolean form controls (checkbox, toggle, etc.)
@@ -23272,6 +23306,132 @@ function matchSumValidator(controlsFn, error) {
23272
23306
  };
23273
23307
  }
23274
23308
 
23309
+ const END_DATE_VALIDATION_ERROR = 'Target date must be more than start date';
23310
+ class FinancialGoalForm extends AbstractForm {
23311
+ constructor(goal = plainToClass(FinancialGoal, {})) {
23312
+ super({
23313
+ type: new FormControl({ value: goal.type ?? FinancialGoalTypeEnum.DEBIT, disabled: !!goal.id }, Validators.required),
23314
+ name: new FormControl(goal.name, Validators.required),
23315
+ bankAccount: new FormControl({ value: goal.bankAccount, disabled: !!goal.id }, Validators.required),
23316
+ targetValue: new FormControl({ value: goal.targetValue, disabled: !!goal.id }, [Validators.required, Validators.min(goal.initialValue ?? 0)]),
23317
+ initialValue: new FormControl({ value: goal.initialValue, disabled: true }, Validators.required),
23318
+ finalValue: new FormControl({ value: goal.finalValue, disabled: true }),
23319
+ startDate: new FormControl({ value: goal.startDate, disabled: true }),
23320
+ endDate: new FormControl(goal.endDate, [Validators.required, minDateValidator(goal.startDate, END_DATE_VALIDATION_ERROR)]),
23321
+ paymentFrequency: new FormControl(goal.paymentFrequency, Validators.required),
23322
+ paymentAmount: new FormControl(goal.paymentAmount, Validators.required),
23323
+ file: new FormControl(goal.file),
23324
+ description: new FormControl(goal.description),
23325
+ }, goal);
23326
+ this.listenEvents();
23327
+ // Trigger manual value updates when editing an existing goal
23328
+ // (needed to re-emit payment valueChanges and keep endDate recalculated)
23329
+ if (goal.id) {
23330
+ this.get('paymentFrequency').updateValueAndValidity({ onlySelf: false, emitEvent: true });
23331
+ this.get('paymentAmount').updateValueAndValidity({ onlySelf: false, emitEvent: true });
23332
+ }
23333
+ }
23334
+ listenEvents() {
23335
+ this.listenTypeChanges();
23336
+ this.listenBankAccountChanges();
23337
+ this.listenPaymentChanges();
23338
+ this.listenInitialValueChanges();
23339
+ this.listenEndDateChanges();
23340
+ }
23341
+ listenTypeChanges() {
23342
+ this.get('type').valueChanges.subscribe(() => {
23343
+ this.get('bankAccount').setValue(null, { onlySelf: true });
23344
+ });
23345
+ }
23346
+ listenEndDateChanges() {
23347
+ this.get('endDate').valueChanges
23348
+ .pipe(debounceTime(300))
23349
+ .subscribe(() => {
23350
+ if (this.invalid) {
23351
+ return;
23352
+ }
23353
+ this.get('paymentAmount').setValue(this.calculatePaymentAmount(this.currentValue), { emitEvent: false });
23354
+ });
23355
+ }
23356
+ /**
23357
+ * Watch payment fields and auto-recalculate endDate when form is valid
23358
+ */
23359
+ listenPaymentChanges() {
23360
+ combineLatest({
23361
+ paymentAmount: this.get('paymentAmount').valueChanges,
23362
+ paymentFrequency: this.get('paymentFrequency').valueChanges
23363
+ }).pipe(debounceTime(300))
23364
+ .subscribe(() => {
23365
+ if (this.invalid) {
23366
+ return;
23367
+ }
23368
+ this.get('endDate').setValue(this.calculateEndDate(this.currentValue), { emitEvent: false });
23369
+ });
23370
+ }
23371
+ listenInitialValueChanges() {
23372
+ this.get('initialValue').valueChanges.subscribe(() => {
23373
+ this.get('targetValue').setValidators([Validators.required, Validators.min(this.get('initialValue').value)]);
23374
+ this.get('targetValue').updateValueAndValidity();
23375
+ });
23376
+ }
23377
+ /**
23378
+ * keeps updated initialValue when bankAccount updated. only for add form
23379
+ */
23380
+ listenBankAccountChanges() {
23381
+ this.get('bankAccount').valueChanges.subscribe((bankAccount) => {
23382
+ // @TODO: TT-5394 taxtankit/vik bankAccount?.currentBalance shouldn't be here
23383
+ this.get('initialValue').setValue(bankAccount?.currentBalance);
23384
+ });
23385
+ }
23386
+ /**
23387
+ * Returns total number of deposits needed to fully reach the goal at current paymentAmount.
23388
+ */
23389
+ calculatePaymentsByAmount(goal) {
23390
+ return Math.round(goal.target / goal.paymentAmount);
23391
+ }
23392
+ /**
23393
+ * Derives the final goal completion date by adding all payment periods to the start date.
23394
+ */
23395
+ calculateEndDate(goal) {
23396
+ const start = moment(goal.startDate);
23397
+ const paymentsCount = this.calculatePaymentsByAmount(goal);
23398
+ switch (goal.paymentFrequency) {
23399
+ case DailyFrequencyEnum.WEEKLY:
23400
+ return start.add(paymentsCount, 'weeks').toDate();
23401
+ case DailyFrequencyEnum.FORTNIGHTLY:
23402
+ return start.add(paymentsCount * 2, 'weeks').toDate();
23403
+ case DailyFrequencyEnum.MONTHLY:
23404
+ return start.add(paymentsCount, 'month').toDate();
23405
+ default:
23406
+ return new Date();
23407
+ }
23408
+ }
23409
+ /**
23410
+ * Computes the recurring payment amount required to hit the target by the chosen end date.
23411
+ */
23412
+ calculatePaymentAmount(goal) {
23413
+ const paymentsCount = this.calculatePaymentsByDate(goal);
23414
+ return paymentsCount ? goal.target / this.calculatePaymentsByDate(goal) : goal.target;
23415
+ }
23416
+ /**
23417
+ * Calculates the number of scheduled payments between start and end dates for the selected payment frequency.
23418
+ */
23419
+ calculatePaymentsByDate(goal) {
23420
+ const start = moment(goal.startDate);
23421
+ const end = moment(goal.endDate);
23422
+ switch (goal.paymentFrequency) {
23423
+ case DailyFrequencyEnum.WEEKLY:
23424
+ return end.diff(start, 'weeks');
23425
+ case DailyFrequencyEnum.FORTNIGHTLY:
23426
+ return Math.round(end.diff(start, 'weeks') / 2);
23427
+ case DailyFrequencyEnum.MONTHLY:
23428
+ return end.diff(start, 'months');
23429
+ default:
23430
+ return 0;
23431
+ }
23432
+ }
23433
+ }
23434
+
23275
23435
  class FirmForm extends AbstractForm {
23276
23436
  constructor(firm) {
23277
23437
  super({
@@ -26626,5 +26786,5 @@ var MessagesEnum;
26626
26786
  * Generated bundle index. Do not edit.
26627
26787
  */
26628
26788
 
26629
- export { ADBLOCK_ERROR_HTML, ADBLOCK_ERROR_HTML_VALUE, AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupItemStatusEnum, AccountSetupItemsEnum, AccountSetupService, AdblockDetectorService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AppPercentPipe, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, AussieAppointment, AussieAppointmentForm, AussieBroker, AussieConfirmationForm, AussieService, AussieStore, AussieStoreForm, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionComment, BankTransactionCommentForm, BankTransactionCommentMessagesEnum, BankTransactionCommentService, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetCollection, BudgetForm, BudgetMessagesEnum, BudgetMetadataInterface, BudgetRule, BudgetRuleCollection, BudgetService, BudgetTypeEnum, BusinessChartAccountsEnum, BusinessResolver, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartAccountsValueCollection, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CoreModule, CorelogicMessagesEnum, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DateFormatsEnum, DateRange, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderCollection, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialGoal, FinancialGoalCollection, FinancialGoalForm, FinancialGoalPaymentFrequencyEnum, FinancialGoalService, FinancialGoalStatusEnum, FinancialGoalTypeEnum, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingExpenseForm, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, InvoiceTransactionsService, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MfaDetails, MfaDetailsForm, MfaDetailsMessagesEnum, MfaDetailsService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorTransactionService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, REPORTS, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SharesightDetails, SharesightDetailsMessagesEnum, SharesightDetailsService, SharesightPortfolio, SharesightPortfolioMessages, SharesightPortfolioService, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsResolver, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, TimezoneEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TreeNodeData, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, YoutubeVideosEnum, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, nameValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
26789
+ export { ADBLOCK_ERROR_HTML, ADBLOCK_ERROR_HTML_VALUE, AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupItemStatusEnum, AccountSetupItemsEnum, AccountSetupService, AdblockDetectorService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AppPercentPipe, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, AussieAppointment, AussieAppointmentForm, AussieBroker, AussieConfirmationForm, AussieService, AussieStore, AussieStoreForm, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionComment, BankTransactionCommentForm, BankTransactionCommentMessagesEnum, BankTransactionCommentService, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetCollection, BudgetForm, BudgetMessagesEnum, BudgetMetadataInterface, BudgetRule, BudgetRuleCollection, BudgetRuleForm, BudgetRuleService, BudgetService, BudgetTypeEnum, BusinessChartAccountsEnum, BusinessResolver, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartAccountsValueCollection, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CoreModule, CorelogicMessagesEnum, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DailyFrequencyEnum, DateFormatsEnum, DateRange, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderCollection, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EXPENSE_CATEGORY_BY_TYPE, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialGoal, FinancialGoalCollection, FinancialGoalForm, FinancialGoalService, FinancialGoalStatusEnum, FinancialGoalTypeEnum, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingExpenseForm, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, INCOME_CATEGORY_BY_TYPE, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, InvoiceTransactionsService, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MfaDetails, MfaDetailsForm, MfaDetailsMessagesEnum, MfaDetailsService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorTransactionService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, REPORTS, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SharesightDetails, SharesightDetailsMessagesEnum, SharesightDetailsService, SharesightPortfolio, SharesightPortfolioMessages, SharesightPortfolioService, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsResolver, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, TimezoneEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TreeNodeData, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, YoutubeVideosEnum, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, nameValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
26630
26790
  //# sourceMappingURL=taxtank-core.mjs.map