taxtank-core 0.28.44 → 0.28.46
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.
- package/bundles/taxtank-core.umd.js +474 -14
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/tax-summary/tax-return-categories.const.js +4 -1
- package/esm2015/lib/db/Enums/chart-accounts-heading-list.enum.js +20 -1
- package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +35 -2
- package/esm2015/lib/forms/report/my-tax/index.js +5 -2
- package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.js +33 -0
- package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.js +81 -0
- package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.js +17 -0
- package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.js +76 -0
- package/esm2015/lib/models/report/my-tax/index.js +6 -2
- package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.js +27 -0
- package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/business-type.enum.js +11 -0
- package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/loss-type.enum.js +16 -0
- package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.js +15 -0
- package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.js +77 -0
- package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.js +70 -0
- package/esm2015/lib/models/tax-summary/tax-summary.js +4 -3
- package/fesm2015/taxtank-core.js +452 -10
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +20 -1
- package/lib/db/Enums/chart-accounts-list.enum.d.ts +35 -2
- package/lib/forms/report/my-tax/index.d.ts +4 -1
- package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.d.ts +9 -0
- package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.d.ts +5 -0
- package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.d.ts +8 -0
- package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.d.ts +5 -0
- package/lib/models/report/my-tax/index.d.ts +5 -1
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.d.ts +8 -0
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-type.enum.d.ts +9 -0
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/loss-type.enum.d.ts +14 -0
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.d.ts +16 -0
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.d.ts +29 -0
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts +30 -0
- package/package.json +1 -1
- package/esm2015/lib/forms/report/my-tax/my-tax-business-or-losses.form.js +0 -10
- package/esm2015/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.js +0 -8
- package/lib/forms/report/my-tax/my-tax-business-or-losses.form.d.ts +0 -8
- package/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.d.ts +0 -7
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ChartAccountsListEnum } from '../../../../../db/Enums/chart-accounts-list.enum';
|
|
2
|
+
import { BUSINESS_INCOME_OR_LOSSES_CATEGORIES } from '../business-income-or-losses-categories.const';
|
|
3
|
+
import { ChartAccountsCategoryEnum } from '../../../../../db/Enums/chart-accounts-category.enum';
|
|
4
|
+
import { ChartAccountsHeadingListEnum } from '../../../../../db/Enums/chart-accounts-heading-list.enum';
|
|
5
|
+
/**
|
|
6
|
+
* Sole business information related to income transactions
|
|
7
|
+
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Business income or losses")
|
|
8
|
+
*/
|
|
9
|
+
export class MyTaxBusinessIncome {
|
|
10
|
+
constructor(psiIncome, soleIncome) {
|
|
11
|
+
this.psiIncomeAmount = psiIncome.filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.PSI).amount;
|
|
12
|
+
this.psiVoluntaryAgreementAmount = psiIncome
|
|
13
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_VOLUNTARY_AGREEMENT)
|
|
14
|
+
.amount;
|
|
15
|
+
this.psiABNNotQuotedAmount = psiIncome
|
|
16
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_ABN_NOT_QUOTED)
|
|
17
|
+
.amount;
|
|
18
|
+
this.psiLabourHireOrOtherAmount = psiIncome
|
|
19
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_LABOUR_HIRE_OR_OTHER)
|
|
20
|
+
.amount;
|
|
21
|
+
this.psiOtherAmount = psiIncome
|
|
22
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_OTHER)
|
|
23
|
+
.amount;
|
|
24
|
+
this.psiDeductionAssociatesAmount = psiIncome
|
|
25
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_DEDUCTION_ASSOCIATES)
|
|
26
|
+
.amount;
|
|
27
|
+
this.psiDeductionOtherAmount = psiIncome
|
|
28
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_DEDUCTION_OTHER)
|
|
29
|
+
.amount;
|
|
30
|
+
this.netPSIAmount = psiIncome
|
|
31
|
+
.filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.psiIncomes)
|
|
32
|
+
.amount -
|
|
33
|
+
psiIncome
|
|
34
|
+
.filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.psiDeductions)
|
|
35
|
+
.amount;
|
|
36
|
+
this.psiVoluntaryAgreementTax = psiIncome
|
|
37
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_VOLUNTARY_AGREEMENT)
|
|
38
|
+
.sumBy('tax');
|
|
39
|
+
this.psiABNNotQuotedTax = psiIncome
|
|
40
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_ABN_NOT_QUOTED)
|
|
41
|
+
.sumBy('tax');
|
|
42
|
+
this.psiLabourHireOrOtherTax = psiIncome
|
|
43
|
+
.filterBy('chartAccounts.id', [ChartAccountsListEnum.PSI_LABOUR_HIRE_OR_OTHER, ChartAccountsListEnum.PSI_OTHER])
|
|
44
|
+
.sumBy('tax');
|
|
45
|
+
this.netPSITax = psiIncome
|
|
46
|
+
.filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.psiIncomes)
|
|
47
|
+
.sumBy('tax');
|
|
48
|
+
this.grossPaymentsNoAbsGivenAmount = soleIncome
|
|
49
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_NO_ABN_GIVEN)
|
|
50
|
+
.amount;
|
|
51
|
+
this.grossPaymentsVoluntaryAgreementAmount = soleIncome
|
|
52
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT)
|
|
53
|
+
.amount;
|
|
54
|
+
this.grossPaymentsLabourHireAmount = soleIncome
|
|
55
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER_SPECIFIED_PAYMENTS)
|
|
56
|
+
.amount;
|
|
57
|
+
this.assessibleGovernmentPaymentsAmount = soleIncome
|
|
58
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.ASSESSIBLE_GOVERNMENT_PAYMENTS)
|
|
59
|
+
.amount;
|
|
60
|
+
this.otherBusinessIncomeAmount = soleIncome
|
|
61
|
+
.filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.otherBusinessIncome)
|
|
62
|
+
.amount;
|
|
63
|
+
this.nonPrimaryProductionTotalAmount = soleIncome
|
|
64
|
+
.filterBy('chartAccounts.category', ChartAccountsCategoryEnum.SOLE_INCOME)
|
|
65
|
+
.amount;
|
|
66
|
+
this.grossPaymentsNoAbsGivenTax = soleIncome
|
|
67
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_NO_ABN_GIVEN)
|
|
68
|
+
.sumBy('tax');
|
|
69
|
+
this.grossPaymentsVoluntaryAgreementTax = soleIncome
|
|
70
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT)
|
|
71
|
+
.sumBy('tax');
|
|
72
|
+
this.grossPaymentsLabourHireTax = soleIncome
|
|
73
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER_SPECIFIED_PAYMENTS)
|
|
74
|
+
.sumBy('tax');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWluY29tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3MtaW5jb21lLW9yLWxvc3Nlcy9teS10YXgtYnVzaW5lc3MtaW5jb21lL215LXRheC1idXNpbmVzcy1pbmNvbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQXVCOUIsWUFDRSxTQUFnQyxFQUNoQyxVQUFpQztRQUVqQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsNEJBQTRCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQy9HLElBQUksQ0FBQywyQkFBMkIsR0FBRyxTQUFTO2FBQ3pDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQzthQUMzRSxNQUFNLENBQUM7UUFDVixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUzthQUNuQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsa0JBQWtCLENBQUM7YUFDdEUsTUFBTSxDQUFDO1FBQ1YsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFNBQVM7YUFDeEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDO2FBQzVFLE1BQU0sQ0FBQztRQUNW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QTBCLEdBQUcsVUFBVTthQUN6QyxRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsc0RBQXNELENBQUM7YUFDMUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtJztcbmltcG9ydCB7IEJVU0lORVNTX0lOQ09NRV9PUl9MT1NTRVNfQ0FURUdPUklFUyB9IGZyb20gJy4uL2J1c2luZXNzLWluY29tZS1vci1sb3NzZXMtY2F0ZWdvcmllcy5jb25zdCc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtaGVhZGluZy1saXN0LmVudW0nO1xuXG4vKipcbiAqIFNvbGUgYnVzaW5lc3MgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBpbmNvbWUgdHJhbnNhY3Rpb25zXG4gKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQ2NDQxMTA0NjYvVGF4K1JldHVybitNeVRheCstK09ubGluZStGb3JtIChzZWN0aW9uIFwiQnVzaW5lc3MgaW5jb21lIG9yIGxvc3Nlc1wiKVxuICovXG5leHBvcnQgY2xhc3MgTXlUYXhCdXNpbmVzc0luY29tZSB7XG4gIHBzaUluY29tZUFtb3VudDogbnVtYmVyO1xuICBwc2lWb2x1bnRhcnlBZ3JlZW1lbnRBbW91bnQ6IG51bWJlcjtcbiAgcHNpQUJOTm90UXVvdGVkQW1vdW50OiBudW1iZXI7XG4gIHBzaUxhYm91ckhpcmVPck90aGVyQW1vdW50OiBudW1iZXI7XG4gIHBzaU90aGVyQW1vdW50OiBudW1iZXI7XG4gIHBzaURlZHVjdGlvbkFzc29jaWF0ZXNBbW91bnQ6IG51bWJlcjtcbiAgcHNpRGVkdWN0aW9uT3RoZXJBbW91bnQ6IG51bWJlcjtcbiAgbmV0UFNJQW1vdW50OiBudW1iZXI7XG4gIHBzaVZvbHVudGFyeUFncmVlbWVudFRheDogbnVtYmVyO1xuICBwc2lBQk5Ob3RRdW90ZWRUYXg6IG51bWJlcjtcbiAgcHNpTGFib3VySGlyZU9yT3RoZXJUYXg6IG51bWJlcjtcbiAgbmV0UFNJVGF4OiBudW1iZXI7XG4gIGdyb3NzUGF5bWVudHNOb0Fic0dpdmVuQW1vdW50OiBudW1iZXI7XG4gIGdyb3NzUGF5bWVudHNWb2x1bnRhcnlBZ3JlZW1lbnRBbW91bnQ6IG51bWJlcjtcbiAgZ3Jvc3NQYXltZW50c0xhYm91ckhpcmVBbW91bnQ6IG51bWJlcjtcbiAgZ3Jvc3NQYXltZW50c05vQWJzR2l2ZW5UYXg6IG51bWJlcjtcbiAgZ3Jvc3NQYXltZW50c1ZvbHVudGFyeUFncmVlbWVudFRheDogbnVtYmVyO1xuICBncm9zc1BheW1lbnRzTGFib3VySGlyZVRheDogbnVtYmVyO1xuICBhc3Nlc3NpYmxlR292ZXJubWVudFBheW1lbnRzQW1vdW50OiBudW1iZXI7XG4gIG90aGVyQnVzaW5lc3NJbmNvbWVBbW91bnQ6IG51bWJlcjtcbiAgbm9uUHJpbWFyeVByb2R1Y3Rpb25Ub3RhbEFtb3VudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHBzaUluY29tZTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIHNvbGVJbmNvbWU6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgKSB7XG4gICAgdGhpcy5wc2lJbmNvbWVBbW91bnQgPSBwc2lJbmNvbWUuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcsIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uUFNJKS5hbW91bnQ7XG4gICAgdGhpcy5wc2lWb2x1bnRhcnlBZ3JlZW1lbnRBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfVk9MVU5UQVJZX0FHUkVFTUVOVClcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5wc2lBQk5Ob3RRdW90ZWRBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfQUJOX05PVF9RVU9URUQpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMucHNpTGFib3VySGlyZU9yT3RoZXJBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfTEFCT1VSX0hJUkVfT1JfT1RIRVIpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMucHNpT3RoZXJBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfT1RIRVIpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMucHNpRGVkdWN0aW9uQXNzb2NpYXRlc0Ftb3VudCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9ERURVQ1RJT05fQVNTT0NJQVRFUylcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5wc2lEZWR1Y3Rpb25PdGhlckFtb3VudCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9ERURVQ1RJT05fT1RIRVIpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMubmV0UFNJQW1vdW50ID0gcHNpSW5jb21lXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIEJVU0lORVNTX0lOQ09NRV9PUl9MT1NTRVNfQ0FURUdPUklFUy5wc2lJbmNvbWVzKVxuICAgICAgICAuYW1vdW50IC1cbiAgICAgIHBzaUluY29tZVxuICAgICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBCVVNJTkVTU19JTkNPTUVfT1JfTE9TU0VTX0NBVEVHT1JJRVMucHNpRGVkdWN0aW9ucylcbiAgICAgICAgLmFtb3VudDtcbiAgICB0aGlzLnBzaVZvbHVudGFyeUFncmVlbWVudFRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9WT0xVTlRBUllfQUdSRUVNRU5UKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLnBzaUFCTk5vdFF1b3RlZFRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9BQk5fTk9UX1FVT1RFRClcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5wc2lMYWJvdXJIaXJlT3JPdGhlclRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgW0NoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfTEFCT1VSX0hJUkVfT1JfT1RIRVIsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfT1RIRVJdKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLm5ldFBTSVRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQlVTSU5FU1NfSU5DT01FX09SX0xPU1NFU19DQVRFR09SSUVTLnBzaUluY29tZXMpXG4gICAgICAuc3VtQnkoJ3RheCcpO1xuXG4gICAgdGhpcy5ncm9zc1BheW1lbnRzTm9BYnNHaXZlbkFtb3VudCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5HUk9TU19QQVlNRU5UU19OT19BQk5fR0lWRU4pXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMuZ3Jvc3NQYXltZW50c1ZvbHVudGFyeUFncmVlbWVudEFtb3VudCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5HUk9TU19QQVlNRU5UU19WT0xVTlRBUllfQUdSRUVNRU5UKVxuICAgICAgLmFtb3VudDtcbiAgICB0aGlzLmdyb3NzUGF5bWVudHNMYWJvdXJIaXJlQW1vdW50ID0gc29sZUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkdST1NTX1BBWU1FTlRTX0xBQk9VUl9ISVJFX09SX09USEVSX1NQRUNJRklFRF9QQVlNRU5UUylcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5hc3Nlc3NpYmxlR292ZXJubWVudFBheW1lbnRzQW1vdW50ID0gc29sZUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkFTU0VTU0lCTEVfR09WRVJOTUVOVF9QQVlNRU5UUylcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5vdGhlckJ1c2luZXNzSW5jb21lQW1vdW50ID0gc29sZUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQlVTSU5FU1NfSU5DT01FX09SX0xPU1NFU19DQVRFR09SSUVTLm90aGVyQnVzaW5lc3NJbmNvbWUpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMubm9uUHJpbWFyeVByb2R1Y3Rpb25Ub3RhbEFtb3VudCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9JTkNPTUUpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMuZ3Jvc3NQYXltZW50c05vQWJzR2l2ZW5UYXggPSBzb2xlSW5jb21lXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uR1JPU1NfUEFZTUVOVFNfTk9fQUJOX0dJVkVOKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLmdyb3NzUGF5bWVudHNWb2x1bnRhcnlBZ3JlZW1lbnRUYXggPSBzb2xlSW5jb21lXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uR1JPU1NfUEFZTUVOVFNfVk9MVU5UQVJZX0FHUkVFTUVOVClcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5ncm9zc1BheW1lbnRzTGFib3VySGlyZVRheCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5HUk9TU19QQVlNRU5UU19MQUJPVVJfSElSRV9PUl9PVEhFUl9TUEVDSUZJRURfUEFZTUVOVFMpXG4gICAgICAuc3VtQnkoJ3RheCcpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ChartAccountsHeadingListEnum } from '../../../../../db/Enums/chart-accounts-heading-list.enum';
|
|
2
|
+
import { ChartAccountsListEnum } from '../../../../../db/Enums/chart-accounts-list.enum';
|
|
3
|
+
import { ChartAccountsCategoryEnum } from '../../../../../db/Enums/chart-accounts-category.enum';
|
|
4
|
+
/**
|
|
5
|
+
* Sole business information related to expense transactions (losses)
|
|
6
|
+
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Business income or losses")
|
|
7
|
+
*/
|
|
8
|
+
export class MyTaxBusinessLosses {
|
|
9
|
+
constructor(transactions, depreciations, businessLosses, currentLoss) {
|
|
10
|
+
this.currentLoss = currentLoss;
|
|
11
|
+
this.purchasesAndOtherCostsAmount = Math.abs(transactions.getExpenseTransactions()
|
|
12
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.PURCHASES_STOCK_INVENTORY)
|
|
13
|
+
.sumBy('claimAmount'));
|
|
14
|
+
this.contractorsAndCommissionAmount = Math.abs(transactions.getExpenseTransactions()
|
|
15
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.CONTRACTORS_AND_COMMISSION)
|
|
16
|
+
.sumBy('claimAmount'));
|
|
17
|
+
this.superannuationAmount = Math.abs(transactions.getExpenseTransactions()
|
|
18
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.SUPERANNUATION)
|
|
19
|
+
.sumBy('claimAmount'));
|
|
20
|
+
this.badDebtAmount = Math.abs(transactions.getExpenseTransactions()
|
|
21
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.BAD_DEBT)
|
|
22
|
+
.sumBy('claimAmount'));
|
|
23
|
+
this.leaseExpensesCommercialAmount = Math.abs(transactions.getExpenseTransactions()
|
|
24
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.LEASE_EXPENSES_COMMERCIAL)
|
|
25
|
+
.sumBy('claimAmount'));
|
|
26
|
+
this.rentExpensesCommercialPremisesAmount = Math.abs(transactions.getExpenseTransactions()
|
|
27
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.RENT_EXPENSES_COMMERCIAL_PREMISES)
|
|
28
|
+
.sumBy('claimAmount'));
|
|
29
|
+
this.interestExpensesAustraliaAmount = Math.abs(transactions.getExpenseTransactions()
|
|
30
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.INTEREST_EXPENSES_AUSTRALIA)
|
|
31
|
+
.sumBy('claimAmount'));
|
|
32
|
+
this.interestExpensesOverseasAmount = Math.abs(transactions.getExpenseTransactions()
|
|
33
|
+
.filterBy('chartAccounts.id', ChartAccountsListEnum.INTEREST_EXPENSES_OVERSEAS)
|
|
34
|
+
.sumBy('claimAmount'));
|
|
35
|
+
this.kmsTravelledExpensesAmount = Math.abs(transactions
|
|
36
|
+
.filterBy('chartAccounts.heading.id', [ChartAccountsHeadingListEnum.WORK_RELATED_CAR_EXPENSES, ChartAccountsHeadingListEnum.DEPRECIATION_VEHICLES])
|
|
37
|
+
.sumBy('claimAmount'));
|
|
38
|
+
this.otherExpensesAmount = Math.abs(transactions
|
|
39
|
+
.filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.OTHER_EXPENSES)
|
|
40
|
+
.sumBy('claimAmount'));
|
|
41
|
+
this.totalNonPrimaryProductionExpensesAmount = Math.abs(transactions
|
|
42
|
+
.filterBy('chartAccounts.category', [ChartAccountsCategoryEnum.SOLE_EXPENSE, ChartAccountsCategoryEnum.SOLE_DEPRECIATION])
|
|
43
|
+
.sumBy('claimAmount'));
|
|
44
|
+
// depreciations
|
|
45
|
+
this.depreciationExpensesAmount = depreciations
|
|
46
|
+
.filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.DEPRECIATION_EXPENSES)
|
|
47
|
+
.sumBy('claimAmount');
|
|
48
|
+
this.deductionsForCertainAssetsAmount = depreciations
|
|
49
|
+
.getWrittenOffDepreciations()
|
|
50
|
+
.sumBy('claimAmount');
|
|
51
|
+
this.deductionsForGeneralSmallBusinessPoolAmount = depreciations
|
|
52
|
+
.getSBPDepreciations()
|
|
53
|
+
.sumBy('claimAmount');
|
|
54
|
+
this.currentYearNetNonPrimaryIncomeOrLossesAmount = transactions.getIncomeTransactions()
|
|
55
|
+
.filterBy('chartAccounts.category', ChartAccountsCategoryEnum.SOLE_INCOME)
|
|
56
|
+
.amount -
|
|
57
|
+
Math.abs(transactions
|
|
58
|
+
.filterBy('chartAccounts.category', [ChartAccountsCategoryEnum.SOLE_EXPENSE, ChartAccountsCategoryEnum.SOLE_DEPRECIATION])
|
|
59
|
+
.sumBy('claimAmount'));
|
|
60
|
+
this.priorYearsNonPrimaryLossesAmount = this.calculatePriorYearsOpenBalance(businessLosses);
|
|
61
|
+
this.netNonPrimaryIncomeOrLossesAmount = transactions.getIncomeTransactions()
|
|
62
|
+
.filterBy('chartAccounts.category', ChartAccountsCategoryEnum.SOLE_INCOME)
|
|
63
|
+
.amount -
|
|
64
|
+
this.priorYearsNonPrimaryLossesAmount;
|
|
65
|
+
}
|
|
66
|
+
calculatePriorYearsOpenBalance(businessLosses) {
|
|
67
|
+
return businessLosses ? businessLosses.sumBy('openBalance') : 0;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWxvc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3MtaW5jb21lLW9yLWxvc3Nlcy9teS10YXgtYnVzaW5lc3MtbG9zc2VzL215LXRheC1idXNpbmVzcy1sb3NzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFJakc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQW9COUIsWUFDRSxZQUFtQyxFQUNuQyxhQUFxQyxFQUNyQyxjQUE0QyxFQUM1QyxXQUE2QjtRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUU7YUFDL0UsUUFBUSxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDO2FBQzdFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRTthQUNqRixRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsMEJBQTBCLENBQUM7YUFDOUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFF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LFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUN6SCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUU7YUFDeEUsUUFBUSxDQUFDLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLFdBQVcsQ0FBQzthQUN6RSxNQUFNO1lBQ1QsSUFBSSxDQUFDLGdDQUFnQyxDQUFDO0lBQzFDLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxjQUE0QztRQUNqRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWhlYWRpbmctbGlzdC5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzTG9zcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NvbGUnO1xuXG4vKipcbiAqIFNvbGUgYnVzaW5lc3MgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBleHBlbnNlIHRyYW5zYWN0aW9ucyAobG9zc2VzKVxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NjQ0MTEwNDY2L1RheCtSZXR1cm4rTXlUYXgrLStPbmxpbmUrRm9ybSAoc2VjdGlvbiBcIkJ1c2luZXNzIGluY29tZSBvciBsb3NzZXNcIilcbiAqL1xuZXhwb3J0IGNsYXNzIE15VGF4QnVzaW5lc3NMb3NzZXMge1xuICBjdXJyZW50TG9zczogU29sZUJ1c2luZXNzTG9zcztcbiAgcHVyY2hhc2VzQW5kT3RoZXJDb3N0c0Ftb3VudDogbnVtYmVyO1xuICBjb250cmFjdG9yc0FuZENvbW1pc3Npb25BbW91bnQ6IG51bWJlcjtcbiAgc3VwZXJhbm51YXRpb25BbW91bnQ6IG51bWJlcjtcbiAgYmFkRGVidEFtb3VudDogbnVtYmVyO1xuICBsZWFzZUV4cGVuc2VzQ29tbWVyY2lhbEFtb3VudDogbnVtYmVyO1xuICByZW50RXhwZW5zZXNDb21tZXJjaWFsUHJlbWlzZXNBbW91bnQ6IG51bWJlcjtcbiAgaW50ZXJlc3RFeHBlbnNlc0F1c3RyYWxpYUFtb3VudDogbnVtYmVyO1xuICBpbnRlcmVzdEV4cGVuc2VzT3ZlcnNlYXNBbW91bnQ6IG51bWJlcjtcbiAga21zVHJhdmVsbGVkRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgb3RoZXJFeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICB0b3RhbE5vblByaW1hcnlQcm9kdWN0aW9uRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVwcmVjaWF0aW9uRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVkdWN0aW9uc0ZvckNlcnRhaW5Bc3NldHNBbW91bnQ6IG51bWJlcjtcbiAgZGVkdWN0aW9uc0ZvckdlbmVyYWxTbWFsbEJ1c2luZXNzUG9vbEFtb3VudDogbnVtYmVyO1xuICBwcmlvclllYXJzTm9uUHJpbWFyeUxvc3Nlc0Ftb3VudDogbnVtYmVyO1xuICBuZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQ6IG51bWJlcjtcbiAgY3VycmVudFllYXJOZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICAgIGJ1c2luZXNzTG9zc2VzOiBDb2xsZWN0aW9uPFNvbGVCdXNpbmVzc0xvc3M+LFxuICAgIGN1cnJlbnRMb3NzOiBTb2xlQnVzaW5lc3NMb3NzXG4gICkge1xuICAgIHRoaXMuY3VycmVudExvc3MgPSBjdXJyZW50TG9zcztcbiAgICB0aGlzLnB1cmNoYXNlc0FuZE90aGVyQ29zdHNBbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uUFVSQ0hBU0VTX1NUT0NLX0lOVkVOVE9SWSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5jb250cmFjdG9yc0FuZENvbW1pc3Npb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uQ09OVFJBQ1RPUlNfQU5EX0NPTU1JU1NJT04pXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuc3VwZXJhbm51YXRpb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uU1VQRVJBTk5VQVRJT04pXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuYmFkRGVidEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5CQURfREVCVClcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5sZWFzZUV4cGVuc2VzQ29tbWVyY2lhbEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5MRUFTRV9FWFBFTlNFU19DT01NRVJDSUFMKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnJlbnRFeHBlbnNlc0NvbW1lcmNpYWxQcmVtaXNlc0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5SRU5UX0VYUEVOU0VTX0NPTU1FUkNJQUxfUFJFTUlTRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc0F1c3RyYWxpYUFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9FWFBFTlNFU19BVVNUUkFMSUEpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc092ZXJzZWFzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX0VYUEVOU0VTX09WRVJTRUFTKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLmttc1RyYXZlbGxlZEV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcsIFtDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLldPUktfUkVMQVRFRF9DQVJfRVhQRU5TRVMsIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uREVQUkVDSUFUSU9OX1ZFSElDTEVTXSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5vdGhlckV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcsIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uT1RIRVJfRVhQRU5TRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMudG90YWxOb25QcmltYXJ5UHJvZHVjdGlvbkV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuY2F0ZWdvcnknLCBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9ERVBSRUNJQVRJT05dKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICAvLyBkZXByZWNpYXRpb25zXG4gICAgdGhpcy5kZXByZWNpYXRpb25FeHBlbnNlc0Ftb3VudCA9IGRlcHJlY2lhdGlvbnNcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5oZWFkaW5nLmlkJywgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5ERVBSRUNJQVRJT05fRVhQRU5TRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5kZWR1Y3Rpb25zRm9yQ2VydGFpbkFzc2V0c0Ftb3VudCA9IGRlcHJlY2lhdGlvbnNcbiAgICAgIC5nZXRXcml0dGVuT2ZmRGVwcmVjaWF0aW9ucygpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5kZWR1Y3Rpb25zRm9yR2VuZXJhbFNtYWxsQnVzaW5lc3NQb29sQW1vdW50ID0gZGVwcmVjaWF0aW9uc1xuICAgICAgLmdldFNCUERlcHJlY2lhdGlvbnMoKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIHRoaXMuY3VycmVudFllYXJOZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQgPSB0cmFuc2FjdGlvbnMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKClcbiAgICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmNhdGVnb3J5JywgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0lOQ09NRSlcbiAgICAgICAgLmFtb3VudCAtXG4gICAgICBNYXRoLmFicyh0cmFuc2FjdGlvbnNcbiAgICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmNhdGVnb3J5JywgW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfREVQUkVDSUFUSU9OXSlcbiAgICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnByaW9yWWVhcnNOb25QcmltYXJ5TG9zc2VzQW1vdW50ID0gdGhpcy5jYWxjdWxhdGVQcmlvclllYXJzT3BlbkJhbGFuY2UoYnVzaW5lc3NMb3NzZXMpO1xuICAgIHRoaXMubmV0Tm9uUHJpbWFyeUluY29tZU9yTG9zc2VzQW1vdW50ID0gdHJhbnNhY3Rpb25zLmdldEluY29tZVRyYW5zYWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9JTkNPTUUpXG4gICAgICAgIC5hbW91bnQgLVxuICAgICAgdGhpcy5wcmlvclllYXJzTm9uUHJpbWFyeUxvc3Nlc0Ftb3VudDtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlUHJpb3JZZWFyc09wZW5CYWxhbmNlKGJ1c2luZXNzTG9zc2VzOiBDb2xsZWN0aW9uPFNvbGVCdXNpbmVzc0xvc3M+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gYnVzaW5lc3NMb3NzZXMgPyBidXNpbmVzc0xvc3Nlcy5zdW1CeSgnb3BlbkJhbGFuY2UnKSA6IDA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -94,9 +94,10 @@ export class TaxSummary {
|
|
|
94
94
|
get soleNetTotal() {
|
|
95
95
|
const income = this.sole.items.sumByCategories(TAX_RETURN_CATEGORIES.sole.income);
|
|
96
96
|
const expenses = this.sole.items.sumByCategories(TAX_RETURN_CATEGORIES.sole.expenses);
|
|
97
|
-
const depreciation = this.sole.items.sumByCategories(TAX_RETURN_CATEGORIES.sole.
|
|
97
|
+
const depreciation = this.sole.items.sumByCategories(TAX_RETURN_CATEGORIES.sole.depreciation);
|
|
98
98
|
const loss = this.sole.items.sumByCategories(TAX_RETURN_CATEGORIES.sole.loss);
|
|
99
|
-
|
|
99
|
+
const lossCurrent = this.sole.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.sole.lossCurrent, TaxSummarySectionEnum.SOLE_TANK);
|
|
100
|
+
return income + expenses + depreciation + loss + lossCurrent;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
__decorate([
|
|
@@ -114,4 +115,4 @@ __decorate([
|
|
|
114
115
|
__decorate([
|
|
115
116
|
Type(() => TaxSummarySection)
|
|
116
117
|
], TaxSummary.prototype, "summary", void 0);
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFrQnJCLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDeEgsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFD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QUEzSEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0NBQ047QUFHeEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7NENBQ0Y7QUFHNUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7eUNBQ0w7QUFHekI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0NBQ047QUFHeEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7MkNBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbiB9IGZyb20gJy4vdGF4LXN1bW1hcnktc2VjdGlvbic7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVEFYX1JFVFVSTl9DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdGF4LXN1bW1hcnkvdGF4LXJldHVybi1jYXRlZ29yaWVzLmNvbnN0JztcbmltcG9ydCB7IFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtc3VtbWFyeS1zZWN0aW9uLmVudW0nO1xuXG4vKipcbiAqIEBUb2RvIHJlZmFjdG9yIHdpdGggYmFzZSBtb2RlbCB3aGVuIGl0IHdpbGwgYmUgcHJvdmlkZWRcbiAqIFRheCBzdW1tYXJ5IHJlcG9ydCBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNsYXNzIFRheFN1bW1hcnkge1xuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgd29yazogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHByb3BlcnR5OiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgb3RoZXI6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICBzb2xlOiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgc3VtbWFyeTogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgcHJvamVjdGVkVGF4UG9zaXRpb246IG51bWJlcjtcblxuICBnZXQgc2VjdGlvbnMoKTogVGF4U3VtbWFyeVNlY3Rpb25bXSB7XG4gICAgcmV0dXJuIFt0aGlzLndvcmssIHRoaXMucHJvcGVydHksIHRoaXMub3RoZXIsIHRoaXMuc29sZSwgdGhpcy5zdW1tYXJ5XTtcbiAgfVxuXG4gIGdldCB0YXhQZXJjZW50KCk6IG51bWJlciB7XG4gICAgLy8gQ2hlY2sgaWYgbmV0QW1vdW50IGlzIG5vdCAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIXRoaXMuc3VtbWFyeS5uZXRBbW91bnQpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN1bW1hcnkuaXRlbXMuZmluZEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5HUk9TU19UQVhfUEFZQUJMRSkuYW1vdW50IC8gdGhpcy5zdW1tYXJ5Lm5ldEFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXb3JrIE5ldCBDYXNoID0gSW5jb21lIC0gdGF4IHdpdGhoZWxkIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHdvcmtOZXRDYXNoKCk6IG51bWJlciB7XG4gICAgY29uc3QgdGF4V2l0aGhlbGQ6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLnRheFdpdGhoZWxkLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLndvcmtOZXRUb3RhbCAtIE1hdGguYWJzKHRheFdpdGhoZWxkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXb3JrIE5ldCBUb3RhbCA9IEluY29tZSAtIGV4cGVuc2VzIC0gaW50ZXJlc3RcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCB3b3JrTmV0VG90YWwoKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMud29yay5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLldPUktfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMud29yay5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcbiAgICBjb25zdCBpbnRlcmVzdDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuaW50ZXJlc3QsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuXG4gICAgcmV0dXJuIGluY29tZSAtIE1hdGguYWJzKGV4cGVuc2VzKSAtIE1hdGguYWJzKGludGVyZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBOZXQgQ2FzaCAoQ2FzaCBQb3NpdGlvbikgPSBSZW50YWwgSW5jb21lIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHByb3BlcnR5TmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIGNvbnN0IGludGVyZXN0OiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmludGVyZXN0LCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uUFJPUEVSVFlfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnMoaW50ZXJlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IE5ldCBUb3RhbCAoVGF4IFBvc2l0aW9uKSA9IFJlbnRhbCBJbmNvbWUgLSBleHBlbnNlcyAtIGludGVyZXN0IC0gZGVwcmVjaWF0aW9uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgcHJvcGVydHlOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGRlcHJlY2lhdGlvbjogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5kZXByZWNpYXRpb24sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLnByb3BlcnR5TmV0Q2FzaCAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogT3RoZXIgTmV0IENhc2ggPSBncm9zcyBpbmNvbWUg4oCTIGV4cGVuc2VzIOKAkyB0YXggd2l0aGhlbGQgLSB0YXggaW5zdGFsbWVudHNcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBvdGhlck5ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMub3RoZXIuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuaW5jb21lLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMub3RoZXIuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCB0YXhXaXRoaGVsZDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX1dJVEhIRUxEXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheEluc3RhbG1lbnRzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfSU5TVEFMTUVOVFNdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnModGF4V2l0aGhlbGQpIC0gTWF0aC5hYnModGF4SW5zdGFsbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE90aGVyIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzICsgdGF4IG9mZnNldHMgKyB0YXggaW5zdGFsbWVudHMgKyBmcmFua2luZyBjcmVkaXRzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgb3RoZXJOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheE9mZnNldHM6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9PRkZTRVRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNVTU1BUlkpO1xuICAgIGNvbnN0IHRheEluc3RhbGxtZW50czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX0lOU1RBTE1FTlRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IGZyYW5raW5nQ3JlZGl0czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uRlJBTktJTkdfQ1JFRElUU10sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgLSBNYXRoLmFicyhleHBlbnNlcykgKyBNYXRoLmFicyh0YXhPZmZzZXRzKSArIE1hdGguYWJzKHRheEluc3RhbGxtZW50cykgKyBNYXRoLmFicyhmcmFua2luZ0NyZWRpdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbGUgTmV0IENhc2ggPSBncm9zcyBpbmNvbWUg4oCTIGV4cGVuc2VzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgc29sZU5ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNPTEVfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU09MRV9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgKyBleHBlbnNlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2xlIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgc29sZU5ldFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5jb21lOiBudW1iZXIgPSB0aGlzLnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmluY29tZSk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXMoVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUuZXhwZW5zZXMpO1xuICAgIGNvbnN0IGRlcHJlY2lhdGlvbjogbnVtYmVyID0gdGhpcy5zb2xlLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllcyhUQVhfUkVUVVJOX0NBVEVHT1JJRVMuc29sZS5leHBlbnNlcyk7XG4gICAgY29uc3QgbG9zczogbnVtYmVyID0gdGhpcy5zb2xlLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllcyhUQVhfUkVUVVJOX0NBVEVHT1JJRVMuc29sZS5sb3NzKTtcblxuICAgIHJldHVybiBpbmNvbWUgKyBleHBlbnNlcyArIGRlcHJlY2lhdGlvbiAtIGxvc3M7XG4gIH1cbn1cbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFrQnJCLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDeEgsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFD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cUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9JLE9BQU8sTUFBTSxHQUFHLFFBQVEsR0FBRyxZQUFZLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUE1SEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0NBQ047QUFHeEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7NENBQ0Y7QUFHNUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7eUNBQ0w7QUFHekI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7d0NBQ047QUFHeEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7MkNBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbiB9IGZyb20gJy4vdGF4LXN1bW1hcnktc2VjdGlvbic7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVEFYX1JFVFVSTl9DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdGF4LXN1bW1hcnkvdGF4LXJldHVybi1jYXRlZ29yaWVzLmNvbnN0JztcbmltcG9ydCB7IFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YXgtc3VtbWFyeS1zZWN0aW9uLmVudW0nO1xuXG4vKipcbiAqIEBUb2RvIHJlZmFjdG9yIHdpdGggYmFzZSBtb2RlbCB3aGVuIGl0IHdpbGwgYmUgcHJvdmlkZWRcbiAqIFRheCBzdW1tYXJ5IHJlcG9ydCBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNsYXNzIFRheFN1bW1hcnkge1xuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgd29yazogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHByb3BlcnR5OiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgb3RoZXI6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICBzb2xlOiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgc3VtbWFyeTogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgcHJvamVjdGVkVGF4UG9zaXRpb246IG51bWJlcjtcblxuICBnZXQgc2VjdGlvbnMoKTogVGF4U3VtbWFyeVNlY3Rpb25bXSB7XG4gICAgcmV0dXJuIFt0aGlzLndvcmssIHRoaXMucHJvcGVydHksIHRoaXMub3RoZXIsIHRoaXMuc29sZSwgdGhpcy5zdW1tYXJ5XTtcbiAgfVxuXG4gIGdldCB0YXhQZXJjZW50KCk6IG51bWJlciB7XG4gICAgLy8gQ2hlY2sgaWYgbmV0QW1vdW50IGlzIG5vdCAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIXRoaXMuc3VtbWFyeS5uZXRBbW91bnQpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN1bW1hcnkuaXRlbXMuZmluZEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5HUk9TU19UQVhfUEFZQUJMRSkuYW1vdW50IC8gdGhpcy5zdW1tYXJ5Lm5ldEFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXb3JrIE5ldCBDYXNoID0gSW5jb21lIC0gdGF4IHdpdGhoZWxkIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHdvcmtOZXRDYXNoKCk6IG51bWJlciB7XG4gICAgY29uc3QgdGF4V2l0aGhlbGQ6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLnRheFdpdGhoZWxkLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLndvcmtOZXRUb3RhbCAtIE1hdGguYWJzKHRheFdpdGhoZWxkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXb3JrIE5ldCBUb3RhbCA9IEluY29tZSAtIGV4cGVuc2VzIC0gaW50ZXJlc3RcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCB3b3JrTmV0VG90YWwoKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMud29yay5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLldPUktfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMud29yay5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcbiAgICBjb25zdCBpbnRlcmVzdDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuaW50ZXJlc3QsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuXG4gICAgcmV0dXJuIGluY29tZSAtIE1hdGguYWJzKGV4cGVuc2VzKSAtIE1hdGguYWJzKGludGVyZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBOZXQgQ2FzaCAoQ2FzaCBQb3NpdGlvbikgPSBSZW50YWwgSW5jb21lIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHByb3BlcnR5TmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIGNvbnN0IGludGVyZXN0OiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmludGVyZXN0LCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uUFJPUEVSVFlfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnMoaW50ZXJlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IE5ldCBUb3RhbCAoVGF4IFBvc2l0aW9uKSA9IFJlbnRhbCBJbmNvbWUgLSBleHBlbnNlcyAtIGludGVyZXN0IC0gZGVwcmVjaWF0aW9uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgcHJvcGVydHlOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGRlcHJlY2lhdGlvbjogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5kZXByZWNpYXRpb24sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLnByb3BlcnR5TmV0Q2FzaCAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogT3RoZXIgTmV0IENhc2ggPSBncm9zcyBpbmNvbWUg4oCTIGV4cGVuc2VzIOKAkyB0YXggd2l0aGhlbGQgLSB0YXggaW5zdGFsbWVudHNcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBvdGhlck5ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMub3RoZXIuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuaW5jb21lLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMub3RoZXIuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCB0YXhXaXRoaGVsZDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX1dJVEhIRUxEXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheEluc3RhbG1lbnRzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfSU5TVEFMTUVOVFNdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnModGF4V2l0aGhlbGQpIC0gTWF0aC5hYnModGF4SW5zdGFsbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE90aGVyIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzICsgdGF4IG9mZnNldHMgKyB0YXggaW5zdGFsbWVudHMgKyBmcmFua2luZyBjcmVkaXRzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgb3RoZXJOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheE9mZnNldHM6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9PRkZTRVRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNVTU1BUlkpO1xuICAgIGNvbnN0IHRheEluc3RhbGxtZW50czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX0lOU1RBTE1FTlRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IGZyYW5raW5nQ3JlZGl0czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uRlJBTktJTkdfQ1JFRElUU10sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgLSBNYXRoLmFicyhleHBlbnNlcykgKyBNYXRoLmFicyh0YXhPZmZzZXRzKSArIE1hdGguYWJzKHRheEluc3RhbGxtZW50cykgKyBNYXRoLmFicyhmcmFua2luZ0NyZWRpdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbGUgTmV0IENhc2ggPSBncm9zcyBpbmNvbWUg4oCTIGV4cGVuc2VzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgc29sZU5ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNPTEVfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU09MRV9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgKyBleHBlbnNlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2xlIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgc29sZU5ldFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5jb21lOiBudW1iZXIgPSB0aGlzLnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmluY29tZSk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXMoVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUuZXhwZW5zZXMpO1xuICAgIGNvbnN0IGRlcHJlY2lhdGlvbjogbnVtYmVyID0gdGhpcy5zb2xlLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllcyhUQVhfUkVUVVJOX0NBVEVHT1JJRVMuc29sZS5kZXByZWNpYXRpb24pO1xuICAgIGNvbnN0IGxvc3M6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXMoVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUubG9zcyk7XG4gICAgY29uc3QgbG9zc0N1cnJlbnQ6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmxvc3NDdXJyZW50LCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU09MRV9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgKyBleHBlbnNlcyArIGRlcHJlY2lhdGlvbiArIGxvc3MgKyBsb3NzQ3VycmVudDtcbiAgfVxufVxuIl19
|