taxtank-core 0.18.1 → 0.19.0

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 (107) hide show
  1. package/bundles/taxtank-core.umd.js +1074 -112
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection.js +2 -1
  4. package/esm2015/lib/collections/depreciation.collection.js +6 -3
  5. package/esm2015/lib/collections/transaction/transaction.collection.js +11 -7
  6. package/esm2015/lib/db/Enums/chart-accounts-heading-list.enum.js +20 -1
  7. package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +37 -1
  8. package/esm2015/lib/db/Enums/chart-accounts-metadata-list.enum.js +4 -1
  9. package/esm2015/lib/forms/index.js +2 -1
  10. package/esm2015/lib/forms/report/my-tax/index.js +14 -0
  11. package/esm2015/lib/forms/report/my-tax/my-tax-business-or-losses.form.js +10 -0
  12. package/esm2015/lib/forms/report/my-tax/my-tax-deductions.form.js +75 -0
  13. package/esm2015/lib/forms/report/my-tax/my-tax-dividends.form.js +23 -0
  14. package/esm2015/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.js +14 -0
  15. package/esm2015/lib/forms/report/my-tax/my-tax-income-statements.form.js +92 -0
  16. package/esm2015/lib/forms/report/my-tax/my-tax-income-tests.form.js +10 -0
  17. package/esm2015/lib/forms/report/my-tax/my-tax-interest.form.js +12 -0
  18. package/esm2015/lib/forms/report/my-tax/my-tax-losses.form.js +10 -0
  19. package/esm2015/lib/forms/report/my-tax/my-tax-medicare.form.js +33 -0
  20. package/esm2015/lib/forms/report/my-tax/my-tax-offsets.form.js +10 -0
  21. package/esm2015/lib/forms/report/my-tax/my-tax-other-income.form.js +38 -0
  22. package/esm2015/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.js +32 -0
  23. package/esm2015/lib/forms/report/my-tax/my-tax-rent.form.js +13 -0
  24. package/esm2015/lib/models/pdf/pdf-settings.js +3 -1
  25. package/esm2015/lib/models/report/my-tax/ato-links.js +11 -0
  26. package/esm2015/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.js +8 -0
  27. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.js +13 -0
  28. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.js +57 -0
  29. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.js +10 -0
  30. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +72 -0
  31. package/esm2015/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.js +18 -0
  32. package/esm2015/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.js +24 -0
  33. package/esm2015/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.js +68 -0
  34. package/esm2015/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.js +8 -0
  35. package/esm2015/lib/models/report/my-tax/my-tax-interest/my-tax-interest.js +11 -0
  36. package/esm2015/lib/models/report/my-tax/my-tax-losses/my-tax-losses.js +10 -0
  37. package/esm2015/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.js +8 -0
  38. package/esm2015/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.js +28 -0
  39. package/esm2015/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.js +31 -0
  40. package/esm2015/lib/models/report/my-tax/my-tax-rent/my-tax-rent.js +24 -0
  41. package/esm2015/lib/models/transaction/transaction.js +2 -1
  42. package/esm2015/lib/services/event/sse.service.js +4 -1
  43. package/esm2015/lib/services/http/user/user.service.js +1 -1
  44. package/esm2015/lib/services/pdf/pdf-from-dom-element/file-settings.js +19 -0
  45. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +35 -0
  46. package/esm2015/lib/services/pdf/pdf-from-table/file-settings.js +31 -0
  47. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.js +40 -0
  48. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.js +40 -0
  49. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-table.service.js +53 -0
  50. package/esm2015/lib/validators/index.js +2 -1
  51. package/esm2015/lib/validators/require-select.validator.js +15 -0
  52. package/esm2015/public-api.js +21 -2
  53. package/fesm2015/taxtank-core.js +979 -102
  54. package/fesm2015/taxtank-core.js.map +1 -1
  55. package/lib/collections/collection.d.ts +2 -2
  56. package/lib/collections/depreciation.collection.d.ts +3 -2
  57. package/lib/collections/transaction/transaction.collection.d.ts +5 -4
  58. package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +20 -1
  59. package/lib/db/Enums/chart-accounts-list.enum.d.ts +37 -1
  60. package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +4 -1
  61. package/lib/forms/index.d.ts +1 -0
  62. package/lib/forms/report/my-tax/index.d.ts +13 -0
  63. package/lib/forms/report/my-tax/my-tax-business-or-losses.form.d.ts +8 -0
  64. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts +5 -0
  65. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts +5 -0
  66. package/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.d.ts +5 -0
  67. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts +7 -0
  68. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts +8 -0
  69. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts +5 -0
  70. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts +8 -0
  71. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts +9 -0
  72. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts +8 -0
  73. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts +5 -0
  74. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts +5 -0
  75. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts +5 -0
  76. package/lib/models/report/my-tax/ato-links.d.ts +6 -0
  77. package/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.d.ts +7 -0
  78. package/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.d.ts +11 -0
  79. package/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.d.ts +8 -0
  80. package/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.d.ts +8 -0
  81. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +39 -0
  82. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts +9 -0
  83. package/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.d.ts +10 -0
  84. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts +30 -0
  85. package/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.d.ts +7 -0
  86. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts +9 -0
  87. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +8 -0
  88. package/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.d.ts +7 -0
  89. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts +13 -0
  90. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts +17 -0
  91. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts +11 -0
  92. package/lib/models/transaction/transaction.d.ts +3 -1
  93. package/lib/services/event/sse.service.d.ts +3 -0
  94. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts +6 -0
  95. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts +13 -0
  96. package/lib/services/pdf/pdf-from-table/file-settings.d.ts +8 -0
  97. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts +19 -0
  98. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts +15 -0
  99. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts +16 -0
  100. package/lib/validators/index.d.ts +1 -0
  101. package/lib/validators/require-select.validator.d.ts +5 -0
  102. package/package.json +2 -1
  103. package/public-api.d.ts +20 -1
  104. package/esm2015/lib/models/pdf/pdf-config.js +0 -43
  105. package/esm2015/lib/services/pdf/pdf.service.js +0 -99
  106. package/lib/models/pdf/pdf-config.d.ts +0 -8
  107. package/lib/services/pdf/pdf.service.d.ts +0 -29
@@ -4,7 +4,7 @@ import * as i1$1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/common/http';
6
6
  import { HttpParams, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
7
- import { ReplaySubject, Subject, BehaviorSubject, throwError, combineLatest, of, Observable, forkJoin } from 'rxjs';
7
+ import { ReplaySubject, Subject, BehaviorSubject, throwError, combineLatest, of, Observable, forkJoin, from } from 'rxjs';
8
8
  import { map, filter, catchError, take, switchMap, finalize, mergeMap } from 'rxjs/operators';
9
9
  import { plainToClass, classToPlain, Type, Exclude, Transform, Expose } from 'class-transformer';
10
10
  import { JwtHelperService } from '@auth0/angular-jwt';
@@ -27,6 +27,7 @@ import { EventSourcePolyfill } from 'event-source-polyfill/src/eventsource.min.j
27
27
  import * as i1$2 from '@angular/router';
28
28
  import { NavigationEnd } from '@angular/router';
29
29
  import clone from 'lodash/clone';
30
+ import * as html2pdf from 'html2pdf.js';
30
31
  import jsPDF from 'jspdf';
31
32
  import autoTable from 'jspdf-autotable';
32
33
  import { loadStripe } from '@stripe/stripe-js';
@@ -2040,6 +2041,7 @@ class Collection {
2040
2041
  }
2041
2042
  sortBy(field = 'id', isDesc = true) {
2042
2043
  sort(this.items, field, isDesc);
2044
+ return this;
2043
2045
  }
2044
2046
  /**
2045
2047
  * Get total sum of items by field
@@ -3236,22 +3238,6 @@ class ClientPortfolioReportCollection extends Collection {
3236
3238
  }
3237
3239
  }
3238
3240
 
3239
- /**
3240
- * export table column
3241
- */
3242
- class ExportCell {
3243
- }
3244
-
3245
- /**
3246
- * type of export table column value
3247
- */
3248
- var ExportCellTypeEnum;
3249
- (function (ExportCellTypeEnum) {
3250
- ExportCellTypeEnum[ExportCellTypeEnum["STRING"] = 0] = "STRING";
3251
- ExportCellTypeEnum[ExportCellTypeEnum["CURRENCY"] = 1] = "CURRENCY";
3252
- ExportCellTypeEnum[ExportCellTypeEnum["DATE"] = 2] = "DATE";
3253
- })(ExportCellTypeEnum || (ExportCellTypeEnum = {}));
3254
-
3255
3241
  class ExportDataTable {
3256
3242
  }
3257
3243
 
@@ -3269,6 +3255,22 @@ class ExportableCollection extends Collection {
3269
3255
  }
3270
3256
  }
3271
3257
 
3258
+ /**
3259
+ * export table column
3260
+ */
3261
+ class ExportCell {
3262
+ }
3263
+
3264
+ /**
3265
+ * type of export table column value
3266
+ */
3267
+ var ExportCellTypeEnum;
3268
+ (function (ExportCellTypeEnum) {
3269
+ ExportCellTypeEnum[ExportCellTypeEnum["STRING"] = 0] = "STRING";
3270
+ ExportCellTypeEnum[ExportCellTypeEnum["CURRENCY"] = 1] = "CURRENCY";
3271
+ ExportCellTypeEnum[ExportCellTypeEnum["DATE"] = 2] = "DATE";
3272
+ })(ExportCellTypeEnum || (ExportCellTypeEnum = {}));
3273
+
3272
3274
  /**
3273
3275
  * Collection of transactions
3274
3276
  */
@@ -3319,11 +3321,14 @@ class TransactionCollection extends ExportableCollection {
3319
3321
  return new TransactionCollection(this.items.filter((transaction) => transaction.date.getMonth() === monthIndex));
3320
3322
  }
3321
3323
  /**
3322
- * get list of transactions filtered by chart accounts id
3323
- * @param chartAccountsId chart accounts id for filtering
3324
+ * Get collection of transactions metadata
3324
3325
  */
3325
- getByChartAccountsId(chartAccountsId) {
3326
- return this.items.filter((transaction) => transaction.chartAccounts.id === chartAccountsId);
3326
+ getTransactionsMetadata() {
3327
+ const metadataArray = [];
3328
+ this.items.forEach((transaction) => {
3329
+ metadataArray.push(...transaction.metadata);
3330
+ });
3331
+ return new Collection(metadataArray);
3327
3332
  }
3328
3333
  getIncomeTransactions() {
3329
3334
  return new TransactionCollection(this.items.filter((transaction) => transaction.isIncome()));
@@ -3476,11 +3481,14 @@ class DepreciationCollection extends Collection {
3476
3481
  getByChartAccountsCategories(categories) {
3477
3482
  return this.create(this.items.filter((depreciation) => categories.includes(depreciation.chartAccounts.category)));
3478
3483
  }
3484
+ getAssets() {
3485
+ return this.filter((depreciation) => depreciation.isAsset());
3486
+ }
3479
3487
  getPlantEquipment() {
3480
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isPlantEquipment()));
3488
+ return this.filter((depreciation) => depreciation.isPlantEquipment());
3481
3489
  }
3482
3490
  getCapitalDepreciations() {
3483
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isCapital()));
3491
+ return this.filter((depreciation) => depreciation.isCapital());
3484
3492
  }
3485
3493
  getBorrowingExpenseDepreciations() {
3486
3494
  return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isBorrowingExpense()));
@@ -3932,6 +3940,19 @@ var ChartAccountsHeadingVehicleListEnum;
3932
3940
 
3933
3941
  var ChartAccountsListEnum;
3934
3942
  (function (ChartAccountsListEnum) {
3943
+ ChartAccountsListEnum[ChartAccountsListEnum["PARTNERSHIP_EXPENSES"] = 156] = "PARTNERSHIP_EXPENSES";
3944
+ ChartAccountsListEnum[ChartAccountsListEnum["TRUST_EXPENSES"] = 157] = "TRUST_EXPENSES";
3945
+ ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_CHARGED_BY_ATO"] = 278] = "INTEREST_CHARGED_BY_ATO";
3946
+ ChartAccountsListEnum[ChartAccountsListEnum["LITIGATION_COSTS"] = 280] = "LITIGATION_COSTS";
3947
+ ChartAccountsListEnum[ChartAccountsListEnum["ACCOUNTANT_TAX_AGENT_FEES"] = 282] = "ACCOUNTANT_TAX_AGENT_FEES";
3948
+ ChartAccountsListEnum[ChartAccountsListEnum["TRAVEL_COSTS_TO_SEE_YOUR_ACCOUNTANT_ADVISOR"] = 284] = "TRAVEL_COSTS_TO_SEE_YOUR_ACCOUNTANT_ADVISOR";
3949
+ ChartAccountsListEnum[ChartAccountsListEnum["ACCOUNTING_SOFTWARE_FEES"] = 285] = "ACCOUNTING_SOFTWARE_FEES";
3950
+ ChartAccountsListEnum[ChartAccountsListEnum["ADVISOR_FEES"] = 286] = "ADVISOR_FEES";
3951
+ ChartAccountsListEnum[ChartAccountsListEnum["INCOME_TAX_VARIATION"] = 292] = "INCOME_TAX_VARIATION";
3952
+ ChartAccountsListEnum[ChartAccountsListEnum["PSI_ABN_NOT_QUOTED"] = 294] = "PSI_ABN_NOT_QUOTED";
3953
+ ChartAccountsListEnum[ChartAccountsListEnum["PSI_VOLUNTARY_AGREEMENT"] = 296] = "PSI_VOLUNTARY_AGREEMENT";
3954
+ ChartAccountsListEnum[ChartAccountsListEnum["RENTAL_INCOME"] = 298] = "RENTAL_INCOME";
3955
+ ChartAccountsListEnum[ChartAccountsListEnum["OTHER_RENTAL_INCOME"] = 300] = "OTHER_RENTAL_INCOME";
3935
3956
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_ON_LOAN"] = 302] = "INTEREST_ON_LOAN";
3936
3957
  ChartAccountsListEnum[ChartAccountsListEnum["BORROWING_EXPENSES"] = 315] = "BORROWING_EXPENSES";
3937
3958
  ChartAccountsListEnum[ChartAccountsListEnum["DIVIDENDS"] = 542] = "DIVIDENDS";
@@ -3948,8 +3969,31 @@ var ChartAccountsListEnum;
3948
3969
  ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_PRINCIPAL"] = 38] = "VEHICLE_LOAN_PRINCIPAL";
3949
3970
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_INSTALMENTS"] = 662] = "TAX_INSTALMENTS";
3950
3971
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_EARNED"] = 22] = "INTEREST_EARNED";
3972
+ ChartAccountsListEnum[ChartAccountsListEnum["PARTNERSHIP_INCOME"] = 566] = "PARTNERSHIP_INCOME";
3951
3973
  ChartAccountsListEnum[ChartAccountsListEnum["TRUST_INCOME"] = 567] = "TRUST_INCOME";
3952
3974
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_OFFSETS_N_R_A_S"] = 571] = "TAX_OFFSETS_N_R_A_S";
3975
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_A_GENUINE_REDUNDANCY"] = 9] = "LUMP_SUM_A_GENUINE_REDUNDANCY";
3976
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_A_ALL_OTHER_PAYMENTS"] = 10] = "LUMP_SUM_A_ALL_OTHER_PAYMENTS";
3977
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_B"] = 11] = "LUMP_SUM_B";
3978
+ ChartAccountsListEnum[ChartAccountsListEnum["ATTRIBUTABLE_PSI"] = 20] = "ATTRIBUTABLE_PSI";
3979
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_PAYMENTS_IN_ARREARS"] = 519] = "LUMP_SUM_PAYMENTS_IN_ARREARS";
3980
+ ChartAccountsListEnum[ChartAccountsListEnum["JURY_ATTENDANCE_FEES"] = 519] = "JURY_ATTENDANCE_FEES";
3981
+ ChartAccountsListEnum[ChartAccountsListEnum["FOREIGN_EXCHANGE_GAINS_NON_BUSINESS"] = 523] = "FOREIGN_EXCHANGE_GAINS_NON_BUSINESS";
3982
+ ChartAccountsListEnum[ChartAccountsListEnum["ROYALTIES"] = 525] = "ROYALTIES";
3983
+ ChartAccountsListEnum[ChartAccountsListEnum["TAXABLE_SCHOLARSHIPS_BURSARIES_GRANTS"] = 527] = "TAXABLE_SCHOLARSHIPS_BURSARIES_GRANTS";
3984
+ ChartAccountsListEnum[ChartAccountsListEnum["SPECIAL_PROFESSION_INCOME"] = 529] = "SPECIAL_PROFESSION_INCOME";
3985
+ ChartAccountsListEnum[ChartAccountsListEnum["GAIN_ON_SALE_OF_VEHICLE_PREVIOUSLY_DEPRECIATED"] = 531] = "GAIN_ON_SALE_OF_VEHICLE_PREVIOUSLY_DEPRECIATED";
3986
+ ChartAccountsListEnum[ChartAccountsListEnum["ATO_INTEREST_PAID"] = 533] = "ATO_INTEREST_PAID";
3987
+ ChartAccountsListEnum[ChartAccountsListEnum["PERSONAL_SUPER_CONTRIBUTIONS_DEDUCTIBLE"] = 536] = "PERSONAL_SUPER_CONTRIBUTIONS_DEDUCTIBLE";
3988
+ ChartAccountsListEnum[ChartAccountsListEnum["SOFTWARE_FEES_TAXTANK"] = 541] = "SOFTWARE_FEES_TAXTANK";
3989
+ ChartAccountsListEnum[ChartAccountsListEnum["AUSTRALIAN_ANNUITY_PAYMENTS"] = 559] = "AUSTRALIAN_ANNUITY_PAYMENTS";
3990
+ ChartAccountsListEnum[ChartAccountsListEnum["CODE_M_SUPERANNUATION_LUMP_SUM"] = 561] = "CODE_M_SUPERANNUATION_LUMP_SUM";
3991
+ ChartAccountsListEnum[ChartAccountsListEnum["EMPLOYEE_SHARE_SCHEME_INCOME"] = 564] = "EMPLOYEE_SHARE_SCHEME_INCOME";
3992
+ ChartAccountsListEnum[ChartAccountsListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES_INCOME"] = 590] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES_INCOME";
3993
+ ChartAccountsListEnum[ChartAccountsListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION"] = 593] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION";
3994
+ ChartAccountsListEnum[ChartAccountsListEnum["ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT"] = 639] = "ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT";
3995
+ ChartAccountsListEnum[ChartAccountsListEnum["CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY"] = 558] = "CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY";
3996
+ ChartAccountsListEnum[ChartAccountsListEnum["CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH"] = 640] = "CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH";
3953
3997
  })(ChartAccountsListEnum || (ChartAccountsListEnum = {}));
3954
3998
 
3955
3999
  class DepreciationCapitalProject$1 extends AbstractModel {
@@ -4019,8 +4063,11 @@ var ChartAccountsMetadataListEnum;
4019
4063
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["TAX_FREE_COMPONENT"] = 18] = "TAX_FREE_COMPONENT";
4020
4064
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["YEARS_OF_SERVICE"] = 19] = "YEARS_OF_SERVICE";
4021
4065
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNTAXED_ELEMENT"] = 24] = "UNTAXED_ELEMENT";
4066
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["NOT_ELIGIBLE_FOR_DEDUCTION"] = 25] = "NOT_ELIGIBLE_FOR_DEDUCTION";
4022
4067
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["FRANKED"] = 26] = "FRANKED";
4068
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNFRANKED"] = 27] = "UNFRANKED";
4023
4069
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["TAX_OFFSETS_N_R_A_S"] = 29] = "TAX_OFFSETS_N_R_A_S";
4070
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["DISCOUNT_FROM_DEFERRED_SCHEMES"] = 32] = "DISCOUNT_FROM_DEFERRED_SCHEMES";
4024
4071
  })(ChartAccountsMetadataListEnum || (ChartAccountsMetadataListEnum = {}));
4025
4072
 
4026
4073
  class ChartAccountsMetadata extends ChartAccountsMetadata$1 {
@@ -4531,6 +4578,7 @@ class Transaction extends Transaction$1 {
4531
4578
  /**
4532
4579
  * Get value of transaction metadata field
4533
4580
  * @param field for which value should be returned
4581
+ * @Todo modify 'metadata' property from array to Collection
4534
4582
  */
4535
4583
  getMetadataFieldValue(field) {
4536
4584
  var _a;
@@ -5445,7 +5493,26 @@ var ChartAccountsEtpEnum;
5445
5493
 
5446
5494
  var ChartAccountsHeadingListEnum;
5447
5495
  (function (ChartAccountsHeadingListEnum) {
5496
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES"] = 2] = "ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES";
5497
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS"] = 4] = "AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS";
5498
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES"] = 5] = "AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES";
5499
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["WORK_RELATED_TRAVEL_EXPENSES"] = 10] = "WORK_RELATED_TRAVEL_EXPENSES";
5500
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["COMPULSORY_WORK_UNIFORM"] = 11] = "COMPULSORY_WORK_UNIFORM";
5501
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["PROTECTION_CLOTHING"] = 12] = "PROTECTION_CLOTHING";
5502
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OCCUPATIONAL_SPECIFIC_CLOTHING"] = 13] = "OCCUPATIONAL_SPECIFIC_CLOTHING";
5503
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["SELF_EDUCATIONAL_EXPENSES"] = 14] = "SELF_EDUCATIONAL_EXPENSES";
5504
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OTHER_WORK_RELATED_EXPENSES"] = 15] = "OTHER_WORK_RELATED_EXPENSES";
5505
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["SUBSCRIPTIONS"] = 16] = "SUBSCRIPTIONS";
5506
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["HOME_OFFICE_RUNNING"] = 17] = "HOME_OFFICE_RUNNING";
5507
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["TOOLS_EQUIPMENT"] = 18] = "TOOLS_EQUIPMENT";
5508
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["HOME_OFFICE_OCCUPANCY"] = 19] = "HOME_OFFICE_OCCUPANCY";
5509
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DONATIONS"] = 27] = "DONATIONS";
5510
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["PSI"] = 30] = "PSI";
5511
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["BONUSES"] = 34] = "BONUSES";
5512
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OTHER_DEDUCTIONS"] = 37] = "OTHER_DEDUCTIONS";
5448
5513
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["ETP"] = 39] = "ETP";
5514
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["INTEREST_DEDUCTIONS"] = 47] = "INTEREST_DEDUCTIONS";
5515
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DIVIDEND_DEDUCTIONS"] = 48] = "DIVIDEND_DEDUCTIONS";
5449
5516
  })(ChartAccountsHeadingListEnum || (ChartAccountsHeadingListEnum = {}));
5450
5517
 
5451
5518
  var ChartAccountsHeadingTaxableEnum;
@@ -6837,6 +6904,8 @@ var PdfOrientationEnum;
6837
6904
  */
6838
6905
  class PdfSettings {
6839
6906
  constructor() {
6907
+ this.title = '';
6908
+ this.filename = 'export';
6840
6909
  this.orientation = PdfOrientationEnum.PORTRAIT;
6841
6910
  }
6842
6911
  }
@@ -7209,6 +7278,384 @@ class TaxExemptionMetadata extends TaxExemptionMetadata$1 {
7209
7278
  class PropertySaleTaxExemptionMetadata extends PropertySaleTaxExemptionMetadata$1 {
7210
7279
  }
7211
7280
 
7281
+ /**
7282
+ * Australian Taxation Office (ATO) website links
7283
+ */
7284
+ const atoLinks = {
7285
+ medicareLevy: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/',
7286
+ medicalExemption: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/Medicare-levy-exemption/Medical-exemption-from-Medicare-levy/',
7287
+ foreignResidentsExemption: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/Medicare-levy-exemption/Foreign-residents-Medicare-levy-exemption/',
7288
+ notEntitledToMedicareBenefits: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/Medicare-levy-exemption/Not-entitled-to-Medicare-benefits/#:~:text=If%20you%20were%20not%20entitled,an%20exemption%20under%20category%203.&text=are%20a%20member%20of%20a,Australia%20and%20meet%20other%20conditions',
7289
+ privateHealthInsuranceRebate: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Private-health-insurance-rebate/#Appropriatelevelofprivatehospitalinsuran'
7290
+ };
7291
+
7292
+ /**
7293
+ * @Todo waiting for the Sole tank implementation
7294
+ */
7295
+ class MyTaxBusinessOrLosses {
7296
+ constructor(transactions) {
7297
+ }
7298
+ }
7299
+
7300
+ /**
7301
+ * Const with the categories for my-tax 'Deductions' report.
7302
+ * Grouped by ChartAccountsHeadingListEnum / ChartAccountsListEnum based on rules from documentation
7303
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Deduction")
7304
+ */
7305
+ const DEDUCTION_CATEGORIES = {
7306
+ workRelatedClothingExpenses: [
7307
+ ChartAccountsHeadingListEnum.COMPULSORY_WORK_UNIFORM,
7308
+ ChartAccountsHeadingListEnum.PROTECTION_CLOTHING,
7309
+ ChartAccountsHeadingListEnum.OCCUPATIONAL_SPECIFIC_CLOTHING,
7310
+ ChartAccountsHeadingListEnum.SELF_EDUCATIONAL_EXPENSES
7311
+ ],
7312
+ otherIncomeRelatedExpenses: [
7313
+ ChartAccountsHeadingListEnum.OTHER_WORK_RELATED_EXPENSES,
7314
+ ChartAccountsHeadingListEnum.SUBSCRIPTIONS,
7315
+ ChartAccountsHeadingListEnum.HOME_OFFICE_RUNNING,
7316
+ ChartAccountsHeadingListEnum.HOME_OFFICE_OCCUPANCY
7317
+ ],
7318
+ workRelatedSelfEducationExpenses: [
7319
+ ChartAccountsHeadingListEnum.SELF_EDUCATIONAL_EXPENSES
7320
+ ],
7321
+ interestExpenses: [
7322
+ ChartAccountsHeadingListEnum.INTEREST_DEDUCTIONS
7323
+ ],
7324
+ dividendExpenses: [
7325
+ ChartAccountsHeadingListEnum.DIVIDEND_DEDUCTIONS
7326
+ ],
7327
+ donations: [
7328
+ ChartAccountsHeadingListEnum.DONATIONS
7329
+ ],
7330
+ otherDeductions: [
7331
+ ChartAccountsHeadingListEnum.OTHER_DEDUCTIONS
7332
+ ],
7333
+ interestsChargedByATO: [
7334
+ ChartAccountsListEnum.INTEREST_CHARGED_BY_ATO
7335
+ ],
7336
+ litigationCosts: [
7337
+ ChartAccountsListEnum.LITIGATION_COSTS
7338
+ ],
7339
+ otherManagingCosts: [
7340
+ ChartAccountsListEnum.ACCOUNTANT_TAX_AGENT_FEES,
7341
+ ChartAccountsListEnum.TRAVEL_COSTS_TO_SEE_YOUR_ACCOUNTANT_ADVISOR,
7342
+ ChartAccountsListEnum.ACCOUNTING_SOFTWARE_FEES,
7343
+ ChartAccountsListEnum.ADVISOR_FEES,
7344
+ ChartAccountsListEnum.INCOME_TAX_VARIATION,
7345
+ ChartAccountsListEnum.SOFTWARE_FEES_TAXTANK
7346
+ ],
7347
+ personalSuperContributions: [
7348
+ ChartAccountsListEnum.PERSONAL_SUPER_CONTRIBUTIONS_DEDUCTIBLE
7349
+ ],
7350
+ forestryManagedInvestmentSchemesDeductions: [
7351
+ ChartAccountsListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION
7352
+ ]
7353
+ };
7354
+
7355
+ /**
7356
+ * Enum with work-related clothing, laundry, dry cleaning expenses types
7357
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form
7358
+ * ("Deductions" section, "D3. Work-related clothing, laundry and dry cleaning expenses" field)
7359
+ */
7360
+ var DeductionClothingTypeEnum;
7361
+ (function (DeductionClothingTypeEnum) {
7362
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["COMPULSORY_C"] = 0] = "COMPULSORY_C";
7363
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["NON_COMPULSORY_N"] = 1] = "NON_COMPULSORY_N";
7364
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["PROTECTION_P"] = 2] = "PROTECTION_P";
7365
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["OCCUPATIONAL_SPECIFIC_S"] = 3] = "OCCUPATIONAL_SPECIFIC_S";
7366
+ })(DeductionClothingTypeEnum || (DeductionClothingTypeEnum = {}));
7367
+
7368
+ /**
7369
+ * Enum with work-related self-education expenses types
7370
+ */
7371
+ var DeductionSelfEducationTypeEnum;
7372
+ (function (DeductionSelfEducationTypeEnum) {
7373
+ DeductionSelfEducationTypeEnum[DeductionSelfEducationTypeEnum["IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K"] = 0] = "IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K";
7374
+ DeductionSelfEducationTypeEnum[DeductionSelfEducationTypeEnum["INCOME_FROM_CURRENT_EARNINGS_I"] = 1] = "INCOME_FROM_CURRENT_EARNINGS_I";
7375
+ DeductionSelfEducationTypeEnum[DeductionSelfEducationTypeEnum["OTHER_O"] = 2] = "OTHER_O";
7376
+ })(DeductionSelfEducationTypeEnum || (DeductionSelfEducationTypeEnum = {}));
7377
+
7378
+ class MyTaxDeductions {
7379
+ constructor(transactions, depreciations, vehicleClaim, vehicleClaimRate) {
7380
+ this.transactions = transactions;
7381
+ this.depreciations = depreciations;
7382
+ this.vehicleClaim = vehicleClaim;
7383
+ this.vehicleClaimRate = vehicleClaimRate;
7384
+ this.setVehicleClaimData();
7385
+ this.setOtherWorkRelatedExpensesTotalAmount();
7386
+ this.workRelatedClothingExpenses = this.transactions
7387
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.workRelatedClothingExpenses);
7388
+ this.personalSuperContributions = this.transactions
7389
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.personalSuperContributions);
7390
+ this.workRelatedSelfEducationExpenses = this.transactions
7391
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.workRelatedSelfEducationExpenses);
7392
+ this.vehicleExpensesTotalAmount = this.vehicleClaim.isLogbookMethod() ? this.totalExpensesAmount : this.klmsMethodClaimAmount;
7393
+ this.workRelatedTravelExpensesTotalAmount = this.transactions
7394
+ .filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.WORK_RELATED_TRAVEL_EXPENSES)
7395
+ .sumBy('amount');
7396
+ this.workRelatedClothingType = this.workRelatedClothingExpenses.length ? DeductionClothingTypeEnum.COMPULSORY_C : null;
7397
+ this.workRelatedClothingTotalAmount = this.workRelatedClothingExpenses.sumBy('amount');
7398
+ this.workRelatedSelfEducationType = this.workRelatedSelfEducationExpenses.length ?
7399
+ DeductionSelfEducationTypeEnum.IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K : null;
7400
+ this.workRelatedSelfEducationTotalAmount = this.workRelatedSelfEducationExpenses.sumBy('amount');
7401
+ this.lowValuePoolDeductionTotalAmount = this.depreciations.getByTankType(TankTypeEnum.WORK)
7402
+ .getLowValuePoolDepreciations().sumBy('claimAmount');
7403
+ this.interestExpensesTotalAmount = this.transactions
7404
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.interestExpenses)
7405
+ .sumBy('amount');
7406
+ this.dividendExpensesTotalAmount = this.transactions
7407
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.dividendExpenses)
7408
+ .sumBy('amount');
7409
+ this.donationsTotalAmount = this.transactions
7410
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.donations)
7411
+ .sumBy('amount');
7412
+ this.interestsChargedByATOTotalAmount = this.transactions
7413
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.interestsChargedByATO)
7414
+ .sumBy('amount');
7415
+ this.litigationCostsTotalAmount = this.transactions
7416
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.litigationCosts)
7417
+ .sumBy('amount');
7418
+ this.otherManagingCostsTotalAmount = this.transactions
7419
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.otherManagingCosts)
7420
+ .sumBy('amount');
7421
+ this.personalSuperContributionsTotalAmount = this.personalSuperContributions.sumBy('amount');
7422
+ this.forestryManagedInvestmentSchemesDeductionsTotalAmount = this.transactions
7423
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.forestryManagedInvestmentSchemesDeductions)
7424
+ .sumBy('amount');
7425
+ this.otherDeductionsTotalAmount = this.transactions
7426
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.otherDeductions)
7427
+ .sumBy('amount');
7428
+ }
7429
+ setVehicleClaimData() {
7430
+ this.klmsMethodClaimAmount = this.vehicleClaim.getKLMsClaimAmount(this.vehicleClaimRate);
7431
+ this.totalExpensesAmount = new VehicleExpenseCollection(this.transactions.getByTankType(this.vehicleClaim.tankType), this.depreciations.getByTankType(this.vehicleClaim.tankType), this.vehicleClaim).sumBy('amount');
7432
+ }
7433
+ /**
7434
+ * Total amount from Other work related expenses and Tools & equipment depreciations
7435
+ */
7436
+ setOtherWorkRelatedExpensesTotalAmount() {
7437
+ const otherIncomeRelatedExpenses = this.transactions
7438
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.otherIncomeRelatedExpenses);
7439
+ this.otherWorkRelatedExpensesTotalAmount = Math.abs(otherIncomeRelatedExpenses.sumBy('amount')) +
7440
+ this.depreciations.filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.TOOLS_EQUIPMENT).sumBy('claimAmount');
7441
+ }
7442
+ }
7443
+
7444
+ class MyTaxDividends {
7445
+ constructor(transactions) {
7446
+ this.transactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.DIVIDENDS);
7447
+ this.dividendsUnfrankedAmount = this.transactions.getTransactionsMetadata()
7448
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.UNFRANKED)
7449
+ .sumBy('value');
7450
+ this.dividendsFrankedAmount = this.transactions.getTransactionsMetadata()
7451
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.FRANKED)
7452
+ .sumBy('value');
7453
+ this.dividendsFrankingCreditsAmount = this.transactions.getTransactionsMetadata()
7454
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.FRANKING_CREDIT)
7455
+ .sumBy('value');
7456
+ this.dividendsTotalTax = this.transactions.sumBy('tax');
7457
+ }
7458
+ }
7459
+
7460
+ class MyTaxEmployeeShareSchemes {
7461
+ constructor(transactions) {
7462
+ this.transactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.EMPLOYEE_SHARE_SCHEME_INCOME);
7463
+ this.eligibleForReductionAmount = this.transactions.getTransactionsMetadata()
7464
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.ELIGIBLE_FOR_REDUCTION)
7465
+ .sumBy('value');
7466
+ this.notEligibleForReductionAmount = this.transactions.getTransactionsMetadata()
7467
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.NOT_ELIGIBLE_FOR_DEDUCTION)
7468
+ .sumBy('value');
7469
+ this.discountFromDeferredSchemeAmount = this.transactions.getTransactionsMetadata()
7470
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.DISCOUNT_FROM_DEFERRED_SCHEMES)
7471
+ .sumBy('value');
7472
+ this.totalAssessableDiscountAmount = this.transactions.getTransactionsMetadata()
7473
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.NOT_ELIGIBLE_FOR_DEDUCTION)
7474
+ .sumBy('value') +
7475
+ this.transactions.getTransactionsMetadata()
7476
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.DISCOUNT_FROM_DEFERRED_SCHEMES)
7477
+ .sumBy('value');
7478
+ this.shareSchemesTotalTax = this.transactions.sumBy('tax');
7479
+ }
7480
+ }
7481
+
7482
+ class MyTaxIncomeStatements {
7483
+ constructor(transactions) {
7484
+ this.transactionsByChartAccounts = transactions.groupBy('chartAccounts.id');
7485
+ this.transactionsByChartAccountsHeadings = transactions.groupBy('chartAccounts.heading.id');
7486
+ this.salaryTransactionsByIncomeSource = this.transactionsByChartAccounts
7487
+ .get(ChartAccountsListEnum.SALARY_OR_WAGES)
7488
+ .groupBy('incomeSource.name');
7489
+ this.etpTransactionsByIncomeSource = this.transactionsByChartAccountsHeadings
7490
+ .get(ChartAccountsHeadingListEnum.ETP)
7491
+ .groupBy('incomeSource.name');
7492
+ this.superannuationLumpSumTransactionsByIncomeSource = this.transactionsByChartAccountsHeadings
7493
+ .get(ChartAccountsHeadingTaxDeductibleEnum.SUPERANNUATION_LUMP_SUM)
7494
+ .groupBy('incomeSource.name');
7495
+ this.allowanceTotalAmount = this.transactionsByChartAccountsHeadings
7496
+ .get(ChartAccountsHeadingListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES)
7497
+ .sumBy('amount');
7498
+ this.allowanceTotalTax = this.transactionsByChartAccountsHeadings
7499
+ .get(ChartAccountsHeadingListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES)
7500
+ .sumBy('tax');
7501
+ this.lumpATransactionsTotalAmount =
7502
+ this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_A_GENUINE_REDUNDANCY).sumBy('claimAmount') +
7503
+ this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_A_ALL_OTHER_PAYMENTS).sumBy('claimAmount');
7504
+ this.lumpATransactionsTotalTax =
7505
+ this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_A_GENUINE_REDUNDANCY).sumBy('tax') +
7506
+ this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_A_ALL_OTHER_PAYMENTS).sumBy('tax');
7507
+ this.hasGenuineLumpATransactions = !!this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_A_GENUINE_REDUNDANCY).length;
7508
+ this.hasOtherLumpATransactions = !!this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_A_ALL_OTHER_PAYMENTS).length;
7509
+ this.lumpBTransactionsTotalAmount = this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_B).sumBy('claimAmount');
7510
+ this.lumpBTransactionsTotalTax = this.transactionsByChartAccounts.get(ChartAccountsListEnum.LUMP_SUM_B).sumBy('tax');
7511
+ this.australianAllowancesAndPaymentsTotalAmount = this.transactionsByChartAccountsHeadings
7512
+ .get(ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS)
7513
+ .sumBy('amount');
7514
+ this.australianAllowancesAndPaymentsTotalTax = this.transactionsByChartAccountsHeadings
7515
+ .get(ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS)
7516
+ .sumBy('tax');
7517
+ this.australianPensionsAndAllowancesTotalAmount = this.transactionsByChartAccountsHeadings
7518
+ .get(ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES)
7519
+ .sumBy('amount');
7520
+ this.australianPensionsAndAllowancesTotalTax = this.transactionsByChartAccountsHeadings
7521
+ .get(ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES)
7522
+ .sumBy('tax');
7523
+ this.australianAnnuitiesSuperannuationIncomesTotalTax = this.transactionsByChartAccountsHeadings
7524
+ .get(ChartAccountsHeadingTaxDeductibleEnum.ANNUITIES_AND_SUPERANNUATION_INCOME_STREAMS)
7525
+ .sumBy('tax');
7526
+ this.australianAnnuityPaymentsTaxed = this.transactionsByChartAccounts
7527
+ .get(ChartAccountsListEnum.AUSTRALIAN_ANNUITY_PAYMENTS).sumBy('claimAmount');
7528
+ this.australianAnnuityPaymentsUntaxed = this.transactionsByChartAccounts
7529
+ .get(ChartAccountsListEnum.AUSTRALIAN_ANNUITY_PAYMENTS).sumBy('untaxedElement');
7530
+ this.assessableCappedDefinedBenefitTotalAmount = this.transactionsByChartAccounts
7531
+ .get(ChartAccountsListEnum.ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT).sumBy('claimAmount');
7532
+ this.superannuationIncomeStreamsTotalTaxed = this.transactionsByChartAccounts.merge([
7533
+ ChartAccountsListEnum.CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY,
7534
+ ChartAccountsListEnum.CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH
7535
+ ]).sumBy('claimAmount');
7536
+ this.superannuationIncomeStreamsTotalUntaxed = this.transactionsByChartAccounts.merge([
7537
+ ChartAccountsListEnum.CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY,
7538
+ ChartAccountsListEnum.CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH
7539
+ ]).sumBy('untaxedElement');
7540
+ this.attributablePsiTransactionsTotalAmount = this.transactionsByChartAccounts
7541
+ .get(ChartAccountsListEnum.ATTRIBUTABLE_PSI).sumBy('amount');
7542
+ this.attributablePsiTransactionsTotalTax = this.transactionsByChartAccounts
7543
+ .get(ChartAccountsListEnum.ATTRIBUTABLE_PSI).sumBy('tax');
7544
+ }
7545
+ }
7546
+
7547
+ /**
7548
+ * @Todo future functionality
7549
+ */
7550
+ class MyTaxIncomeTests {
7551
+ constructor(transactions) {
7552
+ }
7553
+ }
7554
+
7555
+ class MyTaxInterest {
7556
+ constructor(transactions) {
7557
+ this.interestEarnedTransactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.INTEREST_EARNED);
7558
+ this.interestPaidTransactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.ATO_INTEREST_PAID);
7559
+ this.interestEarnedTotalAmount = this.interestEarnedTransactions.sumBy('amount');
7560
+ this.interestEarnedTotalTax = this.interestEarnedTransactions.sumBy('tax');
7561
+ this.interestPaidTotalAmount = this.interestEarnedTransactions.sumBy('amount');
7562
+ }
7563
+ }
7564
+
7565
+ /**
7566
+ * @Todo waiting for Sole tank implementation
7567
+ */
7568
+ class MyTaxLosses {
7569
+ constructor(transactions) {
7570
+ this.transactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.DIVIDENDS);
7571
+ }
7572
+ }
7573
+
7574
+ /**
7575
+ * @Todo waiting for new chart accounts implemented (TT-1739 & TT-1740)
7576
+ */
7577
+ class MyTaxOffsets {
7578
+ constructor(transactions) {
7579
+ }
7580
+ }
7581
+
7582
+ class MyTaxOtherIncome {
7583
+ constructor(transactions) {
7584
+ this.transactions = transactions;
7585
+ this.lumpSumPaymentsInArrearsTransactions = this.transactions
7586
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.LUMP_SUM_PAYMENTS_IN_ARREARS);
7587
+ this.bonusesTotalAmount = this.transactions
7588
+ .filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.BONUSES)
7589
+ .sumBy('amount');
7590
+ this.forestryManagedInvestmentSchemesIncomeTotalAmount = this.transactions
7591
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES_INCOME)
7592
+ .sumBy('amount');
7593
+ this.lumpSumPaymentsInArrearsTotalTax = this.lumpSumPaymentsInArrearsTransactions.sumBy('tax');
7594
+ this.specialProfessionIncomeTotalAmount = this.transactions
7595
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.SPECIAL_PROFESSION_INCOME).sumBy('amount');
7596
+ this.category1TotalIncome = this.lumpSumPaymentsInArrearsTransactions.sumBy('amount') +
7597
+ this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.JURY_ATTENDANCE_FEES).sumBy('amount') +
7598
+ this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.FOREIGN_EXCHANGE_GAINS_NON_BUSINESS).sumBy('amount') +
7599
+ this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.ROYALTIES).sumBy('amount') +
7600
+ this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.TAXABLE_SCHOLARSHIPS_BURSARIES_GRANTS).sumBy('amount');
7601
+ this.atoInterestPaidTotalAmount = this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.ATO_INTEREST_PAID).sumBy('amount');
7602
+ this.gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount = this.transactions
7603
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GAIN_ON_SALE_OF_VEHICLE_PREVIOUSLY_DEPRECIATED)
7604
+ .sumBy('amount');
7605
+ }
7606
+ }
7607
+
7608
+ class MyTaxPartnershipsAndTrusts {
7609
+ constructor(transactions) {
7610
+ this.transactions = transactions;
7611
+ this.partnershipIncomes = this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.PARTNERSHIP_INCOME);
7612
+ this.partnershipExpenses = this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.PARTNERSHIP_EXPENSES);
7613
+ this.trustsIncomes = this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.TRUST_INCOME);
7614
+ this.trustsExpenses = this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.TRUST_EXPENSES);
7615
+ this.netNonPrimaryProductionAmount = (this.partnershipIncomes.sumBy('amount') - this.partnershipExpenses.sumBy('amount')) +
7616
+ (this.trustsIncomes.sumBy('amount') - this.trustsExpenses.sumBy('amount'));
7617
+ this.partnershipsNetIncome = this.partnershipIncomes.sumBy('amount') -
7618
+ this.partnershipExpenses.sumBy('amount');
7619
+ this.trustsNetIncome = this.trustsIncomes.sumBy('amount') - this.trustsExpenses.sumBy('amount');
7620
+ this.partnershipsSmallBusinessNetIncome = this.partnershipIncomes.sumBy('amount') -
7621
+ this.partnershipExpenses.sumBy('amount');
7622
+ this.trustsSmallBusinessNetIncome = this.trustsIncomes.sumBy('amount') -
7623
+ this.trustsExpenses.sumBy('amount');
7624
+ this.taxPaidTotal = this.transactions
7625
+ .filterBy('chartAccounts.heading.id', ChartAccountsHeadingTaxableEnum.PARTNERSHIPS_AND_TRUSTS_INCOME)
7626
+ .sumBy('tax');
7627
+ this.frankingCreditsTotal = this.transactions
7628
+ .filterBy('chartAccounts.heading.id', ChartAccountsHeadingTaxableEnum.PARTNERSHIPS_AND_TRUSTS_INCOME)
7629
+ .getTransactionsMetadata()
7630
+ .filterBy('chartAccountsMetadata.id', ChartAccountsMetadataListEnum.FRANKING_CREDIT)
7631
+ .sumBy('value');
7632
+ this.taxOffsetNRASTotalAmount = this.transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.TAX_OFFSETS_N_R_A_S).sumBy('amount');
7633
+ }
7634
+ }
7635
+
7636
+ class MyTaxRent {
7637
+ constructor(transactions, depreciations) {
7638
+ this.propertyExpenses = transactions.getPropertyTransactions().getExpenseTransactions();
7639
+ this.grossRentAmount = transactions
7640
+ .getIncomeTransactions()
7641
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)
7642
+ .sumBy('amount') +
7643
+ transactions.
7644
+ getIncomeTransactions()
7645
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.OTHER_RENTAL_INCOME)
7646
+ .sumBy('amount');
7647
+ this.interestDeductionsAmount = Math.abs(transactions.getInterestTransactions().sumBy('amount'));
7648
+ this.capitalWorksDeductionsAmount = Math.abs(depreciations.getCapitalDepreciations().sumBy('claimAmount'));
7649
+ this.otherRentalDeductionsAmount = Math.abs(depreciations.getAssets().sumBy('claimAmount') +
7650
+ depreciations.getBorrowingExpenseDepreciations().sumBy('claimAmount') +
7651
+ this.propertyExpenses.sumBy('amount'));
7652
+ this.netRent = this.grossRentAmount -
7653
+ this.interestDeductionsAmount -
7654
+ this.capitalWorksDeductionsAmount -
7655
+ this.otherRentalDeductionsAmount;
7656
+ }
7657
+ }
7658
+
7212
7659
  /**
7213
7660
  * Constant with list of URLs
7214
7661
  */
@@ -8963,6 +9410,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
8963
9410
  }]
8964
9411
  }] });
8965
9412
 
9413
+ /**
9414
+ * server sent events service
9415
+ */
8966
9416
  class SseService {
8967
9417
  constructor(zone, jwtService, environment) {
8968
9418
  this.zone = zone;
@@ -10304,9 +10754,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
10304
10754
  }] }, { type: ToastService }, { type: SseService }]; } });
10305
10755
 
10306
10756
  /**
10307
- * Configuration file with the settings to generate PDF file
10757
+ * Settings for generated PDF file from DOM elements
10758
+ */
10759
+ const FILE_SETTINGS$1 = {
10760
+ margin: 10,
10761
+ filename: 'export.pdf',
10762
+ html2canvas: {
10763
+ scale: 2
10764
+ },
10765
+ pagebreak: {
10766
+ mode: 'avoid-all'
10767
+ },
10768
+ jsPDF: {
10769
+ unit: 'mm',
10770
+ format: 'a3',
10771
+ orientation: 'portrait'
10772
+ }
10773
+ };
10774
+
10775
+ /**
10776
+ * Service to generate and export PDF file from provided HTML elements
10777
+ * The file is generated using the html2pdf library in order to get a canvas at the output,
10778
+ * in which all the styles that the user sees on the page will be saved
10779
+ */
10780
+ class PdfFromDomElementService {
10781
+ export(elements, fileSettings) {
10782
+ const options = FILE_SETTINGS$1;
10783
+ options.filename = `${fileSettings.filename}.pdf`;
10784
+ // HTML container in which the exported DOM elements will be placed
10785
+ const htmlWrapper = document.createElement('div');
10786
+ elements.forEach((element) => {
10787
+ htmlWrapper.append(element.cloneNode(true));
10788
+ });
10789
+ // Set PDF options, save file and return result as Observable
10790
+ return from(html2pdf().from(htmlWrapper)
10791
+ .set(options)
10792
+ .save()
10793
+ .then());
10794
+ }
10795
+ }
10796
+ PdfFromDomElementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDomElementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10797
+ PdfFromDomElementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDomElementService, providedIn: 'root' });
10798
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDomElementService, decorators: [{
10799
+ type: Injectable,
10800
+ args: [{
10801
+ providedIn: 'root'
10802
+ }]
10803
+ }] });
10804
+
10805
+ /**
10806
+ * Settings for generated PDF file from tables (HTML table, data-table, e.t.c.)
10308
10807
  */
10309
- const PDF_CONFIG = {
10808
+ const FILE_SETTINGS = {
10310
10809
  text: {
10311
10810
  fontSize: 12,
10312
10811
  fontName: 'helvetica',
@@ -10325,92 +10824,37 @@ const PDF_CONFIG = {
10325
10824
  positionX: 42,
10326
10825
  positionY: 6
10327
10826
  },
10328
- // coords for file section title (group, table, e.t.c.)
10329
- contentTitleCoords: {
10330
- marginTop: 15
10827
+ titleCoords: {
10828
+ top: 15
10331
10829
  },
10332
10830
  contentCoords: {
10333
- marginTop: 15,
10334
- marginLeft: 14
10335
- },
10336
- table: {
10337
- headStyles: {
10338
- fillColor: '#00b7f0',
10339
- lineWidth: .2,
10340
- halign: 'center'
10341
- },
10342
- footStyles: {
10343
- fillColor: '#ffffff',
10344
- textColor: '#000000'
10345
- },
10831
+ top: 15,
10832
+ left: 14
10346
10833
  }
10347
10834
  };
10348
10835
 
10349
10836
  /**
10350
- * @TODO vik refactor
10351
- * Service to work with PDF (generate, download, e.t.c.)
10837
+ * Service with base functionality to export tables (HTML table, data-table, e.t.c.) as PDF file
10838
+ * The file is generated using the jsPDF library to set custom table styles
10352
10839
  */
10353
- class PdfService {
10354
- constructor(formatter) {
10355
- this.formatter = formatter;
10356
- }
10357
- /**
10358
- * Export file from provided HTML tables
10359
- */
10360
- exportTables(tables, fileSettings) {
10361
- const document = this.generateFromTables(tables, fileSettings);
10362
- document.save(`${fileSettings.filename}.pdf`);
10363
- }
10364
- /**
10365
- * Export file from provided array-like table data
10366
- */
10367
- exportFromDataTables(dataTables, fileSettings) {
10368
- const document = this.generateFromDataTables(dataTables, fileSettings.title);
10369
- document.save(`${fileSettings.filename}.pdf`);
10370
- }
10371
- /**
10372
- * Generate file from array-like table data
10373
- */
10374
- generateFromDataTables(dataTables, title) {
10375
- const pdf = new jsPDF();
10376
- this.setDocumentTitle(pdf, title);
10377
- this.setDocumentLogo(pdf);
10378
- dataTables.forEach((dataTable) => {
10379
- autoTable(pdf, Object.assign({ head: [dataTable.header], body: this.formatter.format(dataTable.body), foot: this.formatter.format(dataTable.footer) }, this.setTableOptions(pdf, dataTable.caption)));
10380
- });
10381
- return pdf;
10382
- }
10383
- generateFromTables(tables, fileSettings) {
10384
- const pdf = new jsPDF(fileSettings.orientation);
10385
- this.setDocumentTitle(pdf, fileSettings.title);
10386
- this.setDocumentLogo(pdf);
10387
- tables.forEach((table) => {
10388
- // Add table caption if not provided
10389
- if (!table.caption) {
10390
- table.createCaption();
10391
- table.caption.innerText = '';
10392
- }
10393
- autoTable(pdf, Object.assign({ html: table }, this.setTableOptions(pdf, table.caption.innerText)));
10394
- });
10395
- return pdf;
10396
- }
10840
+ class PdfFromTableService {
10397
10841
  /**
10398
10842
  * Set basic options for PDF table
10399
10843
  */
10400
10844
  setTableOptions(pdf, tableCaption = '') {
10401
- const lastTableCoords = pdf['lastAutoTable'].finalY || PDF_CONFIG.contentCoords.marginTop;
10845
+ const lastTableCoords = pdf['lastAutoTable'].finalY || FILE_SETTINGS.contentCoords.top;
10402
10846
  // get caption height based on caption content height
10403
10847
  const captionHeight = pdf.getTextDimensions(pdf.splitTextToSize(tableCaption, pdf.internal.pageSize.width)).h;
10404
- pdf.text(tableCaption, PDF_CONFIG.contentCoords.marginLeft, lastTableCoords + PDF_CONFIG.contentCoords.marginTop);
10848
+ pdf.text(tableCaption, FILE_SETTINGS.contentCoords.left, lastTableCoords + FILE_SETTINGS.contentCoords.top);
10405
10849
  return {
10406
10850
  headStyles: {
10407
- fillColor: PDF_CONFIG.text.colorPrimary,
10851
+ fillColor: FILE_SETTINGS.text.colorPrimary,
10408
10852
  },
10409
10853
  footStyles: {
10410
- fillColor: PDF_CONFIG.text.colorWhite,
10411
- textColor: PDF_CONFIG.text.colorBlack
10854
+ fillColor: FILE_SETTINGS.text.colorWhite,
10855
+ textColor: FILE_SETTINGS.text.colorBlack
10412
10856
  },
10413
- startY: lastTableCoords + captionHeight + PDF_CONFIG.contentTitleCoords.marginTop,
10857
+ startY: lastTableCoords + captionHeight + FILE_SETTINGS.titleCoords.top,
10414
10858
  didParseCell: (data) => {
10415
10859
  // Align last column content to right
10416
10860
  if (data.table.columns.length > 1 && (data.column.index === data.table.columns.length - 1)) {
@@ -10420,19 +10864,88 @@ class PdfService {
10420
10864
  };
10421
10865
  }
10422
10866
  setDocumentTitle(doc, title) {
10423
- doc.setFontSize(PDF_CONFIG.text.fontSize)
10424
- .setFont(PDF_CONFIG.text.fontName, PDF_CONFIG.text.fontStyle, PDF_CONFIG.text.fontWeight)
10425
- .text(title, PDF_CONFIG.text.positionX, PDF_CONFIG.text.positionY);
10867
+ doc.setFontSize(FILE_SETTINGS.text.fontSize)
10868
+ .setFont(FILE_SETTINGS.text.fontName, FILE_SETTINGS.text.fontStyle, FILE_SETTINGS.text.fontWeight)
10869
+ .text(title, FILE_SETTINGS.text.positionX, FILE_SETTINGS.text.positionY);
10426
10870
  }
10427
10871
  setDocumentLogo(doc) {
10428
10872
  const logo = new Image();
10429
- logo.src = PDF_CONFIG.logo.src;
10430
- doc.addImage(logo, 'PNG', doc.internal.pageSize.width - PDF_CONFIG.logo.positionX, PDF_CONFIG.logo.positionY, PDF_CONFIG.logo.width, PDF_CONFIG.logo.height);
10873
+ logo.src = FILE_SETTINGS.logo.src;
10874
+ doc.addImage(logo, 'PNG', doc.internal.pageSize.width - FILE_SETTINGS.logo.positionX, FILE_SETTINGS.logo.positionY, FILE_SETTINGS.logo.width, FILE_SETTINGS.logo.height);
10431
10875
  }
10432
10876
  }
10433
- PdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfService, deps: [{ token: ExportFormatterService }], target: i0.ɵɵFactoryTarget.Injectable });
10434
- PdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfService, providedIn: 'root' });
10435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfService, decorators: [{
10877
+ PdfFromTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10878
+ PdfFromTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromTableService, providedIn: 'root' });
10879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromTableService, decorators: [{
10880
+ type: Injectable,
10881
+ args: [{
10882
+ providedIn: 'root'
10883
+ }]
10884
+ }] });
10885
+
10886
+ /**
10887
+ * Service to generate and export PDF file from provided HTML tables
10888
+ */
10889
+ class PdfFromHtmlTableService extends PdfFromTableService {
10890
+ export(tables, fileSettings) {
10891
+ const document = this.generateFile(tables, fileSettings);
10892
+ document.save(`${fileSettings.filename}.pdf`);
10893
+ }
10894
+ /**
10895
+ * Generate PDF file from provided list of HTML tables
10896
+ */
10897
+ generateFile(tables, fileSettings) {
10898
+ const pdf = new jsPDF(fileSettings.orientation);
10899
+ this.setDocumentTitle(pdf, fileSettings.title);
10900
+ this.setDocumentLogo(pdf);
10901
+ tables.forEach((table) => {
10902
+ // Add table caption if not provided
10903
+ if (!table.caption) {
10904
+ table.createCaption();
10905
+ table.caption.innerText = '';
10906
+ }
10907
+ autoTable(pdf, Object.assign({ html: table }, this.setTableOptions(pdf, table.caption.innerText)));
10908
+ });
10909
+ return pdf;
10910
+ }
10911
+ }
10912
+ PdfFromHtmlTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromHtmlTableService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
10913
+ PdfFromHtmlTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromHtmlTableService, providedIn: 'root' });
10914
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromHtmlTableService, decorators: [{
10915
+ type: Injectable,
10916
+ args: [{
10917
+ providedIn: 'root'
10918
+ }]
10919
+ }] });
10920
+
10921
+ /**
10922
+ * Service to generate and export PDF file from provided array-like data tables
10923
+ */
10924
+ class PdfFromDataTableService extends PdfFromTableService {
10925
+ constructor(formatter) {
10926
+ super();
10927
+ this.formatter = formatter;
10928
+ }
10929
+ export(dataTables, fileSettings) {
10930
+ const document = this.generate(dataTables, fileSettings.title);
10931
+ document.save(`${fileSettings.filename}.pdf`);
10932
+ }
10933
+ /**
10934
+ * Generate PDF file from provided list of data tables
10935
+ */
10936
+ generate(dataTables, title) {
10937
+ const pdf = new jsPDF();
10938
+ this.setDocumentTitle(pdf, title);
10939
+ this.setDocumentLogo(pdf);
10940
+ dataTables.forEach((dataTable) => {
10941
+ autoTable(pdf, Object.assign({ head: [dataTable.header], body: this.formatter.format(dataTable.body), foot: this.formatter.format(dataTable.footer) }, this.setTableOptions(pdf, dataTable.caption)));
10942
+ });
10943
+ return pdf;
10944
+ }
10945
+ }
10946
+ PdfFromDataTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDataTableService, deps: [{ token: ExportFormatterService }], target: i0.ɵɵFactoryTarget.Injectable });
10947
+ PdfFromDataTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDataTableService, providedIn: 'root' });
10948
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDataTableService, decorators: [{
10436
10949
  type: Injectable,
10437
10950
  args: [{
10438
10951
  providedIn: 'root'
@@ -11937,6 +12450,21 @@ function passwordMatchValidator(newPassControlName, confirmPassControlName) {
11937
12450
  };
11938
12451
  }
11939
12452
 
12453
+ /**
12454
+ * Validation function, that checks that the user should select a value from a list rather than type in input field
12455
+ */
12456
+ function requireSelectValidator() {
12457
+ return (control) => {
12458
+ const selection = control.value;
12459
+ if (typeof selection === 'string' && !!selection) {
12460
+ return { notFromList: true };
12461
+ }
12462
+ else {
12463
+ return null;
12464
+ }
12465
+ };
12466
+ }
12467
+
11940
12468
  class ClientIncomeTypesForm extends AbstractForm {
11941
12469
  constructor(clientIncomeTypes) {
11942
12470
  super({
@@ -12135,6 +12663,355 @@ class VehicleClaimForm extends AbstractForm {
12135
12663
  }
12136
12664
  }
12137
12665
 
12666
+ /**
12667
+ * @Todo waiting for the Sole tank implementation
12668
+ */
12669
+ class MyTaxBusinessOrLossesForm extends AbstractForm {
12670
+ constructor(businessOrLosses) {
12671
+ super({});
12672
+ }
12673
+ }
12674
+
12675
+ class MyTaxDeductionsForm extends AbstractForm {
12676
+ constructor(deductions) {
12677
+ super({
12678
+ vehicleClaimMethod: new FormControl({
12679
+ value: deductions.vehicleClaim.method,
12680
+ disabled: true
12681
+ }),
12682
+ vehicleExpensesTotalAmount: new FormControl({
12683
+ value: deductions.vehicleExpensesTotalAmount,
12684
+ disabled: true
12685
+ }),
12686
+ workRelatedTravelExpensesTotalAmount: new FormControl({
12687
+ value: deductions.workRelatedTravelExpensesTotalAmount,
12688
+ disabled: true
12689
+ }),
12690
+ workRelatedClothingType: new FormControl(!!deductions.workRelatedClothingType, Validators.required),
12691
+ workRelatedClothingTotalAmount: new FormControl({
12692
+ value: deductions.workRelatedClothingTotalAmount,
12693
+ disabled: true
12694
+ }),
12695
+ workRelatedSelfEducationType: new FormControl(!!deductions.workRelatedSelfEducationType, Validators.required),
12696
+ workRelatedSelfEducationTotalAmount: new FormControl({
12697
+ value: deductions.workRelatedSelfEducationTotalAmount,
12698
+ disabled: true
12699
+ }),
12700
+ otherWorkRelatedSelfEducationTotalAmount: new FormControl({
12701
+ value: deductions.otherWorkRelatedExpensesTotalAmount,
12702
+ disabled: true
12703
+ }),
12704
+ lowValuePoolDeductionTotalAmount: new FormControl({
12705
+ value: deductions.lowValuePoolDeductionTotalAmount,
12706
+ disabled: true
12707
+ }),
12708
+ interestExpensesTotalAmount: new FormControl({
12709
+ value: deductions.interestExpensesTotalAmount,
12710
+ disabled: true
12711
+ }),
12712
+ dividendExpensesTotalAmount: new FormControl({
12713
+ value: deductions.dividendExpensesTotalAmount,
12714
+ disabled: true
12715
+ }),
12716
+ donationsTotalAmount: new FormControl({
12717
+ value: deductions.donationsTotalAmount,
12718
+ disabled: true
12719
+ }),
12720
+ interestsChargedByATOTotalAmount: new FormControl({
12721
+ value: deductions.interestsChargedByATOTotalAmount,
12722
+ disabled: true
12723
+ }),
12724
+ litigationCostsTotalAmount: new FormControl({
12725
+ value: deductions.litigationCostsTotalAmount,
12726
+ disabled: true
12727
+ }),
12728
+ otherManagingCostsTotalAmount: new FormControl({
12729
+ value: deductions.otherManagingCostsTotalAmount,
12730
+ disabled: true
12731
+ }),
12732
+ personalSuperContributionsTotalAmount: new FormControl({
12733
+ value: deductions.personalSuperContributionsTotalAmount,
12734
+ disabled: true
12735
+ }),
12736
+ forestryManagedInvestmentSchemesDeductionsTotalAmount: new FormControl({
12737
+ value: deductions.forestryManagedInvestmentSchemesDeductionsTotalAmount,
12738
+ disabled: true
12739
+ }),
12740
+ otherDeductionsTotalAmount: new FormControl({
12741
+ value: deductions.otherDeductionsTotalAmount,
12742
+ disabled: true
12743
+ })
12744
+ });
12745
+ }
12746
+ }
12747
+
12748
+ class MyTaxDividendsForm extends AbstractForm {
12749
+ constructor(dividends) {
12750
+ super({
12751
+ dividendsUnfrankedAmount: new FormControl({
12752
+ value: dividends.dividendsUnfrankedAmount,
12753
+ disabled: true
12754
+ }),
12755
+ dividendsFrankedAmount: new FormControl({
12756
+ value: dividends.dividendsFrankedAmount,
12757
+ disabled: true
12758
+ }),
12759
+ dividendsFrankingCreditsAmount: new FormControl({
12760
+ value: dividends.dividendsFrankingCreditsAmount,
12761
+ disabled: true
12762
+ }),
12763
+ dividendsTotalTax: new FormControl({ value: dividends.dividendsTotalTax, disabled: true }),
12764
+ isForeignResident: new FormControl(false),
12765
+ });
12766
+ }
12767
+ }
12768
+
12769
+ class MyTaxEmployeeShareSchemesForm extends AbstractForm {
12770
+ constructor(shareSchemes) {
12771
+ super({
12772
+ eligibleForReductionAmount: new FormControl(shareSchemes.eligibleForReductionAmount),
12773
+ notEligibleForReductionAmount: new FormControl(shareSchemes.notEligibleForReductionAmount),
12774
+ discountFromDeferredSchemeAmount: new FormControl(shareSchemes.discountFromDeferredSchemeAmount),
12775
+ totalAssessableDiscountAmount: new FormControl(shareSchemes.totalAssessableDiscountAmount),
12776
+ shareSchemesTotalTax: new FormControl(shareSchemes.shareSchemesTotalTax)
12777
+ });
12778
+ }
12779
+ }
12780
+
12781
+ class MyTaxIncomeStatementsForm extends AbstractForm {
12782
+ constructor(incomeStatements, user) {
12783
+ super({
12784
+ occupation: new FormControl(user.clientDetails.occupation, [Validators.required, requireSelectValidator()]),
12785
+ allowanceTotalAmount: new FormControl({
12786
+ value: incomeStatements.allowanceTotalAmount,
12787
+ disabled: true
12788
+ }),
12789
+ allowanceTotalTax: new FormControl({
12790
+ value: incomeStatements.allowanceTotalTax,
12791
+ disabled: true
12792
+ }),
12793
+ lumpATransactionsTotalAmount: new FormControl({
12794
+ value: incomeStatements.lumpATransactionsTotalAmount,
12795
+ disabled: true
12796
+ }),
12797
+ lumpATransactionsTotalTax: new FormControl({
12798
+ value: incomeStatements.lumpATransactionsTotalTax,
12799
+ disabled: true
12800
+ }),
12801
+ hasGenuineLumpATransactions: new FormControl({
12802
+ value: incomeStatements.hasGenuineLumpATransactions,
12803
+ disabled: true
12804
+ }),
12805
+ hasOtherLumpATransactions: new FormControl({
12806
+ value: incomeStatements.hasOtherLumpATransactions,
12807
+ disabled: true
12808
+ }),
12809
+ lumpBTransactionsTotalAmount: new FormControl({
12810
+ value: incomeStatements.lumpBTransactionsTotalAmount,
12811
+ disabled: true
12812
+ }),
12813
+ lumpBTransactionsTotalTax: new FormControl({
12814
+ value: incomeStatements.lumpBTransactionsTotalTax,
12815
+ disabled: true
12816
+ }),
12817
+ australianAllowancesAndPaymentsTotalAmount: new FormControl({
12818
+ value: incomeStatements.australianAllowancesAndPaymentsTotalAmount,
12819
+ disabled: true
12820
+ }),
12821
+ australianAllowancesAndPaymentsTotalTax: new FormControl({
12822
+ value: incomeStatements.australianAllowancesAndPaymentsTotalTax,
12823
+ disabled: true
12824
+ }),
12825
+ australianPensionsAndAllowancesTotalAmount: new FormControl({
12826
+ value: incomeStatements.australianPensionsAndAllowancesTotalAmount,
12827
+ disabled: true
12828
+ }),
12829
+ australianPensionsAndAllowancesTotalTax: new FormControl({
12830
+ value: incomeStatements.australianPensionsAndAllowancesTotalTax,
12831
+ disabled: true
12832
+ }),
12833
+ australianAnnuitiesSuperannuationIncomesTotalTax: new FormControl({
12834
+ value: incomeStatements.australianAnnuitiesSuperannuationIncomesTotalTax,
12835
+ disabled: true
12836
+ }),
12837
+ australianAnnuityPaymentsTaxed: new FormControl({
12838
+ value: incomeStatements.australianAnnuityPaymentsTaxed,
12839
+ disabled: true
12840
+ }),
12841
+ australianAnnuityPaymentsUntaxed: new FormControl({
12842
+ value: incomeStatements.australianAnnuityPaymentsUntaxed,
12843
+ disabled: true
12844
+ }),
12845
+ assessableCappedDefinedBenefitTotalAmount: new FormControl({
12846
+ value: incomeStatements.assessableCappedDefinedBenefitTotalAmount,
12847
+ disabled: true
12848
+ }),
12849
+ superannuationIncomeStreamsTotalTaxed: new FormControl({
12850
+ value: incomeStatements.superannuationIncomeStreamsTotalTaxed,
12851
+ disabled: true
12852
+ }),
12853
+ superannuationIncomeStreamsTotalUntaxed: new FormControl({
12854
+ value: incomeStatements.superannuationIncomeStreamsTotalUntaxed,
12855
+ disabled: true
12856
+ }),
12857
+ attributablePsiTransactionsTotalAmount: new FormControl({
12858
+ value: incomeStatements.attributablePsiTransactionsTotalAmount,
12859
+ disabled: true
12860
+ }),
12861
+ attributablePsiTransactionsTotalTax: new FormControl({
12862
+ value: incomeStatements.attributablePsiTransactionsTotalTax,
12863
+ disabled: true
12864
+ }),
12865
+ });
12866
+ this.incomeStatements = incomeStatements;
12867
+ }
12868
+ }
12869
+
12870
+ /**
12871
+ * @Todo future functionality
12872
+ */
12873
+ class MyTaxIncomeTestsForm extends AbstractForm {
12874
+ constructor(incomeTests) {
12875
+ super({});
12876
+ }
12877
+ }
12878
+
12879
+ class MyTaxInterestForm extends AbstractForm {
12880
+ constructor(interest) {
12881
+ super({
12882
+ interestEarnedTotalAmount: new FormControl(interest.interestEarnedTotalAmount),
12883
+ interestEarnedTotalTax: new FormControl(interest.interestEarnedTotalTax),
12884
+ interestPaidTotalAmount: new FormControl(interest.interestPaidTotalAmount)
12885
+ });
12886
+ }
12887
+ }
12888
+
12889
+ /**
12890
+ * @Todo waiting for Sole tank implementation
12891
+ */
12892
+ class MyTaxLossesForm extends AbstractForm {
12893
+ constructor(losses) {
12894
+ super({});
12895
+ }
12896
+ }
12897
+
12898
+ class MyTaxMedicareForm extends AbstractForm {
12899
+ constructor(user) {
12900
+ super({
12901
+ hasDependants: new FormControl(!!user.clientDetails.dependants),
12902
+ dependants: new FormControl(user.clientDetails.dependants, Validators.required),
12903
+ privateHealthCare: new FormControl(user.clientDetails.privateHealthCare),
12904
+ hasMedicareExemption: new FormControl(!!user.clientDetails.medicareExemption),
12905
+ medicareExemption: new FormControl(user.clientDetails.medicareExemption, Validators.required),
12906
+ });
12907
+ this.listenEvents();
12908
+ }
12909
+ listenEvents() {
12910
+ this.listenHasDependantsChanged();
12911
+ this.listenHasMedicareExemptionChanged();
12912
+ }
12913
+ listenHasDependantsChanged() {
12914
+ this.get('hasDependants').valueChanges.subscribe((value) => {
12915
+ if (!value) {
12916
+ this.get('dependants').setValue(0);
12917
+ }
12918
+ });
12919
+ }
12920
+ listenHasMedicareExemptionChanged() {
12921
+ this.get('hasMedicareExemption').valueChanges.subscribe((value) => {
12922
+ if (!value) {
12923
+ this.get('medicareExemption').setValue(0);
12924
+ }
12925
+ });
12926
+ }
12927
+ }
12928
+
12929
+ /**
12930
+ * @Todo waiting for new chart accounts implemented (TT-1739 & TT-1740)
12931
+ */
12932
+ class MyTaxOffsetsForm extends AbstractForm {
12933
+ constructor(offsets) {
12934
+ super({});
12935
+ }
12936
+ }
12937
+
12938
+ class MyTaxOtherIncomeForm extends AbstractForm {
12939
+ constructor(otherIncome) {
12940
+ super({
12941
+ bonusesTotalAmount: new FormControl({
12942
+ value: otherIncome.bonusesTotalAmount,
12943
+ disabled: true
12944
+ }),
12945
+ forestryManagedInvestmentSchemesIncomeTotalAmount: new FormControl({
12946
+ value: otherIncome.forestryManagedInvestmentSchemesIncomeTotalAmount,
12947
+ disabled: true
12948
+ }),
12949
+ lumpSumPaymentsInArrearsTotalTax: new FormControl({
12950
+ value: otherIncome.lumpSumPaymentsInArrearsTotalTax,
12951
+ disabled: true
12952
+ }),
12953
+ specialProfessionIncomeTotalAmount: new FormControl({
12954
+ value: otherIncome.specialProfessionIncomeTotalAmount,
12955
+ disabled: true
12956
+ }),
12957
+ category1TotalIncome: new FormControl({
12958
+ value: otherIncome.category1TotalIncome,
12959
+ disabled: true
12960
+ }),
12961
+ hasLumpSumPaymentsInArrearsTransactions: new FormControl(!!otherIncome.lumpSumPaymentsInArrearsTransactions.length),
12962
+ atoInterestPaidTotalAmount: new FormControl({
12963
+ value: otherIncome.atoInterestPaidTotalAmount,
12964
+ disabled: true
12965
+ }),
12966
+ gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount: new FormControl({
12967
+ value: otherIncome.gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount,
12968
+ disabled: true
12969
+ })
12970
+ });
12971
+ }
12972
+ }
12973
+
12974
+ class MyTaxPartnershipsAndTrustsForm extends AbstractForm {
12975
+ constructor(partnershipsAndTrusts) {
12976
+ super({
12977
+ partnershipsNetIncome: new FormControl({
12978
+ value: partnershipsAndTrusts.partnershipsNetIncome,
12979
+ disabled: true
12980
+ }),
12981
+ trustsNetIncome: new FormControl({
12982
+ value: partnershipsAndTrusts.trustsNetIncome,
12983
+ disabled: true
12984
+ }),
12985
+ trustType: new FormControl(1),
12986
+ partnershipsSmallBusinessNetIncome: new FormControl(partnershipsAndTrusts.partnershipsSmallBusinessNetIncome, Validators.required),
12987
+ trustsSmallBusinessNetIncome: new FormControl(partnershipsAndTrusts.trustsSmallBusinessNetIncome, Validators.required),
12988
+ taxPaidTotal: new FormControl({
12989
+ value: partnershipsAndTrusts.taxPaidTotal,
12990
+ disabled: true
12991
+ }),
12992
+ frankingCreditsTotal: new FormControl({
12993
+ value: partnershipsAndTrusts.frankingCreditsTotal,
12994
+ disabled: true
12995
+ }),
12996
+ taxOffsetNRASTotalAmount: new FormControl({
12997
+ value: partnershipsAndTrusts.taxOffsetNRASTotalAmount,
12998
+ disabled: true
12999
+ })
13000
+ });
13001
+ }
13002
+ }
13003
+
13004
+ class MyTaxRentForm extends AbstractForm {
13005
+ constructor(rent) {
13006
+ super({
13007
+ grossRentAmount: new FormControl(rent.grossRentAmount),
13008
+ interestDeductions: new FormControl(rent.interestDeductionsAmount),
13009
+ capitalWorksDeductions: new FormControl(rent.capitalWorksDeductionsAmount),
13010
+ otherRentalDeductionsAmount: new FormControl(rent.otherRentalDeductionsAmount)
13011
+ });
13012
+ }
13013
+ }
13014
+
12138
13015
  /**
12139
13016
  * Public API Surface of tt-core
12140
13017
  */
@@ -12143,5 +13020,5 @@ class VehicleClaimForm extends AbstractForm {
12143
13020
  * Generated bundle index. Do not edit.
12144
13021
  */
12145
13022
 
12146
- export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Bank, BankAccount, BankAccountAddManualForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountForm, BankAccountLoanForm, BankAccountMigrateForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountPropertyForm, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankCollection, 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, 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, DEFAULT_VEHICLE_EXPENSE, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, 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, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfOrientationEnum, PdfService, 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, cloneDeep, compare, compareMatOptions, createDate, displayMatOptions, enumToList, getDocIcon, passwordMatchValidator, passwordValidator, replace, requireAutocomplete, roundTo, sort, sortDeep, taxReviewFilterPredicate };
13023
+ export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Bank, BankAccount, BankAccountAddManualForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountForm, BankAccountLoanForm, BankAccountMigrateForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountPropertyForm, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankCollection, 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, 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, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, 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, 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, cloneDeep, compare, compareMatOptions, createDate, displayMatOptions, enumToList, getDocIcon, passwordMatchValidator, passwordValidator, replace, requireAutocomplete, requireSelectValidator, roundTo, sort, sortDeep, taxReviewFilterPredicate };
12147
13024
  //# sourceMappingURL=taxtank-core.js.map