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
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/common/http'), require('rxjs'), require('rxjs/operators'), require('class-transformer'), require('@auth0/angular-jwt'), require('lodash/get'), require('lodash/last'), require('moment'), require('lodash/flatten'), require('lodash/hasIn'), require('lodash/first'), require('lodash/cloneDeep'), require('lodash/compact'), require('lodash/uniqBy'), require('lodash/concat'), require('moment-range'), require('@angular/forms'), require('lodash/fromPairs'), require('lodash'), require('event-source-polyfill/src/eventsource.min.js'), require('@angular/router'), require('lodash/clone'), require('jspdf'), require('jspdf-autotable'), require('@stripe/stripe-js'), require('xlsx'), require('file-saver')) :
3
- typeof define === 'function' && define.amd ? define('taxtank-core', ['exports', '@angular/core', '@angular/common', '@angular/common/http', 'rxjs', 'rxjs/operators', 'class-transformer', '@auth0/angular-jwt', 'lodash/get', 'lodash/last', 'moment', 'lodash/flatten', 'lodash/hasIn', 'lodash/first', 'lodash/cloneDeep', 'lodash/compact', 'lodash/uniqBy', 'lodash/concat', 'moment-range', '@angular/forms', 'lodash/fromPairs', 'lodash', 'event-source-polyfill/src/eventsource.min.js', '@angular/router', 'lodash/clone', 'jspdf', 'jspdf-autotable', '@stripe/stripe-js', 'xlsx', 'file-saver'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["taxtank-core"] = {}, global.ng.core, global.ng.common, global.ng.common.http, global.rxjs, global.rxjs.operators, global.classTransformer, global.angularJwt, global.get, global.last, global.moment, global.flatten, global.hasIn, global.first, global.cloneDeep$1, global.compact, global.uniqBy, global.concat, global.momentRange, global.ng.forms, global.fromPairs, global._, global.eventsource_min_js, global.ng.router, global.clone, global.jsPDF, global.autoTable, global.stripeJs, global.xlsx, global.FileSaver));
5
- })(this, (function (exports, i0, i1$1, i1, rxjs, operators, classTransformer, angularJwt, get, last, moment, flatten, hasIn, first, cloneDeep$1, compact, uniqBy, concat, momentRange, forms, fromPairs, _, eventsource_min_js, i1$2, clone, jsPDF, autoTable, stripeJs, xlsx, FileSaver) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/common/http'), require('rxjs'), require('rxjs/operators'), require('class-transformer'), require('@auth0/angular-jwt'), require('lodash/get'), require('lodash/last'), require('moment'), require('lodash/flatten'), require('lodash/hasIn'), require('lodash/first'), require('lodash/cloneDeep'), require('lodash/compact'), require('lodash/uniqBy'), require('lodash/concat'), require('moment-range'), require('@angular/forms'), require('lodash/fromPairs'), require('lodash'), require('event-source-polyfill/src/eventsource.min.js'), require('@angular/router'), require('lodash/clone'), require('html2pdf.js'), require('jspdf'), require('jspdf-autotable'), require('@stripe/stripe-js'), require('xlsx'), require('file-saver')) :
3
+ typeof define === 'function' && define.amd ? define('taxtank-core', ['exports', '@angular/core', '@angular/common', '@angular/common/http', 'rxjs', 'rxjs/operators', 'class-transformer', '@auth0/angular-jwt', 'lodash/get', 'lodash/last', 'moment', 'lodash/flatten', 'lodash/hasIn', 'lodash/first', 'lodash/cloneDeep', 'lodash/compact', 'lodash/uniqBy', 'lodash/concat', 'moment-range', '@angular/forms', 'lodash/fromPairs', 'lodash', 'event-source-polyfill/src/eventsource.min.js', '@angular/router', 'lodash/clone', 'html2pdf.js', 'jspdf', 'jspdf-autotable', '@stripe/stripe-js', 'xlsx', 'file-saver'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["taxtank-core"] = {}, global.ng.core, global.ng.common, global.ng.common.http, global.rxjs, global.rxjs.operators, global.classTransformer, global.angularJwt, global.get, global.last, global.moment, global.flatten, global.hasIn, global.first, global.cloneDeep$1, global.compact, global.uniqBy, global.concat, global.momentRange, global.ng.forms, global.fromPairs, global._, global.eventsource_min_js, global.ng.router, global.clone, global.html2pdf, global.jsPDF, global.autoTable, global.stripeJs, global.xlsx, global.FileSaver));
5
+ })(this, (function (exports, i0, i1$1, i1, rxjs, operators, classTransformer, angularJwt, get, last, moment, flatten, hasIn, first, cloneDeep$1, compact, uniqBy, concat, momentRange, forms, fromPairs, _, eventsource_min_js, i1$2, clone, html2pdf, jsPDF, autoTable, stripeJs, xlsx, FileSaver) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -41,6 +41,7 @@
41
41
  var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
42
42
  var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
43
43
  var clone__default = /*#__PURE__*/_interopDefaultLegacy(clone);
44
+ var html2pdf__namespace = /*#__PURE__*/_interopNamespace(html2pdf);
44
45
  var jsPDF__default = /*#__PURE__*/_interopDefaultLegacy(jsPDF);
45
46
  var autoTable__default = /*#__PURE__*/_interopDefaultLegacy(autoTable);
46
47
  var xlsx__namespace = /*#__PURE__*/_interopNamespace(xlsx);
@@ -949,6 +950,7 @@
949
950
  CLIENTS_INVITES_ACCEPT_POST: new Endpoint('POST', '\\/clients\\/\\invites\\/\\d+\\/accept'),
950
951
  CLIENTS_INVITES_REJECT_POST: new Endpoint('POST', '\\/clients\\/\\invites\\/\\d+\\/reject'),
951
952
  CLIENTS_INVITES_RESEND_POST: new Endpoint('POST', '\\/clients\\/\\invites\\/\\d+\\/resend'),
953
+ CLIENT_MOVEMENTS_CLOSE: new Endpoint('PUT', '\\/client-movements\\/\\d+\\/close'),
952
954
  CLIENT_MOVEMENTS_GET: new Endpoint('GET', '\\/client-movements'),
953
955
  CLIENT_MOVEMENTS_POST: new Endpoint('POST', '\\/client-movements'),
954
956
  COUNTRIES_GET: new Endpoint('GET', '\\/countries'),
@@ -2794,6 +2796,7 @@
2794
2796
  if (field === void 0) { field = 'id'; }
2795
2797
  if (isDesc === void 0) { isDesc = true; }
2796
2798
  sort(this.items, field, isDesc);
2799
+ return this;
2797
2800
  };
2798
2801
  /**
2799
2802
  * Get total sum of items by field
@@ -4255,25 +4258,6 @@
4255
4258
  return ClientPortfolioReportCollection;
4256
4259
  }(Collection));
4257
4260
 
4258
- /**
4259
- * export table column
4260
- */
4261
- var ExportCell = /** @class */ (function () {
4262
- function ExportCell() {
4263
- }
4264
- return ExportCell;
4265
- }());
4266
-
4267
- /**
4268
- * type of export table column value
4269
- */
4270
- var ExportCellTypeEnum;
4271
- (function (ExportCellTypeEnum) {
4272
- ExportCellTypeEnum[ExportCellTypeEnum["STRING"] = 0] = "STRING";
4273
- ExportCellTypeEnum[ExportCellTypeEnum["CURRENCY"] = 1] = "CURRENCY";
4274
- ExportCellTypeEnum[ExportCellTypeEnum["DATE"] = 2] = "DATE";
4275
- })(ExportCellTypeEnum || (ExportCellTypeEnum = {}));
4276
-
4277
4261
  var ExportDataTable = /** @class */ (function () {
4278
4262
  function ExportDataTable() {
4279
4263
  }
@@ -4299,6 +4283,25 @@
4299
4283
  return ExportableCollection;
4300
4284
  }(Collection));
4301
4285
 
4286
+ /**
4287
+ * export table column
4288
+ */
4289
+ var ExportCell = /** @class */ (function () {
4290
+ function ExportCell() {
4291
+ }
4292
+ return ExportCell;
4293
+ }());
4294
+
4295
+ /**
4296
+ * type of export table column value
4297
+ */
4298
+ var ExportCellTypeEnum;
4299
+ (function (ExportCellTypeEnum) {
4300
+ ExportCellTypeEnum[ExportCellTypeEnum["STRING"] = 0] = "STRING";
4301
+ ExportCellTypeEnum[ExportCellTypeEnum["CURRENCY"] = 1] = "CURRENCY";
4302
+ ExportCellTypeEnum[ExportCellTypeEnum["DATE"] = 2] = "DATE";
4303
+ })(ExportCellTypeEnum || (ExportCellTypeEnum = {}));
4304
+
4302
4305
  /**
4303
4306
  * Collection of transactions
4304
4307
  */
@@ -4369,11 +4372,14 @@
4369
4372
  return new TransactionCollection(this.items.filter(function (transaction) { return transaction.date.getMonth() === monthIndex; }));
4370
4373
  };
4371
4374
  /**
4372
- * get list of transactions filtered by chart accounts id
4373
- * @param chartAccountsId chart accounts id for filtering
4375
+ * Get collection of transactions metadata
4374
4376
  */
4375
- TransactionCollection.prototype.getByChartAccountsId = function (chartAccountsId) {
4376
- return this.items.filter(function (transaction) { return transaction.chartAccounts.id === chartAccountsId; });
4377
+ TransactionCollection.prototype.getTransactionsMetadata = function () {
4378
+ var metadataArray = [];
4379
+ this.items.forEach(function (transaction) {
4380
+ metadataArray.push.apply(metadataArray, __spreadArray([], __read(transaction.metadata)));
4381
+ });
4382
+ return new Collection(metadataArray);
4377
4383
  };
4378
4384
  TransactionCollection.prototype.getIncomeTransactions = function () {
4379
4385
  return new TransactionCollection(this.items.filter(function (transaction) { return transaction.isIncome(); }));
@@ -4557,11 +4563,14 @@
4557
4563
  DepreciationCollection.prototype.getByChartAccountsCategories = function (categories) {
4558
4564
  return this.create(this.items.filter(function (depreciation) { return categories.includes(depreciation.chartAccounts.category); }));
4559
4565
  };
4566
+ DepreciationCollection.prototype.getAssets = function () {
4567
+ return this.filter(function (depreciation) { return depreciation.isAsset(); });
4568
+ };
4560
4569
  DepreciationCollection.prototype.getPlantEquipment = function () {
4561
- return new DepreciationCollection(this.items.filter(function (depreciation) { return depreciation.isPlantEquipment(); }));
4570
+ return this.filter(function (depreciation) { return depreciation.isPlantEquipment(); });
4562
4571
  };
4563
4572
  DepreciationCollection.prototype.getCapitalDepreciations = function () {
4564
- return new DepreciationCollection(this.items.filter(function (depreciation) { return depreciation.isCapital(); }));
4573
+ return this.filter(function (depreciation) { return depreciation.isCapital(); });
4565
4574
  };
4566
4575
  DepreciationCollection.prototype.getBorrowingExpenseDepreciations = function () {
4567
4576
  return new DepreciationCollection(this.items.filter(function (depreciation) { return depreciation.isBorrowingExpense(); }));
@@ -5104,6 +5113,19 @@
5104
5113
 
5105
5114
  exports.ChartAccountsListEnum = void 0;
5106
5115
  (function (ChartAccountsListEnum) {
5116
+ ChartAccountsListEnum[ChartAccountsListEnum["PARTNERSHIP_EXPENSES"] = 156] = "PARTNERSHIP_EXPENSES";
5117
+ ChartAccountsListEnum[ChartAccountsListEnum["TRUST_EXPENSES"] = 157] = "TRUST_EXPENSES";
5118
+ ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_CHARGED_BY_ATO"] = 278] = "INTEREST_CHARGED_BY_ATO";
5119
+ ChartAccountsListEnum[ChartAccountsListEnum["LITIGATION_COSTS"] = 280] = "LITIGATION_COSTS";
5120
+ ChartAccountsListEnum[ChartAccountsListEnum["ACCOUNTANT_TAX_AGENT_FEES"] = 282] = "ACCOUNTANT_TAX_AGENT_FEES";
5121
+ ChartAccountsListEnum[ChartAccountsListEnum["TRAVEL_COSTS_TO_SEE_YOUR_ACCOUNTANT_ADVISOR"] = 284] = "TRAVEL_COSTS_TO_SEE_YOUR_ACCOUNTANT_ADVISOR";
5122
+ ChartAccountsListEnum[ChartAccountsListEnum["ACCOUNTING_SOFTWARE_FEES"] = 285] = "ACCOUNTING_SOFTWARE_FEES";
5123
+ ChartAccountsListEnum[ChartAccountsListEnum["ADVISOR_FEES"] = 286] = "ADVISOR_FEES";
5124
+ ChartAccountsListEnum[ChartAccountsListEnum["INCOME_TAX_VARIATION"] = 292] = "INCOME_TAX_VARIATION";
5125
+ ChartAccountsListEnum[ChartAccountsListEnum["PSI_ABN_NOT_QUOTED"] = 294] = "PSI_ABN_NOT_QUOTED";
5126
+ ChartAccountsListEnum[ChartAccountsListEnum["PSI_VOLUNTARY_AGREEMENT"] = 296] = "PSI_VOLUNTARY_AGREEMENT";
5127
+ ChartAccountsListEnum[ChartAccountsListEnum["RENTAL_INCOME"] = 298] = "RENTAL_INCOME";
5128
+ ChartAccountsListEnum[ChartAccountsListEnum["OTHER_RENTAL_INCOME"] = 300] = "OTHER_RENTAL_INCOME";
5107
5129
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_ON_LOAN"] = 302] = "INTEREST_ON_LOAN";
5108
5130
  ChartAccountsListEnum[ChartAccountsListEnum["BORROWING_EXPENSES"] = 315] = "BORROWING_EXPENSES";
5109
5131
  ChartAccountsListEnum[ChartAccountsListEnum["DIVIDENDS"] = 542] = "DIVIDENDS";
@@ -5120,8 +5142,31 @@
5120
5142
  ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_PRINCIPAL"] = 38] = "VEHICLE_LOAN_PRINCIPAL";
5121
5143
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_INSTALMENTS"] = 662] = "TAX_INSTALMENTS";
5122
5144
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_EARNED"] = 22] = "INTEREST_EARNED";
5145
+ ChartAccountsListEnum[ChartAccountsListEnum["PARTNERSHIP_INCOME"] = 566] = "PARTNERSHIP_INCOME";
5123
5146
  ChartAccountsListEnum[ChartAccountsListEnum["TRUST_INCOME"] = 567] = "TRUST_INCOME";
5124
5147
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_OFFSETS_N_R_A_S"] = 571] = "TAX_OFFSETS_N_R_A_S";
5148
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_A_GENUINE_REDUNDANCY"] = 9] = "LUMP_SUM_A_GENUINE_REDUNDANCY";
5149
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_A_ALL_OTHER_PAYMENTS"] = 10] = "LUMP_SUM_A_ALL_OTHER_PAYMENTS";
5150
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_B"] = 11] = "LUMP_SUM_B";
5151
+ ChartAccountsListEnum[ChartAccountsListEnum["ATTRIBUTABLE_PSI"] = 20] = "ATTRIBUTABLE_PSI";
5152
+ ChartAccountsListEnum[ChartAccountsListEnum["LUMP_SUM_PAYMENTS_IN_ARREARS"] = 519] = "LUMP_SUM_PAYMENTS_IN_ARREARS";
5153
+ ChartAccountsListEnum[ChartAccountsListEnum["JURY_ATTENDANCE_FEES"] = 519] = "JURY_ATTENDANCE_FEES";
5154
+ ChartAccountsListEnum[ChartAccountsListEnum["FOREIGN_EXCHANGE_GAINS_NON_BUSINESS"] = 523] = "FOREIGN_EXCHANGE_GAINS_NON_BUSINESS";
5155
+ ChartAccountsListEnum[ChartAccountsListEnum["ROYALTIES"] = 525] = "ROYALTIES";
5156
+ ChartAccountsListEnum[ChartAccountsListEnum["TAXABLE_SCHOLARSHIPS_BURSARIES_GRANTS"] = 527] = "TAXABLE_SCHOLARSHIPS_BURSARIES_GRANTS";
5157
+ ChartAccountsListEnum[ChartAccountsListEnum["SPECIAL_PROFESSION_INCOME"] = 529] = "SPECIAL_PROFESSION_INCOME";
5158
+ ChartAccountsListEnum[ChartAccountsListEnum["GAIN_ON_SALE_OF_VEHICLE_PREVIOUSLY_DEPRECIATED"] = 531] = "GAIN_ON_SALE_OF_VEHICLE_PREVIOUSLY_DEPRECIATED";
5159
+ ChartAccountsListEnum[ChartAccountsListEnum["ATO_INTEREST_PAID"] = 533] = "ATO_INTEREST_PAID";
5160
+ ChartAccountsListEnum[ChartAccountsListEnum["PERSONAL_SUPER_CONTRIBUTIONS_DEDUCTIBLE"] = 536] = "PERSONAL_SUPER_CONTRIBUTIONS_DEDUCTIBLE";
5161
+ ChartAccountsListEnum[ChartAccountsListEnum["SOFTWARE_FEES_TAXTANK"] = 541] = "SOFTWARE_FEES_TAXTANK";
5162
+ ChartAccountsListEnum[ChartAccountsListEnum["AUSTRALIAN_ANNUITY_PAYMENTS"] = 559] = "AUSTRALIAN_ANNUITY_PAYMENTS";
5163
+ ChartAccountsListEnum[ChartAccountsListEnum["CODE_M_SUPERANNUATION_LUMP_SUM"] = 561] = "CODE_M_SUPERANNUATION_LUMP_SUM";
5164
+ ChartAccountsListEnum[ChartAccountsListEnum["EMPLOYEE_SHARE_SCHEME_INCOME"] = 564] = "EMPLOYEE_SHARE_SCHEME_INCOME";
5165
+ ChartAccountsListEnum[ChartAccountsListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES_INCOME"] = 590] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES_INCOME";
5166
+ ChartAccountsListEnum[ChartAccountsListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION"] = 593] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION";
5167
+ ChartAccountsListEnum[ChartAccountsListEnum["ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT"] = 639] = "ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT";
5168
+ ChartAccountsListEnum[ChartAccountsListEnum["CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY"] = 558] = "CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY";
5169
+ ChartAccountsListEnum[ChartAccountsListEnum["CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH"] = 640] = "CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH";
5125
5170
  })(exports.ChartAccountsListEnum || (exports.ChartAccountsListEnum = {}));
5126
5171
 
5127
5172
  var DepreciationCapitalProject$1 = /** @class */ (function (_super) {
@@ -5255,8 +5300,11 @@
5255
5300
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["TAX_FREE_COMPONENT"] = 18] = "TAX_FREE_COMPONENT";
5256
5301
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["YEARS_OF_SERVICE"] = 19] = "YEARS_OF_SERVICE";
5257
5302
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNTAXED_ELEMENT"] = 24] = "UNTAXED_ELEMENT";
5303
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["NOT_ELIGIBLE_FOR_DEDUCTION"] = 25] = "NOT_ELIGIBLE_FOR_DEDUCTION";
5258
5304
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["FRANKED"] = 26] = "FRANKED";
5305
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNFRANKED"] = 27] = "UNFRANKED";
5259
5306
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["TAX_OFFSETS_N_R_A_S"] = 29] = "TAX_OFFSETS_N_R_A_S";
5307
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["DISCOUNT_FROM_DEFERRED_SCHEMES"] = 32] = "DISCOUNT_FROM_DEFERRED_SCHEMES";
5260
5308
  })(exports.ChartAccountsMetadataListEnum || (exports.ChartAccountsMetadataListEnum = {}));
5261
5309
 
5262
5310
  var ChartAccountsMetadata = /** @class */ (function (_super) {
@@ -5928,6 +5976,7 @@
5928
5976
  /**
5929
5977
  * Get value of transaction metadata field
5930
5978
  * @param field for which value should be returned
5979
+ * @Todo modify 'metadata' property from array to Collection
5931
5980
  */
5932
5981
  Transaction.prototype.getMetadataFieldValue = function (field) {
5933
5982
  var _a;
@@ -7019,7 +7068,26 @@
7019
7068
 
7020
7069
  exports.ChartAccountsHeadingListEnum = void 0;
7021
7070
  (function (ChartAccountsHeadingListEnum) {
7071
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES"] = 2] = "ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES";
7072
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS"] = 4] = "AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS";
7073
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES"] = 5] = "AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES";
7074
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["WORK_RELATED_TRAVEL_EXPENSES"] = 10] = "WORK_RELATED_TRAVEL_EXPENSES";
7075
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["COMPULSORY_WORK_UNIFORM"] = 11] = "COMPULSORY_WORK_UNIFORM";
7076
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["PROTECTION_CLOTHING"] = 12] = "PROTECTION_CLOTHING";
7077
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OCCUPATIONAL_SPECIFIC_CLOTHING"] = 13] = "OCCUPATIONAL_SPECIFIC_CLOTHING";
7078
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["SELF_EDUCATIONAL_EXPENSES"] = 14] = "SELF_EDUCATIONAL_EXPENSES";
7079
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OTHER_WORK_RELATED_EXPENSES"] = 15] = "OTHER_WORK_RELATED_EXPENSES";
7080
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["SUBSCRIPTIONS"] = 16] = "SUBSCRIPTIONS";
7081
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["HOME_OFFICE_RUNNING"] = 17] = "HOME_OFFICE_RUNNING";
7082
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["TOOLS_EQUIPMENT"] = 18] = "TOOLS_EQUIPMENT";
7083
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["HOME_OFFICE_OCCUPANCY"] = 19] = "HOME_OFFICE_OCCUPANCY";
7084
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DONATIONS"] = 27] = "DONATIONS";
7085
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["PSI"] = 30] = "PSI";
7086
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["BONUSES"] = 34] = "BONUSES";
7087
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["OTHER_DEDUCTIONS"] = 37] = "OTHER_DEDUCTIONS";
7022
7088
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["ETP"] = 39] = "ETP";
7089
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["INTEREST_DEDUCTIONS"] = 47] = "INTEREST_DEDUCTIONS";
7090
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DIVIDEND_DEDUCTIONS"] = 48] = "DIVIDEND_DEDUCTIONS";
7023
7091
  })(exports.ChartAccountsHeadingListEnum || (exports.ChartAccountsHeadingListEnum = {}));
7024
7092
 
7025
7093
  exports.ChartAccountsHeadingTaxableEnum = void 0;
@@ -8654,6 +8722,8 @@
8654
8722
  */
8655
8723
  var PdfSettings = /** @class */ (function () {
8656
8724
  function PdfSettings() {
8725
+ this.title = '';
8726
+ this.filename = 'export';
8657
8727
  this.orientation = exports.PdfOrientationEnum.PORTRAIT;
8658
8728
  }
8659
8729
  return PdfSettings;
@@ -9105,6 +9175,396 @@
9105
9175
  return PropertySaleTaxExemptionMetadata;
9106
9176
  }(PropertySaleTaxExemptionMetadata$1));
9107
9177
 
9178
+ /**
9179
+ * Australian Taxation Office (ATO) website links
9180
+ */
9181
+ var atoLinks = {
9182
+ medicareLevy: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/',
9183
+ medicalExemption: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/Medicare-levy-exemption/Medical-exemption-from-Medicare-levy/',
9184
+ foreignResidentsExemption: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/Medicare-levy-exemption/Foreign-residents-Medicare-levy-exemption/',
9185
+ 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',
9186
+ privateHealthInsuranceRebate: 'https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Private-health-insurance-rebate/#Appropriatelevelofprivatehospitalinsuran'
9187
+ };
9188
+
9189
+ /**
9190
+ * @Todo waiting for the Sole tank implementation
9191
+ */
9192
+ var MyTaxBusinessOrLosses = /** @class */ (function () {
9193
+ function MyTaxBusinessOrLosses(transactions) {
9194
+ }
9195
+ return MyTaxBusinessOrLosses;
9196
+ }());
9197
+
9198
+ /**
9199
+ * Const with the categories for my-tax 'Deductions' report.
9200
+ * Grouped by ChartAccountsHeadingListEnum / ChartAccountsListEnum based on rules from documentation
9201
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Deduction")
9202
+ */
9203
+ var DEDUCTION_CATEGORIES = {
9204
+ workRelatedClothingExpenses: [
9205
+ exports.ChartAccountsHeadingListEnum.COMPULSORY_WORK_UNIFORM,
9206
+ exports.ChartAccountsHeadingListEnum.PROTECTION_CLOTHING,
9207
+ exports.ChartAccountsHeadingListEnum.OCCUPATIONAL_SPECIFIC_CLOTHING,
9208
+ exports.ChartAccountsHeadingListEnum.SELF_EDUCATIONAL_EXPENSES
9209
+ ],
9210
+ otherIncomeRelatedExpenses: [
9211
+ exports.ChartAccountsHeadingListEnum.OTHER_WORK_RELATED_EXPENSES,
9212
+ exports.ChartAccountsHeadingListEnum.SUBSCRIPTIONS,
9213
+ exports.ChartAccountsHeadingListEnum.HOME_OFFICE_RUNNING,
9214
+ exports.ChartAccountsHeadingListEnum.HOME_OFFICE_OCCUPANCY
9215
+ ],
9216
+ workRelatedSelfEducationExpenses: [
9217
+ exports.ChartAccountsHeadingListEnum.SELF_EDUCATIONAL_EXPENSES
9218
+ ],
9219
+ interestExpenses: [
9220
+ exports.ChartAccountsHeadingListEnum.INTEREST_DEDUCTIONS
9221
+ ],
9222
+ dividendExpenses: [
9223
+ exports.ChartAccountsHeadingListEnum.DIVIDEND_DEDUCTIONS
9224
+ ],
9225
+ donations: [
9226
+ exports.ChartAccountsHeadingListEnum.DONATIONS
9227
+ ],
9228
+ otherDeductions: [
9229
+ exports.ChartAccountsHeadingListEnum.OTHER_DEDUCTIONS
9230
+ ],
9231
+ interestsChargedByATO: [
9232
+ exports.ChartAccountsListEnum.INTEREST_CHARGED_BY_ATO
9233
+ ],
9234
+ litigationCosts: [
9235
+ exports.ChartAccountsListEnum.LITIGATION_COSTS
9236
+ ],
9237
+ otherManagingCosts: [
9238
+ exports.ChartAccountsListEnum.ACCOUNTANT_TAX_AGENT_FEES,
9239
+ exports.ChartAccountsListEnum.TRAVEL_COSTS_TO_SEE_YOUR_ACCOUNTANT_ADVISOR,
9240
+ exports.ChartAccountsListEnum.ACCOUNTING_SOFTWARE_FEES,
9241
+ exports.ChartAccountsListEnum.ADVISOR_FEES,
9242
+ exports.ChartAccountsListEnum.INCOME_TAX_VARIATION,
9243
+ exports.ChartAccountsListEnum.SOFTWARE_FEES_TAXTANK
9244
+ ],
9245
+ personalSuperContributions: [
9246
+ exports.ChartAccountsListEnum.PERSONAL_SUPER_CONTRIBUTIONS_DEDUCTIBLE
9247
+ ],
9248
+ forestryManagedInvestmentSchemesDeductions: [
9249
+ exports.ChartAccountsListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION
9250
+ ]
9251
+ };
9252
+
9253
+ /**
9254
+ * Enum with work-related clothing, laundry, dry cleaning expenses types
9255
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form
9256
+ * ("Deductions" section, "D3. Work-related clothing, laundry and dry cleaning expenses" field)
9257
+ */
9258
+ exports.DeductionClothingTypeEnum = void 0;
9259
+ (function (DeductionClothingTypeEnum) {
9260
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["COMPULSORY_C"] = 0] = "COMPULSORY_C";
9261
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["NON_COMPULSORY_N"] = 1] = "NON_COMPULSORY_N";
9262
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["PROTECTION_P"] = 2] = "PROTECTION_P";
9263
+ DeductionClothingTypeEnum[DeductionClothingTypeEnum["OCCUPATIONAL_SPECIFIC_S"] = 3] = "OCCUPATIONAL_SPECIFIC_S";
9264
+ })(exports.DeductionClothingTypeEnum || (exports.DeductionClothingTypeEnum = {}));
9265
+
9266
+ /**
9267
+ * Enum with work-related self-education expenses types
9268
+ */
9269
+ exports.DeductionSelfEducationTypeEnum = void 0;
9270
+ (function (DeductionSelfEducationTypeEnum) {
9271
+ DeductionSelfEducationTypeEnum[DeductionSelfEducationTypeEnum["IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K"] = 0] = "IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K";
9272
+ DeductionSelfEducationTypeEnum[DeductionSelfEducationTypeEnum["INCOME_FROM_CURRENT_EARNINGS_I"] = 1] = "INCOME_FROM_CURRENT_EARNINGS_I";
9273
+ DeductionSelfEducationTypeEnum[DeductionSelfEducationTypeEnum["OTHER_O"] = 2] = "OTHER_O";
9274
+ })(exports.DeductionSelfEducationTypeEnum || (exports.DeductionSelfEducationTypeEnum = {}));
9275
+
9276
+ var MyTaxDeductions = /** @class */ (function () {
9277
+ function MyTaxDeductions(transactions, depreciations, vehicleClaim, vehicleClaimRate) {
9278
+ this.transactions = transactions;
9279
+ this.depreciations = depreciations;
9280
+ this.vehicleClaim = vehicleClaim;
9281
+ this.vehicleClaimRate = vehicleClaimRate;
9282
+ this.setVehicleClaimData();
9283
+ this.setOtherWorkRelatedExpensesTotalAmount();
9284
+ this.workRelatedClothingExpenses = this.transactions
9285
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.workRelatedClothingExpenses);
9286
+ this.personalSuperContributions = this.transactions
9287
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.personalSuperContributions);
9288
+ this.workRelatedSelfEducationExpenses = this.transactions
9289
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.workRelatedSelfEducationExpenses);
9290
+ this.vehicleExpensesTotalAmount = this.vehicleClaim.isLogbookMethod() ? this.totalExpensesAmount : this.klmsMethodClaimAmount;
9291
+ this.workRelatedTravelExpensesTotalAmount = this.transactions
9292
+ .filterBy('chartAccounts.heading.id', exports.ChartAccountsHeadingListEnum.WORK_RELATED_TRAVEL_EXPENSES)
9293
+ .sumBy('amount');
9294
+ this.workRelatedClothingType = this.workRelatedClothingExpenses.length ? exports.DeductionClothingTypeEnum.COMPULSORY_C : null;
9295
+ this.workRelatedClothingTotalAmount = this.workRelatedClothingExpenses.sumBy('amount');
9296
+ this.workRelatedSelfEducationType = this.workRelatedSelfEducationExpenses.length ?
9297
+ exports.DeductionSelfEducationTypeEnum.IMPROVE_SKILLS_FOR_CURRENT_EARNINGS_K : null;
9298
+ this.workRelatedSelfEducationTotalAmount = this.workRelatedSelfEducationExpenses.sumBy('amount');
9299
+ this.lowValuePoolDeductionTotalAmount = this.depreciations.getByTankType(exports.TankTypeEnum.WORK)
9300
+ .getLowValuePoolDepreciations().sumBy('claimAmount');
9301
+ this.interestExpensesTotalAmount = this.transactions
9302
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.interestExpenses)
9303
+ .sumBy('amount');
9304
+ this.dividendExpensesTotalAmount = this.transactions
9305
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.dividendExpenses)
9306
+ .sumBy('amount');
9307
+ this.donationsTotalAmount = this.transactions
9308
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.donations)
9309
+ .sumBy('amount');
9310
+ this.interestsChargedByATOTotalAmount = this.transactions
9311
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.interestsChargedByATO)
9312
+ .sumBy('amount');
9313
+ this.litigationCostsTotalAmount = this.transactions
9314
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.litigationCosts)
9315
+ .sumBy('amount');
9316
+ this.otherManagingCostsTotalAmount = this.transactions
9317
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.otherManagingCosts)
9318
+ .sumBy('amount');
9319
+ this.personalSuperContributionsTotalAmount = this.personalSuperContributions.sumBy('amount');
9320
+ this.forestryManagedInvestmentSchemesDeductionsTotalAmount = this.transactions
9321
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.forestryManagedInvestmentSchemesDeductions)
9322
+ .sumBy('amount');
9323
+ this.otherDeductionsTotalAmount = this.transactions
9324
+ .filterBy('chartAccounts.id', DEDUCTION_CATEGORIES.otherDeductions)
9325
+ .sumBy('amount');
9326
+ }
9327
+ MyTaxDeductions.prototype.setVehicleClaimData = function () {
9328
+ this.klmsMethodClaimAmount = this.vehicleClaim.getKLMsClaimAmount(this.vehicleClaimRate);
9329
+ this.totalExpensesAmount = new VehicleExpenseCollection(this.transactions.getByTankType(this.vehicleClaim.tankType), this.depreciations.getByTankType(this.vehicleClaim.tankType), this.vehicleClaim).sumBy('amount');
9330
+ };
9331
+ /**
9332
+ * Total amount from Other work related expenses and Tools & equipment depreciations
9333
+ */
9334
+ MyTaxDeductions.prototype.setOtherWorkRelatedExpensesTotalAmount = function () {
9335
+ var otherIncomeRelatedExpenses = this.transactions
9336
+ .filterBy('chartAccounts.heading.id', DEDUCTION_CATEGORIES.otherIncomeRelatedExpenses);
9337
+ this.otherWorkRelatedExpensesTotalAmount = Math.abs(otherIncomeRelatedExpenses.sumBy('amount')) +
9338
+ this.depreciations.filterBy('chartAccounts.heading.id', exports.ChartAccountsHeadingListEnum.TOOLS_EQUIPMENT).sumBy('claimAmount');
9339
+ };
9340
+ return MyTaxDeductions;
9341
+ }());
9342
+
9343
+ var MyTaxDividends = /** @class */ (function () {
9344
+ function MyTaxDividends(transactions) {
9345
+ this.transactions = transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.DIVIDENDS);
9346
+ this.dividendsUnfrankedAmount = this.transactions.getTransactionsMetadata()
9347
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.UNFRANKED)
9348
+ .sumBy('value');
9349
+ this.dividendsFrankedAmount = this.transactions.getTransactionsMetadata()
9350
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.FRANKED)
9351
+ .sumBy('value');
9352
+ this.dividendsFrankingCreditsAmount = this.transactions.getTransactionsMetadata()
9353
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.FRANKING_CREDIT)
9354
+ .sumBy('value');
9355
+ this.dividendsTotalTax = this.transactions.sumBy('tax');
9356
+ }
9357
+ return MyTaxDividends;
9358
+ }());
9359
+
9360
+ var MyTaxEmployeeShareSchemes = /** @class */ (function () {
9361
+ function MyTaxEmployeeShareSchemes(transactions) {
9362
+ this.transactions = transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.EMPLOYEE_SHARE_SCHEME_INCOME);
9363
+ this.eligibleForReductionAmount = this.transactions.getTransactionsMetadata()
9364
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.ELIGIBLE_FOR_REDUCTION)
9365
+ .sumBy('value');
9366
+ this.notEligibleForReductionAmount = this.transactions.getTransactionsMetadata()
9367
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.NOT_ELIGIBLE_FOR_DEDUCTION)
9368
+ .sumBy('value');
9369
+ this.discountFromDeferredSchemeAmount = this.transactions.getTransactionsMetadata()
9370
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.DISCOUNT_FROM_DEFERRED_SCHEMES)
9371
+ .sumBy('value');
9372
+ this.totalAssessableDiscountAmount = this.transactions.getTransactionsMetadata()
9373
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.NOT_ELIGIBLE_FOR_DEDUCTION)
9374
+ .sumBy('value') +
9375
+ this.transactions.getTransactionsMetadata()
9376
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.DISCOUNT_FROM_DEFERRED_SCHEMES)
9377
+ .sumBy('value');
9378
+ this.shareSchemesTotalTax = this.transactions.sumBy('tax');
9379
+ }
9380
+ return MyTaxEmployeeShareSchemes;
9381
+ }());
9382
+
9383
+ var MyTaxIncomeStatements = /** @class */ (function () {
9384
+ function MyTaxIncomeStatements(transactions) {
9385
+ this.transactionsByChartAccounts = transactions.groupBy('chartAccounts.id');
9386
+ this.transactionsByChartAccountsHeadings = transactions.groupBy('chartAccounts.heading.id');
9387
+ this.salaryTransactionsByIncomeSource = this.transactionsByChartAccounts
9388
+ .get(exports.ChartAccountsListEnum.SALARY_OR_WAGES)
9389
+ .groupBy('incomeSource.name');
9390
+ this.etpTransactionsByIncomeSource = this.transactionsByChartAccountsHeadings
9391
+ .get(exports.ChartAccountsHeadingListEnum.ETP)
9392
+ .groupBy('incomeSource.name');
9393
+ this.superannuationLumpSumTransactionsByIncomeSource = this.transactionsByChartAccountsHeadings
9394
+ .get(exports.ChartAccountsHeadingTaxDeductibleEnum.SUPERANNUATION_LUMP_SUM)
9395
+ .groupBy('incomeSource.name');
9396
+ this.allowanceTotalAmount = this.transactionsByChartAccountsHeadings
9397
+ .get(exports.ChartAccountsHeadingListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES)
9398
+ .sumBy('amount');
9399
+ this.allowanceTotalTax = this.transactionsByChartAccountsHeadings
9400
+ .get(exports.ChartAccountsHeadingListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES)
9401
+ .sumBy('tax');
9402
+ this.lumpATransactionsTotalAmount =
9403
+ this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_A_GENUINE_REDUNDANCY).sumBy('claimAmount') +
9404
+ this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_A_ALL_OTHER_PAYMENTS).sumBy('claimAmount');
9405
+ this.lumpATransactionsTotalTax =
9406
+ this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_A_GENUINE_REDUNDANCY).sumBy('tax') +
9407
+ this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_A_ALL_OTHER_PAYMENTS).sumBy('tax');
9408
+ this.hasGenuineLumpATransactions = !!this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_A_GENUINE_REDUNDANCY).length;
9409
+ this.hasOtherLumpATransactions = !!this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_A_ALL_OTHER_PAYMENTS).length;
9410
+ this.lumpBTransactionsTotalAmount = this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_B).sumBy('claimAmount');
9411
+ this.lumpBTransactionsTotalTax = this.transactionsByChartAccounts.get(exports.ChartAccountsListEnum.LUMP_SUM_B).sumBy('tax');
9412
+ this.australianAllowancesAndPaymentsTotalAmount = this.transactionsByChartAccountsHeadings
9413
+ .get(exports.ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS)
9414
+ .sumBy('amount');
9415
+ this.australianAllowancesAndPaymentsTotalTax = this.transactionsByChartAccountsHeadings
9416
+ .get(exports.ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_ALLOWANCES_PAYMENTS)
9417
+ .sumBy('tax');
9418
+ this.australianPensionsAndAllowancesTotalAmount = this.transactionsByChartAccountsHeadings
9419
+ .get(exports.ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES)
9420
+ .sumBy('amount');
9421
+ this.australianPensionsAndAllowancesTotalTax = this.transactionsByChartAccountsHeadings
9422
+ .get(exports.ChartAccountsHeadingListEnum.AUSTRALIAN_GOVERNMENT_PENSIONS_ALLOWANCES)
9423
+ .sumBy('tax');
9424
+ this.australianAnnuitiesSuperannuationIncomesTotalTax = this.transactionsByChartAccountsHeadings
9425
+ .get(exports.ChartAccountsHeadingTaxDeductibleEnum.ANNUITIES_AND_SUPERANNUATION_INCOME_STREAMS)
9426
+ .sumBy('tax');
9427
+ this.australianAnnuityPaymentsTaxed = this.transactionsByChartAccounts
9428
+ .get(exports.ChartAccountsListEnum.AUSTRALIAN_ANNUITY_PAYMENTS).sumBy('claimAmount');
9429
+ this.australianAnnuityPaymentsUntaxed = this.transactionsByChartAccounts
9430
+ .get(exports.ChartAccountsListEnum.AUSTRALIAN_ANNUITY_PAYMENTS).sumBy('untaxedElement');
9431
+ this.assessableCappedDefinedBenefitTotalAmount = this.transactionsByChartAccounts
9432
+ .get(exports.ChartAccountsListEnum.ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT).sumBy('claimAmount');
9433
+ this.superannuationIncomeStreamsTotalTaxed = this.transactionsByChartAccounts.merge([
9434
+ exports.ChartAccountsListEnum.CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY,
9435
+ exports.ChartAccountsListEnum.CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH
9436
+ ]).sumBy('claimAmount');
9437
+ this.superannuationIncomeStreamsTotalUntaxed = this.transactionsByChartAccounts.merge([
9438
+ exports.ChartAccountsListEnum.CODE_B_SUPERANNUATION_INCOME_STREAMS_DISABILITY,
9439
+ exports.ChartAccountsListEnum.CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH
9440
+ ]).sumBy('untaxedElement');
9441
+ this.attributablePsiTransactionsTotalAmount = this.transactionsByChartAccounts
9442
+ .get(exports.ChartAccountsListEnum.ATTRIBUTABLE_PSI).sumBy('amount');
9443
+ this.attributablePsiTransactionsTotalTax = this.transactionsByChartAccounts
9444
+ .get(exports.ChartAccountsListEnum.ATTRIBUTABLE_PSI).sumBy('tax');
9445
+ }
9446
+ return MyTaxIncomeStatements;
9447
+ }());
9448
+
9449
+ /**
9450
+ * @Todo future functionality
9451
+ */
9452
+ var MyTaxIncomeTests = /** @class */ (function () {
9453
+ function MyTaxIncomeTests(transactions) {
9454
+ }
9455
+ return MyTaxIncomeTests;
9456
+ }());
9457
+
9458
+ var MyTaxInterest = /** @class */ (function () {
9459
+ function MyTaxInterest(transactions) {
9460
+ this.interestEarnedTransactions = transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.INTEREST_EARNED);
9461
+ this.interestPaidTransactions = transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.ATO_INTEREST_PAID);
9462
+ this.interestEarnedTotalAmount = this.interestEarnedTransactions.sumBy('amount');
9463
+ this.interestEarnedTotalTax = this.interestEarnedTransactions.sumBy('tax');
9464
+ this.interestPaidTotalAmount = this.interestEarnedTransactions.sumBy('amount');
9465
+ }
9466
+ return MyTaxInterest;
9467
+ }());
9468
+
9469
+ /**
9470
+ * @Todo waiting for Sole tank implementation
9471
+ */
9472
+ var MyTaxLosses = /** @class */ (function () {
9473
+ function MyTaxLosses(transactions) {
9474
+ this.transactions = transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.DIVIDENDS);
9475
+ }
9476
+ return MyTaxLosses;
9477
+ }());
9478
+
9479
+ /**
9480
+ * @Todo waiting for new chart accounts implemented (TT-1739 & TT-1740)
9481
+ */
9482
+ var MyTaxOffsets = /** @class */ (function () {
9483
+ function MyTaxOffsets(transactions) {
9484
+ }
9485
+ return MyTaxOffsets;
9486
+ }());
9487
+
9488
+ var MyTaxOtherIncome = /** @class */ (function () {
9489
+ function MyTaxOtherIncome(transactions) {
9490
+ this.transactions = transactions;
9491
+ this.lumpSumPaymentsInArrearsTransactions = this.transactions
9492
+ .filterBy('chartAccounts.id', exports.ChartAccountsListEnum.LUMP_SUM_PAYMENTS_IN_ARREARS);
9493
+ this.bonusesTotalAmount = this.transactions
9494
+ .filterBy('chartAccounts.heading.id', exports.ChartAccountsHeadingListEnum.BONUSES)
9495
+ .sumBy('amount');
9496
+ this.forestryManagedInvestmentSchemesIncomeTotalAmount = this.transactions
9497
+ .filterBy('chartAccounts.id', exports.ChartAccountsListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES_INCOME)
9498
+ .sumBy('amount');
9499
+ this.lumpSumPaymentsInArrearsTotalTax = this.lumpSumPaymentsInArrearsTransactions.sumBy('tax');
9500
+ this.specialProfessionIncomeTotalAmount = this.transactions
9501
+ .filterBy('chartAccounts.id', exports.ChartAccountsListEnum.SPECIAL_PROFESSION_INCOME).sumBy('amount');
9502
+ this.category1TotalIncome = this.lumpSumPaymentsInArrearsTransactions.sumBy('amount') +
9503
+ this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.JURY_ATTENDANCE_FEES).sumBy('amount') +
9504
+ this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.FOREIGN_EXCHANGE_GAINS_NON_BUSINESS).sumBy('amount') +
9505
+ this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.ROYALTIES).sumBy('amount') +
9506
+ this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.TAXABLE_SCHOLARSHIPS_BURSARIES_GRANTS).sumBy('amount');
9507
+ this.atoInterestPaidTotalAmount = this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.ATO_INTEREST_PAID).sumBy('amount');
9508
+ this.gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount = this.transactions
9509
+ .filterBy('chartAccounts.id', exports.ChartAccountsListEnum.GAIN_ON_SALE_OF_VEHICLE_PREVIOUSLY_DEPRECIATED)
9510
+ .sumBy('amount');
9511
+ }
9512
+ return MyTaxOtherIncome;
9513
+ }());
9514
+
9515
+ var MyTaxPartnershipsAndTrusts = /** @class */ (function () {
9516
+ function MyTaxPartnershipsAndTrusts(transactions) {
9517
+ this.transactions = transactions;
9518
+ this.partnershipIncomes = this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.PARTNERSHIP_INCOME);
9519
+ this.partnershipExpenses = this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.PARTNERSHIP_EXPENSES);
9520
+ this.trustsIncomes = this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.TRUST_INCOME);
9521
+ this.trustsExpenses = this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.TRUST_EXPENSES);
9522
+ this.netNonPrimaryProductionAmount = (this.partnershipIncomes.sumBy('amount') - this.partnershipExpenses.sumBy('amount')) +
9523
+ (this.trustsIncomes.sumBy('amount') - this.trustsExpenses.sumBy('amount'));
9524
+ this.partnershipsNetIncome = this.partnershipIncomes.sumBy('amount') -
9525
+ this.partnershipExpenses.sumBy('amount');
9526
+ this.trustsNetIncome = this.trustsIncomes.sumBy('amount') - this.trustsExpenses.sumBy('amount');
9527
+ this.partnershipsSmallBusinessNetIncome = this.partnershipIncomes.sumBy('amount') -
9528
+ this.partnershipExpenses.sumBy('amount');
9529
+ this.trustsSmallBusinessNetIncome = this.trustsIncomes.sumBy('amount') -
9530
+ this.trustsExpenses.sumBy('amount');
9531
+ this.taxPaidTotal = this.transactions
9532
+ .filterBy('chartAccounts.heading.id', exports.ChartAccountsHeadingTaxableEnum.PARTNERSHIPS_AND_TRUSTS_INCOME)
9533
+ .sumBy('tax');
9534
+ this.frankingCreditsTotal = this.transactions
9535
+ .filterBy('chartAccounts.heading.id', exports.ChartAccountsHeadingTaxableEnum.PARTNERSHIPS_AND_TRUSTS_INCOME)
9536
+ .getTransactionsMetadata()
9537
+ .filterBy('chartAccountsMetadata.id', exports.ChartAccountsMetadataListEnum.FRANKING_CREDIT)
9538
+ .sumBy('value');
9539
+ this.taxOffsetNRASTotalAmount = this.transactions.filterBy('chartAccounts.id', exports.ChartAccountsListEnum.TAX_OFFSETS_N_R_A_S).sumBy('amount');
9540
+ }
9541
+ return MyTaxPartnershipsAndTrusts;
9542
+ }());
9543
+
9544
+ var MyTaxRent = /** @class */ (function () {
9545
+ function MyTaxRent(transactions, depreciations) {
9546
+ this.propertyExpenses = transactions.getPropertyTransactions().getExpenseTransactions();
9547
+ this.grossRentAmount = transactions
9548
+ .getIncomeTransactions()
9549
+ .filterBy('chartAccounts.id', exports.ChartAccountsListEnum.RENTAL_INCOME)
9550
+ .sumBy('amount') +
9551
+ transactions.
9552
+ getIncomeTransactions()
9553
+ .filterBy('chartAccounts.id', exports.ChartAccountsListEnum.OTHER_RENTAL_INCOME)
9554
+ .sumBy('amount');
9555
+ this.interestDeductionsAmount = Math.abs(transactions.getInterestTransactions().sumBy('amount'));
9556
+ this.capitalWorksDeductionsAmount = Math.abs(depreciations.getCapitalDepreciations().sumBy('claimAmount'));
9557
+ this.otherRentalDeductionsAmount = Math.abs(depreciations.getAssets().sumBy('claimAmount') +
9558
+ depreciations.getBorrowingExpenseDepreciations().sumBy('claimAmount') +
9559
+ this.propertyExpenses.sumBy('amount'));
9560
+ this.netRent = this.grossRentAmount -
9561
+ this.interestDeductionsAmount -
9562
+ this.capitalWorksDeductionsAmount -
9563
+ this.otherRentalDeductionsAmount;
9564
+ }
9565
+ return MyTaxRent;
9566
+ }());
9567
+
9108
9568
  /**
9109
9569
  * Constant with list of URLs
9110
9570
  */
@@ -11070,6 +11530,9 @@
11070
11530
  }]
11071
11531
  }] });
11072
11532
 
11533
+ /**
11534
+ * server sent events service
11535
+ */
11073
11536
  var SseService = /** @class */ (function () {
11074
11537
  function SseService(zone, jwtService, environment) {
11075
11538
  this.zone = zone;
@@ -12527,9 +12990,61 @@
12527
12990
  } });
12528
12991
 
12529
12992
  /**
12530
- * Configuration file with the settings to generate PDF file
12993
+ * Settings for generated PDF file from DOM elements
12531
12994
  */
12532
- var PDF_CONFIG = {
12995
+ var FILE_SETTINGS$1 = {
12996
+ margin: 10,
12997
+ filename: 'export.pdf',
12998
+ html2canvas: {
12999
+ scale: 2
13000
+ },
13001
+ pagebreak: {
13002
+ mode: 'avoid-all'
13003
+ },
13004
+ jsPDF: {
13005
+ unit: 'mm',
13006
+ format: 'a3',
13007
+ orientation: 'portrait'
13008
+ }
13009
+ };
13010
+
13011
+ /**
13012
+ * Service to generate and export PDF file from provided HTML elements
13013
+ * The file is generated using the html2pdf library in order to get a canvas at the output,
13014
+ * in which all the styles that the user sees on the page will be saved
13015
+ */
13016
+ var PdfFromDomElementService = /** @class */ (function () {
13017
+ function PdfFromDomElementService() {
13018
+ }
13019
+ PdfFromDomElementService.prototype.export = function (elements, fileSettings) {
13020
+ var options = FILE_SETTINGS$1;
13021
+ options.filename = fileSettings.filename + ".pdf";
13022
+ // HTML container in which the exported DOM elements will be placed
13023
+ var htmlWrapper = document.createElement('div');
13024
+ elements.forEach(function (element) {
13025
+ htmlWrapper.append(element.cloneNode(true));
13026
+ });
13027
+ // Set PDF options, save file and return result as Observable
13028
+ return rxjs.from(html2pdf__namespace().from(htmlWrapper)
13029
+ .set(options)
13030
+ .save()
13031
+ .then());
13032
+ };
13033
+ return PdfFromDomElementService;
13034
+ }());
13035
+ PdfFromDomElementService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromDomElementService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
13036
+ PdfFromDomElementService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromDomElementService, providedIn: 'root' });
13037
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromDomElementService, decorators: [{
13038
+ type: i0.Injectable,
13039
+ args: [{
13040
+ providedIn: 'root'
13041
+ }]
13042
+ }] });
13043
+
13044
+ /**
13045
+ * Settings for generated PDF file from tables (HTML table, data-table, e.t.c.)
13046
+ */
13047
+ var FILE_SETTINGS = {
12533
13048
  text: {
12534
13049
  fontSize: 12,
12535
13050
  fontName: 'helvetica',
@@ -12548,63 +13063,85 @@
12548
13063
  positionX: 42,
12549
13064
  positionY: 6
12550
13065
  },
12551
- // coords for file section title (group, table, e.t.c.)
12552
- contentTitleCoords: {
12553
- marginTop: 15
13066
+ titleCoords: {
13067
+ top: 15
12554
13068
  },
12555
13069
  contentCoords: {
12556
- marginTop: 15,
12557
- marginLeft: 14
12558
- },
12559
- table: {
12560
- headStyles: {
12561
- fillColor: '#00b7f0',
12562
- lineWidth: .2,
12563
- halign: 'center'
12564
- },
12565
- footStyles: {
12566
- fillColor: '#ffffff',
12567
- textColor: '#000000'
12568
- },
13070
+ top: 15,
13071
+ left: 14
12569
13072
  }
12570
13073
  };
12571
13074
 
12572
13075
  /**
12573
- * @TODO vik refactor
12574
- * Service to work with PDF (generate, download, e.t.c.)
13076
+ * Service with base functionality to export tables (HTML table, data-table, e.t.c.) as PDF file
13077
+ * The file is generated using the jsPDF library to set custom table styles
12575
13078
  */
12576
- var PdfService = /** @class */ (function () {
12577
- function PdfService(formatter) {
12578
- this.formatter = formatter;
13079
+ var PdfFromTableService = /** @class */ (function () {
13080
+ function PdfFromTableService() {
12579
13081
  }
12580
13082
  /**
12581
- * Export file from provided HTML tables
13083
+ * Set basic options for PDF table
12582
13084
  */
12583
- PdfService.prototype.exportTables = function (tables, fileSettings) {
12584
- var document = this.generateFromTables(tables, fileSettings);
12585
- document.save(fileSettings.filename + ".pdf");
13085
+ PdfFromTableService.prototype.setTableOptions = function (pdf, tableCaption) {
13086
+ if (tableCaption === void 0) { tableCaption = ''; }
13087
+ var lastTableCoords = pdf['lastAutoTable'].finalY || FILE_SETTINGS.contentCoords.top;
13088
+ // get caption height based on caption content height
13089
+ var captionHeight = pdf.getTextDimensions(pdf.splitTextToSize(tableCaption, pdf.internal.pageSize.width)).h;
13090
+ pdf.text(tableCaption, FILE_SETTINGS.contentCoords.left, lastTableCoords + FILE_SETTINGS.contentCoords.top);
13091
+ return {
13092
+ headStyles: {
13093
+ fillColor: FILE_SETTINGS.text.colorPrimary,
13094
+ },
13095
+ footStyles: {
13096
+ fillColor: FILE_SETTINGS.text.colorWhite,
13097
+ textColor: FILE_SETTINGS.text.colorBlack
13098
+ },
13099
+ startY: lastTableCoords + captionHeight + FILE_SETTINGS.titleCoords.top,
13100
+ didParseCell: function (data) {
13101
+ // Align last column content to right
13102
+ if (data.table.columns.length > 1 && (data.column.index === data.table.columns.length - 1)) {
13103
+ data.cell.styles.halign = 'right';
13104
+ }
13105
+ }
13106
+ };
12586
13107
  };
12587
- /**
12588
- * Export file from provided array-like table data
12589
- */
12590
- PdfService.prototype.exportFromDataTables = function (dataTables, fileSettings) {
12591
- var document = this.generateFromDataTables(dataTables, fileSettings.title);
13108
+ PdfFromTableService.prototype.setDocumentTitle = function (doc, title) {
13109
+ doc.setFontSize(FILE_SETTINGS.text.fontSize)
13110
+ .setFont(FILE_SETTINGS.text.fontName, FILE_SETTINGS.text.fontStyle, FILE_SETTINGS.text.fontWeight)
13111
+ .text(title, FILE_SETTINGS.text.positionX, FILE_SETTINGS.text.positionY);
13112
+ };
13113
+ PdfFromTableService.prototype.setDocumentLogo = function (doc) {
13114
+ var logo = new Image();
13115
+ logo.src = FILE_SETTINGS.logo.src;
13116
+ doc.addImage(logo, 'PNG', doc.internal.pageSize.width - FILE_SETTINGS.logo.positionX, FILE_SETTINGS.logo.positionY, FILE_SETTINGS.logo.width, FILE_SETTINGS.logo.height);
13117
+ };
13118
+ return PdfFromTableService;
13119
+ }());
13120
+ PdfFromTableService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromTableService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
13121
+ PdfFromTableService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromTableService, providedIn: 'root' });
13122
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromTableService, decorators: [{
13123
+ type: i0.Injectable,
13124
+ args: [{
13125
+ providedIn: 'root'
13126
+ }]
13127
+ }] });
13128
+
13129
+ /**
13130
+ * Service to generate and export PDF file from provided HTML tables
13131
+ */
13132
+ var PdfFromHtmlTableService = /** @class */ (function (_super) {
13133
+ __extends(PdfFromHtmlTableService, _super);
13134
+ function PdfFromHtmlTableService() {
13135
+ return _super !== null && _super.apply(this, arguments) || this;
13136
+ }
13137
+ PdfFromHtmlTableService.prototype.export = function (tables, fileSettings) {
13138
+ var document = this.generateFile(tables, fileSettings);
12592
13139
  document.save(fileSettings.filename + ".pdf");
12593
13140
  };
12594
13141
  /**
12595
- * Generate file from array-like table data
13142
+ * Generate PDF file from provided list of HTML tables
12596
13143
  */
12597
- PdfService.prototype.generateFromDataTables = function (dataTables, title) {
12598
- var _this = this;
12599
- var pdf = new jsPDF__default["default"]();
12600
- this.setDocumentTitle(pdf, title);
12601
- this.setDocumentLogo(pdf);
12602
- dataTables.forEach(function (dataTable) {
12603
- autoTable__default["default"](pdf, Object.assign({ head: [dataTable.header], body: _this.formatter.format(dataTable.body), foot: _this.formatter.format(dataTable.footer) }, _this.setTableOptions(pdf, dataTable.caption)));
12604
- });
12605
- return pdf;
12606
- };
12607
- PdfService.prototype.generateFromTables = function (tables, fileSettings) {
13144
+ PdfFromHtmlTableService.prototype.generateFile = function (tables, fileSettings) {
12608
13145
  var _this = this;
12609
13146
  var pdf = new jsPDF__default["default"](fileSettings.orientation);
12610
13147
  this.setDocumentTitle(pdf, fileSettings.title);
@@ -12619,47 +13156,49 @@
12619
13156
  });
12620
13157
  return pdf;
12621
13158
  };
13159
+ return PdfFromHtmlTableService;
13160
+ }(PdfFromTableService));
13161
+ PdfFromHtmlTableService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromHtmlTableService, deps: null, target: i0__namespace.ɵɵFactoryTarget.Injectable });
13162
+ PdfFromHtmlTableService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromHtmlTableService, providedIn: 'root' });
13163
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromHtmlTableService, decorators: [{
13164
+ type: i0.Injectable,
13165
+ args: [{
13166
+ providedIn: 'root'
13167
+ }]
13168
+ }] });
13169
+
13170
+ /**
13171
+ * Service to generate and export PDF file from provided array-like data tables
13172
+ */
13173
+ var PdfFromDataTableService = /** @class */ (function (_super) {
13174
+ __extends(PdfFromDataTableService, _super);
13175
+ function PdfFromDataTableService(formatter) {
13176
+ var _this = _super.call(this) || this;
13177
+ _this.formatter = formatter;
13178
+ return _this;
13179
+ }
13180
+ PdfFromDataTableService.prototype.export = function (dataTables, fileSettings) {
13181
+ var document = this.generate(dataTables, fileSettings.title);
13182
+ document.save(fileSettings.filename + ".pdf");
13183
+ };
12622
13184
  /**
12623
- * Set basic options for PDF table
13185
+ * Generate PDF file from provided list of data tables
12624
13186
  */
12625
- PdfService.prototype.setTableOptions = function (pdf, tableCaption) {
12626
- if (tableCaption === void 0) { tableCaption = ''; }
12627
- var lastTableCoords = pdf['lastAutoTable'].finalY || PDF_CONFIG.contentCoords.marginTop;
12628
- // get caption height based on caption content height
12629
- var captionHeight = pdf.getTextDimensions(pdf.splitTextToSize(tableCaption, pdf.internal.pageSize.width)).h;
12630
- pdf.text(tableCaption, PDF_CONFIG.contentCoords.marginLeft, lastTableCoords + PDF_CONFIG.contentCoords.marginTop);
12631
- return {
12632
- headStyles: {
12633
- fillColor: PDF_CONFIG.text.colorPrimary,
12634
- },
12635
- footStyles: {
12636
- fillColor: PDF_CONFIG.text.colorWhite,
12637
- textColor: PDF_CONFIG.text.colorBlack
12638
- },
12639
- startY: lastTableCoords + captionHeight + PDF_CONFIG.contentTitleCoords.marginTop,
12640
- didParseCell: function (data) {
12641
- // Align last column content to right
12642
- if (data.table.columns.length > 1 && (data.column.index === data.table.columns.length - 1)) {
12643
- data.cell.styles.halign = 'right';
12644
- }
12645
- }
12646
- };
12647
- };
12648
- PdfService.prototype.setDocumentTitle = function (doc, title) {
12649
- doc.setFontSize(PDF_CONFIG.text.fontSize)
12650
- .setFont(PDF_CONFIG.text.fontName, PDF_CONFIG.text.fontStyle, PDF_CONFIG.text.fontWeight)
12651
- .text(title, PDF_CONFIG.text.positionX, PDF_CONFIG.text.positionY);
12652
- };
12653
- PdfService.prototype.setDocumentLogo = function (doc) {
12654
- var logo = new Image();
12655
- logo.src = PDF_CONFIG.logo.src;
12656
- doc.addImage(logo, 'PNG', doc.internal.pageSize.width - PDF_CONFIG.logo.positionX, PDF_CONFIG.logo.positionY, PDF_CONFIG.logo.width, PDF_CONFIG.logo.height);
13187
+ PdfFromDataTableService.prototype.generate = function (dataTables, title) {
13188
+ var _this = this;
13189
+ var pdf = new jsPDF__default["default"]();
13190
+ this.setDocumentTitle(pdf, title);
13191
+ this.setDocumentLogo(pdf);
13192
+ dataTables.forEach(function (dataTable) {
13193
+ autoTable__default["default"](pdf, Object.assign({ head: [dataTable.header], body: _this.formatter.format(dataTable.body), foot: _this.formatter.format(dataTable.footer) }, _this.setTableOptions(pdf, dataTable.caption)));
13194
+ });
13195
+ return pdf;
12657
13196
  };
12658
- return PdfService;
12659
- }());
12660
- PdfService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfService, deps: [{ token: ExportFormatterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
12661
- PdfService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfService, providedIn: 'root' });
12662
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfService, decorators: [{
13197
+ return PdfFromDataTableService;
13198
+ }(PdfFromTableService));
13199
+ PdfFromDataTableService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromDataTableService, deps: [{ token: ExportFormatterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
13200
+ PdfFromDataTableService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromDataTableService, providedIn: 'root' });
13201
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfFromDataTableService, decorators: [{
12663
13202
  type: i0.Injectable,
12664
13203
  args: [{
12665
13204
  providedIn: 'root'
@@ -14314,6 +14853,21 @@
14314
14853
  };
14315
14854
  }
14316
14855
 
14856
+ /**
14857
+ * Validation function, that checks that the user should select a value from a list rather than type in input field
14858
+ */
14859
+ function requireSelectValidator() {
14860
+ return function (control) {
14861
+ var selection = control.value;
14862
+ if (typeof selection === 'string' && !!selection) {
14863
+ return { notFromList: true };
14864
+ }
14865
+ else {
14866
+ return null;
14867
+ }
14868
+ };
14869
+ }
14870
+
14317
14871
  var ClientIncomeTypesForm = /** @class */ (function (_super) {
14318
14872
  __extends(ClientIncomeTypesForm, _super);
14319
14873
  function ClientIncomeTypesForm(clientIncomeTypes) {
@@ -14535,6 +15089,385 @@
14535
15089
  return VehicleClaimForm;
14536
15090
  }(AbstractForm));
14537
15091
 
15092
+ /**
15093
+ * @Todo waiting for the Sole tank implementation
15094
+ */
15095
+ var MyTaxBusinessOrLossesForm = /** @class */ (function (_super) {
15096
+ __extends(MyTaxBusinessOrLossesForm, _super);
15097
+ function MyTaxBusinessOrLossesForm(businessOrLosses) {
15098
+ return _super.call(this, {}) || this;
15099
+ }
15100
+ return MyTaxBusinessOrLossesForm;
15101
+ }(AbstractForm));
15102
+
15103
+ var MyTaxDeductionsForm = /** @class */ (function (_super) {
15104
+ __extends(MyTaxDeductionsForm, _super);
15105
+ function MyTaxDeductionsForm(deductions) {
15106
+ return _super.call(this, {
15107
+ vehicleClaimMethod: new forms.FormControl({
15108
+ value: deductions.vehicleClaim.method,
15109
+ disabled: true
15110
+ }),
15111
+ vehicleExpensesTotalAmount: new forms.FormControl({
15112
+ value: deductions.vehicleExpensesTotalAmount,
15113
+ disabled: true
15114
+ }),
15115
+ workRelatedTravelExpensesTotalAmount: new forms.FormControl({
15116
+ value: deductions.workRelatedTravelExpensesTotalAmount,
15117
+ disabled: true
15118
+ }),
15119
+ workRelatedClothingType: new forms.FormControl(deductions.workRelatedClothingType, forms.Validators.required),
15120
+ workRelatedClothingTotalAmount: new forms.FormControl({
15121
+ value: deductions.workRelatedClothingTotalAmount,
15122
+ disabled: true
15123
+ }),
15124
+ workRelatedSelfEducationType: new forms.FormControl(deductions.workRelatedSelfEducationType, forms.Validators.required),
15125
+ workRelatedSelfEducationTotalAmount: new forms.FormControl({
15126
+ value: deductions.workRelatedSelfEducationTotalAmount,
15127
+ disabled: true
15128
+ }),
15129
+ otherWorkRelatedSelfEducationTotalAmount: new forms.FormControl({
15130
+ value: deductions.otherWorkRelatedExpensesTotalAmount,
15131
+ disabled: true
15132
+ }),
15133
+ lowValuePoolDeductionTotalAmount: new forms.FormControl({
15134
+ value: deductions.lowValuePoolDeductionTotalAmount,
15135
+ disabled: true
15136
+ }),
15137
+ interestExpensesTotalAmount: new forms.FormControl({
15138
+ value: deductions.interestExpensesTotalAmount,
15139
+ disabled: true
15140
+ }),
15141
+ dividendExpensesTotalAmount: new forms.FormControl({
15142
+ value: deductions.dividendExpensesTotalAmount,
15143
+ disabled: true
15144
+ }),
15145
+ donationsTotalAmount: new forms.FormControl({
15146
+ value: deductions.donationsTotalAmount,
15147
+ disabled: true
15148
+ }),
15149
+ interestsChargedByATOTotalAmount: new forms.FormControl({
15150
+ value: deductions.interestsChargedByATOTotalAmount,
15151
+ disabled: true
15152
+ }),
15153
+ litigationCostsTotalAmount: new forms.FormControl({
15154
+ value: deductions.litigationCostsTotalAmount,
15155
+ disabled: true
15156
+ }),
15157
+ otherManagingCostsTotalAmount: new forms.FormControl({
15158
+ value: deductions.otherManagingCostsTotalAmount,
15159
+ disabled: true
15160
+ }),
15161
+ personalSuperContributionsTotalAmount: new forms.FormControl({
15162
+ value: deductions.personalSuperContributionsTotalAmount,
15163
+ disabled: true
15164
+ }),
15165
+ forestryManagedInvestmentSchemesDeductionsTotalAmount: new forms.FormControl({
15166
+ value: deductions.forestryManagedInvestmentSchemesDeductionsTotalAmount,
15167
+ disabled: true
15168
+ }),
15169
+ otherDeductionsTotalAmount: new forms.FormControl({
15170
+ value: deductions.otherDeductionsTotalAmount,
15171
+ disabled: true
15172
+ })
15173
+ }) || this;
15174
+ }
15175
+ return MyTaxDeductionsForm;
15176
+ }(AbstractForm));
15177
+
15178
+ var MyTaxDividendsForm = /** @class */ (function (_super) {
15179
+ __extends(MyTaxDividendsForm, _super);
15180
+ function MyTaxDividendsForm(dividends) {
15181
+ return _super.call(this, {
15182
+ dividendsUnfrankedAmount: new forms.FormControl({
15183
+ value: dividends.dividendsUnfrankedAmount,
15184
+ disabled: true
15185
+ }),
15186
+ dividendsFrankedAmount: new forms.FormControl({
15187
+ value: dividends.dividendsFrankedAmount,
15188
+ disabled: true
15189
+ }),
15190
+ dividendsFrankingCreditsAmount: new forms.FormControl({
15191
+ value: dividends.dividendsFrankingCreditsAmount,
15192
+ disabled: true
15193
+ }),
15194
+ dividendsTotalTax: new forms.FormControl({ value: dividends.dividendsTotalTax, disabled: true }),
15195
+ isForeignResident: new forms.FormControl(false),
15196
+ }) || this;
15197
+ }
15198
+ return MyTaxDividendsForm;
15199
+ }(AbstractForm));
15200
+
15201
+ var MyTaxEmployeeShareSchemesForm = /** @class */ (function (_super) {
15202
+ __extends(MyTaxEmployeeShareSchemesForm, _super);
15203
+ function MyTaxEmployeeShareSchemesForm(shareSchemes) {
15204
+ return _super.call(this, {
15205
+ eligibleForReductionAmount: new forms.FormControl(shareSchemes.eligibleForReductionAmount),
15206
+ notEligibleForReductionAmount: new forms.FormControl(shareSchemes.notEligibleForReductionAmount),
15207
+ discountFromDeferredSchemeAmount: new forms.FormControl(shareSchemes.discountFromDeferredSchemeAmount),
15208
+ totalAssessableDiscountAmount: new forms.FormControl(shareSchemes.totalAssessableDiscountAmount),
15209
+ shareSchemesTotalTax: new forms.FormControl(shareSchemes.shareSchemesTotalTax)
15210
+ }) || this;
15211
+ }
15212
+ return MyTaxEmployeeShareSchemesForm;
15213
+ }(AbstractForm));
15214
+
15215
+ var MyTaxIncomeStatementsForm = /** @class */ (function (_super) {
15216
+ __extends(MyTaxIncomeStatementsForm, _super);
15217
+ function MyTaxIncomeStatementsForm(incomeStatements, user) {
15218
+ var _this = _super.call(this, {
15219
+ occupation: new forms.FormControl(user.clientDetails.occupation, [forms.Validators.required, requireSelectValidator()]),
15220
+ allowanceTotalAmount: new forms.FormControl({
15221
+ value: incomeStatements.allowanceTotalAmount,
15222
+ disabled: true
15223
+ }),
15224
+ allowanceTotalTax: new forms.FormControl({
15225
+ value: incomeStatements.allowanceTotalTax,
15226
+ disabled: true
15227
+ }),
15228
+ lumpATransactionsTotalAmount: new forms.FormControl({
15229
+ value: incomeStatements.lumpATransactionsTotalAmount,
15230
+ disabled: true
15231
+ }),
15232
+ lumpATransactionsTotalTax: new forms.FormControl({
15233
+ value: incomeStatements.lumpATransactionsTotalTax,
15234
+ disabled: true
15235
+ }),
15236
+ hasGenuineLumpATransactions: new forms.FormControl({
15237
+ value: incomeStatements.hasGenuineLumpATransactions,
15238
+ disabled: true
15239
+ }),
15240
+ hasOtherLumpATransactions: new forms.FormControl({
15241
+ value: incomeStatements.hasOtherLumpATransactions,
15242
+ disabled: true
15243
+ }),
15244
+ lumpBTransactionsTotalAmount: new forms.FormControl({
15245
+ value: incomeStatements.lumpBTransactionsTotalAmount,
15246
+ disabled: true
15247
+ }),
15248
+ lumpBTransactionsTotalTax: new forms.FormControl({
15249
+ value: incomeStatements.lumpBTransactionsTotalTax,
15250
+ disabled: true
15251
+ }),
15252
+ australianAllowancesAndPaymentsTotalAmount: new forms.FormControl({
15253
+ value: incomeStatements.australianAllowancesAndPaymentsTotalAmount,
15254
+ disabled: true
15255
+ }),
15256
+ australianAllowancesAndPaymentsTotalTax: new forms.FormControl({
15257
+ value: incomeStatements.australianAllowancesAndPaymentsTotalTax,
15258
+ disabled: true
15259
+ }),
15260
+ australianPensionsAndAllowancesTotalAmount: new forms.FormControl({
15261
+ value: incomeStatements.australianPensionsAndAllowancesTotalAmount,
15262
+ disabled: true
15263
+ }),
15264
+ australianPensionsAndAllowancesTotalTax: new forms.FormControl({
15265
+ value: incomeStatements.australianPensionsAndAllowancesTotalTax,
15266
+ disabled: true
15267
+ }),
15268
+ australianAnnuitiesSuperannuationIncomesTotalTax: new forms.FormControl({
15269
+ value: incomeStatements.australianAnnuitiesSuperannuationIncomesTotalTax,
15270
+ disabled: true
15271
+ }),
15272
+ australianAnnuityPaymentsTaxed: new forms.FormControl({
15273
+ value: incomeStatements.australianAnnuityPaymentsTaxed,
15274
+ disabled: true
15275
+ }),
15276
+ australianAnnuityPaymentsUntaxed: new forms.FormControl({
15277
+ value: incomeStatements.australianAnnuityPaymentsUntaxed,
15278
+ disabled: true
15279
+ }),
15280
+ assessableCappedDefinedBenefitTotalAmount: new forms.FormControl({
15281
+ value: incomeStatements.assessableCappedDefinedBenefitTotalAmount,
15282
+ disabled: true
15283
+ }),
15284
+ superannuationIncomeStreamsTotalTaxed: new forms.FormControl({
15285
+ value: incomeStatements.superannuationIncomeStreamsTotalTaxed,
15286
+ disabled: true
15287
+ }),
15288
+ superannuationIncomeStreamsTotalUntaxed: new forms.FormControl({
15289
+ value: incomeStatements.superannuationIncomeStreamsTotalUntaxed,
15290
+ disabled: true
15291
+ }),
15292
+ attributablePsiTransactionsTotalAmount: new forms.FormControl({
15293
+ value: incomeStatements.attributablePsiTransactionsTotalAmount,
15294
+ disabled: true
15295
+ }),
15296
+ attributablePsiTransactionsTotalTax: new forms.FormControl({
15297
+ value: incomeStatements.attributablePsiTransactionsTotalTax,
15298
+ disabled: true
15299
+ }),
15300
+ }) || this;
15301
+ _this.incomeStatements = incomeStatements;
15302
+ return _this;
15303
+ }
15304
+ return MyTaxIncomeStatementsForm;
15305
+ }(AbstractForm));
15306
+
15307
+ /**
15308
+ * @Todo future functionality
15309
+ */
15310
+ var MyTaxIncomeTestsForm = /** @class */ (function (_super) {
15311
+ __extends(MyTaxIncomeTestsForm, _super);
15312
+ function MyTaxIncomeTestsForm(incomeTests) {
15313
+ return _super.call(this, {}) || this;
15314
+ }
15315
+ return MyTaxIncomeTestsForm;
15316
+ }(AbstractForm));
15317
+
15318
+ var MyTaxInterestForm = /** @class */ (function (_super) {
15319
+ __extends(MyTaxInterestForm, _super);
15320
+ function MyTaxInterestForm(interest) {
15321
+ return _super.call(this, {
15322
+ interestEarnedTotalAmount: new forms.FormControl(interest.interestEarnedTotalAmount),
15323
+ interestEarnedTotalTax: new forms.FormControl(interest.interestEarnedTotalTax),
15324
+ interestPaidTotalAmount: new forms.FormControl(interest.interestPaidTotalAmount)
15325
+ }) || this;
15326
+ }
15327
+ return MyTaxInterestForm;
15328
+ }(AbstractForm));
15329
+
15330
+ /**
15331
+ * @Todo waiting for Sole tank implementation
15332
+ */
15333
+ var MyTaxLossesForm = /** @class */ (function (_super) {
15334
+ __extends(MyTaxLossesForm, _super);
15335
+ function MyTaxLossesForm(losses) {
15336
+ return _super.call(this, {}) || this;
15337
+ }
15338
+ return MyTaxLossesForm;
15339
+ }(AbstractForm));
15340
+
15341
+ var MyTaxMedicareForm = /** @class */ (function (_super) {
15342
+ __extends(MyTaxMedicareForm, _super);
15343
+ function MyTaxMedicareForm(user) {
15344
+ var _this = _super.call(this, {
15345
+ hasDependants: new forms.FormControl(!!user.clientDetails.dependants),
15346
+ dependants: new forms.FormControl(user.clientDetails.dependants, forms.Validators.required),
15347
+ privateHealthCare: new forms.FormControl(user.clientDetails.privateHealthCare),
15348
+ hasMedicareExemption: new forms.FormControl(!!user.clientDetails.medicareExemption),
15349
+ medicareExemption: new forms.FormControl(user.clientDetails.medicareExemption, forms.Validators.required),
15350
+ }) || this;
15351
+ _this.listenEvents();
15352
+ return _this;
15353
+ }
15354
+ MyTaxMedicareForm.prototype.listenEvents = function () {
15355
+ this.listenHasDependantsChanged();
15356
+ this.listenHasMedicareExemptionChanged();
15357
+ };
15358
+ MyTaxMedicareForm.prototype.listenHasDependantsChanged = function () {
15359
+ var _this = this;
15360
+ this.get('hasDependants').valueChanges.subscribe(function (value) {
15361
+ if (!value) {
15362
+ _this.get('dependants').setValue(0);
15363
+ }
15364
+ });
15365
+ };
15366
+ MyTaxMedicareForm.prototype.listenHasMedicareExemptionChanged = function () {
15367
+ var _this = this;
15368
+ this.get('hasMedicareExemption').valueChanges.subscribe(function (value) {
15369
+ if (!value) {
15370
+ _this.get('medicareExemption').setValue(0);
15371
+ }
15372
+ });
15373
+ };
15374
+ return MyTaxMedicareForm;
15375
+ }(AbstractForm));
15376
+
15377
+ /**
15378
+ * @Todo waiting for new chart accounts implemented (TT-1739 & TT-1740)
15379
+ */
15380
+ var MyTaxOffsetsForm = /** @class */ (function (_super) {
15381
+ __extends(MyTaxOffsetsForm, _super);
15382
+ function MyTaxOffsetsForm(offsets) {
15383
+ return _super.call(this, {}) || this;
15384
+ }
15385
+ return MyTaxOffsetsForm;
15386
+ }(AbstractForm));
15387
+
15388
+ var MyTaxOtherIncomeForm = /** @class */ (function (_super) {
15389
+ __extends(MyTaxOtherIncomeForm, _super);
15390
+ function MyTaxOtherIncomeForm(otherIncome) {
15391
+ return _super.call(this, {
15392
+ bonusesTotalAmount: new forms.FormControl({
15393
+ value: otherIncome.bonusesTotalAmount,
15394
+ disabled: true
15395
+ }),
15396
+ forestryManagedInvestmentSchemesIncomeTotalAmount: new forms.FormControl({
15397
+ value: otherIncome.forestryManagedInvestmentSchemesIncomeTotalAmount,
15398
+ disabled: true
15399
+ }),
15400
+ lumpSumPaymentsInArrearsTotalTax: new forms.FormControl({
15401
+ value: otherIncome.lumpSumPaymentsInArrearsTotalTax,
15402
+ disabled: true
15403
+ }),
15404
+ specialProfessionIncomeTotalAmount: new forms.FormControl({
15405
+ value: otherIncome.specialProfessionIncomeTotalAmount,
15406
+ disabled: true
15407
+ }),
15408
+ category1TotalIncome: new forms.FormControl({
15409
+ value: otherIncome.category1TotalIncome,
15410
+ disabled: true
15411
+ }),
15412
+ hasLumpSumPaymentsInArrearsTransactions: new forms.FormControl(!!otherIncome.lumpSumPaymentsInArrearsTransactions.length),
15413
+ atoInterestPaidTotalAmount: new forms.FormControl({
15414
+ value: otherIncome.atoInterestPaidTotalAmount,
15415
+ disabled: true
15416
+ }),
15417
+ gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount: new forms.FormControl({
15418
+ value: otherIncome.gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount,
15419
+ disabled: true
15420
+ })
15421
+ }) || this;
15422
+ }
15423
+ return MyTaxOtherIncomeForm;
15424
+ }(AbstractForm));
15425
+
15426
+ var MyTaxPartnershipsAndTrustsForm = /** @class */ (function (_super) {
15427
+ __extends(MyTaxPartnershipsAndTrustsForm, _super);
15428
+ function MyTaxPartnershipsAndTrustsForm(partnershipsAndTrusts) {
15429
+ return _super.call(this, {
15430
+ partnershipsNetIncome: new forms.FormControl({
15431
+ value: partnershipsAndTrusts.partnershipsNetIncome,
15432
+ disabled: true
15433
+ }),
15434
+ trustsNetIncome: new forms.FormControl({
15435
+ value: partnershipsAndTrusts.trustsNetIncome,
15436
+ disabled: true
15437
+ }),
15438
+ trustType: new forms.FormControl(1),
15439
+ partnershipsSmallBusinessNetIncome: new forms.FormControl(partnershipsAndTrusts.partnershipsSmallBusinessNetIncome, forms.Validators.required),
15440
+ trustsSmallBusinessNetIncome: new forms.FormControl(partnershipsAndTrusts.trustsSmallBusinessNetIncome, forms.Validators.required),
15441
+ taxPaidTotal: new forms.FormControl({
15442
+ value: partnershipsAndTrusts.taxPaidTotal,
15443
+ disabled: true
15444
+ }),
15445
+ frankingCreditsTotal: new forms.FormControl({
15446
+ value: partnershipsAndTrusts.frankingCreditsTotal,
15447
+ disabled: true
15448
+ }),
15449
+ taxOffsetNRASTotalAmount: new forms.FormControl({
15450
+ value: partnershipsAndTrusts.taxOffsetNRASTotalAmount,
15451
+ disabled: true
15452
+ })
15453
+ }) || this;
15454
+ }
15455
+ return MyTaxPartnershipsAndTrustsForm;
15456
+ }(AbstractForm));
15457
+
15458
+ var MyTaxRentForm = /** @class */ (function (_super) {
15459
+ __extends(MyTaxRentForm, _super);
15460
+ function MyTaxRentForm(rent) {
15461
+ return _super.call(this, {
15462
+ grossRentAmount: new forms.FormControl(rent.grossRentAmount),
15463
+ interestDeductions: new forms.FormControl(rent.interestDeductionsAmount),
15464
+ capitalWorksDeductions: new forms.FormControl(rent.capitalWorksDeductionsAmount),
15465
+ otherRentalDeductionsAmount: new forms.FormControl(rent.otherRentalDeductionsAmount)
15466
+ }) || this;
15467
+ }
15468
+ return MyTaxRentForm;
15469
+ }(AbstractForm));
15470
+
14538
15471
  /**
14539
15472
  * Public API Surface of tt-core
14540
15473
  */
@@ -14618,6 +15551,7 @@
14618
15551
  exports.CorelogicService = CorelogicService;
14619
15552
  exports.CorelogicSuggestion = CorelogicSuggestion;
14620
15553
  exports.Country = Country;
15554
+ exports.DEDUCTION_CATEGORIES = DEDUCTION_CATEGORIES;
14621
15555
  exports.DEFAULT_VEHICLE_EXPENSE = DEFAULT_VEHICLE_EXPENSE;
14622
15556
  exports.DEPRECIATION_GROUPS = DEPRECIATION_GROUPS;
14623
15557
  exports.DOCUMENT_FILE_TYPES = DOCUMENT_FILE_TYPES;
@@ -14683,12 +15617,39 @@
14683
15617
  exports.MessageDocumentService = MessageDocumentService;
14684
15618
  exports.MessageService = MessageService;
14685
15619
  exports.MyAccountHistory = MyAccountHistory;
15620
+ exports.MyTaxBusinessOrLosses = MyTaxBusinessOrLosses;
15621
+ exports.MyTaxBusinessOrLossesForm = MyTaxBusinessOrLossesForm;
15622
+ exports.MyTaxDeductions = MyTaxDeductions;
15623
+ exports.MyTaxDeductionsForm = MyTaxDeductionsForm;
15624
+ exports.MyTaxDividends = MyTaxDividends;
15625
+ exports.MyTaxDividendsForm = MyTaxDividendsForm;
15626
+ exports.MyTaxEmployeeShareSchemes = MyTaxEmployeeShareSchemes;
15627
+ exports.MyTaxEmployeeShareSchemesForm = MyTaxEmployeeShareSchemesForm;
15628
+ exports.MyTaxIncomeStatements = MyTaxIncomeStatements;
15629
+ exports.MyTaxIncomeStatementsForm = MyTaxIncomeStatementsForm;
15630
+ exports.MyTaxIncomeTests = MyTaxIncomeTests;
15631
+ exports.MyTaxIncomeTestsForm = MyTaxIncomeTestsForm;
15632
+ exports.MyTaxInterest = MyTaxInterest;
15633
+ exports.MyTaxInterestForm = MyTaxInterestForm;
15634
+ exports.MyTaxLosses = MyTaxLosses;
15635
+ exports.MyTaxLossesForm = MyTaxLossesForm;
15636
+ exports.MyTaxMedicareForm = MyTaxMedicareForm;
15637
+ exports.MyTaxOffsets = MyTaxOffsets;
15638
+ exports.MyTaxOffsetsForm = MyTaxOffsetsForm;
15639
+ exports.MyTaxOtherIncome = MyTaxOtherIncome;
15640
+ exports.MyTaxOtherIncomeForm = MyTaxOtherIncomeForm;
15641
+ exports.MyTaxPartnershipsAndTrusts = MyTaxPartnershipsAndTrusts;
15642
+ exports.MyTaxPartnershipsAndTrustsForm = MyTaxPartnershipsAndTrustsForm;
15643
+ exports.MyTaxRent = MyTaxRent;
15644
+ exports.MyTaxRentForm = MyTaxRentForm;
14686
15645
  exports.Notification = Notification;
14687
15646
  exports.Occupation = Occupation;
14688
15647
  exports.OccupationService = OccupationService;
14689
15648
  exports.PASSWORD_REGEXPS = PASSWORD_REGEXPS;
14690
15649
  exports.PasswordForm = PasswordForm;
14691
- exports.PdfService = PdfService;
15650
+ exports.PdfFromDataTableService = PdfFromDataTableService;
15651
+ exports.PdfFromDomElementService = PdfFromDomElementService;
15652
+ exports.PdfFromHtmlTableService = PdfFromHtmlTableService;
14692
15653
  exports.PdfSettings = PdfSettings;
14693
15654
  exports.Phone = Phone;
14694
15655
  exports.PreloaderService = PreloaderService;
@@ -14793,6 +15754,7 @@
14793
15754
  exports.WORK_TANK_LOGBOOK_PURPOSE_OPTIONS = WORK_TANK_LOGBOOK_PURPOSE_OPTIONS;
14794
15755
  exports.XlsxService = XlsxService;
14795
15756
  exports.atLeastOneCheckedValidator = atLeastOneCheckedValidator;
15757
+ exports.atoLinks = atoLinks;
14796
15758
  exports.cloneDeep = cloneDeep;
14797
15759
  exports.compare = compare;
14798
15760
  exports.compareMatOptions = compareMatOptions;
@@ -14804,6 +15766,7 @@
14804
15766
  exports.passwordValidator = passwordValidator;
14805
15767
  exports.replace = replace;
14806
15768
  exports.requireAutocomplete = requireAutocomplete;
15769
+ exports.requireSelectValidator = requireSelectValidator;
14807
15770
  exports.roundTo = roundTo;
14808
15771
  exports.sort = sort;
14809
15772
  exports.sortDeep = sortDeep;