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
@@ -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);
@@ -2795,6 +2796,7 @@
2795
2796
  if (field === void 0) { field = 'id'; }
2796
2797
  if (isDesc === void 0) { isDesc = true; }
2797
2798
  sort(this.items, field, isDesc);
2799
+ return this;
2798
2800
  };
2799
2801
  /**
2800
2802
  * Get total sum of items by field
@@ -3186,7 +3188,7 @@
3186
3188
  __decorate([
3187
3189
  classTransformer.Transform(function (_a) {
3188
3190
  var value = _a.value;
3189
- return value || 0;
3191
+ return value || 100;
3190
3192
  }),
3191
3193
  classTransformer.Expose()
3192
3194
  ], BankAccountProperty.prototype, "percent", void 0);
@@ -4256,25 +4258,6 @@
4256
4258
  return ClientPortfolioReportCollection;
4257
4259
  }(Collection));
4258
4260
 
4259
- /**
4260
- * export table column
4261
- */
4262
- var ExportCell = /** @class */ (function () {
4263
- function ExportCell() {
4264
- }
4265
- return ExportCell;
4266
- }());
4267
-
4268
- /**
4269
- * type of export table column value
4270
- */
4271
- var ExportCellTypeEnum;
4272
- (function (ExportCellTypeEnum) {
4273
- ExportCellTypeEnum[ExportCellTypeEnum["STRING"] = 0] = "STRING";
4274
- ExportCellTypeEnum[ExportCellTypeEnum["CURRENCY"] = 1] = "CURRENCY";
4275
- ExportCellTypeEnum[ExportCellTypeEnum["DATE"] = 2] = "DATE";
4276
- })(ExportCellTypeEnum || (ExportCellTypeEnum = {}));
4277
-
4278
4261
  var ExportDataTable = /** @class */ (function () {
4279
4262
  function ExportDataTable() {
4280
4263
  }
@@ -4300,6 +4283,25 @@
4300
4283
  return ExportableCollection;
4301
4284
  }(Collection));
4302
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
+
4303
4305
  /**
4304
4306
  * Collection of transactions
4305
4307
  */
@@ -4370,11 +4372,14 @@
4370
4372
  return new TransactionCollection(this.items.filter(function (transaction) { return transaction.date.getMonth() === monthIndex; }));
4371
4373
  };
4372
4374
  /**
4373
- * get list of transactions filtered by chart accounts id
4374
- * @param chartAccountsId chart accounts id for filtering
4375
+ * Get collection of transactions metadata
4375
4376
  */
4376
- TransactionCollection.prototype.getByChartAccountsId = function (chartAccountsId) {
4377
- 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);
4378
4383
  };
4379
4384
  TransactionCollection.prototype.getIncomeTransactions = function () {
4380
4385
  return new TransactionCollection(this.items.filter(function (transaction) { return transaction.isIncome(); }));
@@ -4558,11 +4563,14 @@
4558
4563
  DepreciationCollection.prototype.getByChartAccountsCategories = function (categories) {
4559
4564
  return this.create(this.items.filter(function (depreciation) { return categories.includes(depreciation.chartAccounts.category); }));
4560
4565
  };
4566
+ DepreciationCollection.prototype.getAssets = function () {
4567
+ return this.filter(function (depreciation) { return depreciation.isAsset(); });
4568
+ };
4561
4569
  DepreciationCollection.prototype.getPlantEquipment = function () {
4562
- return new DepreciationCollection(this.items.filter(function (depreciation) { return depreciation.isPlantEquipment(); }));
4570
+ return this.filter(function (depreciation) { return depreciation.isPlantEquipment(); });
4563
4571
  };
4564
4572
  DepreciationCollection.prototype.getCapitalDepreciations = function () {
4565
- return new DepreciationCollection(this.items.filter(function (depreciation) { return depreciation.isCapital(); }));
4573
+ return this.filter(function (depreciation) { return depreciation.isCapital(); });
4566
4574
  };
4567
4575
  DepreciationCollection.prototype.getBorrowingExpenseDepreciations = function () {
4568
4576
  return new DepreciationCollection(this.items.filter(function (depreciation) { return depreciation.isBorrowingExpense(); }));
@@ -5105,6 +5113,19 @@
5105
5113
 
5106
5114
  exports.ChartAccountsListEnum = void 0;
5107
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";
5108
5129
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_ON_LOAN"] = 302] = "INTEREST_ON_LOAN";
5109
5130
  ChartAccountsListEnum[ChartAccountsListEnum["BORROWING_EXPENSES"] = 315] = "BORROWING_EXPENSES";
5110
5131
  ChartAccountsListEnum[ChartAccountsListEnum["DIVIDENDS"] = 542] = "DIVIDENDS";
@@ -5121,8 +5142,31 @@
5121
5142
  ChartAccountsListEnum[ChartAccountsListEnum["VEHICLE_LOAN_PRINCIPAL"] = 38] = "VEHICLE_LOAN_PRINCIPAL";
5122
5143
  ChartAccountsListEnum[ChartAccountsListEnum["TAX_INSTALMENTS"] = 662] = "TAX_INSTALMENTS";
5123
5144
  ChartAccountsListEnum[ChartAccountsListEnum["INTEREST_EARNED"] = 22] = "INTEREST_EARNED";
5145
+ ChartAccountsListEnum[ChartAccountsListEnum["PARTNERSHIP_INCOME"] = 566] = "PARTNERSHIP_INCOME";
5124
5146
  ChartAccountsListEnum[ChartAccountsListEnum["TRUST_INCOME"] = 567] = "TRUST_INCOME";
5125
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";
5126
5170
  })(exports.ChartAccountsListEnum || (exports.ChartAccountsListEnum = {}));
5127
5171
 
5128
5172
  var DepreciationCapitalProject$1 = /** @class */ (function (_super) {
@@ -5256,8 +5300,11 @@
5256
5300
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["TAX_FREE_COMPONENT"] = 18] = "TAX_FREE_COMPONENT";
5257
5301
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["YEARS_OF_SERVICE"] = 19] = "YEARS_OF_SERVICE";
5258
5302
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNTAXED_ELEMENT"] = 24] = "UNTAXED_ELEMENT";
5303
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["NOT_ELIGIBLE_FOR_DEDUCTION"] = 25] = "NOT_ELIGIBLE_FOR_DEDUCTION";
5259
5304
  ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["FRANKED"] = 26] = "FRANKED";
5305
+ ChartAccountsMetadataListEnum[ChartAccountsMetadataListEnum["UNFRANKED"] = 27] = "UNFRANKED";
5260
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";
5261
5308
  })(exports.ChartAccountsMetadataListEnum || (exports.ChartAccountsMetadataListEnum = {}));
5262
5309
 
5263
5310
  var ChartAccountsMetadata = /** @class */ (function (_super) {
@@ -5929,6 +5976,7 @@
5929
5976
  /**
5930
5977
  * Get value of transaction metadata field
5931
5978
  * @param field for which value should be returned
5979
+ * @Todo modify 'metadata' property from array to Collection
5932
5980
  */
5933
5981
  Transaction.prototype.getMetadataFieldValue = function (field) {
5934
5982
  var _a;
@@ -7020,7 +7068,26 @@
7020
7068
 
7021
7069
  exports.ChartAccountsHeadingListEnum = void 0;
7022
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";
7023
7088
  ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["ETP"] = 39] = "ETP";
7089
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["INTEREST_DEDUCTIONS"] = 47] = "INTEREST_DEDUCTIONS";
7090
+ ChartAccountsHeadingListEnum[ChartAccountsHeadingListEnum["DIVIDEND_DEDUCTIONS"] = 48] = "DIVIDEND_DEDUCTIONS";
7024
7091
  })(exports.ChartAccountsHeadingListEnum || (exports.ChartAccountsHeadingListEnum = {}));
7025
7092
 
7026
7093
  exports.ChartAccountsHeadingTaxableEnum = void 0;
@@ -8655,6 +8722,8 @@
8655
8722
  */
8656
8723
  var PdfSettings = /** @class */ (function () {
8657
8724
  function PdfSettings() {
8725
+ this.title = '';
8726
+ this.filename = 'export';
8658
8727
  this.orientation = exports.PdfOrientationEnum.PORTRAIT;
8659
8728
  }
8660
8729
  return PdfSettings;
@@ -9106,6 +9175,396 @@
9106
9175
  return PropertySaleTaxExemptionMetadata;
9107
9176
  }(PropertySaleTaxExemptionMetadata$1));
9108
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
+
9109
9568
  /**
9110
9569
  * Constant with list of URLs
9111
9570
  */
@@ -11071,6 +11530,9 @@
11071
11530
  }]
11072
11531
  }] });
11073
11532
 
11533
+ /**
11534
+ * server sent events service
11535
+ */
11074
11536
  var SseService = /** @class */ (function () {
11075
11537
  function SseService(zone, jwtService, environment) {
11076
11538
  this.zone = zone;
@@ -12528,9 +12990,61 @@
12528
12990
  } });
12529
12991
 
12530
12992
  /**
12531
- * Configuration file with the settings to generate PDF file
12993
+ * Settings for generated PDF file from DOM elements
12994
+ */
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
12532
13015
  */
12533
- var PDF_CONFIG = {
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 = {
12534
13048
  text: {
12535
13049
  fontSize: 12,
12536
13050
  fontName: 'helvetica',
@@ -12549,63 +13063,85 @@
12549
13063
  positionX: 42,
12550
13064
  positionY: 6
12551
13065
  },
12552
- // coords for file section title (group, table, e.t.c.)
12553
- contentTitleCoords: {
12554
- marginTop: 15
13066
+ titleCoords: {
13067
+ top: 15
12555
13068
  },
12556
13069
  contentCoords: {
12557
- marginTop: 15,
12558
- marginLeft: 14
12559
- },
12560
- table: {
12561
- headStyles: {
12562
- fillColor: '#00b7f0',
12563
- lineWidth: .2,
12564
- halign: 'center'
12565
- },
12566
- footStyles: {
12567
- fillColor: '#ffffff',
12568
- textColor: '#000000'
12569
- },
13070
+ top: 15,
13071
+ left: 14
12570
13072
  }
12571
13073
  };
12572
13074
 
12573
13075
  /**
12574
- * @TODO vik refactor
12575
- * 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
12576
13078
  */
12577
- var PdfService = /** @class */ (function () {
12578
- function PdfService(formatter) {
12579
- this.formatter = formatter;
13079
+ var PdfFromTableService = /** @class */ (function () {
13080
+ function PdfFromTableService() {
12580
13081
  }
12581
13082
  /**
12582
- * Export file from provided HTML tables
13083
+ * Set basic options for PDF table
12583
13084
  */
12584
- PdfService.prototype.exportTables = function (tables, fileSettings) {
12585
- var document = this.generateFromTables(tables, fileSettings);
12586
- 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
+ };
12587
13107
  };
12588
- /**
12589
- * Export file from provided array-like table data
12590
- */
12591
- PdfService.prototype.exportFromDataTables = function (dataTables, fileSettings) {
12592
- 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);
12593
13139
  document.save(fileSettings.filename + ".pdf");
12594
13140
  };
12595
13141
  /**
12596
- * Generate file from array-like table data
13142
+ * Generate PDF file from provided list of HTML tables
12597
13143
  */
12598
- PdfService.prototype.generateFromDataTables = function (dataTables, title) {
12599
- var _this = this;
12600
- var pdf = new jsPDF__default["default"]();
12601
- this.setDocumentTitle(pdf, title);
12602
- this.setDocumentLogo(pdf);
12603
- dataTables.forEach(function (dataTable) {
12604
- 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)));
12605
- });
12606
- return pdf;
12607
- };
12608
- PdfService.prototype.generateFromTables = function (tables, fileSettings) {
13144
+ PdfFromHtmlTableService.prototype.generateFile = function (tables, fileSettings) {
12609
13145
  var _this = this;
12610
13146
  var pdf = new jsPDF__default["default"](fileSettings.orientation);
12611
13147
  this.setDocumentTitle(pdf, fileSettings.title);
@@ -12620,47 +13156,49 @@
12620
13156
  });
12621
13157
  return pdf;
12622
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
+ };
12623
13184
  /**
12624
- * Set basic options for PDF table
13185
+ * Generate PDF file from provided list of data tables
12625
13186
  */
12626
- PdfService.prototype.setTableOptions = function (pdf, tableCaption) {
12627
- if (tableCaption === void 0) { tableCaption = ''; }
12628
- var lastTableCoords = pdf['lastAutoTable'].finalY || PDF_CONFIG.contentCoords.marginTop;
12629
- // get caption height based on caption content height
12630
- var captionHeight = pdf.getTextDimensions(pdf.splitTextToSize(tableCaption, pdf.internal.pageSize.width)).h;
12631
- pdf.text(tableCaption, PDF_CONFIG.contentCoords.marginLeft, lastTableCoords + PDF_CONFIG.contentCoords.marginTop);
12632
- return {
12633
- headStyles: {
12634
- fillColor: PDF_CONFIG.text.colorPrimary,
12635
- },
12636
- footStyles: {
12637
- fillColor: PDF_CONFIG.text.colorWhite,
12638
- textColor: PDF_CONFIG.text.colorBlack
12639
- },
12640
- startY: lastTableCoords + captionHeight + PDF_CONFIG.contentTitleCoords.marginTop,
12641
- didParseCell: function (data) {
12642
- // Align last column content to right
12643
- if (data.table.columns.length > 1 && (data.column.index === data.table.columns.length - 1)) {
12644
- data.cell.styles.halign = 'right';
12645
- }
12646
- }
12647
- };
12648
- };
12649
- PdfService.prototype.setDocumentTitle = function (doc, title) {
12650
- doc.setFontSize(PDF_CONFIG.text.fontSize)
12651
- .setFont(PDF_CONFIG.text.fontName, PDF_CONFIG.text.fontStyle, PDF_CONFIG.text.fontWeight)
12652
- .text(title, PDF_CONFIG.text.positionX, PDF_CONFIG.text.positionY);
12653
- };
12654
- PdfService.prototype.setDocumentLogo = function (doc) {
12655
- var logo = new Image();
12656
- logo.src = PDF_CONFIG.logo.src;
12657
- 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;
12658
13196
  };
12659
- return PdfService;
12660
- }());
12661
- 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 });
12662
- PdfService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: PdfService, providedIn: 'root' });
12663
- 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: [{
12664
13202
  type: i0.Injectable,
12665
13203
  args: [{
12666
13204
  providedIn: 'root'
@@ -14140,13 +14678,14 @@
14140
14678
  }, bankAccount) || this;
14141
14679
  _this.bankAccount = bankAccount;
14142
14680
  if (bankAccount.isLoan()) {
14143
- _this.addControl('loan', new BankAccountLoanForm());
14681
+ _this.addControl('loan', new BankAccountLoanForm(bankAccount.loan));
14144
14682
  }
14145
14683
  _this.listenEvents();
14146
14684
  return _this;
14147
14685
  }
14148
14686
  BankAccountForm.prototype.listenEvents = function () {
14149
14687
  this.listenTankTypeChanges();
14688
+ this.listenValueChanges();
14150
14689
  };
14151
14690
  Object.defineProperty(BankAccountForm.prototype, "properties", {
14152
14691
  get: function () {
@@ -14161,9 +14700,16 @@
14161
14700
  BankAccountForm.prototype.isPropertyTank = function () {
14162
14701
  return this.get('tankType').value === exports.TankTypeEnum.PROPERTY;
14163
14702
  };
14703
+ BankAccountForm.prototype.confirm = function () {
14704
+ this.markAllAsTouched();
14705
+ if (this.invalid) {
14706
+ return;
14707
+ }
14708
+ this.isConfirmed = true;
14709
+ };
14164
14710
  BankAccountForm.prototype.addPropertiesArray = function () {
14165
14711
  var control = new BankAccountPropertiesForm(this.isLoan(), this.bankAccount.bankAccountProperties);
14166
- // Default form behaviour is: iw we add enabled form control to disabled form group then this form group enable.
14712
+ // Default form behaviour is: if we add enabled form control to disabled form group then this form group enable.
14167
14713
  // Disable form control before add to avoid form group enabling.
14168
14714
  if (this.disabled) {
14169
14715
  control.disable();
@@ -14179,6 +14725,12 @@
14179
14725
  _this.isPropertyTank() ? _this.addPropertiesArray() : _this.removeControl('bankAccountProperties');
14180
14726
  });
14181
14727
  };
14728
+ BankAccountForm.prototype.listenValueChanges = function () {
14729
+ var _this = this;
14730
+ this.valueChanges.subscribe(function () {
14731
+ _this.isConfirmed = false;
14732
+ });
14733
+ };
14182
14734
  return BankAccountForm;
14183
14735
  }(AbstractForm));
14184
14736
 
@@ -14315,6 +14867,21 @@
14315
14867
  };
14316
14868
  }
14317
14869
 
14870
+ /**
14871
+ * Validation function, that checks that the user should select a value from a list rather than type in input field
14872
+ */
14873
+ function requireSelectValidator() {
14874
+ return function (control) {
14875
+ var selection = control.value;
14876
+ if (typeof selection === 'string' && !!selection) {
14877
+ return { notFromList: true };
14878
+ }
14879
+ else {
14880
+ return null;
14881
+ }
14882
+ };
14883
+ }
14884
+
14318
14885
  var ClientIncomeTypesForm = /** @class */ (function (_super) {
14319
14886
  __extends(ClientIncomeTypesForm, _super);
14320
14887
  function ClientIncomeTypesForm(clientIncomeTypes) {
@@ -14536,6 +15103,385 @@
14536
15103
  return VehicleClaimForm;
14537
15104
  }(AbstractForm));
14538
15105
 
15106
+ /**
15107
+ * @Todo waiting for the Sole tank implementation
15108
+ */
15109
+ var MyTaxBusinessOrLossesForm = /** @class */ (function (_super) {
15110
+ __extends(MyTaxBusinessOrLossesForm, _super);
15111
+ function MyTaxBusinessOrLossesForm(businessOrLosses) {
15112
+ return _super.call(this, {}) || this;
15113
+ }
15114
+ return MyTaxBusinessOrLossesForm;
15115
+ }(AbstractForm));
15116
+
15117
+ var MyTaxDeductionsForm = /** @class */ (function (_super) {
15118
+ __extends(MyTaxDeductionsForm, _super);
15119
+ function MyTaxDeductionsForm(deductions) {
15120
+ return _super.call(this, {
15121
+ vehicleClaimMethod: new forms.FormControl({
15122
+ value: deductions.vehicleClaim.method,
15123
+ disabled: true
15124
+ }),
15125
+ vehicleExpensesTotalAmount: new forms.FormControl({
15126
+ value: deductions.vehicleExpensesTotalAmount,
15127
+ disabled: true
15128
+ }),
15129
+ workRelatedTravelExpensesTotalAmount: new forms.FormControl({
15130
+ value: deductions.workRelatedTravelExpensesTotalAmount,
15131
+ disabled: true
15132
+ }),
15133
+ workRelatedClothingType: new forms.FormControl(deductions.workRelatedClothingType, forms.Validators.required),
15134
+ workRelatedClothingTotalAmount: new forms.FormControl({
15135
+ value: deductions.workRelatedClothingTotalAmount,
15136
+ disabled: true
15137
+ }),
15138
+ workRelatedSelfEducationType: new forms.FormControl(deductions.workRelatedSelfEducationType, forms.Validators.required),
15139
+ workRelatedSelfEducationTotalAmount: new forms.FormControl({
15140
+ value: deductions.workRelatedSelfEducationTotalAmount,
15141
+ disabled: true
15142
+ }),
15143
+ otherWorkRelatedSelfEducationTotalAmount: new forms.FormControl({
15144
+ value: deductions.otherWorkRelatedExpensesTotalAmount,
15145
+ disabled: true
15146
+ }),
15147
+ lowValuePoolDeductionTotalAmount: new forms.FormControl({
15148
+ value: deductions.lowValuePoolDeductionTotalAmount,
15149
+ disabled: true
15150
+ }),
15151
+ interestExpensesTotalAmount: new forms.FormControl({
15152
+ value: deductions.interestExpensesTotalAmount,
15153
+ disabled: true
15154
+ }),
15155
+ dividendExpensesTotalAmount: new forms.FormControl({
15156
+ value: deductions.dividendExpensesTotalAmount,
15157
+ disabled: true
15158
+ }),
15159
+ donationsTotalAmount: new forms.FormControl({
15160
+ value: deductions.donationsTotalAmount,
15161
+ disabled: true
15162
+ }),
15163
+ interestsChargedByATOTotalAmount: new forms.FormControl({
15164
+ value: deductions.interestsChargedByATOTotalAmount,
15165
+ disabled: true
15166
+ }),
15167
+ litigationCostsTotalAmount: new forms.FormControl({
15168
+ value: deductions.litigationCostsTotalAmount,
15169
+ disabled: true
15170
+ }),
15171
+ otherManagingCostsTotalAmount: new forms.FormControl({
15172
+ value: deductions.otherManagingCostsTotalAmount,
15173
+ disabled: true
15174
+ }),
15175
+ personalSuperContributionsTotalAmount: new forms.FormControl({
15176
+ value: deductions.personalSuperContributionsTotalAmount,
15177
+ disabled: true
15178
+ }),
15179
+ forestryManagedInvestmentSchemesDeductionsTotalAmount: new forms.FormControl({
15180
+ value: deductions.forestryManagedInvestmentSchemesDeductionsTotalAmount,
15181
+ disabled: true
15182
+ }),
15183
+ otherDeductionsTotalAmount: new forms.FormControl({
15184
+ value: deductions.otherDeductionsTotalAmount,
15185
+ disabled: true
15186
+ })
15187
+ }) || this;
15188
+ }
15189
+ return MyTaxDeductionsForm;
15190
+ }(AbstractForm));
15191
+
15192
+ var MyTaxDividendsForm = /** @class */ (function (_super) {
15193
+ __extends(MyTaxDividendsForm, _super);
15194
+ function MyTaxDividendsForm(dividends) {
15195
+ return _super.call(this, {
15196
+ dividendsUnfrankedAmount: new forms.FormControl({
15197
+ value: dividends.dividendsUnfrankedAmount,
15198
+ disabled: true
15199
+ }),
15200
+ dividendsFrankedAmount: new forms.FormControl({
15201
+ value: dividends.dividendsFrankedAmount,
15202
+ disabled: true
15203
+ }),
15204
+ dividendsFrankingCreditsAmount: new forms.FormControl({
15205
+ value: dividends.dividendsFrankingCreditsAmount,
15206
+ disabled: true
15207
+ }),
15208
+ dividendsTotalTax: new forms.FormControl({ value: dividends.dividendsTotalTax, disabled: true }),
15209
+ isForeignResident: new forms.FormControl(false),
15210
+ }) || this;
15211
+ }
15212
+ return MyTaxDividendsForm;
15213
+ }(AbstractForm));
15214
+
15215
+ var MyTaxEmployeeShareSchemesForm = /** @class */ (function (_super) {
15216
+ __extends(MyTaxEmployeeShareSchemesForm, _super);
15217
+ function MyTaxEmployeeShareSchemesForm(shareSchemes) {
15218
+ return _super.call(this, {
15219
+ eligibleForReductionAmount: new forms.FormControl(shareSchemes.eligibleForReductionAmount),
15220
+ notEligibleForReductionAmount: new forms.FormControl(shareSchemes.notEligibleForReductionAmount),
15221
+ discountFromDeferredSchemeAmount: new forms.FormControl(shareSchemes.discountFromDeferredSchemeAmount),
15222
+ totalAssessableDiscountAmount: new forms.FormControl(shareSchemes.totalAssessableDiscountAmount),
15223
+ shareSchemesTotalTax: new forms.FormControl(shareSchemes.shareSchemesTotalTax)
15224
+ }) || this;
15225
+ }
15226
+ return MyTaxEmployeeShareSchemesForm;
15227
+ }(AbstractForm));
15228
+
15229
+ var MyTaxIncomeStatementsForm = /** @class */ (function (_super) {
15230
+ __extends(MyTaxIncomeStatementsForm, _super);
15231
+ function MyTaxIncomeStatementsForm(incomeStatements, user) {
15232
+ var _this = _super.call(this, {
15233
+ occupation: new forms.FormControl(user.clientDetails.occupation, [forms.Validators.required, requireSelectValidator()]),
15234
+ allowanceTotalAmount: new forms.FormControl({
15235
+ value: incomeStatements.allowanceTotalAmount,
15236
+ disabled: true
15237
+ }),
15238
+ allowanceTotalTax: new forms.FormControl({
15239
+ value: incomeStatements.allowanceTotalTax,
15240
+ disabled: true
15241
+ }),
15242
+ lumpATransactionsTotalAmount: new forms.FormControl({
15243
+ value: incomeStatements.lumpATransactionsTotalAmount,
15244
+ disabled: true
15245
+ }),
15246
+ lumpATransactionsTotalTax: new forms.FormControl({
15247
+ value: incomeStatements.lumpATransactionsTotalTax,
15248
+ disabled: true
15249
+ }),
15250
+ hasGenuineLumpATransactions: new forms.FormControl({
15251
+ value: incomeStatements.hasGenuineLumpATransactions,
15252
+ disabled: true
15253
+ }),
15254
+ hasOtherLumpATransactions: new forms.FormControl({
15255
+ value: incomeStatements.hasOtherLumpATransactions,
15256
+ disabled: true
15257
+ }),
15258
+ lumpBTransactionsTotalAmount: new forms.FormControl({
15259
+ value: incomeStatements.lumpBTransactionsTotalAmount,
15260
+ disabled: true
15261
+ }),
15262
+ lumpBTransactionsTotalTax: new forms.FormControl({
15263
+ value: incomeStatements.lumpBTransactionsTotalTax,
15264
+ disabled: true
15265
+ }),
15266
+ australianAllowancesAndPaymentsTotalAmount: new forms.FormControl({
15267
+ value: incomeStatements.australianAllowancesAndPaymentsTotalAmount,
15268
+ disabled: true
15269
+ }),
15270
+ australianAllowancesAndPaymentsTotalTax: new forms.FormControl({
15271
+ value: incomeStatements.australianAllowancesAndPaymentsTotalTax,
15272
+ disabled: true
15273
+ }),
15274
+ australianPensionsAndAllowancesTotalAmount: new forms.FormControl({
15275
+ value: incomeStatements.australianPensionsAndAllowancesTotalAmount,
15276
+ disabled: true
15277
+ }),
15278
+ australianPensionsAndAllowancesTotalTax: new forms.FormControl({
15279
+ value: incomeStatements.australianPensionsAndAllowancesTotalTax,
15280
+ disabled: true
15281
+ }),
15282
+ australianAnnuitiesSuperannuationIncomesTotalTax: new forms.FormControl({
15283
+ value: incomeStatements.australianAnnuitiesSuperannuationIncomesTotalTax,
15284
+ disabled: true
15285
+ }),
15286
+ australianAnnuityPaymentsTaxed: new forms.FormControl({
15287
+ value: incomeStatements.australianAnnuityPaymentsTaxed,
15288
+ disabled: true
15289
+ }),
15290
+ australianAnnuityPaymentsUntaxed: new forms.FormControl({
15291
+ value: incomeStatements.australianAnnuityPaymentsUntaxed,
15292
+ disabled: true
15293
+ }),
15294
+ assessableCappedDefinedBenefitTotalAmount: new forms.FormControl({
15295
+ value: incomeStatements.assessableCappedDefinedBenefitTotalAmount,
15296
+ disabled: true
15297
+ }),
15298
+ superannuationIncomeStreamsTotalTaxed: new forms.FormControl({
15299
+ value: incomeStatements.superannuationIncomeStreamsTotalTaxed,
15300
+ disabled: true
15301
+ }),
15302
+ superannuationIncomeStreamsTotalUntaxed: new forms.FormControl({
15303
+ value: incomeStatements.superannuationIncomeStreamsTotalUntaxed,
15304
+ disabled: true
15305
+ }),
15306
+ attributablePsiTransactionsTotalAmount: new forms.FormControl({
15307
+ value: incomeStatements.attributablePsiTransactionsTotalAmount,
15308
+ disabled: true
15309
+ }),
15310
+ attributablePsiTransactionsTotalTax: new forms.FormControl({
15311
+ value: incomeStatements.attributablePsiTransactionsTotalTax,
15312
+ disabled: true
15313
+ }),
15314
+ }) || this;
15315
+ _this.incomeStatements = incomeStatements;
15316
+ return _this;
15317
+ }
15318
+ return MyTaxIncomeStatementsForm;
15319
+ }(AbstractForm));
15320
+
15321
+ /**
15322
+ * @Todo future functionality
15323
+ */
15324
+ var MyTaxIncomeTestsForm = /** @class */ (function (_super) {
15325
+ __extends(MyTaxIncomeTestsForm, _super);
15326
+ function MyTaxIncomeTestsForm(incomeTests) {
15327
+ return _super.call(this, {}) || this;
15328
+ }
15329
+ return MyTaxIncomeTestsForm;
15330
+ }(AbstractForm));
15331
+
15332
+ var MyTaxInterestForm = /** @class */ (function (_super) {
15333
+ __extends(MyTaxInterestForm, _super);
15334
+ function MyTaxInterestForm(interest) {
15335
+ return _super.call(this, {
15336
+ interestEarnedTotalAmount: new forms.FormControl(interest.interestEarnedTotalAmount),
15337
+ interestEarnedTotalTax: new forms.FormControl(interest.interestEarnedTotalTax),
15338
+ interestPaidTotalAmount: new forms.FormControl(interest.interestPaidTotalAmount)
15339
+ }) || this;
15340
+ }
15341
+ return MyTaxInterestForm;
15342
+ }(AbstractForm));
15343
+
15344
+ /**
15345
+ * @Todo waiting for Sole tank implementation
15346
+ */
15347
+ var MyTaxLossesForm = /** @class */ (function (_super) {
15348
+ __extends(MyTaxLossesForm, _super);
15349
+ function MyTaxLossesForm(losses) {
15350
+ return _super.call(this, {}) || this;
15351
+ }
15352
+ return MyTaxLossesForm;
15353
+ }(AbstractForm));
15354
+
15355
+ var MyTaxMedicareForm = /** @class */ (function (_super) {
15356
+ __extends(MyTaxMedicareForm, _super);
15357
+ function MyTaxMedicareForm(user) {
15358
+ var _this = _super.call(this, {
15359
+ hasDependants: new forms.FormControl(!!user.clientDetails.dependants),
15360
+ dependants: new forms.FormControl(user.clientDetails.dependants, forms.Validators.required),
15361
+ privateHealthCare: new forms.FormControl(user.clientDetails.privateHealthCare),
15362
+ hasMedicareExemption: new forms.FormControl(!!user.clientDetails.medicareExemption),
15363
+ medicareExemption: new forms.FormControl(user.clientDetails.medicareExemption, forms.Validators.required),
15364
+ }) || this;
15365
+ _this.listenEvents();
15366
+ return _this;
15367
+ }
15368
+ MyTaxMedicareForm.prototype.listenEvents = function () {
15369
+ this.listenHasDependantsChanged();
15370
+ this.listenHasMedicareExemptionChanged();
15371
+ };
15372
+ MyTaxMedicareForm.prototype.listenHasDependantsChanged = function () {
15373
+ var _this = this;
15374
+ this.get('hasDependants').valueChanges.subscribe(function (value) {
15375
+ if (!value) {
15376
+ _this.get('dependants').setValue(0);
15377
+ }
15378
+ });
15379
+ };
15380
+ MyTaxMedicareForm.prototype.listenHasMedicareExemptionChanged = function () {
15381
+ var _this = this;
15382
+ this.get('hasMedicareExemption').valueChanges.subscribe(function (value) {
15383
+ if (!value) {
15384
+ _this.get('medicareExemption').setValue(0);
15385
+ }
15386
+ });
15387
+ };
15388
+ return MyTaxMedicareForm;
15389
+ }(AbstractForm));
15390
+
15391
+ /**
15392
+ * @Todo waiting for new chart accounts implemented (TT-1739 & TT-1740)
15393
+ */
15394
+ var MyTaxOffsetsForm = /** @class */ (function (_super) {
15395
+ __extends(MyTaxOffsetsForm, _super);
15396
+ function MyTaxOffsetsForm(offsets) {
15397
+ return _super.call(this, {}) || this;
15398
+ }
15399
+ return MyTaxOffsetsForm;
15400
+ }(AbstractForm));
15401
+
15402
+ var MyTaxOtherIncomeForm = /** @class */ (function (_super) {
15403
+ __extends(MyTaxOtherIncomeForm, _super);
15404
+ function MyTaxOtherIncomeForm(otherIncome) {
15405
+ return _super.call(this, {
15406
+ bonusesTotalAmount: new forms.FormControl({
15407
+ value: otherIncome.bonusesTotalAmount,
15408
+ disabled: true
15409
+ }),
15410
+ forestryManagedInvestmentSchemesIncomeTotalAmount: new forms.FormControl({
15411
+ value: otherIncome.forestryManagedInvestmentSchemesIncomeTotalAmount,
15412
+ disabled: true
15413
+ }),
15414
+ lumpSumPaymentsInArrearsTotalTax: new forms.FormControl({
15415
+ value: otherIncome.lumpSumPaymentsInArrearsTotalTax,
15416
+ disabled: true
15417
+ }),
15418
+ specialProfessionIncomeTotalAmount: new forms.FormControl({
15419
+ value: otherIncome.specialProfessionIncomeTotalAmount,
15420
+ disabled: true
15421
+ }),
15422
+ category1TotalIncome: new forms.FormControl({
15423
+ value: otherIncome.category1TotalIncome,
15424
+ disabled: true
15425
+ }),
15426
+ hasLumpSumPaymentsInArrearsTransactions: new forms.FormControl(!!otherIncome.lumpSumPaymentsInArrearsTransactions.length),
15427
+ atoInterestPaidTotalAmount: new forms.FormControl({
15428
+ value: otherIncome.atoInterestPaidTotalAmount,
15429
+ disabled: true
15430
+ }),
15431
+ gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount: new forms.FormControl({
15432
+ value: otherIncome.gainOnSaleOfVehiclePreviouslyDepreciatedTotalAmount,
15433
+ disabled: true
15434
+ })
15435
+ }) || this;
15436
+ }
15437
+ return MyTaxOtherIncomeForm;
15438
+ }(AbstractForm));
15439
+
15440
+ var MyTaxPartnershipsAndTrustsForm = /** @class */ (function (_super) {
15441
+ __extends(MyTaxPartnershipsAndTrustsForm, _super);
15442
+ function MyTaxPartnershipsAndTrustsForm(partnershipsAndTrusts) {
15443
+ return _super.call(this, {
15444
+ partnershipsNetIncome: new forms.FormControl({
15445
+ value: partnershipsAndTrusts.partnershipsNetIncome,
15446
+ disabled: true
15447
+ }),
15448
+ trustsNetIncome: new forms.FormControl({
15449
+ value: partnershipsAndTrusts.trustsNetIncome,
15450
+ disabled: true
15451
+ }),
15452
+ trustType: new forms.FormControl(1),
15453
+ partnershipsSmallBusinessNetIncome: new forms.FormControl(partnershipsAndTrusts.partnershipsSmallBusinessNetIncome, forms.Validators.required),
15454
+ trustsSmallBusinessNetIncome: new forms.FormControl(partnershipsAndTrusts.trustsSmallBusinessNetIncome, forms.Validators.required),
15455
+ taxPaidTotal: new forms.FormControl({
15456
+ value: partnershipsAndTrusts.taxPaidTotal,
15457
+ disabled: true
15458
+ }),
15459
+ frankingCreditsTotal: new forms.FormControl({
15460
+ value: partnershipsAndTrusts.frankingCreditsTotal,
15461
+ disabled: true
15462
+ }),
15463
+ taxOffsetNRASTotalAmount: new forms.FormControl({
15464
+ value: partnershipsAndTrusts.taxOffsetNRASTotalAmount,
15465
+ disabled: true
15466
+ })
15467
+ }) || this;
15468
+ }
15469
+ return MyTaxPartnershipsAndTrustsForm;
15470
+ }(AbstractForm));
15471
+
15472
+ var MyTaxRentForm = /** @class */ (function (_super) {
15473
+ __extends(MyTaxRentForm, _super);
15474
+ function MyTaxRentForm(rent) {
15475
+ return _super.call(this, {
15476
+ grossRentAmount: new forms.FormControl(rent.grossRentAmount),
15477
+ interestDeductions: new forms.FormControl(rent.interestDeductionsAmount),
15478
+ capitalWorksDeductions: new forms.FormControl(rent.capitalWorksDeductionsAmount),
15479
+ otherRentalDeductionsAmount: new forms.FormControl(rent.otherRentalDeductionsAmount)
15480
+ }) || this;
15481
+ }
15482
+ return MyTaxRentForm;
15483
+ }(AbstractForm));
15484
+
14539
15485
  /**
14540
15486
  * Public API Surface of tt-core
14541
15487
  */
@@ -14619,6 +15565,7 @@
14619
15565
  exports.CorelogicService = CorelogicService;
14620
15566
  exports.CorelogicSuggestion = CorelogicSuggestion;
14621
15567
  exports.Country = Country;
15568
+ exports.DEDUCTION_CATEGORIES = DEDUCTION_CATEGORIES;
14622
15569
  exports.DEFAULT_VEHICLE_EXPENSE = DEFAULT_VEHICLE_EXPENSE;
14623
15570
  exports.DEPRECIATION_GROUPS = DEPRECIATION_GROUPS;
14624
15571
  exports.DOCUMENT_FILE_TYPES = DOCUMENT_FILE_TYPES;
@@ -14684,12 +15631,39 @@
14684
15631
  exports.MessageDocumentService = MessageDocumentService;
14685
15632
  exports.MessageService = MessageService;
14686
15633
  exports.MyAccountHistory = MyAccountHistory;
15634
+ exports.MyTaxBusinessOrLosses = MyTaxBusinessOrLosses;
15635
+ exports.MyTaxBusinessOrLossesForm = MyTaxBusinessOrLossesForm;
15636
+ exports.MyTaxDeductions = MyTaxDeductions;
15637
+ exports.MyTaxDeductionsForm = MyTaxDeductionsForm;
15638
+ exports.MyTaxDividends = MyTaxDividends;
15639
+ exports.MyTaxDividendsForm = MyTaxDividendsForm;
15640
+ exports.MyTaxEmployeeShareSchemes = MyTaxEmployeeShareSchemes;
15641
+ exports.MyTaxEmployeeShareSchemesForm = MyTaxEmployeeShareSchemesForm;
15642
+ exports.MyTaxIncomeStatements = MyTaxIncomeStatements;
15643
+ exports.MyTaxIncomeStatementsForm = MyTaxIncomeStatementsForm;
15644
+ exports.MyTaxIncomeTests = MyTaxIncomeTests;
15645
+ exports.MyTaxIncomeTestsForm = MyTaxIncomeTestsForm;
15646
+ exports.MyTaxInterest = MyTaxInterest;
15647
+ exports.MyTaxInterestForm = MyTaxInterestForm;
15648
+ exports.MyTaxLosses = MyTaxLosses;
15649
+ exports.MyTaxLossesForm = MyTaxLossesForm;
15650
+ exports.MyTaxMedicareForm = MyTaxMedicareForm;
15651
+ exports.MyTaxOffsets = MyTaxOffsets;
15652
+ exports.MyTaxOffsetsForm = MyTaxOffsetsForm;
15653
+ exports.MyTaxOtherIncome = MyTaxOtherIncome;
15654
+ exports.MyTaxOtherIncomeForm = MyTaxOtherIncomeForm;
15655
+ exports.MyTaxPartnershipsAndTrusts = MyTaxPartnershipsAndTrusts;
15656
+ exports.MyTaxPartnershipsAndTrustsForm = MyTaxPartnershipsAndTrustsForm;
15657
+ exports.MyTaxRent = MyTaxRent;
15658
+ exports.MyTaxRentForm = MyTaxRentForm;
14687
15659
  exports.Notification = Notification;
14688
15660
  exports.Occupation = Occupation;
14689
15661
  exports.OccupationService = OccupationService;
14690
15662
  exports.PASSWORD_REGEXPS = PASSWORD_REGEXPS;
14691
15663
  exports.PasswordForm = PasswordForm;
14692
- exports.PdfService = PdfService;
15664
+ exports.PdfFromDataTableService = PdfFromDataTableService;
15665
+ exports.PdfFromDomElementService = PdfFromDomElementService;
15666
+ exports.PdfFromHtmlTableService = PdfFromHtmlTableService;
14693
15667
  exports.PdfSettings = PdfSettings;
14694
15668
  exports.Phone = Phone;
14695
15669
  exports.PreloaderService = PreloaderService;
@@ -14794,6 +15768,7 @@
14794
15768
  exports.WORK_TANK_LOGBOOK_PURPOSE_OPTIONS = WORK_TANK_LOGBOOK_PURPOSE_OPTIONS;
14795
15769
  exports.XlsxService = XlsxService;
14796
15770
  exports.atLeastOneCheckedValidator = atLeastOneCheckedValidator;
15771
+ exports.atoLinks = atoLinks;
14797
15772
  exports.cloneDeep = cloneDeep;
14798
15773
  exports.compare = compare;
14799
15774
  exports.compareMatOptions = compareMatOptions;
@@ -14805,6 +15780,7 @@
14805
15780
  exports.passwordValidator = passwordValidator;
14806
15781
  exports.replace = replace;
14807
15782
  exports.requireAutocomplete = requireAutocomplete;
15783
+ exports.requireSelectValidator = requireSelectValidator;
14808
15784
  exports.roundTo = roundTo;
14809
15785
  exports.sort = sort;
14810
15786
  exports.sortDeep = sortDeep;