taxtank-core 0.18.0 → 0.19.1

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 (108) hide show
  1. package/bundles/taxtank-core.umd.js +1075 -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/endpoint/endpoints.const.js +2 -1
  25. package/esm2015/lib/models/pdf/pdf-settings.js +3 -1
  26. package/esm2015/lib/models/report/my-tax/ato-links.js +11 -0
  27. package/esm2015/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.js +8 -0
  28. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.js +13 -0
  29. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.js +57 -0
  30. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.js +10 -0
  31. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +72 -0
  32. package/esm2015/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.js +18 -0
  33. package/esm2015/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.js +24 -0
  34. package/esm2015/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.js +68 -0
  35. package/esm2015/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.js +8 -0
  36. package/esm2015/lib/models/report/my-tax/my-tax-interest/my-tax-interest.js +11 -0
  37. package/esm2015/lib/models/report/my-tax/my-tax-losses/my-tax-losses.js +10 -0
  38. package/esm2015/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.js +8 -0
  39. package/esm2015/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.js +28 -0
  40. package/esm2015/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.js +31 -0
  41. package/esm2015/lib/models/report/my-tax/my-tax-rent/my-tax-rent.js +24 -0
  42. package/esm2015/lib/models/transaction/transaction.js +2 -1
  43. package/esm2015/lib/services/event/sse.service.js +4 -1
  44. package/esm2015/lib/services/http/user/user.service.js +1 -1
  45. package/esm2015/lib/services/pdf/pdf-from-dom-element/file-settings.js +19 -0
  46. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +35 -0
  47. package/esm2015/lib/services/pdf/pdf-from-table/file-settings.js +31 -0
  48. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.js +40 -0
  49. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.js +40 -0
  50. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-table.service.js +53 -0
  51. package/esm2015/lib/validators/index.js +2 -1
  52. package/esm2015/lib/validators/require-select.validator.js +15 -0
  53. package/esm2015/public-api.js +21 -2
  54. package/fesm2015/taxtank-core.js +980 -102
  55. package/fesm2015/taxtank-core.js.map +1 -1
  56. package/lib/collections/collection.d.ts +2 -2
  57. package/lib/collections/depreciation.collection.d.ts +3 -2
  58. package/lib/collections/transaction/transaction.collection.d.ts +5 -4
  59. package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +20 -1
  60. package/lib/db/Enums/chart-accounts-list.enum.d.ts +37 -1
  61. package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +4 -1
  62. package/lib/forms/index.d.ts +1 -0
  63. package/lib/forms/report/my-tax/index.d.ts +13 -0
  64. package/lib/forms/report/my-tax/my-tax-business-or-losses.form.d.ts +8 -0
  65. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts +5 -0
  66. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts +5 -0
  67. package/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.d.ts +5 -0
  68. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts +7 -0
  69. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts +8 -0
  70. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts +5 -0
  71. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts +8 -0
  72. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts +9 -0
  73. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts +8 -0
  74. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts +5 -0
  75. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts +5 -0
  76. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts +5 -0
  77. package/lib/models/report/my-tax/ato-links.d.ts +6 -0
  78. package/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.d.ts +7 -0
  79. package/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.d.ts +11 -0
  80. package/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.d.ts +8 -0
  81. package/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.d.ts +8 -0
  82. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +39 -0
  83. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts +9 -0
  84. package/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.d.ts +10 -0
  85. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts +30 -0
  86. package/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.d.ts +7 -0
  87. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts +9 -0
  88. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +8 -0
  89. package/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.d.ts +7 -0
  90. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts +13 -0
  91. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts +17 -0
  92. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts +11 -0
  93. package/lib/models/transaction/transaction.d.ts +3 -1
  94. package/lib/services/event/sse.service.d.ts +3 -0
  95. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts +6 -0
  96. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts +13 -0
  97. package/lib/services/pdf/pdf-from-table/file-settings.d.ts +8 -0
  98. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts +19 -0
  99. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts +15 -0
  100. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts +16 -0
  101. package/lib/validators/index.d.ts +1 -0
  102. package/lib/validators/require-select.validator.d.ts +5 -0
  103. package/package.json +2 -1
  104. package/public-api.d.ts +20 -1
  105. package/esm2015/lib/models/pdf/pdf-config.js +0 -43
  106. package/esm2015/lib/services/pdf/pdf.service.js +0 -99
  107. package/lib/models/pdf/pdf-config.d.ts +0 -8
  108. 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';
@@ -574,6 +575,7 @@ const ENDPOINTS = {
574
575
  CLIENTS_INVITES_ACCEPT_POST: new Endpoint('POST', '\\/clients\\/\\invites\\/\\d+\\/accept'),
575
576
  CLIENTS_INVITES_REJECT_POST: new Endpoint('POST', '\\/clients\\/\\invites\\/\\d+\\/reject'),
576
577
  CLIENTS_INVITES_RESEND_POST: new Endpoint('POST', '\\/clients\\/\\invites\\/\\d+\\/resend'),
578
+ CLIENT_MOVEMENTS_CLOSE: new Endpoint('PUT', '\\/client-movements\\/\\d+\\/close'),
577
579
  CLIENT_MOVEMENTS_GET: new Endpoint('GET', '\\/client-movements'),
578
580
  CLIENT_MOVEMENTS_POST: new Endpoint('POST', '\\/client-movements'),
579
581
  COUNTRIES_GET: new Endpoint('GET', '\\/countries'),
@@ -2039,6 +2041,7 @@ class Collection {
2039
2041
  }
2040
2042
  sortBy(field = 'id', isDesc = true) {
2041
2043
  sort(this.items, field, isDesc);
2044
+ return this;
2042
2045
  }
2043
2046
  /**
2044
2047
  * Get total sum of items by field
@@ -3235,22 +3238,6 @@ class ClientPortfolioReportCollection extends Collection {
3235
3238
  }
3236
3239
  }
3237
3240
 
3238
- /**
3239
- * export table column
3240
- */
3241
- class ExportCell {
3242
- }
3243
-
3244
- /**
3245
- * type of export table column value
3246
- */
3247
- var ExportCellTypeEnum;
3248
- (function (ExportCellTypeEnum) {
3249
- ExportCellTypeEnum[ExportCellTypeEnum["STRING"] = 0] = "STRING";
3250
- ExportCellTypeEnum[ExportCellTypeEnum["CURRENCY"] = 1] = "CURRENCY";
3251
- ExportCellTypeEnum[ExportCellTypeEnum["DATE"] = 2] = "DATE";
3252
- })(ExportCellTypeEnum || (ExportCellTypeEnum = {}));
3253
-
3254
3241
  class ExportDataTable {
3255
3242
  }
3256
3243
 
@@ -3268,6 +3255,22 @@ class ExportableCollection extends Collection {
3268
3255
  }
3269
3256
  }
3270
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
+
3271
3274
  /**
3272
3275
  * Collection of transactions
3273
3276
  */
@@ -3318,11 +3321,14 @@ class TransactionCollection extends ExportableCollection {
3318
3321
  return new TransactionCollection(this.items.filter((transaction) => transaction.date.getMonth() === monthIndex));
3319
3322
  }
3320
3323
  /**
3321
- * get list of transactions filtered by chart accounts id
3322
- * @param chartAccountsId chart accounts id for filtering
3324
+ * Get collection of transactions metadata
3323
3325
  */
3324
- getByChartAccountsId(chartAccountsId) {
3325
- 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);
3326
3332
  }
3327
3333
  getIncomeTransactions() {
3328
3334
  return new TransactionCollection(this.items.filter((transaction) => transaction.isIncome()));
@@ -3475,11 +3481,14 @@ class DepreciationCollection extends Collection {
3475
3481
  getByChartAccountsCategories(categories) {
3476
3482
  return this.create(this.items.filter((depreciation) => categories.includes(depreciation.chartAccounts.category)));
3477
3483
  }
3484
+ getAssets() {
3485
+ return this.filter((depreciation) => depreciation.isAsset());
3486
+ }
3478
3487
  getPlantEquipment() {
3479
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isPlantEquipment()));
3488
+ return this.filter((depreciation) => depreciation.isPlantEquipment());
3480
3489
  }
3481
3490
  getCapitalDepreciations() {
3482
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isCapital()));
3491
+ return this.filter((depreciation) => depreciation.isCapital());
3483
3492
  }
3484
3493
  getBorrowingExpenseDepreciations() {
3485
3494
  return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isBorrowingExpense()));
@@ -3931,6 +3940,19 @@ var ChartAccountsHeadingVehicleListEnum;
3931
3940
 
3932
3941
  var ChartAccountsListEnum;
3933
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";
3934
3956
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_ON_LOAN"] = 302] = "INTEREST_ON_LOAN";
3935
3957
  ChartAccountsListEnum[ChartAccountsListEnum["BORROWING_EXPENSES"] = 315] = "BORROWING_EXPENSES";
3936
3958
  ChartAccountsListEnum[ChartAccountsListEnum["DIVIDENDS"] = 542] = "DIVIDENDS";
@@ -3947,8 +3969,31 @@ var ChartAccountsListEnum;
3947
3969
  ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_PRINCIPAL"] = 38] = "VEHICLE_LOAN_PRINCIPAL";
3948
3970
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_INSTALMENTS"] = 662] = "TAX_INSTALMENTS";
3949
3971
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_EARNED"] = 22] = "INTEREST_EARNED";
3972
+ ChartAccountsListEnum[ChartAccountsListEnum["PARTNERSHIP_INCOME"] = 566] = "PARTNERSHIP_INCOME";
3950
3973
  ChartAccountsListEnum[ChartAccountsListEnum["TRUST_INCOME"] = 567] = "TRUST_INCOME";
3951
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";
3952
3997
  })(ChartAccountsListEnum || (ChartAccountsListEnum = {}));
3953
3998
 
3954
3999
  class DepreciationCapitalProject$1 extends AbstractModel {
@@ -4018,8 +4063,11 @@ var ChartAccountsMetadataListEnum;
4018
4063
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["TAX_FREE_COMPONENT"] = 18] = "TAX_FREE_COMPONENT";
4019
4064
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["YEARS_OF_SERVICE"] = 19] = "YEARS_OF_SERVICE";
4020
4065
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNTAXED_ELEMENT"] = 24] = "UNTAXED_ELEMENT";
4066
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["NOT_ELIGIBLE_FOR_DEDUCTION"] = 25] = "NOT_ELIGIBLE_FOR_DEDUCTION";
4021
4067
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["FRANKED"] = 26] = "FRANKED";
4068
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNFRANKED"] = 27] = "UNFRANKED";
4022
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";
4023
4071
  })(ChartAccountsMetadataListEnum || (ChartAccountsMetadataListEnum = {}));
4024
4072
 
4025
4073
  class ChartAccountsMetadata extends ChartAccountsMetadata$1 {
@@ -4530,6 +4578,7 @@ class Transaction extends Transaction$1 {
4530
4578
  /**
4531
4579
  * Get value of transaction metadata field
4532
4580
  * @param field for which value should be returned
4581
+ * @Todo modify 'metadata' property from array to Collection
4533
4582
  */
4534
4583
  getMetadataFieldValue(field) {
4535
4584
  var _a;
@@ -5444,7 +5493,26 @@ var ChartAccountsEtpEnum;
5444
5493
 
5445
5494
  var ChartAccountsHeadingListEnum;
5446
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";
5447
5513
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["ETP"] = 39] = "ETP";
5514
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["INTEREST_DEDUCTIONS"] = 47] = "INTEREST_DEDUCTIONS";
5515
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DIVIDEND_DEDUCTIONS"] = 48] = "DIVIDEND_DEDUCTIONS";
5448
5516
  })(ChartAccountsHeadingListEnum || (ChartAccountsHeadingListEnum = {}));
5449
5517
 
5450
5518
  var ChartAccountsHeadingTaxableEnum;
@@ -6836,6 +6904,8 @@ var PdfOrientationEnum;
6836
6904
  */
6837
6905
  class PdfSettings {
6838
6906
  constructor() {
6907
+ this.title = '';
6908
+ this.filename = 'export';
6839
6909
  this.orientation = PdfOrientationEnum.PORTRAIT;
6840
6910
  }
6841
6911
  }
@@ -7208,6 +7278,384 @@ class TaxExemptionMetadata extends TaxExemptionMetadata$1 {
7208
7278
  class PropertySaleTaxExemptionMetadata extends PropertySaleTaxExemptionMetadata$1 {
7209
7279
  }
7210
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
+
7211
7659
  /**
7212
7660
  * Constant with list of URLs
7213
7661
  */
@@ -8962,6 +9410,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
8962
9410
  }]
8963
9411
  }] });
8964
9412
 
9413
+ /**
9414
+ * server sent events service
9415
+ */
8965
9416
  class SseService {
8966
9417
  constructor(zone, jwtService, environment) {
8967
9418
  this.zone = zone;
@@ -10303,9 +10754,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
10303
10754
  }] }, { type: ToastService }, { type: SseService }]; } });
10304
10755
 
10305
10756
  /**
10306
- * 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.)
10307
10807
  */
10308
- const PDF_CONFIG = {
10808
+ const FILE_SETTINGS = {
10309
10809
  text: {
10310
10810
  fontSize: 12,
10311
10811
  fontName: 'helvetica',
@@ -10324,92 +10824,37 @@ const PDF_CONFIG = {
10324
10824
  positionX: 42,
10325
10825
  positionY: 6
10326
10826
  },
10327
- // coords for file section title (group, table, e.t.c.)
10328
- contentTitleCoords: {
10329
- marginTop: 15
10827
+ titleCoords: {
10828
+ top: 15
10330
10829
  },
10331
10830
  contentCoords: {
10332
- marginTop: 15,
10333
- marginLeft: 14
10334
- },
10335
- table: {
10336
- headStyles: {
10337
- fillColor: '#00b7f0',
10338
- lineWidth: .2,
10339
- halign: 'center'
10340
- },
10341
- footStyles: {
10342
- fillColor: '#ffffff',
10343
- textColor: '#000000'
10344
- },
10831
+ top: 15,
10832
+ left: 14
10345
10833
  }
10346
10834
  };
10347
10835
 
10348
10836
  /**
10349
- * @TODO vik refactor
10350
- * 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
10351
10839
  */
10352
- class PdfService {
10353
- constructor(formatter) {
10354
- this.formatter = formatter;
10355
- }
10356
- /**
10357
- * Export file from provided HTML tables
10358
- */
10359
- exportTables(tables, fileSettings) {
10360
- const document = this.generateFromTables(tables, fileSettings);
10361
- document.save(`${fileSettings.filename}.pdf`);
10362
- }
10363
- /**
10364
- * Export file from provided array-like table data
10365
- */
10366
- exportFromDataTables(dataTables, fileSettings) {
10367
- const document = this.generateFromDataTables(dataTables, fileSettings.title);
10368
- document.save(`${fileSettings.filename}.pdf`);
10369
- }
10370
- /**
10371
- * Generate file from array-like table data
10372
- */
10373
- generateFromDataTables(dataTables, title) {
10374
- const pdf = new jsPDF();
10375
- this.setDocumentTitle(pdf, title);
10376
- this.setDocumentLogo(pdf);
10377
- dataTables.forEach((dataTable) => {
10378
- autoTable(pdf, Object.assign({ head: [dataTable.header], body: this.formatter.format(dataTable.body), foot: this.formatter.format(dataTable.footer) }, this.setTableOptions(pdf, dataTable.caption)));
10379
- });
10380
- return pdf;
10381
- }
10382
- generateFromTables(tables, fileSettings) {
10383
- const pdf = new jsPDF(fileSettings.orientation);
10384
- this.setDocumentTitle(pdf, fileSettings.title);
10385
- this.setDocumentLogo(pdf);
10386
- tables.forEach((table) => {
10387
- // Add table caption if not provided
10388
- if (!table.caption) {
10389
- table.createCaption();
10390
- table.caption.innerText = '';
10391
- }
10392
- autoTable(pdf, Object.assign({ html: table }, this.setTableOptions(pdf, table.caption.innerText)));
10393
- });
10394
- return pdf;
10395
- }
10840
+ class PdfFromTableService {
10396
10841
  /**
10397
10842
  * Set basic options for PDF table
10398
10843
  */
10399
10844
  setTableOptions(pdf, tableCaption = '') {
10400
- const lastTableCoords = pdf['lastAutoTable'].finalY || PDF_CONFIG.contentCoords.marginTop;
10845
+ const lastTableCoords = pdf['lastAutoTable'].finalY || FILE_SETTINGS.contentCoords.top;
10401
10846
  // get caption height based on caption content height
10402
10847
  const captionHeight = pdf.getTextDimensions(pdf.splitTextToSize(tableCaption, pdf.internal.pageSize.width)).h;
10403
- 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);
10404
10849
  return {
10405
10850
  headStyles: {
10406
- fillColor: PDF_CONFIG.text.colorPrimary,
10851
+ fillColor: FILE_SETTINGS.text.colorPrimary,
10407
10852
  },
10408
10853
  footStyles: {
10409
- fillColor: PDF_CONFIG.text.colorWhite,
10410
- textColor: PDF_CONFIG.text.colorBlack
10854
+ fillColor: FILE_SETTINGS.text.colorWhite,
10855
+ textColor: FILE_SETTINGS.text.colorBlack
10411
10856
  },
10412
- startY: lastTableCoords + captionHeight + PDF_CONFIG.contentTitleCoords.marginTop,
10857
+ startY: lastTableCoords + captionHeight + FILE_SETTINGS.titleCoords.top,
10413
10858
  didParseCell: (data) => {
10414
10859
  // Align last column content to right
10415
10860
  if (data.table.columns.length > 1 && (data.column.index === data.table.columns.length - 1)) {
@@ -10419,19 +10864,88 @@ class PdfService {
10419
10864
  };
10420
10865
  }
10421
10866
  setDocumentTitle(doc, title) {
10422
- doc.setFontSize(PDF_CONFIG.text.fontSize)
10423
- .setFont(PDF_CONFIG.text.fontName, PDF_CONFIG.text.fontStyle, PDF_CONFIG.text.fontWeight)
10424
- .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);
10425
10870
  }
10426
10871
  setDocumentLogo(doc) {
10427
10872
  const logo = new Image();
10428
- logo.src = PDF_CONFIG.logo.src;
10429
- 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);
10430
10875
  }
10431
10876
  }
10432
- PdfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfService, deps: [{ token: ExportFormatterService }], target: i0.ɵɵFactoryTarget.Injectable });
10433
- PdfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfService, providedIn: 'root' });
10434
- 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: [{
10435
10949
  type: Injectable,
10436
10950
  args: [{
10437
10951
  providedIn: 'root'
@@ -11936,6 +12450,21 @@ function passwordMatchValidator(newPassControlName, confirmPassControlName) {
11936
12450
  };
11937
12451
  }
11938
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
+
11939
12468
  class ClientIncomeTypesForm extends AbstractForm {
11940
12469
  constructor(clientIncomeTypes) {
11941
12470
  super({
@@ -12134,6 +12663,355 @@ class VehicleClaimForm extends AbstractForm {
12134
12663
  }
12135
12664
  }
12136
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
+
12137
13015
  /**
12138
13016
  * Public API Surface of tt-core
12139
13017
  */
@@ -12142,5 +13020,5 @@ class VehicleClaimForm extends AbstractForm {
12142
13020
  * Generated bundle index. Do not edit.
12143
13021
  */
12144
13022
 
12145
- 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 };
12146
13024
  //# sourceMappingURL=taxtank-core.js.map