taxtank-core 0.18.1 → 0.19.2

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 (110) hide show
  1. package/bundles/taxtank-core.umd.js +1091 -115
  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/bank/bank-account.form.js +16 -3
  10. package/esm2015/lib/forms/index.js +2 -1
  11. package/esm2015/lib/forms/report/my-tax/index.js +14 -0
  12. package/esm2015/lib/forms/report/my-tax/my-tax-business-or-losses.form.js +10 -0
  13. package/esm2015/lib/forms/report/my-tax/my-tax-deductions.form.js +75 -0
  14. package/esm2015/lib/forms/report/my-tax/my-tax-dividends.form.js +23 -0
  15. package/esm2015/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.js +14 -0
  16. package/esm2015/lib/forms/report/my-tax/my-tax-income-statements.form.js +92 -0
  17. package/esm2015/lib/forms/report/my-tax/my-tax-income-tests.form.js +10 -0
  18. package/esm2015/lib/forms/report/my-tax/my-tax-interest.form.js +12 -0
  19. package/esm2015/lib/forms/report/my-tax/my-tax-losses.form.js +10 -0
  20. package/esm2015/lib/forms/report/my-tax/my-tax-medicare.form.js +33 -0
  21. package/esm2015/lib/forms/report/my-tax/my-tax-offsets.form.js +10 -0
  22. package/esm2015/lib/forms/report/my-tax/my-tax-other-income.form.js +38 -0
  23. package/esm2015/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.js +32 -0
  24. package/esm2015/lib/forms/report/my-tax/my-tax-rent.form.js +13 -0
  25. package/esm2015/lib/models/bank/bank-account-property.js +2 -2
  26. package/esm2015/lib/models/pdf/pdf-settings.js +3 -1
  27. package/esm2015/lib/models/report/my-tax/ato-links.js +11 -0
  28. package/esm2015/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.js +8 -0
  29. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.js +13 -0
  30. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.js +57 -0
  31. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.js +10 -0
  32. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +72 -0
  33. package/esm2015/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.js +18 -0
  34. package/esm2015/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.js +24 -0
  35. package/esm2015/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.js +68 -0
  36. package/esm2015/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.js +8 -0
  37. package/esm2015/lib/models/report/my-tax/my-tax-interest/my-tax-interest.js +11 -0
  38. package/esm2015/lib/models/report/my-tax/my-tax-losses/my-tax-losses.js +10 -0
  39. package/esm2015/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.js +8 -0
  40. package/esm2015/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.js +28 -0
  41. package/esm2015/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.js +31 -0
  42. package/esm2015/lib/models/report/my-tax/my-tax-rent/my-tax-rent.js +24 -0
  43. package/esm2015/lib/models/transaction/transaction.js +2 -1
  44. package/esm2015/lib/services/event/sse.service.js +4 -1
  45. package/esm2015/lib/services/http/user/user.service.js +1 -1
  46. package/esm2015/lib/services/pdf/pdf-from-dom-element/file-settings.js +19 -0
  47. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +35 -0
  48. package/esm2015/lib/services/pdf/pdf-from-table/file-settings.js +31 -0
  49. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.js +40 -0
  50. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.js +40 -0
  51. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-table.service.js +53 -0
  52. package/esm2015/lib/validators/index.js +2 -1
  53. package/esm2015/lib/validators/require-select.validator.js +15 -0
  54. package/esm2015/public-api.js +21 -2
  55. package/fesm2015/taxtank-core.js +995 -105
  56. package/fesm2015/taxtank-core.js.map +1 -1
  57. package/lib/collections/collection.d.ts +2 -2
  58. package/lib/collections/depreciation.collection.d.ts +3 -2
  59. package/lib/collections/transaction/transaction.collection.d.ts +5 -4
  60. package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +20 -1
  61. package/lib/db/Enums/chart-accounts-list.enum.d.ts +37 -1
  62. package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +4 -1
  63. package/lib/forms/bank/bank-account.form.d.ts +7 -0
  64. package/lib/forms/index.d.ts +1 -0
  65. package/lib/forms/report/my-tax/index.d.ts +13 -0
  66. package/lib/forms/report/my-tax/my-tax-business-or-losses.form.d.ts +8 -0
  67. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts +5 -0
  68. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts +5 -0
  69. package/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.d.ts +5 -0
  70. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts +7 -0
  71. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts +8 -0
  72. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts +5 -0
  73. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts +8 -0
  74. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts +9 -0
  75. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts +8 -0
  76. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts +5 -0
  77. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts +5 -0
  78. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts +5 -0
  79. package/lib/models/report/my-tax/ato-links.d.ts +6 -0
  80. package/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.d.ts +7 -0
  81. package/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.d.ts +11 -0
  82. package/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.d.ts +8 -0
  83. package/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.d.ts +8 -0
  84. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +39 -0
  85. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts +9 -0
  86. package/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.d.ts +10 -0
  87. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts +30 -0
  88. package/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.d.ts +7 -0
  89. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts +9 -0
  90. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +8 -0
  91. package/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.d.ts +7 -0
  92. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts +13 -0
  93. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts +17 -0
  94. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts +11 -0
  95. package/lib/models/transaction/transaction.d.ts +3 -1
  96. package/lib/services/event/sse.service.d.ts +3 -0
  97. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts +6 -0
  98. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts +13 -0
  99. package/lib/services/pdf/pdf-from-table/file-settings.d.ts +8 -0
  100. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts +19 -0
  101. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts +15 -0
  102. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts +16 -0
  103. package/lib/validators/index.d.ts +1 -0
  104. package/lib/validators/require-select.validator.d.ts +5 -0
  105. package/package.json +2 -1
  106. package/public-api.d.ts +20 -1
  107. package/esm2015/lib/models/pdf/pdf-config.js +0 -43
  108. package/esm2015/lib/services/pdf/pdf.service.js +0 -99
  109. package/lib/models/pdf/pdf-config.d.ts +0 -8
  110. 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
@@ -2338,7 +2340,7 @@ __decorate([
2338
2340
  Type(() => Property)
2339
2341
  ], BankAccountProperty.prototype, "property", void 0);
2340
2342
  __decorate([
2341
- Transform(({ value }) => value || 0),
2343
+ Transform(({ value }) => value || 100),
2342
2344
  Expose()
2343
2345
  ], BankAccountProperty.prototype, "percent", void 0);
2344
2346
 
@@ -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
10308
10779
  */
10309
- const PDF_CONFIG = {
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.)
10807
+ */
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'
@@ -11777,12 +12290,13 @@ class BankAccountForm extends AbstractForm {
11777
12290
  }, bankAccount);
11778
12291
  this.bankAccount = bankAccount;
11779
12292
  if (bankAccount.isLoan()) {
11780
- this.addControl('loan', new BankAccountLoanForm());
12293
+ this.addControl('loan', new BankAccountLoanForm(bankAccount.loan));
11781
12294
  }
11782
12295
  this.listenEvents();
11783
12296
  }
11784
12297
  listenEvents() {
11785
12298
  this.listenTankTypeChanges();
12299
+ this.listenValueChanges();
11786
12300
  }
11787
12301
  get properties() {
11788
12302
  return this.get('bankAccountProperties');
@@ -11793,9 +12307,16 @@ class BankAccountForm extends AbstractForm {
11793
12307
  isPropertyTank() {
11794
12308
  return this.get('tankType').value === TankTypeEnum.PROPERTY;
11795
12309
  }
12310
+ confirm() {
12311
+ this.markAllAsTouched();
12312
+ if (this.invalid) {
12313
+ return;
12314
+ }
12315
+ this.isConfirmed = true;
12316
+ }
11796
12317
  addPropertiesArray() {
11797
12318
  const control = new BankAccountPropertiesForm(this.isLoan(), this.bankAccount.bankAccountProperties);
11798
- // Default form behaviour is: iw we add enabled form control to disabled form group then this form group enable.
12319
+ // Default form behaviour is: if we add enabled form control to disabled form group then this form group enable.
11799
12320
  // Disable form control before add to avoid form group enabling.
11800
12321
  if (this.disabled) {
11801
12322
  control.disable();
@@ -11810,6 +12331,11 @@ class BankAccountForm extends AbstractForm {
11810
12331
  this.isPropertyTank() ? this.addPropertiesArray() : this.removeControl('bankAccountProperties');
11811
12332
  });
11812
12333
  }
12334
+ listenValueChanges() {
12335
+ this.valueChanges.subscribe(() => {
12336
+ this.isConfirmed = false;
12337
+ });
12338
+ }
11813
12339
  }
11814
12340
 
11815
12341
  /**
@@ -11937,6 +12463,21 @@ function passwordMatchValidator(newPassControlName, confirmPassControlName) {
11937
12463
  };
11938
12464
  }
11939
12465
 
12466
+ /**
12467
+ * Validation function, that checks that the user should select a value from a list rather than type in input field
12468
+ */
12469
+ function requireSelectValidator() {
12470
+ return (control) => {
12471
+ const selection = control.value;
12472
+ if (typeof selection === 'string' && !!selection) {
12473
+ return { notFromList: true };
12474
+ }
12475
+ else {
12476
+ return null;
12477
+ }
12478
+ };
12479
+ }
12480
+
11940
12481
  class ClientIncomeTypesForm extends AbstractForm {
11941
12482
  constructor(clientIncomeTypes) {
11942
12483
  super({
@@ -12135,6 +12676,355 @@ class VehicleClaimForm extends AbstractForm {
12135
12676
  }
12136
12677
  }
12137
12678
 
12679
+ /**
12680
+ * @Todo waiting for the Sole tank implementation
12681
+ */
12682
+ class MyTaxBusinessOrLossesForm extends AbstractForm {
12683
+ constructor(businessOrLosses) {
12684
+ super({});
12685
+ }
12686
+ }
12687
+
12688
+ class MyTaxDeductionsForm extends AbstractForm {
12689
+ constructor(deductions) {
12690
+ super({
12691
+ vehicleClaimMethod: new FormControl({
12692
+ value: deductions.vehicleClaim.method,
12693
+ disabled: true
12694
+ }),
12695
+ vehicleExpensesTotalAmount: new FormControl({
12696
+ value: deductions.vehicleExpensesTotalAmount,
12697
+ disabled: true
12698
+ }),
12699
+ workRelatedTravelExpensesTotalAmount: new FormControl({
12700
+ value: deductions.workRelatedTravelExpensesTotalAmount,
12701
+ disabled: true
12702
+ }),
12703
+ workRelatedClothingType: new FormControl(deductions.workRelatedClothingType, Validators.required),
12704
+ workRelatedClothingTotalAmount: new FormControl({
12705
+ value: deductions.workRelatedClothingTotalAmount,
12706
+ disabled: true
12707
+ }),
12708
+ workRelatedSelfEducationType: new FormControl(deductions.workRelatedSelfEducationType, Validators.required),
12709
+ workRelatedSelfEducationTotalAmount: new FormControl({
12710
+ value: deductions.workRelatedSelfEducationTotalAmount,
12711
+ disabled: true
12712
+ }),
12713
+ otherWorkRelatedSelfEducationTotalAmount: new FormControl({
12714
+ value: deductions.otherWorkRelatedExpensesTotalAmount,
12715
+ disabled: true
12716
+ }),
12717
+ lowValuePoolDeductionTotalAmount: new FormControl({
12718
+ value: deductions.lowValuePoolDeductionTotalAmount,
12719
+ disabled: true
12720
+ }),
12721
+ interestExpensesTotalAmount: new FormControl({
12722
+ value: deductions.interestExpensesTotalAmount,
12723
+ disabled: true
12724
+ }),
12725
+ dividendExpensesTotalAmount: new FormControl({
12726
+ value: deductions.dividendExpensesTotalAmount,
12727
+ disabled: true
12728
+ }),
12729
+ donationsTotalAmount: new FormControl({
12730
+ value: deductions.donationsTotalAmount,
12731
+ disabled: true
12732
+ }),
12733
+ interestsChargedByATOTotalAmount: new FormControl({
12734
+ value: deductions.interestsChargedByATOTotalAmount,
12735
+ disabled: true
12736
+ }),
12737
+ litigationCostsTotalAmount: new FormControl({
12738
+ value: deductions.litigationCostsTotalAmount,
12739
+ disabled: true
12740
+ }),
12741
+ otherManagingCostsTotalAmount: new FormControl({
12742
+ value: deductions.otherManagingCostsTotalAmount,
12743
+ disabled: true
12744
+ }),
12745
+ personalSuperContributionsTotalAmount: new FormControl({
12746
+ value: deductions.personalSuperContributionsTotalAmount,
12747
+ disabled: true
12748
+ }),
12749
+ forestryManagedInvestmentSchemesDeductionsTotalAmount: new FormControl({
12750
+ value: deductions.forestryManagedInvestmentSchemesDeductionsTotalAmount,
12751
+ disabled: true
12752
+ }),
12753
+ otherDeductionsTotalAmount: new FormControl({
12754
+ value: deductions.otherDeductionsTotalAmount,
12755
+ disabled: true
12756
+ })
12757
+ });
12758
+ }
12759
+ }
12760
+
12761
+ class MyTaxDividendsForm extends AbstractForm {
12762
+ constructor(dividends) {
12763
+ super({
12764
+ dividendsUnfrankedAmount: new FormControl({
12765
+ value: dividends.dividendsUnfrankedAmount,
12766
+ disabled: true
12767
+ }),
12768
+ dividendsFrankedAmount: new FormControl({
12769
+ value: dividends.dividendsFrankedAmount,
12770
+ disabled: true
12771
+ }),
12772
+ dividendsFrankingCreditsAmount: new FormControl({
12773
+ value: dividends.dividendsFrankingCreditsAmount,
12774
+ disabled: true
12775
+ }),
12776
+ dividendsTotalTax: new FormControl({ value: dividends.dividendsTotalTax, disabled: true }),
12777
+ isForeignResident: new FormControl(false),
12778
+ });
12779
+ }
12780
+ }
12781
+
12782
+ class MyTaxEmployeeShareSchemesForm extends AbstractForm {
12783
+ constructor(shareSchemes) {
12784
+ super({
12785
+ eligibleForReductionAmount: new FormControl(shareSchemes.eligibleForReductionAmount),
12786
+ notEligibleForReductionAmount: new FormControl(shareSchemes.notEligibleForReductionAmount),
12787
+ discountFromDeferredSchemeAmount: new FormControl(shareSchemes.discountFromDeferredSchemeAmount),
12788
+ totalAssessableDiscountAmount: new FormControl(shareSchemes.totalAssessableDiscountAmount),
12789
+ shareSchemesTotalTax: new FormControl(shareSchemes.shareSchemesTotalTax)
12790
+ });
12791
+ }
12792
+ }
12793
+
12794
+ class MyTaxIncomeStatementsForm extends AbstractForm {
12795
+ constructor(incomeStatements, user) {
12796
+ super({
12797
+ occupation: new FormControl(user.clientDetails.occupation, [Validators.required, requireSelectValidator()]),
12798
+ allowanceTotalAmount: new FormControl({
12799
+ value: incomeStatements.allowanceTotalAmount,
12800
+ disabled: true
12801
+ }),
12802
+ allowanceTotalTax: new FormControl({
12803
+ value: incomeStatements.allowanceTotalTax,
12804
+ disabled: true
12805
+ }),
12806
+ lumpATransactionsTotalAmount: new FormControl({
12807
+ value: incomeStatements.lumpATransactionsTotalAmount,
12808
+ disabled: true
12809
+ }),
12810
+ lumpATransactionsTotalTax: new FormControl({
12811
+ value: incomeStatements.lumpATransactionsTotalTax,
12812
+ disabled: true
12813
+ }),
12814
+ hasGenuineLumpATransactions: new FormControl({
12815
+ value: incomeStatements.hasGenuineLumpATransactions,
12816
+ disabled: true
12817
+ }),
12818
+ hasOtherLumpATransactions: new FormControl({
12819
+ value: incomeStatements.hasOtherLumpATransactions,
12820
+ disabled: true
12821
+ }),
12822
+ lumpBTransactionsTotalAmount: new FormControl({
12823
+ value: incomeStatements.lumpBTransactionsTotalAmount,
12824
+ disabled: true
12825
+ }),
12826
+ lumpBTransactionsTotalTax: new FormControl({
12827
+ value: incomeStatements.lumpBTransactionsTotalTax,
12828
+ disabled: true
12829
+ }),
12830
+ australianAllowancesAndPaymentsTotalAmount: new FormControl({
12831
+ value: incomeStatements.australianAllowancesAndPaymentsTotalAmount,
12832
+ disabled: true
12833
+ }),
12834
+ australianAllowancesAndPaymentsTotalTax: new FormControl({
12835
+ value: incomeStatements.australianAllowancesAndPaymentsTotalTax,
12836
+ disabled: true
12837
+ }),
12838
+ australianPensionsAndAllowancesTotalAmount: new FormControl({
12839
+ value: incomeStatements.australianPensionsAndAllowancesTotalAmount,
12840
+ disabled: true
12841
+ }),
12842
+ australianPensionsAndAllowancesTotalTax: new FormControl({
12843
+ value: incomeStatements.australianPensionsAndAllowancesTotalTax,
12844
+ disabled: true
12845
+ }),
12846
+ australianAnnuitiesSuperannuationIncomesTotalTax: new FormControl({
12847
+ value: incomeStatements.australianAnnuitiesSuperannuationIncomesTotalTax,
12848
+ disabled: true
12849
+ }),
12850
+ australianAnnuityPaymentsTaxed: new FormControl({
12851
+ value: incomeStatements.australianAnnuityPaymentsTaxed,
12852
+ disabled: true
12853
+ }),
12854
+ australianAnnuityPaymentsUntaxed: new FormControl({
12855
+ value: incomeStatements.australianAnnuityPaymentsUntaxed,
12856
+ disabled: true
12857
+ }),
12858
+ assessableCappedDefinedBenefitTotalAmount: new FormControl({
12859
+ value: incomeStatements.assessableCappedDefinedBenefitTotalAmount,
12860
+ disabled: true
12861
+ }),
12862
+ superannuationIncomeStreamsTotalTaxed: new FormControl({
12863
+ value: incomeStatements.superannuationIncomeStreamsTotalTaxed,
12864
+ disabled: true
12865
+ }),
12866
+ superannuationIncomeStreamsTotalUntaxed: new FormControl({
12867
+ value: incomeStatements.superannuationIncomeStreamsTotalUntaxed,
12868
+ disabled: true
12869
+ }),
12870
+ attributablePsiTransactionsTotalAmount: new FormControl({
12871
+ value: incomeStatements.attributablePsiTransactionsTotalAmount,
12872
+ disabled: true
12873
+ }),
12874
+ attributablePsiTransactionsTotalTax: new FormControl({
12875
+ value: incomeStatements.attributablePsiTransactionsTotalTax,
12876
+ disabled: true
12877
+ }),
12878
+ });
12879
+ this.incomeStatements = incomeStatements;
12880
+ }
12881
+ }
12882
+
12883
+ /**
12884
+ * @Todo future functionality
12885
+ */
12886
+ class MyTaxIncomeTestsForm extends AbstractForm {
12887
+ constructor(incomeTests) {
12888
+ super({});
12889
+ }
12890
+ }
12891
+
12892
+ class MyTaxInterestForm extends AbstractForm {
12893
+ constructor(interest) {
12894
+ super({
12895
+ interestEarnedTotalAmount: new FormControl(interest.interestEarnedTotalAmount),
12896
+ interestEarnedTotalTax: new FormControl(interest.interestEarnedTotalTax),
12897
+ interestPaidTotalAmount: new FormControl(interest.interestPaidTotalAmount)
12898
+ });
12899
+ }
12900
+ }
12901
+
12902
+ /**
12903
+ * @Todo waiting for Sole tank implementation
12904
+ */
12905
+ class MyTaxLossesForm extends AbstractForm {
12906
+ constructor(losses) {
12907
+ super({});
12908
+ }
12909
+ }
12910
+
12911
+ class MyTaxMedicareForm extends AbstractForm {
12912
+ constructor(user) {
12913
+ super({
12914
+ hasDependants: new FormControl(!!user.clientDetails.dependants),
12915
+ dependants: new FormControl(user.clientDetails.dependants, Validators.required),
12916
+ privateHealthCare: new FormControl(user.clientDetails.privateHealthCare),
12917
+ hasMedicareExemption: new FormControl(!!user.clientDetails.medicareExemption),
12918
+ medicareExemption: new FormControl(user.clientDetails.medicareExemption, Validators.required),
12919
+ });
12920
+ this.listenEvents();
12921
+ }
12922
+ listenEvents() {
12923
+ this.listenHasDependantsChanged();
12924
+ this.listenHasMedicareExemptionChanged();
12925
+ }
12926
+ listenHasDependantsChanged() {
12927
+ this.get('hasDependants').valueChanges.subscribe((value) => {
12928
+ if (!value) {
12929
+ this.get('dependants').setValue(0);
12930
+ }
12931
+ });
12932
+ }
12933
+ listenHasMedicareExemptionChanged() {
12934
+ this.get('hasMedicareExemption').valueChanges.subscribe((value) => {
12935
+ if (!value) {
12936
+ this.get('medicareExemption').setValue(0);
12937
+ }
12938
+ });
12939
+ }
12940
+ }
12941
+
12942
+ /**
12943
+ * @Todo waiting for new chart accounts implemented (TT-1739 & TT-1740)
12944
+ */
12945
+ class MyTaxOffsetsForm extends AbstractForm {
12946
+ constructor(offsets) {
12947
+ super({});
12948
+ }
12949
+ }
12950
+
12951
+ class MyTaxOtherIncomeForm extends AbstractForm {
12952
+ constructor(otherIncome) {
12953
+ super({
12954
+ bonusesTotalAmount: new FormControl({
12955
+ value: otherIncome.bonusesTotalAmount,
12956
+ disabled: true
12957
+ }),
12958
+ forestryManagedInvestmentSchemesIncomeTotalAmount: new FormControl({
12959
+ value: otherIncome.forestryManagedInvestmentSchemesIncomeTotalAmount,
12960
+ disabled: true
12961
+ }),
12962
+ lumpSumPaymentsInArrearsTotalTax: new FormControl({
12963
+ value: otherIncome.lumpSumPaymentsInArrearsTotalTax,
12964
+ disabled: true
12965
+ }),
12966
+ specialProfessionIncomeTotalAmount: new FormControl({
12967
+ value: otherIncome.specialProfessionIncomeTotalAmount,
12968
+ disabled: true
12969
+ }),
12970
+ category1TotalIncome: new FormControl({
12971
+ value: otherIncome.category1TotalIncome,
12972
+ disabled: true
12973
+ }),
12974
+ hasLumpSumPaymentsInArrearsTransactions: new FormControl(!!otherIncome.lumpSumPaymentsInArrearsTransactions.length),
12975
+ atoInterestPaidTotalAmount: new FormControl({
12976
+ value: otherIncome.atoInterestPaidTotalAmount,
12977
+ disabled: true
12978
+ }),
12979
+ gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount: new FormControl({
12980
+ value: otherIncome.gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount,
12981
+ disabled: true
12982
+ })
12983
+ });
12984
+ }
12985
+ }
12986
+
12987
+ class MyTaxPartnershipsAndTrustsForm extends AbstractForm {
12988
+ constructor(partnershipsAndTrusts) {
12989
+ super({
12990
+ partnershipsNetIncome: new FormControl({
12991
+ value: partnershipsAndTrusts.partnershipsNetIncome,
12992
+ disabled: true
12993
+ }),
12994
+ trustsNetIncome: new FormControl({
12995
+ value: partnershipsAndTrusts.trustsNetIncome,
12996
+ disabled: true
12997
+ }),
12998
+ trustType: new FormControl(1),
12999
+ partnershipsSmallBusinessNetIncome: new FormControl(partnershipsAndTrusts.partnershipsSmallBusinessNetIncome, Validators.required),
13000
+ trustsSmallBusinessNetIncome: new FormControl(partnershipsAndTrusts.trustsSmallBusinessNetIncome, Validators.required),
13001
+ taxPaidTotal: new FormControl({
13002
+ value: partnershipsAndTrusts.taxPaidTotal,
13003
+ disabled: true
13004
+ }),
13005
+ frankingCreditsTotal: new FormControl({
13006
+ value: partnershipsAndTrusts.frankingCreditsTotal,
13007
+ disabled: true
13008
+ }),
13009
+ taxOffsetNRASTotalAmount: new FormControl({
13010
+ value: partnershipsAndTrusts.taxOffsetNRASTotalAmount,
13011
+ disabled: true
13012
+ })
13013
+ });
13014
+ }
13015
+ }
13016
+
13017
+ class MyTaxRentForm extends AbstractForm {
13018
+ constructor(rent) {
13019
+ super({
13020
+ grossRentAmount: new FormControl(rent.grossRentAmount),
13021
+ interestDeductions: new FormControl(rent.interestDeductionsAmount),
13022
+ capitalWorksDeductions: new FormControl(rent.capitalWorksDeductionsAmount),
13023
+ otherRentalDeductionsAmount: new FormControl(rent.otherRentalDeductionsAmount)
13024
+ });
13025
+ }
13026
+ }
13027
+
12138
13028
  /**
12139
13029
  * Public API Surface of tt-core
12140
13030
  */
@@ -12143,5 +13033,5 @@ class VehicleClaimForm extends AbstractForm {
12143
13033
  * Generated bundle index. Do not edit.
12144
13034
  */
12145
13035
 
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 };
13036
+ 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
13037
  //# sourceMappingURL=taxtank-core.js.map