taxtank-core 0.21.9 → 0.21.12

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.
Files changed (60) hide show
  1. package/bundles/taxtank-core.umd.js +238 -150
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/db/Enums/chart-accounts-heading-list.enum.js +8 -1
  4. package/esm2015/lib/db/Models/bank/bank-account.js +1 -1
  5. package/esm2015/lib/db/Models/depreciation/depreciation.js +1 -1
  6. package/esm2015/lib/db/Models/sole/sole-business-allocation.js +4 -0
  7. package/esm2015/lib/db/Models/sole/sole-business-loss.js +4 -0
  8. package/esm2015/lib/db/Models/sole/sole-business.js +4 -0
  9. package/esm2015/lib/db/Models/sole/sole-contact.js +4 -0
  10. package/esm2015/lib/db/Models/sole/sole-forecast.js +1 -1
  11. package/esm2015/lib/db/Models/sole/sole-invoice-item.js +4 -0
  12. package/esm2015/lib/db/Models/sole/sole-invoice-template.js +4 -0
  13. package/esm2015/lib/db/Models/sole/sole-invoice.js +4 -0
  14. package/esm2015/lib/db/Models/transaction/transaction.js +1 -1
  15. package/esm2015/lib/db/Models/vehicle/vehicle-claim.js +1 -1
  16. package/esm2015/lib/db/Models/vehicle/vehicle.js +1 -1
  17. package/esm2015/lib/forms/abstract.form.js +6 -1
  18. package/esm2015/lib/forms/bank/bank-account/bank-account-add-manual.form.js +9 -42
  19. package/esm2015/lib/forms/bank/bank-account/bank-account-allocation.form.js +31 -0
  20. package/esm2015/lib/forms/bank/bank-account/bank-account-import.form.js +4 -30
  21. package/esm2015/lib/forms/bank/bank-account/bank-account-properties.form.js +28 -7
  22. package/esm2015/lib/forms/index.js +2 -1
  23. package/esm2015/lib/forms/report/my-tax/my-tax-deductions.form.js +9 -3
  24. package/esm2015/lib/models/bank/bank-account.js +14 -4
  25. package/esm2015/lib/models/logbook/vehicle-claim.js +6 -3
  26. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.js +10 -4
  27. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +15 -15
  28. package/esm2015/lib/models/report/my-tax/my-tax-estimate/my-tax-estimate.js +3 -3
  29. package/esm2015/lib/models/report/my-tax/my-tax-interest/my-tax-interest.js +2 -2
  30. package/esm2015/lib/models/report/my-tax/my-tax-rent/my-tax-rent.js +33 -9
  31. package/esm2015/lib/services/event/sse.service.js +2 -1
  32. package/esm2015/lib/validators/fields-sum.validator.js +26 -0
  33. package/fesm2015/taxtank-core.js +221 -145
  34. package/fesm2015/taxtank-core.js.map +1 -1
  35. package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +7 -0
  36. package/lib/db/Models/bank/bank-account.d.ts +2 -2
  37. package/lib/db/Models/depreciation/depreciation.d.ts +2 -0
  38. package/lib/db/Models/sole/sole-business-allocation.d.ts +9 -0
  39. package/lib/db/Models/sole/sole-business-loss.d.ts +9 -0
  40. package/lib/db/Models/sole/sole-business.d.ts +26 -0
  41. package/lib/db/Models/sole/sole-contact.d.ts +17 -0
  42. package/lib/db/Models/sole/sole-invoice-item.d.ts +12 -0
  43. package/lib/db/Models/sole/sole-invoice-template.d.ts +10 -0
  44. package/lib/db/Models/sole/sole-invoice.d.ts +18 -0
  45. package/lib/db/Models/transaction/transaction.d.ts +2 -0
  46. package/lib/db/Models/vehicle/vehicle-claim.d.ts +2 -2
  47. package/lib/db/Models/vehicle/vehicle.d.ts +0 -2
  48. package/lib/forms/abstract.form.d.ts +4 -0
  49. package/lib/forms/bank/bank-account/bank-account-add-manual.form.d.ts +2 -6
  50. package/lib/forms/bank/bank-account/bank-account-allocation.form.d.ts +7 -0
  51. package/lib/forms/bank/bank-account/bank-account-import.form.d.ts +2 -8
  52. package/lib/forms/bank/bank-account/bank-account-properties.form.d.ts +1 -0
  53. package/lib/forms/index.d.ts +1 -0
  54. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts +1 -1
  55. package/lib/models/bank/bank-account.d.ts +2 -0
  56. package/lib/models/logbook/vehicle-claim.d.ts +1 -0
  57. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts +11 -1
  58. package/lib/services/event/sse.service.d.ts +1 -0
  59. package/lib/validators/fields-sum.validator.d.ts +8 -0
  60. package/package.json +1 -1
@@ -21,7 +21,7 @@ import { throwError as throwError$1 } from 'rxjs/internal/observable/throwError'
21
21
  import cloneDeep$1 from 'lodash/cloneDeep';
22
22
  import compact from 'lodash/compact';
23
23
  import { DateRange } from 'moment-range';
24
- import { Validators, FormGroup, FormControl, FormArray } from '@angular/forms';
24
+ import { Validators, FormGroup, FormArray, FormControl } from '@angular/forms';
25
25
  import fromPairs from 'lodash/fromPairs';
26
26
  import _ from 'lodash';
27
27
  import { EventSourcePolyfill } from 'event-source-polyfill/src/eventsource.min.js';
@@ -2488,19 +2488,29 @@ class BankAccount extends BankAccount$1 {
2488
2488
  * check if bank account related to work tank
2489
2489
  */
2490
2490
  isWorkTank() {
2491
- return this.tankType === TankTypeEnum.WORK;
2491
+ return !this.isPropertyTank() && !this.isSoleTank();
2492
2492
  }
2493
2493
  /**
2494
2494
  * check if bank account related to work tank
2495
2495
  */
2496
2496
  isPropertyTank() {
2497
- return this.tankType === TankTypeEnum.PROPERTY;
2497
+ return !!this.bankAccountProperties.length;
2498
2498
  }
2499
2499
  /**
2500
2500
  * check if bank account related to sole tank
2501
2501
  */
2502
2502
  isSoleTank() {
2503
- return this.tankType === TankTypeEnum.SOLE;
2503
+ return !!this.businessAllocations.length;
2504
+ }
2505
+ get tankType() {
2506
+ switch (true) {
2507
+ case this.isPropertyTank():
2508
+ return TankTypeEnum.PROPERTY;
2509
+ case this.isSoleTank():
2510
+ return TankTypeEnum.SOLE;
2511
+ default:
2512
+ return TankTypeEnum.WORK;
2513
+ }
2504
2514
  }
2505
2515
  /**
2506
2516
  * Get Bank account property by id
@@ -5568,6 +5578,13 @@ var ChartAccountsHeadingListEnum;
5568
5578
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["HOME_OFFICE_RUNNING"] = 17] = "HOME_OFFICE_RUNNING";
5569
5579
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["TOOLS_EQUIPMENT"] = 18] = "TOOLS_EQUIPMENT";
5570
5580
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["HOME_OFFICE_OCCUPANCY"] = 19] = "HOME_OFFICE_OCCUPANCY";
5581
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["AWARD_OVERTIME_MEAL_ALLOWANCE_EXPENSE"] = 20] = "AWARD_OVERTIME_MEAL_ALLOWANCE_EXPENSE";
5582
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["NEWSPAPER"] = 21] = "NEWSPAPER";
5583
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["PRINTING_POSTAGE_STATIONERY"] = 22] = "PRINTING_POSTAGE_STATIONERY";
5584
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["SEMINARS_ETC"] = 23] = "SEMINARS_ETC";
5585
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["TELEPHONE"] = 24] = "TELEPHONE";
5586
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["UNION_FEES"] = 25] = "UNION_FEES";
5587
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OTHER"] = 26] = "OTHER";
5571
5588
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DONATIONS"] = 27] = "DONATIONS";
5572
5589
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["PSI"] = 30] = "PSI";
5573
5590
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["BONUSES"] = 34] = "BONUSES";
@@ -6933,10 +6950,13 @@ class VehicleClaim extends VehicleClaim$1 {
6933
6950
  return this.method === VehicleClaimMethodEnum.KMS;
6934
6951
  }
6935
6952
  isWorkTank() {
6936
- return this.tankType === TankTypeEnum.WORK;
6953
+ return !this.business;
6937
6954
  }
6938
6955
  isSoleTank() {
6939
- return this.tankType === TankTypeEnum.SOLE;
6956
+ return !!this.business;
6957
+ }
6958
+ get tankType() {
6959
+ return this.isSoleTank() ? TankTypeEnum.SOLE : TankTypeEnum.WORK;
6940
6960
  }
6941
6961
  /**
6942
6962
  * Claim amount for KLMs method. Exists only for KLMs method.
@@ -7430,14 +7450,20 @@ const DEDUCTION_CATEGORIES = {
7430
7450
  workRelatedClothingExpenses: [
7431
7451
  ChartAccountsHeadingListEnum.COMPULSORY_WORK_UNIFORM,
7432
7452
  ChartAccountsHeadingListEnum.PROTECTION_CLOTHING,
7433
- ChartAccountsHeadingListEnum.OCCUPATIONAL_SPECIFIC_CLOTHING,
7434
- ChartAccountsHeadingListEnum.SELF_EDUCATIONAL_EXPENSES
7453
+ ChartAccountsHeadingListEnum.OCCUPATIONAL_SPECIFIC_CLOTHING
7435
7454
  ],
7436
7455
  otherIncomeRelatedExpenses: [
7437
7456
  ChartAccountsHeadingListEnum.OTHER_WORK_RELATED_EXPENSES,
7438
7457
  ChartAccountsHeadingListEnum.SUBSCRIPTIONS,
7439
7458
  ChartAccountsHeadingListEnum.HOME_OFFICE_RUNNING,
7440
- ChartAccountsHeadingListEnum.HOME_OFFICE_OCCUPANCY
7459
+ ChartAccountsHeadingListEnum.HOME_OFFICE_OCCUPANCY,
7460
+ ChartAccountsHeadingListEnum.AWARD_OVERTIME_MEAL_ALLOWANCE_EXPENSE,
7461
+ ChartAccountsHeadingListEnum.NEWSPAPER,
7462
+ ChartAccountsHeadingListEnum.PRINTING_POSTAGE_STATIONERY,
7463
+ ChartAccountsHeadingListEnum.SEMINARS_ETC,
7464
+ ChartAccountsHeadingListEnum.TELEPHONE,
7465
+ ChartAccountsHeadingListEnum.UNION_FEES,
7466
+ ChartAccountsHeadingListEnum.OTHER
7441
7467
  ],
7442
7468
  workRelatedSelfEducationExpenses: [
7443
7469
  ChartAccountsHeadingListEnum.SELF_EDUCATIONAL_EXPENSES
@@ -7513,45 +7539,45 @@ class MyTaxDeductions {
7513
7539
  this.workRelatedClothingExpenses = this.transactions
7514
7540
  .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.workRelatedClothingExpenses);
7515
7541
  this.personalSuperContributions = this.transactions
7516
- .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.personalSuperContributions);
7542
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.personalSuperContributions);
7517
7543
  this.workRelatedSelfEducationExpenses = this.transactions
7518
7544
  .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.workRelatedSelfEducationExpenses);
7519
7545
  this.vehicleExpensesTotalAmount = this.getVehicleExpensesTotalAmount();
7520
7546
  this.workRelatedTravelExpensesTotalAmount = this.transactions
7521
7547
  .filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.WORK_RELATED_TRAVEL_EXPENSES)
7522
- .sumBy('amount');
7548
+ .sumBy('claimAmount');
7523
7549
  this.workRelatedClothingType = this.workRelatedClothingExpenses.length ? DeductionClothingTypeEnum.COMPULSORY_C : null;
7524
- this.workRelatedClothingTotalAmount = this.workRelatedClothingExpenses.sumBy('amount');
7550
+ this.workRelatedClothingTotalAmount = this.workRelatedClothingExpenses.sumBy('claimAmount');
7525
7551
  this.workRelatedSelfEducationType = this.workRelatedSelfEducationExpenses.length ?
7526
7552
  DeductionSelfEducationTypeEnum.IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K : null;
7527
- this.workRelatedSelfEducationTotalAmount = this.workRelatedSelfEducationExpenses.sumBy('amount');
7553
+ this.workRelatedSelfEducationTotalAmount = this.workRelatedSelfEducationExpenses.sumBy('claimAmount');
7528
7554
  this.lowValuePoolDeductionTotalAmount = this.depreciations.getByTankType(TankTypeEnum.WORK)
7529
7555
  .getLowValuePoolDepreciations().sumBy('claimAmount');
7530
7556
  this.interestExpensesTotalAmount = this.transactions
7531
7557
  .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.interestExpenses)
7532
- .sumBy('amount');
7558
+ .sumBy('claimAmount');
7533
7559
  this.dividendExpensesTotalAmount = this.transactions
7534
7560
  .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.dividendExpenses)
7535
- .sumBy('amount');
7561
+ .sumBy('claimAmount');
7536
7562
  this.donationsTotalAmount = this.transactions
7537
7563
  .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.donations)
7538
- .sumBy('amount');
7564
+ .sumBy('claimAmount');
7539
7565
  this.interestsChargedByATOTotalAmount = this.transactions
7540
7566
  .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.interestsChargedByATO)
7541
- .sumBy('amount');
7567
+ .sumBy('claimAmount');
7542
7568
  this.litigationCostsTotalAmount = this.transactions
7543
7569
  .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.litigationCosts)
7544
- .sumBy('amount');
7570
+ .sumBy('claimAmount');
7545
7571
  this.otherManagingCostsTotalAmount = this.transactions
7546
7572
  .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.otherManagingCosts)
7547
- .sumBy('amount');
7548
- this.personalSuperContributionsTotalAmount = this.personalSuperContributions.sumBy('amount');
7573
+ .sumBy('claimAmount');
7574
+ this.personalSuperContributionsTotalAmount = this.personalSuperContributions.sumBy('claimAmount');
7549
7575
  this.forestryManagedInvestmentSchemesDeductionsTotalAmount = this.transactions
7550
7576
  .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.forestryManagedInvestmentSchemesDeductions)
7551
- .sumBy('amount');
7577
+ .sumBy('claimAmount');
7552
7578
  this.otherDeductionsTotalAmount = this.transactions
7553
7579
  .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.otherDeductions)
7554
- .sumBy('amount');
7580
+ .sumBy('claimAmount');
7555
7581
  }
7556
7582
  getVehicleExpensesTotalAmount() {
7557
7583
  var _a;
@@ -7570,7 +7596,7 @@ class MyTaxDeductions {
7570
7596
  setOtherWorkRelatedExpensesTotalAmount() {
7571
7597
  const otherIncomeRelatedExpenses = this.transactions
7572
7598
  .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.otherIncomeRelatedExpenses);
7573
- this.otherWorkRelatedExpensesTotalAmount = Math.abs(otherIncomeRelatedExpenses.sumBy('amount')) +
7599
+ this.otherWorkRelatedExpensesTotalAmount = -Math.abs(otherIncomeRelatedExpenses.sumBy('claimAmount')) +
7574
7600
  this.depreciations.filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.TOOLS_EQUIPMENT).sumBy('claimAmount');
7575
7601
  }
7576
7602
  }
@@ -7624,8 +7650,8 @@ class MyTaxEstimate {
7624
7650
  const taxOffsetsReportItem = summarySection.items.findBy('taxReturnCategory.id', TaxReturnCategoryListEnum.TAX_OFFSETS);
7625
7651
  const lowMiddleIncomeTaxOffsets = this.getLowMiddleIncomeTaxOffsets(taxOffsetsReportItem);
7626
7652
  const taxPayable = grossTaxPayableReportItem.items.findBy('taxReturnCategory.id', TaxReturnCategoryListEnum.TAX_ON_TAXABLE_INCOME).amount;
7627
- const medicareLevy = medicareReportItem.details.findBy('name', 'Medicare Levy Surcharge').amount;
7628
- const medicareLevySurcharge = medicareReportItem.details.findBy('name', 'Medicare Levy (based on single)').amount;
7653
+ const medicareLevy = medicareReportItem.details.findBy('name', 'Medicare Levy (based on single)').amount;
7654
+ const medicareLevySurcharge = medicareReportItem.details.findBy('name', 'Medicare Levy Surcharge').amount;
7629
7655
  const taxCredits = summarySection.items.findBy('taxReturnCategory.id', TaxReturnCategoryListEnum.TAX_CREDITS).amount;
7630
7656
  const taxOffsets = this.getTaxOffsets(taxOffsetsReportItem.amount, lowMiddleIncomeTaxOffsets);
7631
7657
  return plainToClass(MyTaxEstimate, {
@@ -7730,7 +7756,7 @@ class MyTaxInterest {
7730
7756
  this.interestPaidTransactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.ATO_INTEREST_PAID);
7731
7757
  this.interestEarnedTotalAmount = this.interestEarnedTransactions.sumBy('amount');
7732
7758
  this.interestEarnedTotalTax = this.interestEarnedTransactions.sumBy('tax');
7733
- this.interestPaidTotalAmount = this.interestEarnedTransactions.sumBy('amount');
7759
+ this.interestPaidTotalAmount = this.interestPaidTransactions.sumBy('amount');
7734
7760
  }
7735
7761
  }
7736
7762
 
@@ -7824,26 +7850,49 @@ class MyTaxPartnershipsAndTrusts {
7824
7850
  }
7825
7851
 
7826
7852
  class MyTaxRent {
7827
- constructor(transactions, depreciations) {
7853
+ constructor(transactions, depreciations, taxSummary) {
7828
7854
  this.propertyExpenses = transactions.getPropertyTransactions().getExpenseTransactions();
7855
+ this.taxSummaryPropertySection = taxSummary.property;
7829
7856
  this.grossRentAmount = transactions
7857
+ .getPropertyTransactions()
7830
7858
  .getIncomeTransactions()
7831
7859
  .filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)
7832
- .sumBy('amount') +
7833
- transactions.
7834
- getIncomeTransactions()
7860
+ .sumBy('claimAmount') +
7861
+ transactions
7862
+ .getPropertyTransactions()
7863
+ .getIncomeTransactions()
7835
7864
  .filterBy('chartAccounts.id', ChartAccountsListEnum.OTHER_RENTAL_INCOME)
7836
- .sumBy('amount');
7865
+ .sumBy('claimAmount');
7837
7866
  this.interestDeductionsAmount = Math.abs(transactions.getInterestTransactions().sumBy('amount'));
7838
7867
  this.capitalWorksDeductionsAmount = Math.abs(depreciations.getCapitalDepreciations().sumBy('claimAmount'));
7839
- this.otherRentalDeductionsAmount = Math.abs(depreciations.getAssets().sumBy('claimAmount') +
7840
- depreciations.getBorrowingExpenseDepreciations().sumBy('claimAmount') +
7841
- this.propertyExpenses.sumBy('amount'));
7868
+ this.otherRentalDeductionsAmount = this.calculateOtherRentalDeductionsAmount();
7869
+ /**
7870
+ * @Todo Vik uncomment when task TT-2009 will be implemented
7871
+ */
7872
+ // this.otherRentalDeductionsAmount = depreciations.getByTankType(TankTypeEnum.PROPERTY).getAssets().claimAmount +
7873
+ // depreciations.getByTankType(TankTypeEnum.PROPERTY).getBorrowingExpenseDepreciations().claimAmount +
7874
+ // Math.abs(this.propertyExpenses.sumBy('claimAmount'));
7842
7875
  this.netRent = this.grossRentAmount -
7843
7876
  this.interestDeductionsAmount -
7844
7877
  this.capitalWorksDeductionsAmount -
7845
7878
  this.otherRentalDeductionsAmount;
7846
7879
  }
7880
+ /**
7881
+ * @Todo Vik remove when TT-2009 will be implemented.
7882
+ * We use tax summary data here because claim amount from depreciation is different
7883
+ * from the claim amount that we get from tax summary (depreciation claim amount is not affected by property share,
7884
+ * property contract date, e.t.c.). Details in the TT-2009 task
7885
+ */
7886
+ calculateOtherRentalDeductionsAmount() {
7887
+ var _a, _b, _c;
7888
+ const plantAndEquipmentAmount = Math.abs(((_a = this.taxSummaryPropertySection.items
7889
+ .findBy('taxReturnCategory.id', TaxReturnCategoryListEnum.DEPRECIATION)) === null || _a === void 0 ? void 0 : _a.amount) || 0);
7890
+ const borrowingExpensesAmount = Math.abs(((_b = this.taxSummaryPropertySection.items
7891
+ .findBy('taxReturnCategory.id', TaxReturnCategoryListEnum.BORROWING_EXPENSES)) === null || _b === void 0 ? void 0 : _b.amount) || 0);
7892
+ const otherRentalDeductionsAmount = Math.abs(((_c = this.taxSummaryPropertySection.items
7893
+ .findBy('taxReturnCategory.id', TaxReturnCategoryListEnum.OTHER_RENTAL_DEDUCTIONS)) === null || _c === void 0 ? void 0 : _c.amount) || 0);
7894
+ return +Math.floor(plantAndEquipmentAmount + borrowingExpensesAmount + otherRentalDeductionsAmount).toFixed(2);
7895
+ }
7847
7896
  }
7848
7897
 
7849
7898
  /**
@@ -9640,6 +9689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
9640
9689
 
9641
9690
  /**
9642
9691
  * server sent events service
9692
+ * https://symfony.com/doc/current/mercure.html
9643
9693
  */
9644
9694
  class SseService {
9645
9695
  constructor(zone, jwtService, environment) {
@@ -12566,6 +12616,7 @@ function taxReviewFilterPredicate(data, filter) {
12566
12616
 
12567
12617
  /**
12568
12618
  * Abstract form class
12619
+ * @TODO rename to AbstractFormGroup
12569
12620
  */
12570
12621
  class AbstractForm extends FormGroup {
12571
12622
  constructor(controls, model, validatorOrOpts, asyncValidator) {
@@ -12589,51 +12640,105 @@ class AbstractForm extends FormGroup {
12589
12640
  this.onSubmit.emit(model);
12590
12641
  return model;
12591
12642
  }
12643
+ addControl(name, control, options) {
12644
+ super.addControl(name, control, options);
12645
+ return this;
12646
+ }
12592
12647
  createModelInstance(data = {}) {
12593
12648
  return plainToClass(this.modelClass, data);
12594
12649
  }
12595
12650
  }
12596
12651
 
12652
+ function conditionalValidator(condition, validator) {
12653
+ return function (control) {
12654
+ revalidateOnChanges(control);
12655
+ if (control && control.parent) {
12656
+ if (condition(control.parent)) {
12657
+ return validator(control);
12658
+ }
12659
+ }
12660
+ return null;
12661
+ };
12662
+ }
12597
12663
  /**
12598
- * Form with bank account loan details
12664
+ * Conditional validator depends on other fields and should be updated on each form value change
12599
12665
  */
12600
- class BankAccountLoanForm extends AbstractForm {
12601
- constructor(loan = plainToClass(Loan, {})) {
12602
- super({
12603
- type: new FormControl(loan.type, Validators.required),
12604
- amount: new FormControl(loan.amount, Validators.required),
12605
- repaymentType: new FormControl(loan.repaymentType, Validators.required),
12606
- interestRate: new FormControl(loan.interestRate, [Validators.required, Validators.min(0), Validators.max(100)]),
12607
- interestType: new FormControl(loan.interestType, Validators.required),
12608
- availableRedraw: new FormControl(loan.availableRedraw, Validators.required),
12609
- commencementDate: new FormControl(loan.commencementDate, Validators.required),
12610
- repaymentAmount: new FormControl(loan.repaymentAmount, Validators.required),
12611
- repaymentFrequency: new FormControl(loan.repaymentFrequency, Validators.required)
12612
- }, loan);
12666
+ function revalidateOnChanges(control) {
12667
+ if (control && control.parent && !control['_revalidateOnChanges']) {
12668
+ control['_revalidateOnChanges'] = true;
12669
+ control.parent.valueChanges.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)))
12670
+ .subscribe(() => {
12671
+ control.updateValueAndValidity({ emitEvent: false });
12672
+ });
12613
12673
  }
12674
+ return;
12675
+ }
12676
+
12677
+ /**
12678
+ * Validator that check if sum amount of provided fields is greater than provided sum
12679
+ * @param field to check in each formArray element
12680
+ * @param summary to compare with fields sum
12681
+ * @param fieldAlias to show it in error message
12682
+ */
12683
+ function fieldsSumValidator(field, summary = 100, fieldAlias) {
12684
+ return (formArray) => {
12685
+ // calculate sum of desired fields in formArray control
12686
+ const fieldsSum = formArray['controls']
12687
+ .reduce((acc, group) => acc += group.get(field).value, 0);
12688
+ if (fieldsSum <= summary) {
12689
+ return null;
12690
+ }
12691
+ else {
12692
+ return {
12693
+ fieldsSum: {
12694
+ name: field,
12695
+ alias: fieldAlias,
12696
+ summary
12697
+ }
12698
+ };
12699
+ }
12700
+ };
12614
12701
  }
12615
12702
 
12616
12703
  /**
12617
12704
  * Form array with bank account properties
12705
+ * @TODO create AbstractFormArray
12618
12706
  */
12619
12707
  class BankAccountPropertiesForm extends FormArray {
12620
12708
  constructor(bankAccountProperties = [plainToClass(BankAccountProperty, {})]) {
12621
12709
  super(bankAccountProperties.map((bankAccountProperty) => {
12622
12710
  return new FormGroup({
12623
- property: new FormControl(bankAccountProperty.property, Validators.required),
12711
+ property: new FormControl(bankAccountProperty === null || bankAccountProperty === void 0 ? void 0 : bankAccountProperty.property, Validators.required),
12624
12712
  percent: new FormControl(bankAccountProperty.percent, Validators.required)
12625
12713
  });
12626
- }));
12714
+ }), [
12715
+ conditionalValidator((control) => control.get('tankType').value === TankTypeEnum.PROPERTY, Validators.required),
12716
+ fieldsSumValidator('percent', 100)
12717
+ ]);
12627
12718
  }
12628
12719
  add() {
12629
12720
  this.push(new FormGroup({
12630
12721
  property: new FormControl(null, Validators.required),
12631
- percent: new FormControl({
12632
- value: 100,
12633
- disabled: !this.at(0).contains('percent')
12634
- }, Validators.required)
12635
- }));
12636
- }
12722
+ // @TODO disable for loans
12723
+ percent: new FormControl({ value: 100, disabled: !this.at(0).contains('percent') }, Validators.required),
12724
+ // @TODO enable for loans
12725
+ // amount: new FormControl(
12726
+ // {value: this.bankAccount.currentBalance * bankAccountProperty.percent / 100},
12727
+ // [Validators.required, Validators.max(Math.abs(this.bankAccount.currentBalance))]
12728
+ // ),
12729
+ }));
12730
+ }
12731
+ // @TODO enable for loans
12732
+ // /**
12733
+ // * Recalculate property percentage for current property form group and round to no more than 3 decimal places
12734
+ // * @param amount: new control value
12735
+ // * @param currentPropertyGroup for which amount will be recalculated
12736
+ // */
12737
+ // recalculatePropertyPercentage(amount: number, currentPropertyGroup: FormGroup): void {
12738
+ // currentPropertyGroup.get('percent').setValue(
12739
+ // roundTo(amount / this.bankAccount.currentBalance, 3)
12740
+ // );
12741
+ // }
12637
12742
  enablePercent() {
12638
12743
  this.controls.forEach((propertyFormGroup) => {
12639
12744
  propertyFormGroup.get('percent').enable();
@@ -12646,36 +12751,23 @@ class BankAccountPropertiesForm extends FormArray {
12646
12751
  }
12647
12752
  }
12648
12753
 
12649
- /**
12650
- * Form is using for import basiq bank accounts.
12651
- * Basiq accounts has all data except tank type, properties and loan partially
12652
- */
12653
- class BankAccountImportForm extends AbstractForm {
12754
+ class BankAccountAllocationForm extends AbstractForm {
12654
12755
  constructor(bankAccount) {
12655
12756
  super({
12656
- tankType: new FormControl(bankAccount.tankType, Validators.required),
12657
- }, bankAccount);
12658
- if (bankAccount.isLoan()) {
12659
- this.addControl('loan', new BankAccountLoanForm(bankAccount.loan));
12757
+ tankType: new FormControl(bankAccount ? bankAccount.tankType : null, Validators.required),
12758
+ }, plainToClass(BankAccount, bankAccount || {}));
12759
+ this.bankAccount = bankAccount;
12760
+ if (bankAccount === null || bankAccount === void 0 ? void 0 : bankAccount.isPropertyTank()) {
12761
+ this.addControl('bankAccountProperties', new BankAccountPropertiesForm(bankAccount.bankAccountProperties));
12660
12762
  }
12661
- // basiq account import form should be disabled (unchecked) by default
12662
- this.disable();
12663
- this.listenEvents();
12664
- }
12665
- listenEvents() {
12666
- this.listenTankTypeChanges();
12763
+ this.watchTankType();
12667
12764
  }
12668
- /**
12669
- * Add/Remove bank account properties form depends on selected tank type
12670
- */
12671
- listenTankTypeChanges() {
12765
+ watchTankType() {
12672
12766
  this.get('tankType').valueChanges.subscribe((tankType) => {
12767
+ var _a;
12768
+ // @TODO vik add businessAllocation
12673
12769
  if (tankType === TankTypeEnum.PROPERTY) {
12674
- this.addControl('bankAccountProperties', new BankAccountPropertiesForm());
12675
- // property percent allowed only for loan bank accounts
12676
- if (!this.contains('loan')) {
12677
- this.get('bankAccountProperties').disablePercent();
12678
- }
12770
+ this.addControl('bankAccountProperties', new BankAccountPropertiesForm((_a = this.bankAccount) === null || _a === void 0 ? void 0 : _a.bankAccountProperties));
12679
12771
  }
12680
12772
  else {
12681
12773
  this.removeControl('bankAccountProperties');
@@ -12684,24 +12776,56 @@ class BankAccountImportForm extends AbstractForm {
12684
12776
  }
12685
12777
  }
12686
12778
 
12779
+ /**
12780
+ * Form with bank account loan details
12781
+ */
12782
+ class BankAccountLoanForm extends AbstractForm {
12783
+ constructor(loan = plainToClass(Loan, {})) {
12784
+ super({
12785
+ type: new FormControl(loan.type, Validators.required),
12786
+ amount: new FormControl(loan.amount, Validators.required),
12787
+ repaymentType: new FormControl(loan.repaymentType, Validators.required),
12788
+ interestRate: new FormControl(loan.interestRate, [Validators.required, Validators.min(0), Validators.max(100)]),
12789
+ interestType: new FormControl(loan.interestType, Validators.required),
12790
+ availableRedraw: new FormControl(loan.availableRedraw, Validators.required),
12791
+ commencementDate: new FormControl(loan.commencementDate, Validators.required),
12792
+ repaymentAmount: new FormControl(loan.repaymentAmount, Validators.required),
12793
+ repaymentFrequency: new FormControl(loan.repaymentFrequency, Validators.required)
12794
+ }, loan);
12795
+ }
12796
+ }
12797
+
12798
+ /**
12799
+ * Form is using for import basiq bank accounts.
12800
+ * Basiq accounts has all data except tank type, properties and loan partially
12801
+ */
12802
+ class BankAccountImportForm extends BankAccountAllocationForm {
12803
+ constructor(bankAccount) {
12804
+ super(bankAccount);
12805
+ if (bankAccount.isLoan()) {
12806
+ this.addControl('loan', new BankAccountLoanForm(bankAccount.loan));
12807
+ }
12808
+ // basiq account import form should be disabled (unchecked) by default
12809
+ this.disable();
12810
+ }
12811
+ }
12812
+
12687
12813
  /**
12688
12814
  * Form is using for single manual bank account creation (not Basiq)
12689
12815
  */
12690
- class BankAccountAddManualForm extends AbstractForm {
12816
+ class BankAccountAddManualForm extends BankAccountAllocationForm {
12691
12817
  constructor(connection) {
12692
- super({
12693
- type: new FormControl(null, Validators.required),
12694
- accountName: new FormControl(null, Validators.required),
12695
- currentBalance: new FormControl(null, Validators.required),
12696
- accountNumber: new FormControl(null, [Validators.required, Validators.pattern(BankAccountAddManualForm.accountNumberPattern)]),
12697
- tankType: new FormControl(null, Validators.required),
12698
- }, plainToClass(BankAccount, {}));
12818
+ super();
12699
12819
  this.connection = connection;
12820
+ this
12821
+ .addControl('type', new FormControl(null, Validators.required))
12822
+ .addControl('accountName', new FormControl(null, Validators.required))
12823
+ .addControl('currentBalance', new FormControl(null, Validators.required))
12824
+ .addControl('accountNumber', new FormControl(null, [Validators.required, Validators.pattern(BankAccountAddManualForm.accountNumberPattern)]));
12700
12825
  this.listenEvents();
12701
12826
  }
12702
12827
  listenEvents() {
12703
12828
  this.listenTypeChanges();
12704
- this.listenTankTypeChanges();
12705
12829
  }
12706
12830
  /**
12707
12831
  * Add/Remove loan form depends on selected bank account type
@@ -12710,37 +12834,9 @@ class BankAccountAddManualForm extends AbstractForm {
12710
12834
  this.get('type').valueChanges.subscribe((type) => {
12711
12835
  if (BankAccount.loanTypes.includes(type)) {
12712
12836
  this.addControl('loan', new BankAccountLoanForm());
12713
- // property percent allowed only for loan bank accounts
12714
- if (this.contains('bankAccountProperties')) {
12715
- this.get('bankAccountProperties').enablePercent();
12716
- }
12717
12837
  }
12718
12838
  else {
12719
12839
  this.removeControl('loan');
12720
- // property percent allowed only for loan bank accounts
12721
- if (this.contains('bankAccountProperties')) {
12722
- this.get('bankAccountProperties').disablePercent();
12723
- }
12724
- }
12725
- });
12726
- }
12727
- /**
12728
- * Add/Remove bank account properties form depends on selected tank type
12729
- */
12730
- listenTankTypeChanges() {
12731
- this.get('tankType').valueChanges.subscribe((tankType) => {
12732
- if (tankType === TankTypeEnum.PROPERTY) {
12733
- this.addControl('bankAccountProperties', new BankAccountPropertiesForm());
12734
- // property percent allowed only for loan bank accounts
12735
- if (this.contains('loan')) {
12736
- this.get('bankAccountProperties').enablePercent();
12737
- }
12738
- else {
12739
- this.get('bankAccountProperties').disablePercent();
12740
- }
12741
- }
12742
- else {
12743
- this.removeControl('bankAccountProperties');
12744
12840
  }
12745
12841
  });
12746
12842
  }
@@ -12866,31 +12962,6 @@ function autocompleteValidator() {
12866
12962
  };
12867
12963
  }
12868
12964
 
12869
- function conditionalValidator(condition, validator) {
12870
- return function (control) {
12871
- revalidateOnChanges(control);
12872
- if (control && control.parent) {
12873
- if (condition(control.parent)) {
12874
- return validator(control);
12875
- }
12876
- }
12877
- return null;
12878
- };
12879
- }
12880
- /**
12881
- * Conditional validator depends on other fields and should be updated on each form value change
12882
- */
12883
- function revalidateOnChanges(control) {
12884
- if (control && control.parent && !control['_revalidateOnChanges']) {
12885
- control['_revalidateOnChanges'] = true;
12886
- control.parent.valueChanges.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)))
12887
- .subscribe(() => {
12888
- control.updateValueAndValidity({ emitEvent: false });
12889
- });
12890
- }
12891
- return;
12892
- }
12893
-
12894
12965
  /**
12895
12966
  * Regular expressions that are used to check password strength and valid values
12896
12967
  */
@@ -13149,12 +13220,12 @@ class MyTaxDeductionsForm extends AbstractForm {
13149
13220
  value: deductions.workRelatedTravelExpensesTotalAmount,
13150
13221
  disabled: true
13151
13222
  }),
13152
- workRelatedClothingType: new FormControl(deductions.workRelatedClothingType, Validators.required),
13223
+ workRelatedClothingType: new FormControl(deductions.workRelatedClothingType, conditionalValidator(() => !!deductions.workRelatedClothingTotalAmount, Validators.required)),
13153
13224
  workRelatedClothingTotalAmount: new FormControl({
13154
13225
  value: deductions.workRelatedClothingTotalAmount,
13155
13226
  disabled: true
13156
13227
  }),
13157
- workRelatedSelfEducationType: new FormControl(deductions.workRelatedSelfEducationType, Validators.required),
13228
+ workRelatedSelfEducationType: new FormControl(deductions.workRelatedSelfEducationType, conditionalValidator(() => !!deductions.workRelatedSelfEducationTotalAmount, Validators.required)),
13158
13229
  workRelatedSelfEducationTotalAmount: new FormControl({
13159
13230
  value: deductions.workRelatedSelfEducationTotalAmount,
13160
13231
  disabled: true
@@ -13191,6 +13262,11 @@ class MyTaxDeductionsForm extends AbstractForm {
13191
13262
  value: deductions.otherManagingCostsTotalAmount,
13192
13263
  disabled: true
13193
13264
  }),
13265
+ fundName: new FormControl(''),
13266
+ hasFund: new FormControl(true),
13267
+ fundABN: new FormControl(''),
13268
+ fundTFN: new FormControl(''),
13269
+ fundAccountNumber: new FormControl(''),
13194
13270
  personalSuperContributionsTotalAmount: new FormControl({
13195
13271
  value: deductions.personalSuperContributionsTotalAmount,
13196
13272
  disabled: true
@@ -13484,5 +13560,5 @@ class MyTaxRentForm extends AbstractForm {
13484
13560
  * Generated bundle index. Do not edit.
13485
13561
  */
13486
13562
 
13487
- export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountLoanForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionService, BankConnectionStatusEnum, BankLoginData, BankLoginForm, BankService, BankTransaction, BankTransactionCalculationService, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasiqConfig, BasiqJob, BasiqService, BasiqToken, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, ChartAccounts, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsMetadata, ChartAccountsMetadataListEnum, ChartAccountsMetadataTypeEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartData, ChartSerie, Chat, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, DEDUCTION_CATEGORIES, DEFAULT_VEHICLE_EXPENSE, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, InterceptorsModule, IntercomService, InviteStatusEnum, JwtService, KompassifyService, Loan, LoanBankTypeEnum, LoanCollection, LoanFrequencyEnum, LoanInterestTypeEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LogbookPeriod, LoginForm, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessOrLosses, MyTaxBusinessOrLossesForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEmployeeShareSchemes, MyTaxEmployeeShareSchemesForm, 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, PdfOrientationEnum, PdfSettings, Phone, PhoneTypeEnum, PreloaderService, Property, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentService, PropertyEquityChartData, PropertyEquityChartItem, PropertyForecast, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleService, PropertySaleTaxExemptionMetadata, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, SUBSCRIPTION_DESCRIPTION, SUBSCRIPTION_TITLE, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentStatusEnum, ServicePrice, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductIdEnum, ServiceProductStatusEnum, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, ShareFilterOptionsEnum, SoleForecast, SoleForecastService, SpareDocumentSpareTypeEnum, SseService, SubscriptionService, SubscriptionTypeEnum, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionEnum, TaxExemptionMetadata, TaxExemptionMetadataEnum, TaxExemptionService, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionMetadata, TransactionOperationEnum, TransactionReceipt, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, USER_ROLES, USER_WORK_POSITION, User, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserMedicareExemptionEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, Vehicle, VehicleClaim, VehicleClaimForm, VehicleClaimMethodEnum, VehicleClaimService, VehicleCollection, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleService, WORK_TANK_LOGBOOK_PURPOSE_OPTIONS, XlsxService, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, displayMatOptions, enumToList, getDocIcon, passwordMatchValidator, passwordValidator, replace, roundTo, sort, sortDeep, taxReviewFilterPredicate };
13563
+ export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountLoanForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionService, BankConnectionStatusEnum, BankLoginData, BankLoginForm, BankService, BankTransaction, BankTransactionCalculationService, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasiqConfig, BasiqJob, BasiqService, BasiqToken, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, ChartAccounts, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsMetadata, ChartAccountsMetadataListEnum, ChartAccountsMetadataTypeEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartData, ChartSerie, Chat, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, DEDUCTION_CATEGORIES, DEFAULT_VEHICLE_EXPENSE, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, InterceptorsModule, IntercomService, InviteStatusEnum, JwtService, KompassifyService, Loan, LoanBankTypeEnum, LoanCollection, LoanFrequencyEnum, LoanInterestTypeEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LogbookPeriod, LoginForm, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessOrLosses, MyTaxBusinessOrLossesForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEmployeeShareSchemes, MyTaxEmployeeShareSchemesForm, 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, PdfOrientationEnum, PdfSettings, Phone, PhoneTypeEnum, PreloaderService, Property, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentService, PropertyEquityChartData, PropertyEquityChartItem, PropertyForecast, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleService, PropertySaleTaxExemptionMetadata, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, SUBSCRIPTION_DESCRIPTION, SUBSCRIPTION_TITLE, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentStatusEnum, ServicePrice, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductIdEnum, ServiceProductStatusEnum, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, ShareFilterOptionsEnum, SoleForecast, SoleForecastService, SpareDocumentSpareTypeEnum, SseService, SubscriptionService, SubscriptionTypeEnum, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionEnum, TaxExemptionMetadata, TaxExemptionMetadataEnum, TaxExemptionService, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionMetadata, TransactionOperationEnum, TransactionReceipt, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, USER_ROLES, USER_WORK_POSITION, User, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserMedicareExemptionEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, Vehicle, VehicleClaim, VehicleClaimForm, VehicleClaimMethodEnum, VehicleClaimService, VehicleCollection, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleService, WORK_TANK_LOGBOOK_PURPOSE_OPTIONS, XlsxService, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, displayMatOptions, enumToList, getDocIcon, passwordMatchValidator, passwordValidator, replace, roundTo, sort, sortDeep, taxReviewFilterPredicate };
13488
13564
  //# sourceMappingURL=taxtank-core.js.map