taxtank-core 0.17.0 → 0.17.3

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.
@@ -1,141 +1,71 @@
1
1
  import { Collection } from '../collection';
2
- import { TaxReturnCategoryListEnum } from '../../db/Enums/tax-return-category-list.enum';
3
- import { TaxReturnCategorySectionEnum } from '../../db/Enums/tax-return-category-section.enum';
2
+ import compact from 'lodash/compact';
4
3
  /**
5
4
  * collection for tax return category items
6
5
  */
7
6
  export class ReportItemCollection extends Collection {
8
7
  /**
9
- * Work income
8
+ * Recursively get collection of report items by Tax Summary Section.
9
+ * Search items which has details
10
10
  */
11
- get salary() {
12
- var _a;
13
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.SALARY)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
11
+ getBySection(section) {
12
+ let result = [];
13
+ for (let reportItem of this.items) {
14
+ if (reportItem.details.length && reportItem.taxReturnCategory.section === section) {
15
+ result.push(reportItem);
16
+ }
17
+ else {
18
+ result.push(...reportItem.items.getBySection(section).toArray());
19
+ }
20
+ }
21
+ return this.create(result);
14
22
  }
15
23
  /**
16
- * Work expenses
24
+ * Recursively find report item by Tax Return Category ID
17
25
  */
18
- get workExpenses() {
19
- var _a;
20
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.WORK_EXPENSES)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
26
+ findByCategory(categoryId) {
27
+ let result;
28
+ for (let reportItem of this.items) {
29
+ if (result) {
30
+ break;
31
+ }
32
+ if (reportItem.taxReturnCategory.id === categoryId) {
33
+ result = reportItem;
34
+ }
35
+ else {
36
+ result = reportItem.items.findByCategory(categoryId);
37
+ }
38
+ }
39
+ return result;
21
40
  }
22
41
  /**
23
- * Property income
42
+ * Get Collection of report items by Tax Return Categories IDs
24
43
  */
25
- get rentalIncome() {
26
- var _a;
27
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.GROSS_RENT)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
44
+ getByCategories(categories) {
45
+ return this.create(compact(categories.map((category) => this.findByCategory(category))));
28
46
  }
29
47
  /**
30
- * Property rental deductions
48
+ * A short call to a chain of methods that we often use.
49
+ * Get total amount of report items by Tax Return categories and Tax Summary Section.
31
50
  */
32
- get rentalDeductions() {
33
- var _a;
34
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.OTHER_RENTAL_DEDUCTIONS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
51
+ sumByCategoriesAndSection(categories, section) {
52
+ return this.getByCategories(categories).getBySection(section).sumBy('amount');
35
53
  }
36
54
  /**
37
- * Property expenses
55
+ * Get collection of all report item details related to passed income source
56
+ * @TODO Alex: consider to create and move to ReportItemDetailsCollection
38
57
  */
39
- get propertyExpenses() {
40
- return this.rentalDeductions + this.borrowingExpenses;
41
- }
42
- /**
43
- * Property interest
44
- */
45
- get interestDeductions() {
46
- var _a;
47
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.INTEREST_DEDUCTIONS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
48
- }
49
- /**
50
- * Property capital works depreciations
51
- */
52
- get capitalWorks() {
53
- var _a;
54
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.CAPITAL_WORKS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
55
- }
56
- /**
57
- * Property plant & equipment depreciations
58
- */
59
- get plantEquipment() {
60
- var _a;
61
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.DEPRECIATION)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
62
- }
63
- /**
64
- * Total property depreciaions
65
- */
66
- get propertyDepreciations() {
67
- return this.capitalWorks + this.plantEquipment;
68
- }
69
- get partnershipsAndTrusts() {
70
- var _a;
71
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
72
- }
73
- get pciAndSbeIncome() {
74
- var _a;
75
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.PCI_SBE_INCOME)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
76
- }
77
- get capitalGains() {
78
- var _a;
79
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.CAPITAL_GAINS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
80
- }
81
- get foreignSourceIncome() {
82
- var _a;
83
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
84
- }
85
- /**
86
- * Other income
87
- */
88
- get otherIncome() {
89
- var _a;
90
- return (((_a = this.getByCategory(TaxReturnCategoryListEnum.OTHER_INCOME)) === null || _a === void 0 ? void 0 : _a.amount) || 0) +
91
- this.partnershipsAndTrusts +
92
- this.pciAndSbeIncome +
93
- this.capitalGains +
94
- this.foreignSourceIncome;
95
- }
96
- /**
97
- * Other expenses
98
- */
99
- get otherDeductions() {
100
- var _a;
101
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.OTHER_DEDUCTIONS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
102
- }
103
- get taxInstalments() {
104
- var _a;
105
- return ((_a = this.getTaxCreditsCollection().getByCategory(TaxReturnCategoryListEnum.TAX_INSTALMENTS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
106
- }
107
- get frankingCredits() {
108
- var _a;
109
- return ((_a = this.getTaxCreditsCollection().getByCategory(TaxReturnCategoryListEnum.FRANKING_CREDITS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
110
- }
111
- get taxOffsets() {
112
- var _a;
113
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.TAX_OFFSETS)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
114
- }
115
- get borrowingExpenses() {
116
- var _a;
117
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.BORROWING_EXPENSES)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
118
- }
119
- get grossTaxPayable() {
120
- var _a;
121
- return ((_a = this.getByCategory(TaxReturnCategoryListEnum.GROSS_TAX_PAYABLE)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
122
- }
123
- /**
124
- * taxWithheld by section (work or other)
125
- */
126
- getTaxWithheld(section = TaxReturnCategorySectionEnum.WORK_TANK) {
127
- var _a;
128
- return ((_a = this.getTaxCreditsCollection().getByCategory(TaxReturnCategoryListEnum.TAX_WITHHELD)) === null || _a === void 0 ? void 0 : _a.details.filter((details) => details.section === section).reduce((sum, details) => sum + details.amount, 0)) || 0;
129
- }
130
- getTaxCreditsCollection() {
131
- var _a;
132
- return new ReportItemCollection(((_a = this.getByCategory(TaxReturnCategoryListEnum.TAX_CREDITS)) === null || _a === void 0 ? void 0 : _a.items) || []);
133
- }
134
- getTotalAmountByIncomeSourceName(name) {
135
- return this.items.reduce(((sum, item) => sum + item.getAmountByIncomeSourceName(name)), 0);
136
- }
137
- getByCategory(category) {
138
- return this.items.find((item) => item.taxReturnCategory.id === category);
58
+ getDetailsByIncomeSource(incomeSource) {
59
+ let result = [];
60
+ for (let reportItem of this.items) {
61
+ if (reportItem.details.length) {
62
+ result.push(...reportItem.details.filter((details) => details.name === incomeSource.name));
63
+ }
64
+ else {
65
+ result.push(...reportItem.items.getDetailsByIncomeSource(incomeSource).toArray());
66
+ }
67
+ }
68
+ return new Collection(result);
139
69
  }
140
70
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHL0Y7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsVUFBc0I7SUFDOUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07O1FBQ1IsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7O1FBQ2QsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7O1FBQ2QsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjs7UUFDbEIsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUks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QyxJQUFnQixFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFJlcG9ydEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGF4LXN1bW1hcnkvcmVwb3J0LWl0ZW0nO1xuaW1wb3J0IHsgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RheC1yZXR1cm4tY2F0ZWdvcnktbGlzdC5lbnVtJztcbmltcG9ydCB7IFRheFJldHVybkNhdGVnb3J5U2VjdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LXNlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBSZXBvcnRJdGVtRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbS1kZXRhaWxzJztcblxuLyoqXG4gKiBjb2xsZWN0aW9uIGZvciB0YXggcmV0dXJuIGNhdGVnb3J5IGl0ZW1zXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXBvcnRJdGVtQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248UmVwb3J0SXRlbT4ge1xuICAvKipcbiAgICogV29yayBpbmNvbWVcbiAgICovXG4gIGdldCBzYWxhcnkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeUNhdGVnb3J5KFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uU0FMQVJZKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogV29yayBleHBlbnNlc1xuICAgKi9cbiAgZ2V0IHdvcmtFeHBlbnNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5XT1JLX0VYUEVOU0VTKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgaW5jb21lXG4gICAqL1xuICBnZXQgcmVudGFsSW5jb21lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkdST1NTX1JFTlQpPy5hbW91bnQgfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSByZW50YWwgZGVkdWN0aW9uc1xuICAgKi9cbiAgZ2V0IHJlbnRhbERlZHVjdGlvbnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeUNhdGVnb3J5KFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uT1RIRVJfUkVOVEFMX0RFRFVDVElPTlMpPy5hbW91bnQgfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBleHBlbnNlc1xuICAgKi9cbiAgZ2V0IHByb3BlcnR5RXhwZW5zZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZW50YWxEZWR1Y3Rpb25zICsgdGhpcy5ib3Jyb3dpbmdFeHBlbnNlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBpbnRlcmVzdFxuICAgKi9cbiAgZ2V0IGludGVyZXN0RGVkdWN0aW9ucygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5JTlRFUkVTVF9ERURVQ1RJT05TKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgY2FwaXRhbCB3b3JrcyBkZXByZWNpYXRpb25zXG4gICAqL1xuICBnZXQgY2FwaXRhbFdvcmtzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkNBUElUQUxfV09SS1MpPy5hbW91bnQgfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBwbGFudCAmIGVxdWlwbWVudCBkZXByZWNpYXRpb25zXG4gICAqL1xuICBnZXQgcGxhbnRFcXVpcG1lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeUNhdGVnb3J5KFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uREVQUkVDSUFUSU9OKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogVG90YWwgcHJvcGVydHkgZGVwcmVjaWFpb25zXG4gICAqL1xuICBnZXQgcHJvcGVydHlEZXByZWNpYXRpb25zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY2FwaXRhbFdvcmtzICsgdGhpcy5wbGFudEVxdWlwbWVudDtcbiAgfVxuXG4gIGdldCBwYXJ0bmVyc2hpcHNBbmRUcnVzdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeUNhdGVnb3J5KFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uUEFSVE5FUlNISVBTX1RSVVNUUyk/LmFtb3VudCB8fCAwO1xuICB9XG5cbiAgZ2V0IHBjaUFuZFNiZUluY29tZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5QQ0lfU0JFX0lOQ09NRSk/LmFtb3VudCB8fCAwO1xuICB9XG5cbiAgZ2V0IGNhcGl0YWxHYWlucygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5DQVBJVEFMX0dBSU5TKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICBnZXQgZm9yZWlnblNvdXJjZUluY29tZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5GT1JFSUdOX1NPVVJDRV9JTkNPTUUpPy5hbW91bnQgfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdGhlciBpbmNvbWVcbiAgICovXG4gIGdldCBvdGhlckluY29tZSgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5nZXRCeUNhdGVnb3J5KFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uT1RIRVJfSU5DT01FKT8uYW1vdW50IHx8IDApICtcbiAgICAgIHRoaXMucGFydG5lcnNoaXBzQW5kVHJ1c3RzICtcbiAgICAgIHRoaXMucGNpQW5kU2JlSW5jb21lICtcbiAgICAgIHRoaXMuY2FwaXRhbEdhaW5zICtcbiAgICAgIHRoaXMuZm9yZWlnblNvdXJjZUluY29tZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdGhlciBleHBlbnNlc1xuICAgKi9cbiAgZ2V0IG90aGVyRGVkdWN0aW9ucygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5PVEhFUl9ERURVQ1RJT05TKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICBnZXQgdGF4SW5zdGFsbWVudHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUYXhDcmVkaXRzQ29sbGVjdGlvbigpLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfSU5TVEFMTUVOVFMpPy5hbW91bnQgfHwgMDtcbiAgfVxuXG4gIGdldCBmcmFua2luZ0NyZWRpdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUYXhDcmVkaXRzQ29sbGVjdGlvbigpLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5GUkFOS0lOR19DUkVESVRTKT8uYW1vdW50IHx8IDA7XG4gIH1cblxuICBnZXQgdGF4T2Zmc2V0cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfT0ZGU0VUUyk/LmFtb3VudCB8fCAwO1xuICB9XG5cbiAgZ2V0IGJvcnJvd2luZ0V4cGVuc2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkJPUlJPV0lOR19FWFBFTlNFUyk/LmFtb3VudCB8fCAwO1xuICB9XG5cbiAgZ2V0IGdyb3NzVGF4UGF5YWJsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5HUk9TU19UQVhfUEFZQUJMRSk/LmFtb3VudCB8fCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIHRheFdpdGhoZWxkIGJ5IHNlY3Rpb24gKHdvcmsgb3Igb3RoZXIpXG4gICAqL1xuICBnZXRUYXhXaXRoaGVsZChzZWN0aW9uOiBUYXhSZXR1cm5DYXRlZ29yeVNlY3Rpb25FbnVtID0gVGF4UmV0dXJuQ2F0ZWdvcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFRheENyZWRpdHNDb2xsZWN0aW9uKCkuZ2V0QnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9XSVRISEVMRCk/LmRldGFpbHNcbiAgICAgIC5maWx0ZXIoKGRldGFpbHM6IFJlcG9ydEl0ZW1EZXRhaWxzKSA9PiBkZXRhaWxzLnNlY3Rpb24gPT09IHNlY3Rpb24pXG4gICAgICAucmVkdWNlKChzdW06IG51bWJlciwgZGV0YWlsczogUmVwb3J0SXRlbURldGFpbHMpOiBudW1iZXIgPT4gc3VtICsgZGV0YWlscy5hbW91bnQsIDApIHx8IDA7XG4gIH1cblxuICBnZXRUYXhDcmVkaXRzQ29sbGVjdGlvbigpOiBSZXBvcnRJdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBSZXBvcnRJdGVtQ29sbGVjdGlvbih0aGlzLmdldEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfQ1JFRElUUyk/Lml0ZW1zIHx8IFtdKTtcbiAgfVxuXG4gIGdldFRvdGFsQW1vdW50QnlJbmNvbWVTb3VyY2VOYW1lKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKCgoc3VtOiBudW1iZXIsIGl0ZW06IFJlcG9ydEl0ZW0pOiBudW1iZXIgPT4gc3VtICsgaXRlbS5nZXRBbW91bnRCeUluY29tZVNvdXJjZU5hbWUobmFtZSkpLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnlDYXRlZ29yeShjYXRlZ29yeTogVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSk6IFJlcG9ydEl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFJlcG9ydEl0ZW0pOiBib29sZWFuID0+IGl0ZW0udGF4UmV0dXJuQ2F0ZWdvcnkuaWQgPT09IGNhdGVnb3J5KTtcbiAgfVxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFckM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsVUFBc0I7SUFDOUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLE9BQThCO1FBQ3pDLElBQUksTUFBTSxHQUFpQixFQUFFLENBQUM7UUFFOUIsS0FBSyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0JBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDeEI7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDbEU7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsVUFBcUM7UUFDbEQsSUFBSSxNQUFrQixDQUFDO1FBRXZCLEtBQUssSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNqQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNO2FBQ1A7WUFFRCxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssVUFBVSxFQUFFO2dCQUNsRCxNQUFNLEdBQUcsVUFBVSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN0RDtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFVBQXVDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFtQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDaEcsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCx5QkFBeUIsQ0FBQyxVQUF1QyxFQUFFLE9BQThCO1FBQy9GLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0IsQ0FBQyxZQUEwQjtRQUNqRCxJQUFJLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBRXJDLEtBQUssSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNqQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUEwQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQy9HO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDbkY7U0FDRjtRQUVELE9BQU8sSUFBSSxVQUFVLENBQW9CLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFJlcG9ydEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGF4LXN1bW1hcnkvcmVwb3J0LWl0ZW0nO1xuaW1wb3J0IHsgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RheC1yZXR1cm4tY2F0ZWdvcnktbGlzdC5lbnVtJztcbmltcG9ydCB7IFJlcG9ydEl0ZW1EZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RheC1zdW1tYXJ5L3JlcG9ydC1pdGVtLWRldGFpbHMnO1xuaW1wb3J0IHsgVGF4U3VtbWFyeVNlY3Rpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGF4LXN1bW1hcnktc2VjdGlvbi5lbnVtJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IGNvbXBhY3QgZnJvbSAnbG9kYXNoL2NvbXBhY3QnO1xuXG4vKipcbiAqIGNvbGxlY3Rpb24gZm9yIHRheCByZXR1cm4gY2F0ZWdvcnkgaXRlbXNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcG9ydEl0ZW1Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxSZXBvcnRJdGVtPiB7XG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBnZXQgY29sbGVjdGlvbiBvZiByZXBvcnQgaXRlbXMgYnkgVGF4IFN1bW1hcnkgU2VjdGlvbi5cbiAgICogU2VhcmNoIGl0ZW1zIHdoaWNoIGhhcyBkZXRhaWxzXG4gICAqL1xuICBnZXRCeVNlY3Rpb24oc2VjdGlvbjogVGF4U3VtbWFyeVNlY3Rpb25FbnVtKTogUmVwb3J0SXRlbUNvbGxlY3Rpb24ge1xuICAgIGxldCByZXN1bHQ6IFJlcG9ydEl0ZW1bXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgcmVwb3J0SXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICBpZiAocmVwb3J0SXRlbS5kZXRhaWxzLmxlbmd0aCAmJiByZXBvcnRJdGVtLnRheFJldHVybkNhdGVnb3J5LnNlY3Rpb24gPT09IHNlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0LnB1c2gocmVwb3J0SXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnJlcG9ydEl0ZW0uaXRlbXMuZ2V0QnlTZWN0aW9uKHNlY3Rpb24pLnRvQXJyYXkoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHJlc3VsdCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgZmluZCByZXBvcnQgaXRlbSBieSBUYXggUmV0dXJuIENhdGVnb3J5IElEXG4gICAqL1xuICBmaW5kQnlDYXRlZ29yeShjYXRlZ29yeUlkOiBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtKTogUmVwb3J0SXRlbSB7XG4gICAgbGV0IHJlc3VsdDogUmVwb3J0SXRlbTtcblxuICAgIGZvciAobGV0IHJlcG9ydEl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcG9ydEl0ZW0udGF4UmV0dXJuQ2F0ZWdvcnkuaWQgPT09IGNhdGVnb3J5SWQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVwb3J0SXRlbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHJlcG9ydEl0ZW0uaXRlbXMuZmluZEJ5Q2F0ZWdvcnkoY2F0ZWdvcnlJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQ29sbGVjdGlvbiBvZiByZXBvcnQgaXRlbXMgYnkgVGF4IFJldHVybiBDYXRlZ29yaWVzIElEc1xuICAgKi9cbiAgZ2V0QnlDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IFRheFJldHVybkNhdGVnb3J5TGlzdEVudW1bXSk6IFJlcG9ydEl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICBjb21wYWN0KGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeTogVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSkgPT4gdGhpcy5maW5kQnlDYXRlZ29yeShjYXRlZ29yeSkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQSBzaG9ydCBjYWxsIHRvIGEgY2hhaW4gb2YgbWV0aG9kcyB0aGF0IHdlIG9mdGVuIHVzZS5cbiAgICogR2V0IHRvdGFsIGFtb3VudCBvZiByZXBvcnQgaXRlbXMgYnkgVGF4IFJldHVybiBjYXRlZ29yaWVzIGFuZCBUYXggU3VtbWFyeSBTZWN0aW9uLlxuICAgKi9cbiAgc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihjYXRlZ29yaWVzOiBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtW10sIHNlY3Rpb246IFRheFN1bW1hcnlTZWN0aW9uRW51bSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnlDYXRlZ29yaWVzKGNhdGVnb3JpZXMpLmdldEJ5U2VjdGlvbihzZWN0aW9uKS5zdW1CeSgnYW1vdW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gb2YgYWxsIHJlcG9ydCBpdGVtIGRldGFpbHMgcmVsYXRlZCB0byBwYXNzZWQgaW5jb21lIHNvdXJjZVxuICAgKiBAVE9ETyBBbGV4OiBjb25zaWRlciB0byBjcmVhdGUgYW5kIG1vdmUgdG8gUmVwb3J0SXRlbURldGFpbHNDb2xsZWN0aW9uXG4gICAqL1xuICBnZXREZXRhaWxzQnlJbmNvbWVTb3VyY2UoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpOiBDb2xsZWN0aW9uPFJlcG9ydEl0ZW1EZXRhaWxzPiB7XG4gICAgbGV0IHJlc3VsdDogUmVwb3J0SXRlbURldGFpbHNbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgcmVwb3J0SXRlbSBvZiB0aGlzLml0ZW1zKSB7XG4gICAgICBpZiAocmVwb3J0SXRlbS5kZXRhaWxzLmxlbmd0aCkge1xuICAgICAgICByZXN1bHQucHVzaCguLi5yZXBvcnRJdGVtLmRldGFpbHMuZmlsdGVyKChkZXRhaWxzOiBSZXBvcnRJdGVtRGV0YWlscykgPT4gZGV0YWlscy5uYW1lID09PSBpbmNvbWVTb3VyY2UubmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4ucmVwb3J0SXRlbS5pdGVtcy5nZXREZXRhaWxzQnlJbmNvbWVTb3VyY2UoaW5jb21lU291cmNlKS50b0FycmF5KCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbjxSZXBvcnRJdGVtRGV0YWlscz4ocmVzdWx0KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,65 @@
1
+ import { TaxReturnCategoryListEnum } from '../../db/Enums/tax-return-category-list.enum';
2
+ export const TAX_RETURN_CATEGORIES = {
3
+ work: {
4
+ income: [
5
+ TaxReturnCategoryListEnum.SALARY,
6
+ TaxReturnCategoryListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES,
7
+ TaxReturnCategoryListEnum.EMPLOYER_LUMP_SUM_PAYMENTS,
8
+ TaxReturnCategoryListEnum.ETP,
9
+ TaxReturnCategoryListEnum.GOVERNMENT_ALLOWANCES,
10
+ TaxReturnCategoryListEnum.GOVERNMENT_PENSIONS,
11
+ TaxReturnCategoryListEnum.ANNUITIES_SUPER_INCOME_STREAMS,
12
+ TaxReturnCategoryListEnum.SUPERANNUATION_LUMP_SUM_PAYMENTS,
13
+ TaxReturnCategoryListEnum.ATTRIBUTED_PSI_INCOME
14
+ ],
15
+ expenses: [
16
+ TaxReturnCategoryListEnum.WORK_EXPENSES
17
+ ],
18
+ interest: [
19
+ TaxReturnCategoryListEnum.GROSS_INTEREST
20
+ ],
21
+ taxWithheld: [
22
+ TaxReturnCategoryListEnum.TAX_WITHHELD
23
+ ]
24
+ },
25
+ property: {
26
+ income: [
27
+ TaxReturnCategoryListEnum.GROSS_RENT
28
+ ],
29
+ expenses: [
30
+ TaxReturnCategoryListEnum.OTHER_RENTAL_DEDUCTIONS
31
+ ],
32
+ interest: [
33
+ TaxReturnCategoryListEnum.INTEREST_DEDUCTIONS
34
+ ],
35
+ depreciation: [
36
+ TaxReturnCategoryListEnum.CAPITAL_WORKS,
37
+ TaxReturnCategoryListEnum.DEPRECIATION
38
+ ]
39
+ },
40
+ other: {
41
+ income: [
42
+ TaxReturnCategoryListEnum.GROSS_INTEREST,
43
+ TaxReturnCategoryListEnum.DIVIDENDS,
44
+ TaxReturnCategoryListEnum.SHARE_SCHEMES,
45
+ TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS,
46
+ TaxReturnCategoryListEnum.PSI_SBE_INCOME,
47
+ TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
48
+ TaxReturnCategoryListEnum.CAPITAL_GAINS,
49
+ TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
50
+ TaxReturnCategoryListEnum.BONUSES_FROM_LIFE_INSURANCE,
51
+ TaxReturnCategoryListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES,
52
+ TaxReturnCategoryListEnum.OTHER_INCOME
53
+ ],
54
+ expenses: [
55
+ TaxReturnCategoryListEnum.OTHER_DEDUCTIONS
56
+ ],
57
+ taxCredits: [
58
+ TaxReturnCategoryListEnum.TAX_CREDITS
59
+ ],
60
+ taxOffsets: [
61
+ TaxReturnCategoryListEnum.TAX_OFFSETS
62
+ ]
63
+ }
64
+ };
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldHVybi1jYXRlZ29yaWVzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3RheC1zdW1tYXJ5L3RheC1yZXR1cm4tY2F0ZWdvcmllcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV6RixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBa0U7SUFDbEcsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFO1lBQ04seUJBQXlCLENBQUMsTUFBTTtZQUNoQyx5QkFBeUIsQ0FBQyxzQ0FBc0M7WUFDaEUseUJBQXlCLENBQUMsMEJBQTBCO1lBQ3BELHlCQUF5QixDQUFDLEdBQUc7WUFDN0IseUJBQXlCLENBQUMscUJBQXFCO1lBQy9DLHlCQUF5QixDQUFDLG1CQUFtQjtZQUM3Qyx5QkFBeUIsQ0FBQyw4QkFBOEI7WUFDeEQseUJBQXlCLENBQUMsZ0NBQWdDO1lBQzFELHlCQUF5QixDQUFDLHFCQUFxQjtTQUNoRDtRQUNELFFBQVEsRUFBRTtZQUNSLHlCQUF5QixDQUFDLGFBQWE7U0FDeEM7UUFDRCxRQUFRLEVBQUU7WUFDUix5QkFBeUIsQ0FBQyxjQUFjO1NBQ3pDO1FBQ0QsV0FBVyxFQUFFO1lBQ1gseUJBQXlCLENBQUMsWUFBWTtTQUN2QztLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFO1lBQ04seUJBQXlCLENBQUMsVUFBVTtTQUNyQztRQUNELFFBQVEsRUFBRTtZQUNSLHlCQUF5QixDQUFDLHVCQUF1QjtTQUNsRDtRQUNELFFBQVEsRUFBRTtZQUNSLHlCQUF5QixDQUFDLG1CQUFtQjtTQUM5QztRQUNELFlBQVksRUFBRTtZQUNaLHlCQUF5QixDQUFDLGFBQWE7WUFDdkMseUJBQXlCLENBQUMsWUFBWTtTQUN2QztLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFO1lBQ04seUJBQXlCLENBQUMsY0FBYztZQUN4Qyx5QkFBeUIsQ0FBQyxTQUFTO1lBQ25DLHlCQUF5QixDQUFDLGFBQWE7WUFDdkMseUJBQXlCLENBQUMsbUJBQW1CO1lBQzdDLHlCQUF5QixDQUFDLGNBQWM7WUFDeEMseUJBQXlCLENBQUMsMkJBQTJCO1lBQ3JELHlCQUF5QixDQUFDLGFBQWE7WUFDdkMseUJBQXlCLENBQUMscUJBQXFCO1lBQy9DLHlCQUF5QixDQUFDLDJCQUEyQjtZQUNyRCx5QkFBeUIsQ0FBQyxtQ0FBbUM7WUFDN0QseUJBQXlCLENBQUMsWUFBWTtTQUN2QztRQUNELFFBQVEsRUFBRTtZQUNSLHlCQUF5QixDQUFDLGdCQUFnQjtTQUMzQztRQUNELFVBQVUsRUFBRTtZQUNWLHlCQUF5QixDQUFDLFdBQVc7U0FDdEM7UUFDRCxVQUFVLEVBQUU7WUFDVix5QkFBeUIsQ0FBQyxXQUFXO1NBQ3RDO0tBQ0Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RheC1yZXR1cm4tY2F0ZWdvcnktbGlzdC5lbnVtJztcblxuZXhwb3J0IGNvbnN0IFRBWF9SRVRVUk5fQ0FURUdPUklFUzoge1trZXk6IHN0cmluZ106IHtba2V5OiBzdHJpbmddOiBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtW119fSA9IHtcbiAgd29yazoge1xuICAgIGluY29tZTogW1xuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5TQUxBUlksXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkFMTE9XQU5DRVNfRUFSTklOR1NfVElQU19ESVJFQ1RPUl9GRUVTLFxuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5FTVBMT1lFUl9MVU1QX1NVTV9QQVlNRU5UUyxcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uRVRQLFxuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5HT1ZFUk5NRU5UX0FMTE9XQU5DRVMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkdPVkVSTk1FTlRfUEVOU0lPTlMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkFOTlVJVElFU19TVVBFUl9JTkNPTUVfU1RSRUFNUyxcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uU1VQRVJBTk5VQVRJT05fTFVNUF9TVU1fUEFZTUVOVFMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkFUVFJJQlVURURfUFNJX0lOQ09NRVxuICAgIF0sXG4gICAgZXhwZW5zZXM6IFtcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uV09SS19FWFBFTlNFU1xuICAgIF0sXG4gICAgaW50ZXJlc3Q6IFtcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uR1JPU1NfSU5URVJFU1RcbiAgICBdLFxuICAgIHRheFdpdGhoZWxkOiBbXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9XSVRISEVMRFxuICAgIF1cbiAgfSxcbiAgcHJvcGVydHk6IHtcbiAgICBpbmNvbWU6IFtcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uR1JPU1NfUkVOVFxuICAgIF0sXG4gICAgZXhwZW5zZXM6IFtcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uT1RIRVJfUkVOVEFMX0RFRFVDVElPTlNcbiAgICBdLFxuICAgIGludGVyZXN0OiBbXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLklOVEVSRVNUX0RFRFVDVElPTlNcbiAgICBdLFxuICAgIGRlcHJlY2lhdGlvbjogW1xuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5DQVBJVEFMX1dPUktTLFxuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5ERVBSRUNJQVRJT05cbiAgICBdXG4gIH0sXG4gIG90aGVyOiB7XG4gICAgaW5jb21lOiBbXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkdST1NTX0lOVEVSRVNULFxuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5ESVZJREVORFMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlNIQVJFX1NDSEVNRVMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlBBUlRORVJTSElQU19UUlVTVFMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlBTSV9TQkVfSU5DT01FLFxuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5TT0xFX1RSQURFUl9CVVNJTkVTU19JTkNPTUUsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkNBUElUQUxfR0FJTlMsXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkZPUkVJR05fU09VUkNFX0lOQ09NRSxcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uQk9OVVNFU19GUk9NX0xJRkVfSU5TVVJBTkNFLFxuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5GT1JFU1RSWV9NQU5BR0VEX0lOVkVTVE1FTlRfU0NIRU1FUyxcbiAgICAgIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uT1RIRVJfSU5DT01FXG4gICAgXSxcbiAgICBleHBlbnNlczogW1xuICAgICAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5PVEhFUl9ERURVQ1RJT05TXG4gICAgXSxcbiAgICB0YXhDcmVkaXRzOiBbXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9DUkVESVRTXG4gICAgXSxcbiAgICB0YXhPZmZzZXRzOiBbXG4gICAgICBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9PRkZTRVRTXG4gICAgXVxuICB9XG59XG4iXX0=
@@ -1,28 +1,42 @@
1
1
  export var TaxReturnCategoryListEnum;
2
2
  (function (TaxReturnCategoryListEnum) {
3
3
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["SALARY"] = 1] = "SALARY";
4
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES"] = 30] = "ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES";
5
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["EMPLOYER_LUMP_SUM_PAYMENTS"] = 31] = "EMPLOYER_LUMP_SUM_PAYMENTS";
6
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["ETP"] = 32] = "ETP";
7
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GOVERNMENT_ALLOWANCES"] = 2] = "GOVERNMENT_ALLOWANCES";
8
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GOVERNMENT_PENSIONS"] = 33] = "GOVERNMENT_PENSIONS";
9
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["ANNUITIES_SUPER_INCOME_STREAMS"] = 3] = "ANNUITIES_SUPER_INCOME_STREAMS";
10
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["SUPERANNUATION_LUMP_SUM_PAYMENTS"] = 34] = "SUPERANNUATION_LUMP_SUM_PAYMENTS";
11
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["ATTRIBUTED_PSI_INCOME"] = 4] = "ATTRIBUTED_PSI_INCOME";
4
12
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["WORK_EXPENSES"] = 7] = "WORK_EXPENSES";
5
13
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GROSS_RENT"] = 8] = "GROSS_RENT";
14
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["OTHER_RENTAL_DEDUCTIONS"] = 12] = "OTHER_RENTAL_DEDUCTIONS";
6
15
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["INTEREST_DEDUCTIONS"] = 9] = "INTEREST_DEDUCTIONS";
7
16
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["CAPITAL_WORKS"] = 10] = "CAPITAL_WORKS";
8
17
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["DEPRECIATION"] = 11] = "DEPRECIATION";
9
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["OTHER_RENTAL_DEDUCTIONS"] = 12] = "OTHER_RENTAL_DEDUCTIONS";
10
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["BORROWING_EXPENSES"] = 29] = "BORROWING_EXPENSES";
18
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GROSS_INTEREST"] = 5] = "GROSS_INTEREST";
19
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["DIVIDENDS"] = 6] = "DIVIDENDS";
20
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["SHARE_SCHEMES"] = 35] = "SHARE_SCHEMES";
11
21
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["PARTNERSHIPS_TRUSTS"] = 13] = "PARTNERSHIPS_TRUSTS";
12
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["PCI_SBE_INCOME"] = 14] = "PCI_SBE_INCOME";
22
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["PSI_SBE_INCOME"] = 14] = "PSI_SBE_INCOME";
23
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["SOLE_TRADER_BUSINESS_INCOME"] = 38] = "SOLE_TRADER_BUSINESS_INCOME";
13
24
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["CAPITAL_GAINS"] = 15] = "CAPITAL_GAINS";
14
25
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["FOREIGN_SOURCE_INCOME"] = 16] = "FOREIGN_SOURCE_INCOME";
15
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["OTHER_INCOME"] = 17] = "OTHER_INCOME";
26
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["BONUSES_FROM_LIFE_INSURANCE"] = 17] = "BONUSES_FROM_LIFE_INSURANCE";
27
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES"] = 39] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES";
28
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["OTHER_INCOME"] = 40] = "OTHER_INCOME";
29
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_CREDITS"] = 23] = "TAX_CREDITS";
16
30
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["OTHER_DEDUCTIONS"] = 18] = "OTHER_DEDUCTIONS";
31
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_OFFSETS"] = 27] = "TAX_OFFSETS";
32
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["BORROWING_EXPENSES"] = 29] = "BORROWING_EXPENSES";
17
33
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GROSS_TAX_PAYABLE"] = 19] = "GROSS_TAX_PAYABLE";
18
34
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_ON_TAXABLE_INCOME"] = 20] = "TAX_ON_TAXABLE_INCOME";
19
35
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["MEDICARE"] = 21] = "MEDICARE";
20
36
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["STUDENT_LOAN_REPAYMENT"] = 22] = "STUDENT_LOAN_REPAYMENT";
21
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_CREDITS"] = 23] = "TAX_CREDITS";
22
37
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_WITHHELD"] = 24] = "TAX_WITHHELD";
23
38
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_INSTALMENTS"] = 25] = "TAX_INSTALMENTS";
24
39
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["FRANKING_CREDITS"] = 26] = "FRANKING_CREDITS";
25
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_OFFSETS"] = 27] = "TAX_OFFSETS";
26
40
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_PAYABLE"] = 28] = "TAX_PAYABLE";
27
41
  })(TaxReturnCategoryListEnum || (TaxReturnCategoryListEnum = {}));
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldHVybi1jYXRlZ29yeS1saXN0LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvdGF4LXJldHVybi1jYXRlZ29yeS1saXN0LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkseUJBeUJYO0FBekJELFdBQVkseUJBQXlCO0lBQ25DLDZFQUFVLENBQUE7SUFDViwyRkFBaUIsQ0FBQTtJQUNqQixxRkFBYyxDQUFBO0lBQ2QsdUdBQXVCLENBQUE7SUFDdkIsNEZBQWtCLENBQUE7SUFDbEIsMEZBQWlCLENBQUE7SUFDakIsZ0hBQTRCLENBQUE7SUFDNUIsc0dBQXVCLENBQUE7SUFDdkIsd0dBQXdCLENBQUE7SUFDeEIsOEZBQW1CLENBQUE7SUFDbkIsNEZBQWtCLENBQUE7SUFDbEIsNEdBQTBCLENBQUE7SUFDMUIsMEZBQWlCLENBQUE7SUFDakIsa0dBQXFCLENBQUE7SUFDdEIsb0dBQXNCLENBQUE7SUFDdEIsNEdBQTBCLENBQUE7SUFDMUIsa0ZBQWEsQ0FBQTtJQUNiLDhHQUEyQixDQUFBO0lBQzNCLHdGQUFnQixDQUFBO0lBQ2hCLDBGQUFpQixDQUFBO0lBQ2pCLGdHQUFvQixDQUFBO0lBQ3BCLGtHQUFxQixDQUFBO0lBQ3JCLHdGQUFnQixDQUFBO0lBQ2hCLHdGQUFnQixDQUFBO0FBQ2pCLENBQUMsRUF6QlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQXlCcEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtIHtcbiAgU0FMQVJZID0gMSxcbiAgV09SS19FWFBFTlNFUyA9IDcsXG4gIEdST1NTX1JFTlQgPSA4LFxuICBJTlRFUkVTVF9ERURVQ1RJT05TID0gOSxcbiAgQ0FQSVRBTF9XT1JLUyA9IDEwLFxuICBERVBSRUNJQVRJT04gPSAxMSxcbiAgT1RIRVJfUkVOVEFMX0RFRFVDVElPTlMgPSAxMixcbiAgQk9SUk9XSU5HX0VYUEVOU0VTID0gMjksXG4gIFBBUlRORVJTSElQU19UUlVTVFMgPSAxMyxcbiAgUENJX1NCRV9JTkNPTUUgPSAxNCxcbiAgQ0FQSVRBTF9HQUlOUyA9IDE1LFxuICBGT1JFSUdOX1NPVVJDRV9JTkNPTUUgPSAxNixcbiAgT1RIRVJfSU5DT01FID0gMTcsXG4gIE9USEVSX0RFRFVDVElPTlMgPSAxOCxcblx0R1JPU1NfVEFYX1BBWUFCTEUgPSAxOSxcblx0VEFYX09OX1RBWEFCTEVfSU5DT01FID0gMjAsXG5cdE1FRElDQVJFID0gMjEsXG5cdFNUVURFTlRfTE9BTl9SRVBBWU1FTlQgPSAyMixcblx0VEFYX0NSRURJVFMgPSAyMyxcblx0VEFYX1dJVEhIRUxEID0gMjQsXG5cdFRBWF9JTlNUQUxNRU5UUyA9IDI1LFxuXHRGUkFOS0lOR19DUkVESVRTID0gMjYsXG5cdFRBWF9PRkZTRVRTID0gMjcsXG5cdFRBWF9QQVlBQkxFID0gMjgsXG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJldHVybi1jYXRlZ29yeS1saXN0LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvdGF4LXJldHVybi1jYXRlZ29yeS1saXN0LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkseUJBaURYO0FBakRELFdBQVkseUJBQXlCO0lBQ25DLDZFQUFVLENBQUE7SUFDViw4SUFBMkMsQ0FBQTtJQUMzQyxzSEFBK0IsQ0FBQTtJQUMvQix3RUFBUSxDQUFBO0lBQ1IsMkdBQXlCLENBQUE7SUFDekIsd0dBQXdCLENBQUE7SUFDeEIsNkhBQWtDLENBQUE7SUFDbEMsa0lBQXFDLENBQUE7SUFDckMsMkdBQXlCLENBQUE7SUFFekIsMkZBQWlCLENBQUE7SUFFakIscUZBQWMsQ0FBQTtJQUVkLGdIQUE0QixDQUFBO0lBRTVCLHVHQUF1QixDQUFBO0lBRXZCLDRGQUFrQixDQUFBO0lBQ2xCLDBGQUFpQixDQUFBO0lBRWpCLDZGQUFrQixDQUFBO0lBQ2xCLG1GQUFhLENBQUE7SUFDYiw0RkFBa0IsQ0FBQTtJQUNsQix3R0FBd0IsQ0FBQTtJQUN4Qiw4RkFBbUIsQ0FBQTtJQUNuQix3SEFBZ0MsQ0FBQTtJQUNoQyw0RkFBa0IsQ0FBQTtJQUNsQiw0R0FBMEIsQ0FBQTtJQUMxQix3SEFBZ0MsQ0FBQTtJQUNoQyx3SUFBd0MsQ0FBQTtJQUN4QywwRkFBaUIsQ0FBQTtJQUVqQix3RkFBZ0IsQ0FBQTtJQUVoQixrR0FBcUIsQ0FBQTtJQUVyQix3RkFBZ0IsQ0FBQTtJQUVoQixzR0FBdUIsQ0FBQTtJQUN2QixvR0FBc0IsQ0FBQTtJQUN0Qiw0R0FBMEIsQ0FBQTtJQUMxQixrRkFBYSxDQUFBO0lBQ2IsOEdBQTJCLENBQUE7SUFDM0IsMEZBQWlCLENBQUE7SUFDakIsZ0dBQW9CLENBQUE7SUFDcEIsa0dBQXFCLENBQUE7SUFDckIsd0ZBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQWpEVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBaURwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0ge1xuICBTQUxBUlkgPSAxLFxuICBBTExPV0FOQ0VTX0VBUk5JTkdTX1RJUFNfRElSRUNUT1JfRkVFUyA9IDMwLFxuICBFTVBMT1lFUl9MVU1QX1NVTV9QQVlNRU5UUyA9IDMxLFxuICBFVFAgPSAzMixcbiAgR09WRVJOTUVOVF9BTExPV0FOQ0VTID0gMixcbiAgR09WRVJOTUVOVF9QRU5TSU9OUyA9IDMzLFxuICBBTk5VSVRJRVNfU1VQRVJfSU5DT01FX1NUUkVBTVMgPSAzLFxuICBTVVBFUkFOTlVBVElPTl9MVU1QX1NVTV9QQVlNRU5UUyA9IDM0LFxuICBBVFRSSUJVVEVEX1BTSV9JTkNPTUUgPSA0LFxuXG4gIFdPUktfRVhQRU5TRVMgPSA3LFxuXG4gIEdST1NTX1JFTlQgPSA4LFxuXG4gIE9USEVSX1JFTlRBTF9ERURVQ1RJT05TID0gMTIsXG5cbiAgSU5URVJFU1RfREVEVUNUSU9OUyA9IDksXG5cbiAgQ0FQSVRBTF9XT1JLUyA9IDEwLFxuICBERVBSRUNJQVRJT04gPSAxMSxcblxuICBHUk9TU19JTlRFUkVTVCA9IDUsXG4gIERJVklERU5EUyA9IDYsXG4gIFNIQVJFX1NDSEVNRVMgPSAzNSxcbiAgUEFSVE5FUlNISVBTX1RSVVNUUyA9IDEzLFxuICBQU0lfU0JFX0lOQ09NRSA9IDE0LFxuICBTT0xFX1RSQURFUl9CVVNJTkVTU19JTkNPTUUgPSAzOCxcbiAgQ0FQSVRBTF9HQUlOUyA9IDE1LFxuICBGT1JFSUdOX1NPVVJDRV9JTkNPTUUgPSAxNixcbiAgQk9OVVNFU19GUk9NX0xJRkVfSU5TVVJBTkNFID0gMTcsXG4gIEZPUkVTVFJZX01BTkFHRURfSU5WRVNUTUVOVF9TQ0hFTUVTID0gMzksXG4gIE9USEVSX0lOQ09NRSA9IDQwLFxuXG4gIFRBWF9DUkVESVRTID0gMjMsXG5cbiAgT1RIRVJfREVEVUNUSU9OUyA9IDE4LFxuXG4gIFRBWF9PRkZTRVRTID0gMjcsXG5cbiAgQk9SUk9XSU5HX0VYUEVOU0VTID0gMjksXG4gIEdST1NTX1RBWF9QQVlBQkxFID0gMTksXG4gIFRBWF9PTl9UQVhBQkxFX0lOQ09NRSA9IDIwLFxuICBNRURJQ0FSRSA9IDIxLFxuICBTVFVERU5UX0xPQU5fUkVQQVlNRU5UID0gMjIsXG4gIFRBWF9XSVRISEVMRCA9IDI0LFxuICBUQVhfSU5TVEFMTUVOVFMgPSAyNSxcbiAgRlJBTktJTkdfQ1JFRElUUyA9IDI2LFxuICBUQVhfUEFZQUJMRSA9IDI4LFxufVxuIl19
@@ -7,6 +7,15 @@ export class PropertySale extends BasePropertySale {
7
7
  return this.commission + this.legalFees + this.otherCost;
8
8
  }
9
9
  }
10
+ __decorate([
11
+ Type(() => Number)
12
+ ], PropertySale.prototype, "commission", void 0);
13
+ __decorate([
14
+ Type(() => Number)
15
+ ], PropertySale.prototype, "legalFees", void 0);
16
+ __decorate([
17
+ Type(() => Number)
18
+ ], PropertySale.prototype, "otherCost", void 0);
10
19
  __decorate([
11
20
  Type(() => Date)
12
21
  ], PropertySale.prototype, "settlementDate", void 0);
@@ -16,4 +25,4 @@ __decorate([
16
25
  __decorate([
17
26
  Type(() => PropertySaleTaxExemptionMetadata)
18
27
  ], PropertySale.prototype, "taxExemptionMetadata", void 0);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2FsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2FsZS9wcm9wZXJ0eS1zYWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0csT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDakMsTUFBTSxnRkFBZ0YsQ0FBQztBQUV4RixNQUFNLE9BQU8sWUFBYSxTQUFRLGdCQUFnQjtJQVdoRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNELENBQUM7Q0FDRjtBQVhDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztvREFDSTtBQUdyQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7a0RBQ0U7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7MERBQ1kiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eVNhbGUgYXMgQmFzZVByb3BlcnR5U2FsZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7XG4gIFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhXG59IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUtdGF4LWV4ZW1wdGlvbi1tZXRhZGF0YSc7XG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNhbGUgZXh0ZW5kcyBCYXNlUHJvcGVydHlTYWxlIHtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzZXR0bGVtZW50RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBjb250cmFjdERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGEpXG4gIHRheEV4ZW1wdGlvbk1ldGFkYXRhOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YVtdO1xuXG4gIGdldCBzYWxlQ29zdHNUb3RhbEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbW1pc3Npb24gKyB0aGlzLmxlZ2FsRmVlcyArIHRoaXMub3RoZXJDb3N0O1xuICB9XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2FsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2FsZS9wcm9wZXJ0eS1zYWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0csT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDakMsTUFBTSxnRkFBZ0YsQ0FBQztBQUV4RixNQUFNLE9BQU8sWUFBYSxTQUFRLGdCQUFnQjtJQW1CaEQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUFwQkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO2dEQUNBO0FBR25CO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQzsrQ0FDRDtBQUdsQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7K0NBQ0Q7QUFHbEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO29EQUNJO0FBR3JCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDRTtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQzswREFDWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5U2FsZSBhcyBCYXNlUHJvcGVydHlTYWxlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtcbiAgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGFcbn0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZS10YXgtZXhlbXB0aW9uLW1ldGFkYXRhJztcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5U2FsZSBleHRlbmRzIEJhc2VQcm9wZXJ0eVNhbGUge1xuICBAVHlwZSgoKSA9PiBOdW1iZXIpXG4gIGNvbW1pc3Npb246IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXG4gIGxlZ2FsRmVlczogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgb3RoZXJDb3N0OiBudW1iZXI7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgc2V0dGxlbWVudERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgY29udHJhY3REYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhKVxuICB0YXhFeGVtcHRpb25NZXRhZGF0YTogUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGFbXTtcblxuICBnZXQgc2FsZUNvc3RzVG90YWxBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb21taXNzaW9uICsgdGhpcy5sZWdhbEZlZXMgKyB0aGlzLm90aGVyQ29zdDtcbiAgfVxufVxuIl19
@@ -1,3 +1,6 @@
1
+ import { __decorate } from "tslib";
2
+ import { Transform, Type } from 'class-transformer';
3
+ import { ReportItemCollection } from '../../collections/tax-summary/report-item.collection';
1
4
  /**
2
5
  * Used in tax summary reports to show amounts relating to a tax return category entity and details of what this
3
6
  * amount is comprised of. Example here shows an amount of $951.96 and also details of what this amount is comprised of:
@@ -12,4 +15,8 @@ export class ReportItem {
12
15
  return ((_a = this.details.find((detail) => detail.name === name)) === null || _a === void 0 ? void 0 : _a.amount) || 0;
13
16
  }
14
17
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3JlcG9ydC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBT3JCOzs7T0FHRztJQUNILDJCQUEyQixDQUFDLElBQVk7O1FBQ3RDLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBeUIsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUN0RyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXhSZXR1cm5DYXRlZ29yeSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy90YXgtcmV0dXJuL3RheC1yZXR1cm4tY2F0ZWdvcnknO1xuaW1wb3J0IHsgUmVwb3J0SXRlbURldGFpbHMgfSBmcm9tICcuL3JlcG9ydC1pdGVtLWRldGFpbHMnO1xuXG4vKipcbiAqIFVzZWQgaW4gdGF4IHN1bW1hcnkgcmVwb3J0cyB0byBzaG93IGFtb3VudHMgcmVsYXRpbmcgdG8gYSB0YXggcmV0dXJuIGNhdGVnb3J5IGVudGl0eSBhbmQgZGV0YWlscyBvZiB3aGF0IHRoaXNcbiAqIGFtb3VudCBpcyBjb21wcmlzZWQgb2YuIEV4YW1wbGUgaGVyZSBzaG93cyBhbiBhbW91bnQgb2YgJDk1MS45NiBhbmQgYWxzbyBkZXRhaWxzIG9mIHdoYXQgdGhpcyBhbW91bnQgaXMgY29tcHJpc2VkIG9mOlxuICovXG5leHBvcnQgY2xhc3MgUmVwb3J0SXRlbSB7XG4gIGFtb3VudDogbnVtYmVyO1xuICBkZXRhaWxzOiBSZXBvcnRJdGVtRGV0YWlsc1tdO1xuICBpdGVtczogUmVwb3J0SXRlbVtdO1xuICB0YXhSZXR1cm5DYXRlZ29yeTogVGF4UmV0dXJuQ2F0ZWdvcnk7XG4gIHRheFdpdGhoZWxkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhbW91bnQgZm9yIG9uZSBpbmNvbWUgc291cmNlXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgaW5jb21lIHNvdXJjZSBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRBbW91bnRCeUluY29tZVNvdXJjZU5hbWUobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxzLmZpbmQoKGRldGFpbDogUmVwb3J0SXRlbURldGFpbHMpOiBib29sZWFuID0+IGRldGFpbC5uYW1lID09PSBuYW1lKT8uYW1vdW50IHx8IDA7XG4gIH1cbn1cbiJdfQ==
18
+ __decorate([
19
+ Type(() => ReportItem),
20
+ Transform(({ value }) => new ReportItemCollection(value))
21
+ ], ReportItem.prototype, "items", void 0);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3JlcG9ydC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRTVGOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBVXJCOzs7T0FHRztJQUNILDJCQUEyQixDQUFDLElBQVk7O1FBQ3RDLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBeUIsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsMENBQUUsTUFBTSxLQUFJLENBQUMsQ0FBQztJQUN0RyxDQUFDO0NBQ0Y7QUFUQztJQUZDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDdEIsU0FBUyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQzt5Q0FDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXhSZXR1cm5DYXRlZ29yeSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy90YXgtcmV0dXJuL3RheC1yZXR1cm4tY2F0ZWdvcnknO1xuaW1wb3J0IHsgUmVwb3J0SXRlbURldGFpbHMgfSBmcm9tICcuL3JlcG9ydC1pdGVtLWRldGFpbHMnO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUmVwb3J0SXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbS5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBVc2VkIGluIHRheCBzdW1tYXJ5IHJlcG9ydHMgdG8gc2hvdyBhbW91bnRzIHJlbGF0aW5nIHRvIGEgdGF4IHJldHVybiBjYXRlZ29yeSBlbnRpdHkgYW5kIGRldGFpbHMgb2Ygd2hhdCB0aGlzXG4gKiBhbW91bnQgaXMgY29tcHJpc2VkIG9mLiBFeGFtcGxlIGhlcmUgc2hvd3MgYW4gYW1vdW50IG9mICQ5NTEuOTYgYW5kIGFsc28gZGV0YWlscyBvZiB3aGF0IHRoaXMgYW1vdW50IGlzIGNvbXByaXNlZCBvZjpcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcG9ydEl0ZW0ge1xuICBhbW91bnQ6IG51bWJlcjtcbiAgZGV0YWlsczogUmVwb3J0SXRlbURldGFpbHNbXTtcbiAgdGF4UmV0dXJuQ2F0ZWdvcnk6IFRheFJldHVybkNhdGVnb3J5O1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIEBUeXBlKCgpID0+IFJlcG9ydEl0ZW0pXG4gIEBUcmFuc2Zvcm0oKHt2YWx1ZX0pID0+IG5ldyBSZXBvcnRJdGVtQ29sbGVjdGlvbih2YWx1ZSkpXG4gIGl0ZW1zOiBSZXBvcnRJdGVtQ29sbGVjdGlvbjtcblxuICAvKipcbiAgICogR2V0IGFtb3VudCBmb3Igb25lIGluY29tZSBzb3VyY2VcbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiBpbmNvbWUgc291cmNlIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEFtb3VudEJ5SW5jb21lU291cmNlTmFtZShuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmRldGFpbHMuZmluZCgoZGV0YWlsOiBSZXBvcnRJdGVtRGV0YWlscyk6IGJvb2xlYW4gPT4gZGV0YWlsLm5hbWUgPT09IG5hbWUpPy5hbW91bnQgfHwgMDtcbiAgfVxufVxuIl19
@@ -1,7 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
- import { TaxReturnCategorySectionEnum } from '../../db/Enums/tax-return-category-section.enum';
3
2
  import { TaxSummarySection } from './tax-summary-section';
4
3
  import { Type } from 'class-transformer';
4
+ import { TAX_RETURN_CATEGORIES } from '../../collections/tax-summary/tax-return-categories.const';
5
+ import { TaxReturnCategoryListEnum } from '../../db/Enums/tax-return-category-list.enum';
6
+ import { TaxSummarySectionEnum } from '../../db/Enums/tax-summary-section.enum';
5
7
  /**
6
8
  * @Todo refactor with base model when it will be provided
7
9
  * Tax summary report structure
@@ -11,49 +13,66 @@ export class TaxSummary {
11
13
  return [this.work, this.property, this.otherIncome, this.summary];
12
14
  }
13
15
  get taxPercent() {
14
- return this.summary.items.grossTaxPayable / this.summary.netAmount;
16
+ return this.summary.items.findByCategory(TaxReturnCategoryListEnum.GROSS_TAX_PAYABLE).amount / this.summary.netAmount;
15
17
  }
16
18
  /**
17
19
  * Work Net Cash = Income - tax withheld - expenses - interest
18
20
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
19
21
  */
20
22
  get workNetCash() {
21
- return this.workNetTotal - Math.abs(this.summary.items.getTaxWithheld(TaxReturnCategorySectionEnum.WORK_TANK));
23
+ const taxWithheld = this.summary.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.work.taxWithheld, TaxSummarySectionEnum.WORK_TANK);
24
+ return this.workNetTotal - Math.abs(taxWithheld);
22
25
  }
23
26
  /**
24
27
  * Work Net Total = Income - expenses - interest
25
28
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
26
29
  */
27
30
  get workNetTotal() {
28
- return this.work.items.salary - Math.abs(this.work.items.workExpenses);
31
+ const income = this.work.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.work.income, TaxSummarySectionEnum.WORK_TANK);
32
+ const expenses = this.summary.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.work.expenses, TaxSummarySectionEnum.WORK_TANK);
33
+ const interest = this.summary.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.work.interest, TaxSummarySectionEnum.WORK_TANK);
34
+ return income - Math.abs(expenses) - Math.abs(interest);
29
35
  }
30
36
  /**
31
37
  * Property Net Cash (Cash Position) = Rental Income - expenses - interest
32
38
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
33
39
  */
34
40
  get propertyNetCash() {
35
- return this.property.items.rentalIncome - Math.abs(this.property.items.rentalDeductions) - Math.abs(this.property.items.interestDeductions);
41
+ const income = this.property.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.property.income, TaxSummarySectionEnum.PROPERTY_TANK);
42
+ const expenses = this.property.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.property.expenses, TaxSummarySectionEnum.PROPERTY_TANK);
43
+ const interest = this.property.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.property.interest, TaxSummarySectionEnum.PROPERTY_TANK);
44
+ return income - Math.abs(expenses) - Math.abs(interest);
36
45
  }
37
46
  /**
38
47
  * Property Net Total (Tax Position) = Rental Income - expenses - interest - depreciation
39
48
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
40
49
  */
41
50
  get propertyNetTotal() {
42
- return this.propertyNetCash - Math.abs(this.property.items.propertyDepreciations);
51
+ const depreciation = this.property.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.property.depreciation, TaxSummarySectionEnum.PROPERTY_TANK);
52
+ return this.propertyNetCash - Math.abs(depreciation);
43
53
  }
44
54
  /**
45
55
  * Other Net Cash = gross income – expenses – tax withheld - tax instalments
46
56
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
47
57
  */
48
58
  get otherNetCash() {
49
- return this.otherIncome.items.otherIncome - Math.abs(this.otherIncome.items.otherDeductions) - Math.abs(this.summary.items.getTaxWithheld(TaxReturnCategorySectionEnum.OTHER_INCOME)) - Math.abs(this.summary.items.taxInstalments);
59
+ const income = this.otherIncome.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.income, TaxSummarySectionEnum.OTHER_INCOME);
60
+ const expenses = this.summary.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.expenses, TaxSummarySectionEnum.OTHER_INCOME);
61
+ const taxWithheld = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_WITHHELD], TaxSummarySectionEnum.OTHER_INCOME);
62
+ const taxInstalments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.OTHER_INCOME);
63
+ return income - Math.abs(expenses) - Math.abs(taxWithheld) - Math.abs(taxInstalments);
50
64
  }
51
65
  /**
52
66
  * Other Net Total = Gross income - expenses + tax offsets + tax instalments + franking credits
53
67
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
54
68
  */
55
69
  get otherNetTotal() {
56
- return this.otherIncome.items.otherIncome - Math.abs(this.otherIncome.items.otherDeductions) + Math.abs(this.summary.items.taxOffsets) + Math.abs(this.summary.items.taxInstalments) + Math.abs(this.summary.items.frankingCredits);
70
+ const income = this.otherIncome.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.income, TaxSummarySectionEnum.OTHER_INCOME);
71
+ const expenses = this.summary.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.expenses, TaxSummarySectionEnum.OTHER_INCOME);
72
+ const taxOffsets = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_OFFSETS], TaxSummarySectionEnum.SUMMARY);
73
+ const taxInstallments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.OTHER_INCOME);
74
+ const frankingCredits = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.FRANKING_CREDITS], TaxSummarySectionEnum.OTHER_INCOME);
75
+ return income - Math.abs(expenses) + Math.abs(taxOffsets) + Math.abs(taxInstallments) + Math.abs(frankingCredits);
57
76
  }
58
77
  }
59
78
  __decorate([
@@ -68,4 +87,4 @@ __decorate([
68
87
  __decorate([
69
88
  Type(() => TaxSummarySection)
70
89
  ], TaxSummary.prototype, "summary", void 0);
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFlckIsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM5SSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdE8sQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdE8sQ0FBQztDQUNGO0FBcEVDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO3dDQUNOO0FBR3hCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzRDQUNGO0FBRzVCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOytDQUNDO0FBRy9CO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzJDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGF4UmV0dXJuQ2F0ZWdvcnlTZWN0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RheC1yZXR1cm4tY2F0ZWdvcnktc2VjdGlvbi5lbnVtJztcbmltcG9ydCB7IFRheFN1bW1hcnlTZWN0aW9uIH0gZnJvbSAnLi90YXgtc3VtbWFyeS1zZWN0aW9uJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbi8qKlxuICogQFRvZG8gcmVmYWN0b3Igd2l0aCBiYXNlIG1vZGVsIHdoZW4gaXQgd2lsbCBiZSBwcm92aWRlZFxuICogVGF4IHN1bW1hcnkgcmVwb3J0IHN0cnVjdHVyZVxuICovXG5leHBvcnQgY2xhc3MgVGF4U3VtbWFyeSB7XG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICB3b3JrOiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgcHJvcGVydHk6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICBvdGhlckluY29tZTogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHN1bW1hcnk6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIHByb2plY3RlZFRheFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgZ2V0IHNlY3Rpb25zKCk6IFRheFN1bW1hcnlTZWN0aW9uW10ge1xuICAgIHJldHVybiBbdGhpcy53b3JrLCB0aGlzLnByb3BlcnR5LCB0aGlzLm90aGVySW5jb21lLCB0aGlzLnN1bW1hcnldO1xuICB9XG5cbiAgZ2V0IHRheFBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1tYXJ5Lml0ZW1zLmdyb3NzVGF4UGF5YWJsZSAvIHRoaXMuc3VtbWFyeS5uZXRBbW91bnQ7XG4gIH1cblxuICAvKipcbiAgICogV29yayBOZXQgQ2FzaCA9IEluY29tZSAtIHRheCB3aXRoaGVsZCAtIGV4cGVuc2VzIC0gaW50ZXJlc3RcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCB3b3JrTmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndvcmtOZXRUb3RhbCAtIE1hdGguYWJzKHRoaXMuc3VtbWFyeS5pdGVtcy5nZXRUYXhXaXRoaGVsZChUYXhSZXR1cm5DYXRlZ29yeVNlY3Rpb25FbnVtLldPUktfVEFOSykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmsgTmV0IFRvdGFsID0gSW5jb21lIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHdvcmtOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndvcmsuaXRlbXMuc2FsYXJ5IC0gTWF0aC5hYnModGhpcy53b3JrLml0ZW1zLndvcmtFeHBlbnNlcyk7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgTmV0IENhc2ggKENhc2ggUG9zaXRpb24pID0gUmVudGFsIEluY29tZSAtIGV4cGVuc2VzIC0gaW50ZXJlc3RcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBwcm9wZXJ0eU5ldENhc2goKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS5pdGVtcy5yZW50YWxJbmNvbWUgLSBNYXRoLmFicyh0aGlzLnByb3BlcnR5Lml0ZW1zLnJlbnRhbERlZHVjdGlvbnMpIC0gTWF0aC5hYnModGhpcy5wcm9wZXJ0eS5pdGVtcy5pbnRlcmVzdERlZHVjdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IE5ldCBUb3RhbCAoVGF4IFBvc2l0aW9uKSA9IFJlbnRhbCBJbmNvbWUgLSBleHBlbnNlcyAtIGludGVyZXN0IC0gZGVwcmVjaWF0aW9uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgcHJvcGVydHlOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5TmV0Q2FzaCAtIE1hdGguYWJzKHRoaXMucHJvcGVydHkuaXRlbXMucHJvcGVydHlEZXByZWNpYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdGhlciBOZXQgQ2FzaCA9IGdyb3NzIGluY29tZSDigJMgZXhwZW5zZXMg4oCTIHRheCB3aXRoaGVsZCAtIHRheCBpbnN0YWxtZW50c1xuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IG90aGVyTmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm90aGVySW5jb21lLml0ZW1zLm90aGVySW5jb21lIC0gTWF0aC5hYnModGhpcy5vdGhlckluY29tZS5pdGVtcy5vdGhlckRlZHVjdGlvbnMpIC0gTWF0aC5hYnModGhpcy5zdW1tYXJ5Lml0ZW1zLmdldFRheFdpdGhoZWxkKFRheFJldHVybkNhdGVnb3J5U2VjdGlvbkVudW0uT1RIRVJfSU5DT01FKSkgLSBNYXRoLmFicyh0aGlzLnN1bW1hcnkuaXRlbXMudGF4SW5zdGFsbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE90aGVyIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzICsgdGF4IG9mZnNldHMgKyB0YXggaW5zdGFsbWVudHMgKyBmcmFua2luZyBjcmVkaXRzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgb3RoZXJOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm90aGVySW5jb21lLml0ZW1zLm90aGVySW5jb21lIC0gTWF0aC5hYnModGhpcy5vdGhlckluY29tZS5pdGVtcy5vdGhlckRlZHVjdGlvbnMpICsgTWF0aC5hYnModGhpcy5zdW1tYXJ5Lml0ZW1zLnRheE9mZnNldHMpICsgTWF0aC5hYnModGhpcy5zdW1tYXJ5Lml0ZW1zLnRheEluc3RhbG1lbnRzKSArIE1hdGguYWJzKHRoaXMuc3VtbWFyeS5pdGVtcy5mcmFua2luZ0NyZWRpdHMpO1xuICB9XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFlckIsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDeEgsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEosT0FBTyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNkLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckksTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1SSxNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVJLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakosTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNySixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJKLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxZQUFZLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3SixPQUFPLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoSixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hKLE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLEVBQUUscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkosTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU3SixPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoSixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hKLE1BQU0sVUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEosTUFBTSxlQUFlLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5SixNQUFNLGVBQWUsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLEVBQUUscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwSCxDQUFDO0NBQ0Y7QUEzRkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0NBQ047QUFHeEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7NENBQ0Y7QUFHNUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7K0NBQ0M7QUFHL0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7MkNBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbiB9IGZyb20gJy4vdGF4LXN1bW1hcnktc2VjdGlvbic7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVEFYX1JFVFVSTl9DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdGF4LXN1bW1hcnkvdGF4LXJldHVybi1jYXRlZ29yaWVzLmNvbnN0JztcbmltcG9ydCB7IFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtc3VtbWFyeS1zZWN0aW9uLmVudW0nO1xuXG4vKipcbiAqIEBUb2RvIHJlZmFjdG9yIHdpdGggYmFzZSBtb2RlbCB3aGVuIGl0IHdpbGwgYmUgcHJvdmlkZWRcbiAqIFRheCBzdW1tYXJ5IHJlcG9ydCBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNsYXNzIFRheFN1bW1hcnkge1xuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgd29yazogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHByb3BlcnR5OiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgb3RoZXJJbmNvbWU6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICBzdW1tYXJ5OiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBwcm9qZWN0ZWRUYXhQb3NpdGlvbjogbnVtYmVyO1xuXG4gIGdldCBzZWN0aW9ucygpOiBUYXhTdW1tYXJ5U2VjdGlvbltdIHtcbiAgICByZXR1cm4gW3RoaXMud29yaywgdGhpcy5wcm9wZXJ0eSwgdGhpcy5vdGhlckluY29tZSwgdGhpcy5zdW1tYXJ5XTtcbiAgfVxuXG4gIGdldCB0YXhQZXJjZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtbWFyeS5pdGVtcy5maW5kQnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkdST1NTX1RBWF9QQVlBQkxFKS5hbW91bnQgLyB0aGlzLnN1bW1hcnkubmV0QW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmsgTmV0IENhc2ggPSBJbmNvbWUgLSB0YXggd2l0aGhlbGQgLSBleHBlbnNlcyAtIGludGVyZXN0XG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgd29ya05ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YXhXaXRoaGVsZDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsudGF4V2l0aGhlbGQsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuXG4gICAgcmV0dXJuIHRoaXMud29ya05ldFRvdGFsIC0gTWF0aC5hYnModGF4V2l0aGhlbGQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmsgTmV0IFRvdGFsID0gSW5jb21lIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHdvcmtOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy53b3JrLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuaW5jb21lLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuICAgIGNvbnN0IGludGVyZXN0OiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMud29yay5pbnRlcmVzdCwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLldPUktfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnMoaW50ZXJlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IE5ldCBDYXNoIChDYXNoIFBvc2l0aW9uKSA9IFJlbnRhbCBJbmNvbWUgLSBleHBlbnNlcyAtIGludGVyZXN0XG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgcHJvcGVydHlOZXRDYXNoKCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5jb21lOiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIGNvbnN0IGV4cGVuc2VzOiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uUFJPUEVSVFlfVEFOSyk7XG4gICAgY29uc3QgaW50ZXJlc3Q6IG51bWJlciA9IHRoaXMucHJvcGVydHkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMucHJvcGVydHkuaW50ZXJlc3QsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgLSBNYXRoLmFicyhleHBlbnNlcykgLSBNYXRoLmFicyhpbnRlcmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgTmV0IFRvdGFsIChUYXggUG9zaXRpb24pID0gUmVudGFsIEluY29tZSAtIGV4cGVuc2VzIC0gaW50ZXJlc3QgLSBkZXByZWNpYXRpb25cbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBwcm9wZXJ0eU5ldFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgZGVwcmVjaWF0aW9uOiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmRlcHJlY2lhdGlvbiwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuXG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlOZXRDYXNoIC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdGhlciBOZXQgQ2FzaCA9IGdyb3NzIGluY29tZSDigJMgZXhwZW5zZXMg4oCTIHRheCB3aXRoaGVsZCAtIHRheCBpbnN0YWxtZW50c1xuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IG90aGVyTmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5vdGhlckluY29tZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9JTkNPTUUpO1xuICAgIGNvbnN0IGV4cGVuc2VzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9JTkNPTUUpO1xuICAgIGNvbnN0IHRheFdpdGhoZWxkOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfV0lUSEhFTERdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfSU5DT01FKTtcbiAgICBjb25zdCB0YXhJbnN0YWxtZW50czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX0lOU1RBTE1FTlRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX0lOQ09NRSk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnModGF4V2l0aGhlbGQpIC0gTWF0aC5hYnModGF4SW5zdGFsbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE90aGVyIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzICsgdGF4IG9mZnNldHMgKyB0YXggaW5zdGFsbWVudHMgKyBmcmFua2luZyBjcmVkaXRzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgb3RoZXJOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5vdGhlckluY29tZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9JTkNPTUUpO1xuICAgIGNvbnN0IGV4cGVuc2VzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9JTkNPTUUpO1xuICAgIGNvbnN0IHRheE9mZnNldHM6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9PRkZTRVRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNVTU1BUlkpO1xuICAgIGNvbnN0IHRheEluc3RhbGxtZW50czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX0lOU1RBTE1FTlRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX0lOQ09NRSk7XG4gICAgY29uc3QgZnJhbmtpbmdDcmVkaXRzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5GUkFOS0lOR19DUkVESVRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX0lOQ09NRSk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpICsgTWF0aC5hYnModGF4T2Zmc2V0cykgKyBNYXRoLmFicyh0YXhJbnN0YWxsbWVudHMpICsgTWF0aC5hYnMoZnJhbmtpbmdDcmVkaXRzKTtcbiAgfVxufVxuIl19