taxtank-core 0.33.45 → 0.33.47
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/src/lib/collections/chart-accounts/chart-accounts-value.collection.mjs +20 -0
- package/esm2022/src/lib/collections/chart-accounts/index.mjs +2 -0
- package/esm2022/src/lib/collections/chart-accounts.collection.mjs +2 -2
- package/esm2022/src/lib/collections/collection.mjs +2 -2
- package/esm2022/src/lib/collections/index.mjs +2 -1
- package/esm2022/src/lib/collections/transaction/transaction.collection.mjs +3 -3
- package/esm2022/src/lib/db/Enums/{allocation-rule-condition-comparison-operator.enum.mjs → bank/allocation-rule/allocation-rule-condition-comparison-operator.enum.mjs} +1 -1
- package/esm2022/src/lib/db/Enums/{allocation-rule-condition-field.enum.mjs → bank/allocation-rule/allocation-rule-condition-field.enum.mjs} +1 -1
- package/esm2022/src/lib/db/Enums/{allocation-rule-condition-operator.enum.mjs → bank/allocation-rule/allocation-rule-condition-operator.enum.mjs} +1 -1
- package/esm2022/src/lib/db/Enums/bank/allocation-rule/allocation-rule-type.enum.mjs +7 -0
- package/esm2022/src/lib/db/Enums/bank/allocation-rule/index.mjs +5 -0
- package/esm2022/src/lib/db/Enums/bank/index.mjs +2 -1
- package/esm2022/src/lib/db/Enums/chart-accounts/business-chart-accounts.enum.mjs +39 -0
- package/esm2022/src/lib/db/Enums/chart-accounts/chart-accounts-list.enum.mjs +20 -66
- package/esm2022/src/lib/db/Enums/chart-accounts/home-office-chart-accounts.enum.mjs +18 -0
- package/esm2022/src/lib/db/Enums/chart-accounts/index.mjs +3 -3
- package/esm2022/src/lib/db/Enums/home-office/home-office-claim-method.enum.mjs +7 -0
- package/esm2022/src/lib/db/Enums/home-office/index.mjs +2 -0
- package/esm2022/src/lib/db/Enums/index.mjs +2 -6
- package/esm2022/src/lib/db/Models/bank/bank-transaction.mjs +2 -2
- package/esm2022/src/lib/db/Models/depreciation/depreciation.mjs +1 -2
- package/esm2022/src/lib/db/Models/sole/sole-business.mjs +2 -1
- package/esm2022/src/lib/db/Models/sole/sole-details.mjs +2 -1
- package/esm2022/src/lib/db/Models/user/user.mjs +1 -1
- package/esm2022/src/lib/db/Models/vehicle/vehicle-claim.mjs +2 -1
- package/esm2022/src/lib/forms/abstract.form.mjs +34 -2
- package/esm2022/src/lib/forms/address/address.form.mjs +1 -1
- package/esm2022/src/lib/forms/firm/employee-invite.form.mjs +1 -1
- package/esm2022/src/lib/forms/home-office/home-office-claim.form.mjs +47 -0
- package/esm2022/src/lib/forms/home-office/home-office-log.form.mjs +15 -0
- package/esm2022/src/lib/forms/home-office/index.mjs +3 -0
- package/esm2022/src/lib/forms/index.mjs +2 -1
- package/esm2022/src/lib/forms/transaction/allocation-rule-transaction.form.mjs +4 -2
- package/esm2022/src/lib/forms/transaction/allocation-rule.form.mjs +13 -13
- package/esm2022/src/lib/models/chart-accounts/chart-accounts.mjs +17 -11
- package/esm2022/src/lib/models/endpoint/endpoint.mjs +1 -1
- package/esm2022/src/lib/models/endpoint/endpoints.const.mjs +4 -1
- package/esm2022/src/lib/models/home-office/home-office-claim.interface.mjs +2 -0
- package/esm2022/src/lib/models/home-office/home-office-claim.mjs +26 -0
- package/esm2022/src/lib/models/home-office/home-office-log.interface.mjs +2 -0
- package/esm2022/src/lib/models/home-office/home-office-log.mjs +14 -0
- package/esm2022/src/lib/models/home-office/index.mjs +5 -0
- package/esm2022/src/lib/models/index.mjs +2 -1
- package/esm2022/src/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.mjs +14 -14
- package/esm2022/src/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.mjs +18 -18
- package/esm2022/src/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.mjs +12 -12
- package/esm2022/src/lib/models/sole/sole-invoice-item.mjs +25 -2
- package/esm2022/src/lib/models/transaction/transaction.mjs +6 -3
- package/esm2022/src/lib/services/http/home-office/home-office-claim-messages.enum.mjs +8 -0
- package/esm2022/src/lib/services/http/home-office/home-office-claim.service.mjs +23 -0
- package/esm2022/src/lib/services/http/home-office/home-office-log-messages.enum.mjs +8 -0
- package/esm2022/src/lib/services/http/home-office/home-office-log.service.mjs +23 -0
- package/esm2022/src/lib/services/http/home-office/index.mjs +5 -0
- package/esm2022/src/lib/services/http/index.mjs +3 -1
- package/esm2022/src/lib/services/http/rest-messages.enum.mjs +7 -0
- package/esm2022/src/lib/services/http/transaction/transaction.service.mjs +11 -7
- package/esm2022/src/lib/services/json/chart-accounts/chart-accounts-value.service.mjs +4 -12
- package/fesm2022/taxtank-core.mjs +383 -175
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/collections/chart-accounts/chart-accounts-value.collection.d.ts +12 -0
- package/src/lib/collections/chart-accounts/index.d.ts +1 -0
- package/src/lib/collections/collection.d.ts +1 -1
- package/src/lib/collections/index.d.ts +1 -0
- package/src/lib/db/Enums/bank/allocation-rule/index.d.ts +4 -0
- package/src/lib/db/Enums/bank/index.d.ts +1 -0
- package/src/lib/db/Enums/chart-accounts/business-chart-accounts.enum.d.ts +37 -0
- package/src/lib/db/Enums/chart-accounts/chart-accounts-list.enum.d.ts +20 -66
- package/src/lib/db/Enums/chart-accounts/home-office-chart-accounts.enum.d.ts +16 -0
- package/src/lib/db/Enums/chart-accounts/index.d.ts +2 -2
- package/src/lib/db/Enums/home-office/home-office-claim-method.enum.d.ts +5 -0
- package/src/lib/db/Enums/home-office/index.d.ts +1 -0
- package/src/lib/db/Enums/index.d.ts +1 -4
- package/src/lib/db/Models/depreciation/depreciation.d.ts +0 -1
- package/src/lib/db/Models/sole/sole-business.d.ts +1 -0
- package/src/lib/db/Models/sole/sole-details.d.ts +1 -0
- package/src/lib/db/Models/user/user.d.ts +1 -1
- package/src/lib/db/Models/vehicle/vehicle-claim.d.ts +1 -0
- package/src/lib/forms/abstract.form.d.ts +10 -0
- package/src/lib/forms/home-office/home-office-claim.form.d.ts +12 -0
- package/src/lib/forms/home-office/home-office-log.form.d.ts +5 -0
- package/src/lib/forms/home-office/index.d.ts +2 -0
- package/src/lib/forms/index.d.ts +1 -0
- package/src/lib/forms/transaction/allocation-rule.form.d.ts +5 -4
- package/src/lib/models/chart-accounts/chart-accounts.d.ts +3 -1
- package/src/lib/models/home-office/home-office-claim.d.ts +22 -0
- package/src/lib/models/home-office/home-office-claim.interface.d.ts +17 -0
- package/src/lib/models/home-office/home-office-log.d.ts +11 -0
- package/src/lib/models/home-office/home-office-log.interface.d.ts +9 -0
- package/src/lib/models/home-office/index.d.ts +4 -0
- package/src/lib/models/index.d.ts +1 -0
- package/src/lib/models/sole/sole-invoice-item.d.ts +2 -1
- package/src/lib/models/transaction/transaction.d.ts +1 -0
- package/src/lib/services/http/home-office/home-office-claim-messages.enum.d.ts +6 -0
- package/src/lib/services/http/home-office/home-office-claim.service.d.ts +12 -0
- package/src/lib/services/http/home-office/home-office-log-messages.enum.d.ts +6 -0
- package/src/lib/services/http/home-office/home-office-log.service.d.ts +12 -0
- package/src/lib/services/http/home-office/index.d.ts +4 -0
- package/src/lib/services/http/index.d.ts +2 -0
- package/src/lib/services/http/rest-messages.enum.d.ts +5 -0
- package/src/lib/services/http/transaction/transaction.service.d.ts +2 -1
- package/src/lib/services/json/chart-accounts/chart-accounts-value.service.d.ts +3 -7
- package/esm2022/src/lib/db/Enums/allocation-rule-type.enum.mjs +0 -7
- package/esm2022/src/lib/db/Enums/chart-accounts/chart-accounts-invoice.enum.mjs +0 -25
- package/esm2022/src/lib/db/Enums/chart-accounts/chart-accounts-unallocatable-list.enum.mjs +0 -6
- package/esm2022/src/lib/validators/address-corelogic.validator.mjs +0 -19
- package/src/lib/db/Enums/chart-accounts/chart-accounts-invoice.enum.d.ts +0 -23
- package/src/lib/db/Enums/chart-accounts/chart-accounts-unallocatable-list.enum.d.ts +0 -4
- package/src/lib/validators/address-corelogic.validator.d.ts +0 -6
- /package/src/lib/db/Enums/{allocation-rule-condition-comparison-operator.enum.d.ts → bank/allocation-rule/allocation-rule-condition-comparison-operator.enum.d.ts} +0 -0
- /package/src/lib/db/Enums/{allocation-rule-condition-field.enum.d.ts → bank/allocation-rule/allocation-rule-condition-field.enum.d.ts} +0 -0
- /package/src/lib/db/Enums/{allocation-rule-condition-operator.enum.d.ts → bank/allocation-rule/allocation-rule-condition-operator.enum.d.ts} +0 -0
- /package/src/lib/db/Enums/{allocation-rule-type.enum.d.ts → bank/allocation-rule/allocation-rule-type.enum.d.ts} +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
import { TAX_RETURN_CATEGORIES } from '../../../../../collections';
|
2
|
-
import { ChartAccountsCategoryEnum, ChartAccountsHeadingListEnum,
|
2
|
+
import { BusinessChartAccountsEnum, ChartAccountsCategoryEnum, ChartAccountsHeadingListEnum, TaxReturnCategoryListEnum, TaxReturnItemEnum, } from '../../../../../db/Enums';
|
3
3
|
import { TaxSummarySectionEnum } from '../../../../../db/Enums/tax-summary-section.enum';
|
4
4
|
/**
|
5
5
|
* Sole business information related to expense transactions (losses)
|
@@ -9,34 +9,34 @@ export class MyTaxBusinessLosses {
|
|
9
9
|
constructor(transactions, depreciations, businessLosses, currentLoss, taxSummary) {
|
10
10
|
this.currentLoss = currentLoss;
|
11
11
|
this.purchasesAndOtherCostsAmount = Math.abs(transactions.getExpenseTransactions()
|
12
|
-
.filterBy('chartAccounts.id',
|
12
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.PURCHASES_STOCK_INVENTORY)
|
13
13
|
.sumBy('claimAmount'));
|
14
14
|
this.contractorsAndCommissionAmount = Math.abs(transactions.getExpenseTransactions()
|
15
|
-
.filterBy('chartAccounts.id',
|
15
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.CONTRACTORS_AND_COMMISSION)
|
16
16
|
.sumBy('claimAmount'));
|
17
17
|
this.superannuationAmount = Math.abs(transactions.getExpenseTransactions()
|
18
|
-
.filterBy('chartAccounts.id',
|
18
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.SUPERANNUATION)
|
19
19
|
.sumBy('claimAmount'));
|
20
20
|
this.badDebtAmount = Math.abs(transactions.getExpenseTransactions()
|
21
|
-
.filterBy('chartAccounts.id',
|
21
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.BAD_DEBT)
|
22
22
|
.sumBy('claimAmount'));
|
23
23
|
this.leaseExpensesCommercialAmount = Math.abs(transactions.getExpenseTransactions()
|
24
|
-
.filterBy('chartAccounts.id',
|
24
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.LEASE_EXPENSES_COMMERCIAL)
|
25
25
|
.sumBy('claimAmount'));
|
26
26
|
this.rentExpensesCommercialPremisesAmount = Math.abs(transactions.getExpenseTransactions()
|
27
|
-
.filterBy('chartAccounts.id',
|
27
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.RENT_EXPENSES_COMMERCIAL_PREMISES)
|
28
28
|
.sumBy('claimAmount'));
|
29
29
|
this.interestExpensesAustraliaAmount = Math.abs(transactions.getExpenseTransactions()
|
30
|
-
.filterBy('chartAccounts.id',
|
30
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.INTEREST_EXPENSES_AUSTRALIA)
|
31
31
|
.sumBy('claimAmount'));
|
32
32
|
this.interestExpensesOverseasAmount = Math.abs(transactions.getExpenseTransactions()
|
33
|
-
.filterBy('chartAccounts.id',
|
33
|
+
.filterBy('chartAccounts.id', BusinessChartAccountsEnum.INTEREST_EXPENSES_OVERSEAS)
|
34
34
|
.sumBy('claimAmount'));
|
35
35
|
this.kmsTravelledExpensesAmount = Math.abs(transactions
|
36
|
-
.filterBy('chartAccounts.category', [
|
36
|
+
.filterBy('chartAccounts.category', [BusinessChartAccountsEnum.KMS_TRAVELLED])
|
37
37
|
.sumBy('claimAmount') +
|
38
38
|
depreciations
|
39
|
-
.filterBy('chartAccounts.category', [
|
39
|
+
.filterBy('chartAccounts.category', [BusinessChartAccountsEnum.KMS_TRAVELLED])
|
40
40
|
.sumBy('claimAmount'));
|
41
41
|
this.logbookExpensesAmount = Math.abs(transactions.getVehicleTransactions().sumBy('claimAmount')) +
|
42
42
|
depreciations.getVehicleDepreciations().sumBy('claimAmount');
|
@@ -66,4 +66,4 @@ export class MyTaxBusinessLosses {
|
|
66
66
|
this.deferredLossesAmount = taxSummary.sole.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.sole.lossCurrent, TaxSummarySectionEnum.SOLE_TANK);
|
67
67
|
}
|
68
68
|
}
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWxvc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3MtaW5jb21lLW9yLWxvc3Nlcy9teS10YXgtYnVzaW5lc3MtbG9zc2VzL215LXRheC1idXNpbmVzcy1sb3NzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixFQUV0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsaUJBQWlCLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFekY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUIsWUFDRSxZQUFtQyxFQUNuQyxhQUFxQyxFQUNyQyxjQUEwQyxFQUMxQyxXQUE2QixFQUM3QixVQUFzQjtRQUV0QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUU7YUFDL0UsUUFBUSxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDO2FBQzdFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRTthQUNqRixRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsMEJBQTBCLENBQUM7YUFDOUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7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QkFBMEIsRUFBRSw0QkFBNEIsQ0FBQyxxQkFBcUIsQ0FBQzthQUN4RixLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGFBQWE7YUFDbEQsMEJBQTBCLEVBQUU7YUFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQywyQ0FBMkMsR0FBRyxhQUFhO2FBQzdELG1CQUFtQixFQUFFO2FBQ3JCLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsNENBQTRDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQ2pHLENBQUMseUJBQXlCLENBQUMsdUJBQXVCLENBQUMsRUFDbkQscUJBQXFCLENBQUMsU0FBUyxDQUNoQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyw0Q0FBNEM7WUFDeEYsSUFBSSxDQUFDLGdDQUFnQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FDekUscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFDdEMscUJBQXFCLENBQUMsU0FBUyxDQUNoQyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbixcbiAgU29sZUJ1c2luZXNzTG9zc0NvbGxlY3Rpb24sXG4gIFRBWF9SRVRVUk5fQ0FURUdPUklFUyxcbiAgVHJhbnNhY3Rpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7XG4gIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0sXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0sXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSxcbiAgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSxcbiAgVGF4UmV0dXJuSXRlbUVudW1cbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzTG9zcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NvbGUnO1xuaW1wb3J0IHsgVGF4U3VtbWFyeSB9IGZyb20gJy4uLy4uLy4uLy4uL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5JztcbmltcG9ydCB7IFRheFN1bW1hcnlTZWN0aW9uRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RiL0VudW1zL3RheC1zdW1tYXJ5LXNlY3Rpb24uZW51bSc7XG5cbi8qKlxuICogU29sZSBidXNpbmVzcyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGV4cGVuc2UgdHJhbnNhY3Rpb25zIChsb3NzZXMpXG4gKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQ2NDQxMTA0NjYvVGF4K1JldHVybitNeVRheCstK09ubGluZStGb3JtIChzZWN0aW9uIFwiQnVzaW5lc3MgaW5jb21lIG9yIGxvc3Nlc1wiKVxuICovXG5leHBvcnQgY2xhc3MgTXlUYXhCdXNpbmVzc0xvc3NlcyB7XG4gIGN1cnJlbnRMb3NzOiBTb2xlQnVzaW5lc3NMb3NzO1xuICBwdXJjaGFzZXNBbmRPdGhlckNvc3RzQW1vdW50OiBudW1iZXI7XG4gIGNvbnRyYWN0b3JzQW5kQ29tbWlzc2lvbkFtb3VudDogbnVtYmVyO1xuICBzdXBlcmFubnVhdGlvbkFtb3VudDogbnVtYmVyO1xuICBiYWREZWJ0QW1vdW50OiBudW1iZXI7XG4gIGxlYXNlRXhwZW5zZXNDb21tZXJjaWFsQW1vdW50OiBudW1iZXI7XG4gIHJlbnRFeHBlbnNlc0NvbW1lcmNpYWxQcmVtaXNlc0Ftb3VudDogbnVtYmVyO1xuICBpbnRlcmVzdEV4cGVuc2VzQXVzdHJhbGlhQW1vdW50OiBudW1iZXI7XG4gIGludGVyZXN0RXhwZW5zZXNPdmVyc2Vhc0Ftb3VudDogbnVtYmVyO1xuICBrbXNUcmF2ZWxsZWRFeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICBsb2dib29rRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgb3RoZXJFeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICB0b3RhbE5vblByaW1hcnlQcm9kdWN0aW9uRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVwcmVjaWF0aW9uRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVkdWN0aW9uc0ZvckNlcnRhaW5Bc3NldHNBbW91bnQ6IG51bWJlcjtcbiAgZGVkdWN0aW9uc0ZvckdlbmVyYWxTbWFsbEJ1c2luZXNzUG9vbEFtb3VudDogbnVtYmVyO1xuICBwcmlvclllYXJzTm9uUHJpbWFyeUxvc3Nlc0Ftb3VudDogbnVtYmVyO1xuICBuZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQ6IG51bWJlcjtcbiAgY3VycmVudFllYXJOZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVmZXJyZWRMb3NzZXNBbW91bnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICAgIGJ1c2luZXNzTG9zc2VzOiBTb2xlQnVzaW5lc3NMb3NzQ29sbGVjdGlvbixcbiAgICBjdXJyZW50TG9zczogU29sZUJ1c2luZXNzTG9zcyxcbiAgICB0YXhTdW1tYXJ5OiBUYXhTdW1tYXJ5XG4gICkge1xuICAgIHRoaXMuY3VycmVudExvc3MgPSBjdXJyZW50TG9zcztcbiAgICB0aGlzLnB1cmNoYXNlc0FuZE90aGVyQ29zdHNBbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uUFVSQ0hBU0VTX1NUT0NLX0lOVkVOVE9SWSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5jb250cmFjdG9yc0FuZENvbW1pc3Npb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uQ09OVFJBQ1RPUlNfQU5EX0NPTU1JU1NJT04pXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuc3VwZXJhbm51YXRpb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uU1VQRVJBTk5VQVRJT04pXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuYmFkRGVidEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5CQURfREVCVClcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5sZWFzZUV4cGVuc2VzQ29tbWVyY2lhbEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5MRUFTRV9FWFBFTlNFU19DT01NRVJDSUFMKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnJlbnRFeHBlbnNlc0NvbW1lcmNpYWxQcmVtaXNlc0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5SRU5UX0VYUEVOU0VTX0NPTU1FUkNJQUxfUFJFTUlTRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc0F1c3RyYWxpYUFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9FWFBFTlNFU19BVVNUUkFMSUEpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc092ZXJzZWFzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX0VYUEVOU0VTX09WRVJTRUFTKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLmttc1RyYXZlbGxlZEV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnMoXG4gICAgICB0cmFuc2FjdGlvbnNcbiAgICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmNhdGVnb3J5JywgW0NoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF0pXG4gICAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSArXG4gICAgICBkZXByZWNpYXRpb25zXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIFtDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURdKVxuICAgICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JylcbiAgICApO1xuICAgIHRoaXMubG9nYm9va0V4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldFZlaGljbGVUcmFuc2FjdGlvbnMoKS5zdW1CeSgnY2xhaW1BbW91bnQnKSkgK1xuICAgICAgZGVwcmVjaWF0aW9ucy5nZXRWZWhpY2xlRGVwcmVjaWF0aW9ucygpLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIHRoaXMub3RoZXJFeHBlbnNlc0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9uc1xuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLnRheFJldHVybkl0ZW0uaWQnLCBUYXhSZXR1cm5JdGVtRW51bS5BTExfT1RIRVJfRVhQRU5TRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMudG90YWxOb25QcmltYXJ5UHJvZHVjdGlvbkV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuY2F0ZWdvcnknLCBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0VYUEVOU0VdKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKSArXG4gICAgICBkZXByZWNpYXRpb25zXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIFtDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfREVQUkVDSUFUSU9OXSlcbiAgICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIC8vIGRlcHJlY2lhdGlvbnNcbiAgICB0aGlzLmRlcHJlY2lhdGlvbkV4cGVuc2VzQW1vdW50ID0gZGVwcmVjaWF0aW9uc1xuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmhlYWRpbmcuaWQnLCBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLkRFUFJFQ0lBVElPTl9FWFBFTlNFUylcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICB0aGlzLmRlZHVjdGlvbnNGb3JDZXJ0YWluQXNzZXRzQW1vdW50ID0gZGVwcmVjaWF0aW9uc1xuICAgICAgLmdldFdyaXR0ZW5PZmZEZXByZWNpYXRpb25zKClcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICB0aGlzLmRlZHVjdGlvbnNGb3JHZW5lcmFsU21hbGxCdXNpbmVzc1Bvb2xBbW91bnQgPSBkZXByZWNpYXRpb25zXG4gICAgICAuZ2V0U0JQRGVwcmVjaWF0aW9ucygpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5jdXJyZW50WWVhck5ldE5vblByaW1hcnlJbmNvbWVPckxvc3Nlc0Ftb3VudCA9IHRheFN1bW1hcnkuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFxuICAgICAgW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uQlVTSU5FU1NfSU5DT01FX09SX0xPU1NdLFxuICAgICAgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNPTEVfVEFOS1xuICAgIClcbiAgICB0aGlzLnByaW9yWWVhcnNOb25QcmltYXJ5TG9zc2VzQW1vdW50ID0gYnVzaW5lc3NMb3NzZXMuc3VtQnkoJ29wZW5CYWxhbmNlJyk7XG4gICAgdGhpcy5uZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQgPSB0aGlzLmN1cnJlbnRZZWFyTmV0Tm9uUHJpbWFyeUluY29tZU9yTG9zc2VzQW1vdW50IC1cbiAgICAgIHRoaXMucHJpb3JZZWFyc05vblByaW1hcnlMb3NzZXNBbW91bnQ7XG4gICAgdGhpcy5kZWZlcnJlZExvc3Nlc0Ftb3VudCA9IHRheFN1bW1hcnkuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFxuICAgICAgVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUubG9zc0N1cnJlbnQsXG4gICAgICBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU09MRV9UQU5LXG4gICAgKVxuICB9XG59XG4iXX0=
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWxvc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3MtaW5jb21lLW9yLWxvc3Nlcy9teS10YXgtYnVzaW5lc3MtbG9zc2VzL215LXRheC1idXNpbmVzcy1sb3NzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixFQUV0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsaUJBQWlCLEdBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFekY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUIsWUFDRSxZQUFtQyxFQUNuQyxhQUFxQyxFQUNyQyxjQUEwQyxFQUMxQyxXQUE2QixFQUM3QixVQUFzQjtRQUV0QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUU7YUFDL0UsUUFBUSxDQUFDLGtCQUFrQixFQUFFLHlCQUF5QixDQUFDLHlCQUF5QixDQUFDO2FBQ2pGLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRTthQUNqRixRQUFRLENBQUMsa0JBQWtCLEVBQUUseUJBQXlCLENBQUMsMEJBQTBCLENBQUM7YUFDbEYsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7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QkFBMEIsRUFBRSw0QkFBNEIsQ0FBQyxxQkFBcUIsQ0FBQzthQUN4RixLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGFBQWE7YUFDbEQsMEJBQTBCLEVBQUU7YUFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQywyQ0FBMkMsR0FBRyxhQUFhO2FBQzdELG1CQUFtQixFQUFFO2FBQ3JCLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsNENBQTRDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQ2pHLENBQUMseUJBQXlCLENBQUMsdUJBQXVCLENBQUMsRUFDbkQscUJBQXFCLENBQUMsU0FBUyxDQUNoQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyw0Q0FBNEM7WUFDeEYsSUFBSSxDQUFDLGdDQUFnQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FDekUscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFDdEMscUJBQXFCLENBQUMsU0FBUyxDQUNoQyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbixcbiAgU29sZUJ1c2luZXNzTG9zc0NvbGxlY3Rpb24sXG4gIFRBWF9SRVRVUk5fQ0FURUdPUklFUyxcbiAgVHJhbnNhY3Rpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7XG4gIEJ1c2luZXNzQ2hhcnRBY2NvdW50c0VudW0sXG4gIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0sXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0sXG4gIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0sXG4gIFRheFJldHVybkl0ZW1FbnVtLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBTb2xlQnVzaW5lc3NMb3NzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc29sZSc7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vdGF4LXN1bW1hcnkvdGF4LXN1bW1hcnknO1xuaW1wb3J0IHsgVGF4U3VtbWFyeVNlY3Rpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvdGF4LXN1bW1hcnktc2VjdGlvbi5lbnVtJztcblxuLyoqXG4gKiBTb2xlIGJ1c2luZXNzIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gZXhwZW5zZSB0cmFuc2FjdGlvbnMgKGxvc3NlcylcbiAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKHNlY3Rpb24gXCJCdXNpbmVzcyBpbmNvbWUgb3IgbG9zc2VzXCIpXG4gKi9cbmV4cG9ydCBjbGFzcyBNeVRheEJ1c2luZXNzTG9zc2VzIHtcbiAgY3VycmVudExvc3M6IFNvbGVCdXNpbmVzc0xvc3M7XG4gIHB1cmNoYXNlc0FuZE90aGVyQ29zdHNBbW91bnQ6IG51bWJlcjtcbiAgY29udHJhY3RvcnNBbmRDb21taXNzaW9uQW1vdW50OiBudW1iZXI7XG4gIHN1cGVyYW5udWF0aW9uQW1vdW50OiBudW1iZXI7XG4gIGJhZERlYnRBbW91bnQ6IG51bWJlcjtcbiAgbGVhc2VFeHBlbnNlc0NvbW1lcmNpYWxBbW91bnQ6IG51bWJlcjtcbiAgcmVudEV4cGVuc2VzQ29tbWVyY2lhbFByZW1pc2VzQW1vdW50OiBudW1iZXI7XG4gIGludGVyZXN0RXhwZW5zZXNBdXN0cmFsaWFBbW91bnQ6IG51bWJlcjtcbiAgaW50ZXJlc3RFeHBlbnNlc092ZXJzZWFzQW1vdW50OiBudW1iZXI7XG4gIGttc1RyYXZlbGxlZEV4cGVuc2VzQW1vdW50OiBudW1iZXI7XG4gIGxvZ2Jvb2tFeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICBvdGhlckV4cGVuc2VzQW1vdW50OiBudW1iZXI7XG4gIHRvdGFsTm9uUHJpbWFyeVByb2R1Y3Rpb25FeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICBkZXByZWNpYXRpb25FeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICBkZWR1Y3Rpb25zRm9yQ2VydGFpbkFzc2V0c0Ftb3VudDogbnVtYmVyO1xuICBkZWR1Y3Rpb25zRm9yR2VuZXJhbFNtYWxsQnVzaW5lc3NQb29sQW1vdW50OiBudW1iZXI7XG4gIHByaW9yWWVhcnNOb25QcmltYXJ5TG9zc2VzQW1vdW50OiBudW1iZXI7XG4gIG5ldE5vblByaW1hcnlJbmNvbWVPckxvc3Nlc0Ftb3VudDogbnVtYmVyO1xuICBjdXJyZW50WWVhck5ldE5vblByaW1hcnlJbmNvbWVPckxvc3Nlc0Ftb3VudDogbnVtYmVyO1xuICBkZWZlcnJlZExvc3Nlc0Ftb3VudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gICAgYnVzaW5lc3NMb3NzZXM6IFNvbGVCdXNpbmVzc0xvc3NDb2xsZWN0aW9uLFxuICAgIGN1cnJlbnRMb3NzOiBTb2xlQnVzaW5lc3NMb3NzLFxuICAgIHRheFN1bW1hcnk6IFRheFN1bW1hcnlcbiAgKSB7XG4gICAgdGhpcy5jdXJyZW50TG9zcyA9IGN1cnJlbnRMb3NzO1xuICAgIHRoaXMucHVyY2hhc2VzQW5kT3RoZXJDb3N0c0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIEJ1c2luZXNzQ2hhcnRBY2NvdW50c0VudW0uUFVSQ0hBU0VTX1NUT0NLX0lOVkVOVE9SWSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5jb250cmFjdG9yc0FuZENvbW1pc3Npb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkNPTlRSQUNUT1JTX0FORF9DT01NSVNTSU9OKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnN1cGVyYW5udWF0aW9uQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5TVVBFUkFOTlVBVElPTilcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5iYWREZWJ0QW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5CQURfREVCVClcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5sZWFzZUV4cGVuc2VzQ29tbWVyY2lhbEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIEJ1c2luZXNzQ2hhcnRBY2NvdW50c0VudW0uTEVBU0VfRVhQRU5TRVNfQ09NTUVSQ0lBTClcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5yZW50RXhwZW5zZXNDb21tZXJjaWFsUHJlbWlzZXNBbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLlJFTlRfRVhQRU5TRVNfQ09NTUVSQ0lBTF9QUkVNSVNFUylcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5pbnRlcmVzdEV4cGVuc2VzQXVzdHJhbGlhQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5JTlRFUkVTVF9FWFBFTlNFU19BVVNUUkFMSUEpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc092ZXJzZWFzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5JTlRFUkVTVF9FWFBFTlNFU19PVkVSU0VBUylcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5rbXNUcmF2ZWxsZWRFeHBlbnNlc0Ftb3VudCA9IE1hdGguYWJzKFxuICAgICAgdHJhbnNhY3Rpb25zXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIFtCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLktNU19UUkFWRUxMRURdKVxuICAgICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykgK1xuICAgICAgZGVwcmVjaWF0aW9uc1xuICAgICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuY2F0ZWdvcnknLCBbQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5LTVNfVFJBVkVMTEVEXSlcbiAgICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpXG4gICAgKTtcbiAgICB0aGlzLmxvZ2Jvb2tFeHBlbnNlc0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRWZWhpY2xlVHJhbnNhY3Rpb25zKCkuc3VtQnkoJ2NsYWltQW1vdW50JykpICtcbiAgICAgIGRlcHJlY2lhdGlvbnMuZ2V0VmVoaWNsZURlcHJlY2lhdGlvbnMoKS5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICB0aGlzLm90aGVyRXhwZW5zZXNBbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnNcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy50YXhSZXR1cm5JdGVtLmlkJywgVGF4UmV0dXJuSXRlbUVudW0uQUxMX09USEVSX0VYUEVOU0VTKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnRvdGFsTm9uUHJpbWFyeVByb2R1Y3Rpb25FeHBlbnNlc0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9uc1xuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmNhdGVnb3J5JywgW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9FWFBFTlNFXSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSkgK1xuICAgICAgZGVwcmVjaWF0aW9uc1xuICAgICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuY2F0ZWdvcnknLCBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0RFUFJFQ0lBVElPTl0pXG4gICAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICAvLyBkZXByZWNpYXRpb25zXG4gICAgdGhpcy5kZXByZWNpYXRpb25FeHBlbnNlc0Ftb3VudCA9IGRlcHJlY2lhdGlvbnNcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5oZWFkaW5nLmlkJywgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5ERVBSRUNJQVRJT05fRVhQRU5TRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5kZWR1Y3Rpb25zRm9yQ2VydGFpbkFzc2V0c0Ftb3VudCA9IGRlcHJlY2lhdGlvbnNcbiAgICAgIC5nZXRXcml0dGVuT2ZmRGVwcmVjaWF0aW9ucygpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5kZWR1Y3Rpb25zRm9yR2VuZXJhbFNtYWxsQnVzaW5lc3NQb29sQW1vdW50ID0gZGVwcmVjaWF0aW9uc1xuICAgICAgLmdldFNCUERlcHJlY2lhdGlvbnMoKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIHRoaXMuY3VycmVudFllYXJOZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQgPSB0YXhTdW1tYXJ5LnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihcbiAgICAgIFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkJVU0lORVNTX0lOQ09NRV9PUl9MT1NTXSxcbiAgICAgIFRheFN1bW1hcnlTZWN0aW9uRW51bS5TT0xFX1RBTktcbiAgICApXG4gICAgdGhpcy5wcmlvclllYXJzTm9uUHJpbWFyeUxvc3Nlc0Ftb3VudCA9IGJ1c2luZXNzTG9zc2VzLnN1bUJ5KCdvcGVuQmFsYW5jZScpO1xuICAgIHRoaXMubmV0Tm9uUHJpbWFyeUluY29tZU9yTG9zc2VzQW1vdW50ID0gdGhpcy5jdXJyZW50WWVhck5ldE5vblByaW1hcnlJbmNvbWVPckxvc3Nlc0Ftb3VudCAtXG4gICAgICB0aGlzLnByaW9yWWVhcnNOb25QcmltYXJ5TG9zc2VzQW1vdW50O1xuICAgIHRoaXMuZGVmZXJyZWRMb3NzZXNBbW91bnQgPSB0YXhTdW1tYXJ5LnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihcbiAgICAgIFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmxvc3NDdXJyZW50LFxuICAgICAgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNPTEVfVEFOS1xuICAgIClcbiAgfVxufVxuIl19
|
@@ -6,12 +6,35 @@ import { Type, plainToClass } from 'class-transformer';
|
|
6
6
|
import { Transaction } from '../transaction';
|
7
7
|
import { TransactionSourceEnum } from '../../db/Enums/transaction-source.enum';
|
8
8
|
import { TransactionOperationEnum } from '../../db/Enums/transaction-operation.enum';
|
9
|
-
import { SoleInvoiceTaxTypeEnum } from '../../db/Enums';
|
9
|
+
import { BusinessChartAccountsEnum, SoleInvoiceTaxTypeEnum } from '../../db/Enums';
|
10
10
|
export class SoleInvoiceItem extends SoleInvoiceItemBase {
|
11
11
|
constructor() {
|
12
12
|
super(...arguments);
|
13
13
|
this.isGST = false;
|
14
14
|
}
|
15
|
+
static { this.chartAccounts = [
|
16
|
+
BusinessChartAccountsEnum.PSI_ABN_NOT_QUOTED,
|
17
|
+
BusinessChartAccountsEnum.PSI_LABOUR_HIRE_OR_OTHER,
|
18
|
+
BusinessChartAccountsEnum.PSI_VOLUNTARY_AGREEMENT,
|
19
|
+
BusinessChartAccountsEnum.SALES,
|
20
|
+
BusinessChartAccountsEnum.LABOUR,
|
21
|
+
BusinessChartAccountsEnum.UBER_INCOME,
|
22
|
+
BusinessChartAccountsEnum.COMMISSION,
|
23
|
+
BusinessChartAccountsEnum.PARTS_CONSUMABLES,
|
24
|
+
BusinessChartAccountsEnum.OTHER_BUSINESS_INCOME,
|
25
|
+
BusinessChartAccountsEnum.ASSESSIBLE_GOVERNMENT_PAYMENTS,
|
26
|
+
BusinessChartAccountsEnum.GROSS_PAYMENTS_NO_ABN_GIVEN,
|
27
|
+
BusinessChartAccountsEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT,
|
28
|
+
BusinessChartAccountsEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER_SPECIFIED_PAYMENTS,
|
29
|
+
BusinessChartAccountsEnum.CONTRACTORS_AND_COMMISSION,
|
30
|
+
BusinessChartAccountsEnum.SUPERANNUATION,
|
31
|
+
BusinessChartAccountsEnum.PSI_OTHER,
|
32
|
+
BusinessChartAccountsEnum.OTHER_ASSESSABLE_PAYMENTS,
|
33
|
+
BusinessChartAccountsEnum.JOBKEEPER,
|
34
|
+
BusinessChartAccountsEnum.GST_REFUND,
|
35
|
+
BusinessChartAccountsEnum.PAYG_INSTALLMENTS,
|
36
|
+
BusinessChartAccountsEnum.INTEREST_EARNED
|
37
|
+
]; }
|
15
38
|
get totalPrice() {
|
16
39
|
return this.price * this.quantity;
|
17
40
|
}
|
@@ -44,4 +67,4 @@ __decorate([
|
|
44
67
|
__decorate([
|
45
68
|
Type(() => Transaction)
|
46
69
|
], SoleInvoiceItem.prototype, "transactions", void 0);
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NvbGUvc29sZS1pbnZvaWNlLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLElBQUksbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5GLE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUF4RDs7UUFpQ0UsVUFBSyxHQUFHLEtBQUssQ0FBQztJQTJCaEIsQ0FBQzthQTNEUSxrQkFBYSxHQUFHO1FBQ3JCLHlCQUF5QixDQUFDLGtCQUFrQjtRQUM1Qyx5QkFBeUIsQ0FBQyx3QkFBd0I7UUFDbEQseUJBQXlCLENBQUMsdUJBQXVCO1FBQ2pELHlCQUF5QixDQUFDLEtBQUs7UUFDL0IseUJBQXlCLENBQUMsTUFBTTtRQUNoQyx5QkFBeUIsQ0FBQyxXQUFXO1FBQ3JDLHlCQUF5QixDQUFDLFVBQVU7UUFDcEMseUJBQXlCLENBQUMsaUJBQWlCO1FBQzNDLHlCQUF5QixDQUFDLHFCQUFxQjtRQUMvQyx5QkFBeUIsQ0FBQyw4QkFBOEI7UUFDeEQseUJBQXlCLENBQUMsMkJBQTJCO1FBQ3JELHlCQUF5QixDQUFDLGtDQUFrQztRQUM1RCx5QkFBeUIsQ0FBQyxzREFBc0Q7UUFDaEYseUJBQXlCLENBQUMsMEJBQTBCO1FBQ3BELHlCQUF5QixDQUFDLGNBQWM7UUFDeEMseUJBQXlCLENBQUMsU0FBUztRQUNuQyx5QkFBeUIsQ0FBQyx5QkFBeUI7UUFDbkQseUJBQXlCLENBQUMsU0FBUztRQUNuQyx5QkFBeUIsQ0FBQyxVQUFVO1FBQ3BDLHlCQUF5QixDQUFDLGlCQUFpQjtRQUMzQyx5QkFBeUIsQ0FBQyxlQUFlO0tBQzFDLEFBdEJtQixDQXNCbEI7SUFZRixJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQStCLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLFVBQVUsRUFBRTtZQUNkLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RILE9BQU8sVUFBVSxHQUFHLFdBQVcsQ0FBQztTQUNqQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RILE9BQU8sVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxnQkFBZ0I7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxnQkFBZ0I7WUFDcEQsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsQ0Q7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2dEQUNIO0FBR3JCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztzREFDRztBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7cURBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb2xlSW52b2ljZUl0ZW0gYXMgU29sZUludm9pY2VJdGVtQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zb2xlL3NvbGUtaW52b2ljZS1pdGVtJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlIH0gZnJvbSAnLi9zb2xlLWludm9pY2UnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IFR5cGUsIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Tb3VyY2VFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tc291cmNlLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bSwgU29sZUludm9pY2VUYXhUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlSXRlbSBleHRlbmRzIFNvbGVJbnZvaWNlSXRlbUJhc2Uge1xuICBzdGF0aWMgY2hhcnRBY2NvdW50cyA9IFtcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLlBTSV9BQk5fTk9UX1FVT1RFRCxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLlBTSV9MQUJPVVJfSElSRV9PUl9PVEhFUixcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLlBTSV9WT0xVTlRBUllfQUdSRUVNRU5ULFxuICAgIEJ1c2luZXNzQ2hhcnRBY2NvdW50c0VudW0uU0FMRVMsXG4gICAgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5MQUJPVVIsXG4gICAgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5VQkVSX0lOQ09NRSxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkNPTU1JU1NJT04sXG4gICAgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5QQVJUU19DT05TVU1BQkxFUyxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLk9USEVSX0JVU0lORVNTX0lOQ09NRSxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkFTU0VTU0lCTEVfR09WRVJOTUVOVF9QQVlNRU5UUyxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkdST1NTX1BBWU1FTlRTX05PX0FCTl9HSVZFTixcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkdST1NTX1BBWU1FTlRTX1ZPTFVOVEFSWV9BR1JFRU1FTlQsXG4gICAgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5HUk9TU19QQVlNRU5UU19MQUJPVVJfSElSRV9PUl9PVEhFUl9TUEVDSUZJRURfUEFZTUVOVFMsXG4gICAgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5DT05UUkFDVE9SU19BTkRfQ09NTUlTU0lPTixcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLlNVUEVSQU5OVUFUSU9OLFxuICAgIEJ1c2luZXNzQ2hhcnRBY2NvdW50c0VudW0uUFNJX09USEVSLFxuICAgIEJ1c2luZXNzQ2hhcnRBY2NvdW50c0VudW0uT1RIRVJfQVNTRVNTQUJMRV9QQVlNRU5UUyxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkpPQktFRVBFUixcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLkdTVF9SRUZVTkQsXG4gICAgQnVzaW5lc3NDaGFydEFjY291bnRzRW51bS5QQVlHX0lOU1RBTExNRU5UUyxcbiAgICBCdXNpbmVzc0NoYXJ0QWNjb3VudHNFbnVtLklOVEVSRVNUX0VBUk5FRFxuICBdO1xuICBAVHlwZSgoKSA9PiBTb2xlSW52b2ljZSlcbiAgaW52b2ljZTogU29sZUludm9pY2U7XG5cbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbilcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdO1xuXG4gIGlzR1NUID0gZmFsc2U7XG5cbiAgZ2V0IHRvdGFsUHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcmljZSAqIHRoaXMucXVhbnRpdHk7XG4gIH1cblxuICBnZXRUb3RhbFByaWNlKHRheFR5cGU6IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0sIGluY2x1ZGVHU1QgPSBmYWxzZSk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWxQcmljZSA9IHRoaXMudG90YWxQcmljZTtcbiAgICBpZiAoaW5jbHVkZUdTVCkge1xuICAgICAgY29uc3QgY29lZmZpY2llbnQgPSB0aGlzLmlzR1NUICYmIHRheFR5cGUgPT09IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0VYQ0xVU0lWRSA/IENoYXJ0QWNjb3VudHMuR1NUQ29lZmZpY2llbnQgOiAxO1xuICAgICAgcmV0dXJuIHRvdGFsUHJpY2UgKiBjb2VmZmljaWVudDtcbiAgICB9XG5cbiAgICBjb25zdCBjb2VmZmljaWVudCA9IHRoaXMuaXNHU1QgJiYgdGF4VHlwZSA9PT0gU29sZUludm9pY2VUYXhUeXBlRW51bS5UQVhfSU5DTFVTSVZFID8gQ2hhcnRBY2NvdW50cy5HU1RDb2VmZmljaWVudCA6IDE7XG4gICAgcmV0dXJuIHRvdGFsUHJpY2UgLyBjb2VmZmljaWVudDtcbiAgfVxuXG4gIHRvVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoVHJhbnNhY3Rpb24sIHtcbiAgICAgIGNoYXJ0QWNjb3VudHM6IHRoaXMuY2hhcnRBY2NvdW50cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgc291cmNlOiBUcmFuc2FjdGlvblNvdXJjZUVudW0uQkFOS19UUkFOU0FDVElPTixcbiAgICAgIGlzR1NUOiB0aGlzLmlzR1NULFxuICAgICAgb3BlcmF0aW9uOiBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uQUxMT0NBVEVfSU5WT0lDRSxcbiAgICAgIGludm9pY2VJdGVtOiB0aGlzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
2
|
import { Transaction as TransactionBase } from '../../db/Models/transaction/transaction';
|
3
3
|
import { TransactionTypeEnum } from '../../db/Enums/transaction-type.enum';
|
4
|
-
import { ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMetaFieldListEnum,
|
4
|
+
import { ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMetaFieldListEnum, } from '../../db/Enums';
|
5
5
|
import { TransactionOperationEnum } from '../../db/Enums/transaction-operation.enum';
|
6
6
|
import { TransactionSourceEnum } from '../../db/Enums/transaction-source.enum';
|
7
7
|
import { DepreciationTypeEnum } from '../../db/Enums/depreciation-type.enum';
|
@@ -116,7 +116,7 @@ export class Transaction extends TransactionBase {
|
|
116
116
|
return !this.parentTransaction
|
117
117
|
&& !this.isCash()
|
118
118
|
&& !(this.isSoleTank() && this.isIncome())
|
119
|
-
&&
|
119
|
+
&& this.isEditable()
|
120
120
|
&& !this.isAllocated(allocations);
|
121
121
|
}
|
122
122
|
/**
|
@@ -200,6 +200,9 @@ export class Transaction extends TransactionBase {
|
|
200
200
|
this.incomeSource = transaction.incomeSource;
|
201
201
|
this.business = transaction.business;
|
202
202
|
}
|
203
|
+
isEditable() {
|
204
|
+
return !ChartAccounts.systemList.includes(this.chartAccounts.id);
|
205
|
+
}
|
203
206
|
}
|
204
207
|
__decorate([
|
205
208
|
Type(() => Transaction)
|
@@ -234,4 +237,4 @@ __decorate([
|
|
234
237
|
__decorate([
|
235
238
|
Transform(({ value }) => +value)
|
236
239
|
], Transaction.prototype, "tax", void 0);
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDhCQUE4QixFQUFFLGtDQUFrQyxHQUNuRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQW1DLE1BQU0sbUJB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QUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2tEQUNHO0FBRzdCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztpREFDRTtBQUczQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsrQ0FDTztBQUd4QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7NkNBQ0Y7QUFHdEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0RBQ1E7QUFHMUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dEQUNDO0FBRzdCO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7d0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0tlZXBTaWduLFxuICBDaGFydEFjY291bnRzTGlzdEVudW0sXG4gIENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bSwgQ2hhcnRBY2NvdW50c1VuYWxsb2NhdGFibGVMaXN0RW51bSxcbn0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Tb3VyY2VFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tc291cmNlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi1jYWxjdWxhdGlvbi5lbnVtJztcbmltcG9ydCB7IFRyYW5zZm9ybSwgVHlwZSwgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLCBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk1ldGFGaWVsZCB9IGZyb20gJy4vdHJhbnNhY3Rpb24tbWV0YS1maWVsZCc7XG5pbXBvcnQgeyBMb2FuIH0gZnJvbSAnLi4vbG9hbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiwgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBFeHBlbnNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZUl0ZW0gfSBmcm9tICcuLi9zb2xlJztcblxuLy8gQFRPRE8gQWxleDogcmVmYWN0b3I6IG1vdmUgaGVyZSBhbGxvY2F0aW9ucyBtZXRob2RzLCBuZXRBbW91bnQgPSBhbW91bnQsIGdyb3NzQW1vdW50IGNhbGN1bGF0aW9uLCByZW1vdmUgdW51c2VkIG1ldGhvZHMsIGV0Yy5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZSBpbXBsZW1lbnRzIEV4cGVuc2Uge1xuICBzdGF0aWMgY2xhc3NOYW1lID0gJ1RyYW5zYWN0aW9uJztcbiAgLyoqXG4gICAqIEBUT0RPIHJlbmFtZSB0byBjaGlsZFRyYW5zYWN0aW9uc1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5KVxuICBwcm9wZXJ0eTogUHJvcGVydHk7XG5cbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBJbmNvbWVTb3VyY2UpXG4gIGluY29tZVNvdXJjZTogSW5jb21lU291cmNlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uTWV0YUZpZWxkKVxuICBtZXRhRmllbGRzOiBUcmFuc2FjdGlvbk1ldGFGaWVsZFtdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zZmVyOiBUcmFuc2FjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBMb2FuKVxuICBsb2FuOiBMb2FuO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25BbGxvY2F0aW9uKVxuICBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBTb2xlSW52b2ljZUl0ZW0pXG4gIGludm9pY2VJdGVtOiBTb2xlSW52b2ljZUl0ZW07XG5cbiAgQFRyYW5zZm9ybSgoeyB2YWx1ZSB9KSA9PiArdmFsdWUpXG4gIHRheCA9IDA7XG5cbiAgb3BlcmF0aW9uOiBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gPSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIGNsYWltUGVyY2VudCA9IDEwMDtcbiAgYW1vdW50ID0gMDtcblxuICBnZXQgaW52b2ljZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW52b2ljZUl0ZW0/Lmludm9pY2UuaWQ7XG4gIH1cblxuICBpc0RlYml0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uREVCSVQ7XG4gIH1cblxuICBpc0NyZWRpdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGVFbnVtLkNSRURJVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIGJhc2UgY29sbGVjdGlvblxuICAgKi9cbiAgaXNJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgLy8gQFRPRE8gbm90IHVzZWRcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNDcmVkaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5pbmNvbWUuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIGJhc2UgY29sbGVjdGlvblxuICAgKi9cbiAgaXNFeHBlbnNlKCk6IGJvb2xlYW4ge1xuICAgIC8vIEBUT0RPIG5vdCB1c2VkXG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzRGViaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5leHBlbnNlLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBpc1BlcnNvbmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBpc0ludGVyZXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0QWNjb3VudHMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9PTl9MT0FOO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHR5cGUgaXMgdmVoaWNsZVxuICAgKi9cbiAgaXNWZWhpY2xlVHJhbnNhY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pc1ZlaGljbGVFeHBlbnNlKCk7XG4gIH1cblxuICBnZXQgdGF4RnJlZUNvbXBvbmVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5UQVhfRlJFRV9DT01QT05FTlQpO1xuICB9XG5cbiAgZ2V0IGZyYW5raW5nQ3JlZGl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLkZSQU5LSU5HX0NSRURJVCk7XG4gIH1cblxuICBnZXQgZWxpZ2libGVGb3JSZWR1Y3Rpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uRUxJR0lCTEVfRk9SX1JFRFVDVElPTik7XG4gIH1cblxuICBnZXQgdW50YXhlZEVsZW1lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uVU5UQVhFRF9FTEVNRU5UKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiByZWNvbmNpbGUgb3BlcmF0aW9uIGlmIFRSQU5TRkVSXG4gICAqIEBUT0RPIGJhZCB1c2FnZSBvZiBnZXQgKGFuZCBhbGwgaXMqIG1ldGhvZHMpLCBnZXR0ZXIgc2hvdWxkIHNvdW5kIGxpa2UgYSBub3VuXG4gICAqL1xuICBnZXQgaXNUcmFuc2ZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5UUkFOU0ZFUjtcbiAgfVxuXG4gIGlzRmluZEFuZE1hdGNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLkZJTkRfQU5EX01BVENIO1xuICB9XG5cbiAgZ2V0IGRlYml0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpID8gTWF0aC5hYnModGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QpIDogMDtcbiAgfVxuXG4gIGdldCBjcmVkaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0NyZWRpdCgpID8gTWF0aC5hYnModGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdmFsdWUgb2YgdHJhbnNhY3Rpb24gbWV0YSBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgZm9yIHdoaWNoIHZhbHVlIHNob3VsZCBiZSByZXR1cm5lZFxuICAgKiBAVG9kbyBtb2RpZnkgJ21ldGFGaWVsZHMnIHByb3BlcnR5IGZyb20gYXJyYXkgdG8gQ29sbGVjdGlvblxuICAgKi9cbiAgZ2V0TWV0YUZpZWxkVmFsdWUoZmllbGQ6IENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bSk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLm1ldGFGaWVsZHMuZmluZCgodHJhbnNhY3Rpb25NZXRhRmllbGQ6IFRyYW5zYWN0aW9uTWV0YUZpZWxkKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbk1ldGFGaWVsZC5jaGFydEFjY291bnRzTWV0YUZpZWxkLmlkID09PSBmaWVsZCk/LnZhbHVlIHx8IDA7XG4gIH1cblxuICBpc0Nhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlID09PSBUcmFuc2FjdGlvblNvdXJjZUVudW0uQ0FTSDtcbiAgfVxuXG4gIGNhbkZpbmRBbmRNYXRjaChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5wYXJlbnRUcmFuc2FjdGlvblxuICAgICAgJiYgIXRoaXMuaXNDYXNoKClcbiAgICAgICYmICEodGhpcy5pc1NvbGVUYW5rKCkgJiYgdGhpcy5pc0luY29tZSgpKVxuICAgICAgJiYgIU9iamVjdC52YWx1ZXMoQ2hhcnRBY2NvdW50c1VuYWxsb2NhdGFibGVMaXN0RW51bSkuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmlkKVxuICAgICAgJiYgIXRoaXMuaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEZXByZWNpYXRpb24gaW5zdGFuY2UgYmFzZWQgb24gVHJhbnNhY3Rpb25cbiAgICovXG4gIHRvRGVwcmVjaWF0aW9uKCk6IERlcHJlY2lhdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhEZXByZWNpYXRpb24sIHtcbiAgICAgIGRhdGU6IHRoaXMuZGF0ZSxcbiAgICAgIGFtb3VudDogTWF0aC5hYnModGhpcy5hbW91bnQpLFxuICAgICAgY2hhcnRBY2NvdW50czogdGhpcy5jaGFydEFjY291bnRzLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICB0eXBlOiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNQcm9wZXJ0eUNhcGl0YWxXb3JrcygpID8gRGVwcmVjaWF0aW9uVHlwZUVudW0uQ0FQSVRBTF9XT1JLUyA6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NULFxuICAgICAgdHJhbnNhY3Rpb25zOiBbdGhpc10sXG4gICAgICBidXNpbmVzczogdGhpcy5idXNpbmVzcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBpcyBjb21wbGV0ZWx5IGFsbG9jYXRlZFxuICAgKi9cbiAgaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpKSAtIE1hdGguYWJzKHRoaXMubmV0QW1vdW50KSA+PSAwO1xuICB9XG5cbiAgZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnMuZmlsdGVyQnkoJ3RyYW5zYWN0aW9uLmlkJywgdGhpcy5pZCkuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldEFtb3VudCAtIHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgaW5jbHVkaW5nIHRheGVzIGFuZCBvdGhlciBhZGRpdGlvbmFsIGFtb3VudHNcbiAgICovXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCArIHRoaXMuZ3N0QW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50V2l0aG91dEdzdCgpOiBudW1iZXIge1xuICAgIGxldCBncm9zc0Ftb3VudCA9IHRoaXMuYW1vdW50ICsgdGhpcy50YXg7XG4gICAgaWYgKHRoaXMuaXNFeHBlbnNlKCkpIHtcbiAgICAgIHJldHVybiBncm9zc0Ftb3VudDtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlZCB0cmFuc2FjdGlvbnMgYWZmZWN0IHBhcmVudCB0cmFuc2FjdGlvbiBhbW91bnQgYW5kIGFzIGEgcmVzdWx0IGdyb3NzQW1vdW50LCBza2lwIHRvIGF2b2lkIGRvdWJsZSBzdW1cbiAgICBjb25zdCBhZGp1c3RtZW50cyA9IG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcih0cmFuc2FjdGlvbiA9PiAhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cz8uaXNBZGp1c3RtZW50SW5jbHVkZWQoKSk7XG4gICAgY29uc3QgaW5jb21lID0gYWRqdXN0bWVudHMuZmlsdGVyKHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLmlzSW5jb21lKCkpLnN1bUJ5KCdhbW91bnQnKTtcbiAgICBjb25zdCBleHBlbnNlID0gYWRqdXN0bWVudHMuZmlsdGVyKHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLmlzRXhwZW5zZSgpKS5zdW1CeSgnYW1vdW50JywgdHJ1ZSk7XG4gICAgLy8gYWxsIGFkanVzdG1lbnRzIGV4Y2VwdCBwcm9wZXJ0eSBpbmNvbWUgaW5jcmVhc2UgZ3Jvc3NJbmNvbWVcbiAgICBncm9zc0Ftb3VudCArPSBleHBlbnNlICsgKHRoaXMuaXNQcm9wZXJ0eVRhbmsoKSA/IC1pbmNvbWUgOiBpbmNvbWUpO1xuXG4gICAgaWYgKHRoaXMuaXNXb3JrVGFuaygpIHx8IHRoaXMuaXNIb2xkaW5nVGFuaygpKSB7XG4gICAgICBncm9zc0Ftb3VudCArPSB0aGlzLmZyYW5raW5nQ3JlZGl0IC0gdGhpcy50YXhGcmVlQ29tcG9uZW50IC0gdGhpcy5lbGlnaWJsZUZvclJlZHVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3Jvc3NBbW91bnQ7XG4gIH1cblxuICBnZXQgZ3Jvc3NDbGFpbUFtb3VudFdpdGhvdXRHc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QgKiB0aGlzLmNsYWltUmF0aW87XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIGNvbmZ1c2luZyBsb2dpYyBkZW1hbmRlZCBieSBOaWNvbGUsIHdlIG5lZWQgYSBiZXR0ZXIgdXggdG8gZml4IGl0XG4gICAqIG5ldEFtb3VudCBtYXRjaGVzIHJlY2VpdmVkIHBheW1lbnQgKGJhbmtUcmFuc2FjdGlvbiBhbW91bnQpLCBpbmNsdWRlcyBnc3QgYW5kIHNhbGFyeSBpbmNsdWRlZCBhZGp1c3RtZW50c1xuICAgKiBpZSB1c2VyIHJlY2VpdmVkIDEwMDAkIHNhbGFyeSBpbmNsdWRpbmcgMTAwJCB0aXBzLiBOZXRBbW91bnQ9MTAwMCQsIGFtb3VudD05MDAkLCB0aXBzPTEwMCRcbiAgICovXG4gIGdldCBuZXRBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKCh0KSA9PiB0LmNoYXJ0QWNjb3VudHM/LmlzQWRqdXN0bWVudEluY2x1ZGVkKCkpXG4gICAgICAuc3VtQnkoJ2Ftb3VudCcpICsgdGhpcy5hbW91bnRXaXRoR3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIG1vc3Qgb2YgdGhlIHRyYW5zYWN0aW9ucyBjb3VsZCBoYXZlIG9ubHkgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYW1vdW50IGRlcGVuZHMgb24gY2hhcnRBY2NvdW50cywgc28gd2UgaWdub3JlXG4gICAqIHVzZXIncyBjaG9pY2UgYW5kIHRyYW5zZm9ybSBhbW91bnQsIGJ1dCB0aGVyZSBhcmUgZXhjZXB0aW9ucyBsaWtlIGFkdmFuY2UgKG5lZ2F0aXZlIG9yIHBvc2l0aXZlIGFtb3VudClcbiAgICovXG4gIGlnbm9yZVNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEodGhpcy5jaGFydEFjY291bnRzPy5pZCBpbiBDaGFydEFjY291bnRzS2VlcFNpZ24pO1xuICB9XG5cbiAgc2V0UGFyZW50KHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLmNoYXJ0QWNjb3VudHMubmFtZTtcbiAgICB0aGlzLmRhdGUgPSB0cmFuc2FjdGlvbi5kYXRlO1xuICAgIHRoaXMuY2xhaW1QZXJjZW50ID0gdHJhbnNhY3Rpb24uY2xhaW1QZXJjZW50O1xuICAgIHRoaXMucHJvcGVydHkgPSB0cmFuc2FjdGlvbi5wcm9wZXJ0eTtcbiAgICB0aGlzLmxvYW4gPSB0cmFuc2FjdGlvbi5sb2FuO1xuICAgIHRoaXMuaW5jb21lU291cmNlID0gdHJhbnNhY3Rpb24uaW5jb21lU291cmNlO1xuICAgIHRoaXMuYnVzaW5lc3MgPSB0cmFuc2FjdGlvbi5idXNpbmVzcztcbiAgfVxufVxuIl19
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUMvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQW1DLE1BQU0sbUJBQW1CLENBQUM7QUFD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QUM7NkNBQ0Y7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2tEQUNHO0FBRzdCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztpREFDRTtBQUczQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsrQ0FDTztBQUd4QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7NkNBQ0Y7QUFHdEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0RBQ1E7QUFHMUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dEQUNDO0FBRzdCO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7d0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0tlZXBTaWduLFxuICBDaGFydEFjY291bnRzTGlzdEVudW0sXG4gIENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bSxcbn0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Tb3VyY2VFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tc291cmNlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi1jYWxjdWxhdGlvbi5lbnVtJztcbmltcG9ydCB7IFRyYW5zZm9ybSwgVHlwZSwgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLCBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk1ldGFGaWVsZCB9IGZyb20gJy4vdHJhbnNhY3Rpb24tbWV0YS1maWVsZCc7XG5pbXBvcnQgeyBMb2FuIH0gZnJvbSAnLi4vbG9hbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiwgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBFeHBlbnNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZUl0ZW0gfSBmcm9tICcuLi9zb2xlJztcblxuLy8gQFRPRE8gQWxleDogcmVmYWN0b3I6IG1vdmUgaGVyZSBhbGxvY2F0aW9ucyBtZXRob2RzLCBuZXRBbW91bnQgPSBhbW91bnQsIGdyb3NzQW1vdW50IGNhbGN1bGF0aW9uLCByZW1vdmUgdW51c2VkIG1ldGhvZHMsIGV0Yy5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZSBpbXBsZW1lbnRzIEV4cGVuc2Uge1xuICBzdGF0aWMgY2xhc3NOYW1lID0gJ1RyYW5zYWN0aW9uJztcbiAgLyoqXG4gICAqIEBUT0RPIHJlbmFtZSB0byBjaGlsZFRyYW5zYWN0aW9uc1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5KVxuICBwcm9wZXJ0eTogUHJvcGVydHk7XG5cbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBJbmNvbWVTb3VyY2UpXG4gIGluY29tZVNvdXJjZTogSW5jb21lU291cmNlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uTWV0YUZpZWxkKVxuICBtZXRhRmllbGRzOiBUcmFuc2FjdGlvbk1ldGFGaWVsZFtdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zZmVyOiBUcmFuc2FjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBMb2FuKVxuICBsb2FuOiBMb2FuO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25BbGxvY2F0aW9uKVxuICBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBTb2xlSW52b2ljZUl0ZW0pXG4gIGludm9pY2VJdGVtOiBTb2xlSW52b2ljZUl0ZW07XG5cbiAgQFRyYW5zZm9ybSgoeyB2YWx1ZSB9KSA9PiArdmFsdWUpXG4gIHRheCA9IDA7XG5cbiAgb3BlcmF0aW9uOiBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gPSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIGNsYWltUGVyY2VudCA9IDEwMDtcbiAgYW1vdW50ID0gMDtcblxuICBnZXQgaW52b2ljZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW52b2ljZUl0ZW0/Lmludm9pY2UuaWQ7XG4gIH1cblxuICBpc0RlYml0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uREVCSVQ7XG4gIH1cblxuICBpc0NyZWRpdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGVFbnVtLkNSRURJVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIGJhc2UgY29sbGVjdGlvblxuICAgKi9cbiAgaXNJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgLy8gQFRPRE8gbm90IHVzZWRcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNDcmVkaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5pbmNvbWUuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIGJhc2UgY29sbGVjdGlvblxuICAgKi9cbiAgaXNFeHBlbnNlKCk6IGJvb2xlYW4ge1xuICAgIC8vIEBUT0RPIG5vdCB1c2VkXG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzRGViaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5leHBlbnNlLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBpc1BlcnNvbmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBpc0ludGVyZXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0QWNjb3VudHMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9PTl9MT0FOO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHR5cGUgaXMgdmVoaWNsZVxuICAgKi9cbiAgaXNWZWhpY2xlVHJhbnNhY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pc1ZlaGljbGVFeHBlbnNlKCk7XG4gIH1cblxuICBnZXQgdGF4RnJlZUNvbXBvbmVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5UQVhfRlJFRV9DT01QT05FTlQpO1xuICB9XG5cbiAgZ2V0IGZyYW5raW5nQ3JlZGl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLkZSQU5LSU5HX0NSRURJVCk7XG4gIH1cblxuICBnZXQgZWxpZ2libGVGb3JSZWR1Y3Rpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uRUxJR0lCTEVfRk9SX1JFRFVDVElPTik7XG4gIH1cblxuICBnZXQgdW50YXhlZEVsZW1lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uVU5UQVhFRF9FTEVNRU5UKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiByZWNvbmNpbGUgb3BlcmF0aW9uIGlmIFRSQU5TRkVSXG4gICAqIEBUT0RPIGJhZCB1c2FnZSBvZiBnZXQgKGFuZCBhbGwgaXMqIG1ldGhvZHMpLCBnZXR0ZXIgc2hvdWxkIHNvdW5kIGxpa2UgYSBub3VuXG4gICAqL1xuICBnZXQgaXNUcmFuc2ZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5UUkFOU0ZFUjtcbiAgfVxuXG4gIGlzRmluZEFuZE1hdGNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLkZJTkRfQU5EX01BVENIO1xuICB9XG5cbiAgZ2V0IGRlYml0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpID8gTWF0aC5hYnModGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QpIDogMDtcbiAgfVxuXG4gIGdldCBjcmVkaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0NyZWRpdCgpID8gTWF0aC5hYnModGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdmFsdWUgb2YgdHJhbnNhY3Rpb24gbWV0YSBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgZm9yIHdoaWNoIHZhbHVlIHNob3VsZCBiZSByZXR1cm5lZFxuICAgKiBAVG9kbyBtb2RpZnkgJ21ldGFGaWVsZHMnIHByb3BlcnR5IGZyb20gYXJyYXkgdG8gQ29sbGVjdGlvblxuICAgKi9cbiAgZ2V0TWV0YUZpZWxkVmFsdWUoZmllbGQ6IENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bSk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLm1ldGFGaWVsZHMuZmluZCgodHJhbnNhY3Rpb25NZXRhRmllbGQ6IFRyYW5zYWN0aW9uTWV0YUZpZWxkKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbk1ldGFGaWVsZC5jaGFydEFjY291bnRzTWV0YUZpZWxkLmlkID09PSBmaWVsZCk/LnZhbHVlIHx8IDA7XG4gIH1cblxuICBpc0Nhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlID09PSBUcmFuc2FjdGlvblNvdXJjZUVudW0uQ0FTSDtcbiAgfVxuXG4gIGNhbkZpbmRBbmRNYXRjaChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5wYXJlbnRUcmFuc2FjdGlvblxuICAgICAgJiYgIXRoaXMuaXNDYXNoKClcbiAgICAgICYmICEodGhpcy5pc1NvbGVUYW5rKCkgJiYgdGhpcy5pc0luY29tZSgpKVxuICAgICAgJiYgdGhpcy5pc0VkaXRhYmxlKClcbiAgICAgICYmICF0aGlzLmlzQWxsb2NhdGVkKGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgRGVwcmVjaWF0aW9uIGluc3RhbmNlIGJhc2VkIG9uIFRyYW5zYWN0aW9uXG4gICAqL1xuICB0b0RlcHJlY2lhdGlvbigpOiBEZXByZWNpYXRpb24ge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoRGVwcmVjaWF0aW9uLCB7XG4gICAgICBkYXRlOiB0aGlzLmRhdGUsXG4gICAgICBhbW91bnQ6IE1hdGguYWJzKHRoaXMuYW1vdW50KSxcbiAgICAgIGNoYXJ0QWNjb3VudHM6IHRoaXMuY2hhcnRBY2NvdW50cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgdHlwZTogdGhpcy5jaGFydEFjY291bnRzLmlzUHJvcGVydHlDYXBpdGFsV29ya3MoKSA/IERlcHJlY2lhdGlvblR5cGVFbnVtLkNBUElUQUxfV09SS1MgOiBEZXByZWNpYXRpb25UeXBlRW51bS5QTEFOVF9FUVVJUE1FTlQsXG4gICAgICBjbGFpbVBlcmNlbnQ6IHRoaXMuY2xhaW1QZXJjZW50LFxuICAgICAgcHJvcGVydHk6IHRoaXMucHJvcGVydHksXG4gICAgICBjYWxjdWxhdGlvbjogdGhpcy5wcm9wZXJ0eSA/IHRoaXMucHJvcGVydHkuZGVwcmVjaWF0aW9uQ2FsY3VsYXRpb24gOiBEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0uUFJJTUVfQ09TVCxcbiAgICAgIHRyYW5zYWN0aW9uczogW3RoaXNdLFxuICAgICAgYnVzaW5lc3M6IHRoaXMuYnVzaW5lc3MsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gaXMgY29tcGxldGVseSBhbGxvY2F0ZWRcbiAgICovXG4gIGlzQWxsb2NhdGVkKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKSkgLSBNYXRoLmFicyh0aGlzLm5ldEFtb3VudCkgPj0gMDtcbiAgfVxuXG4gIGdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIGFsbG9jYXRpb25zLmZpbHRlckJ5KCd0cmFuc2FjdGlvbi5pZCcsIHRoaXMuaWQpLnN1bUJ5KCdhbW91bnQnKTtcbiAgfVxuXG4gIGdldFVuYWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5uZXRBbW91bnQgLSB0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVG90YWwgdHJhbnNhY3Rpb24gYW1vdW50IGluY2x1ZGluZyB0YXhlcyBhbmQgb3RoZXIgYWRkaXRpb25hbCBhbW91bnRzXG4gICAqL1xuICBnZXQgZ3Jvc3NBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QgKyB0aGlzLmdzdEFtb3VudDtcbiAgfVxuXG4gIGdldCBncm9zc0Ftb3VudFdpdGhvdXRHc3QoKTogbnVtYmVyIHtcbiAgICBsZXQgZ3Jvc3NBbW91bnQgPSB0aGlzLmFtb3VudCArIHRoaXMudGF4O1xuICAgIGlmICh0aGlzLmlzRXhwZW5zZSgpKSB7XG4gICAgICByZXR1cm4gZ3Jvc3NBbW91bnQ7XG4gICAgfVxuXG4gICAgLy8gaW5jbHVkZWQgdHJhbnNhY3Rpb25zIGFmZmVjdCBwYXJlbnQgdHJhbnNhY3Rpb24gYW1vdW50IGFuZCBhcyBhIHJlc3VsdCBncm9zc0Ftb3VudCwgc2tpcCB0byBhdm9pZCBkb3VibGUgc3VtXG4gICAgY29uc3QgYWRqdXN0bWVudHMgPSBuZXcgQ29sbGVjdGlvbih0aGlzLnRyYW5zYWN0aW9ucylcbiAgICAgIC5maWx0ZXIodHJhbnNhY3Rpb24gPT4gIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHM/LmlzQWRqdXN0bWVudEluY2x1ZGVkKCkpO1xuICAgIGNvbnN0IGluY29tZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0luY29tZSgpKS5zdW1CeSgnYW1vdW50Jyk7XG4gICAgY29uc3QgZXhwZW5zZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSkuc3VtQnkoJ2Ftb3VudCcsIHRydWUpO1xuICAgIC8vIGFsbCBhZGp1c3RtZW50cyBleGNlcHQgcHJvcGVydHkgaW5jb21lIGluY3JlYXNlIGdyb3NzSW5jb21lXG4gICAgZ3Jvc3NBbW91bnQgKz0gZXhwZW5zZSArICh0aGlzLmlzUHJvcGVydHlUYW5rKCkgPyAtaW5jb21lIDogaW5jb21lKTtcblxuICAgIGlmICh0aGlzLmlzV29ya1RhbmsoKSB8fCB0aGlzLmlzSG9sZGluZ1RhbmsoKSkge1xuICAgICAgZ3Jvc3NBbW91bnQgKz0gdGhpcy5mcmFua2luZ0NyZWRpdCAtIHRoaXMudGF4RnJlZUNvbXBvbmVudCAtIHRoaXMuZWxpZ2libGVGb3JSZWR1Y3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3NzQW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQ2xhaW1BbW91bnRXaXRob3V0R3N0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0ICogdGhpcy5jbGFpbVJhdGlvO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayBjb25mdXNpbmcgbG9naWMgZGVtYW5kZWQgYnkgTmljb2xlLCB3ZSBuZWVkIGEgYmV0dGVyIHV4IHRvIGZpeCBpdFxuICAgKiBuZXRBbW91bnQgbWF0Y2hlcyByZWNlaXZlZCBwYXltZW50IChiYW5rVHJhbnNhY3Rpb24gYW1vdW50KSwgaW5jbHVkZXMgZ3N0IGFuZCBzYWxhcnkgaW5jbHVkZWQgYWRqdXN0bWVudHNcbiAgICogaWUgdXNlciByZWNlaXZlZCAxMDAwJCBzYWxhcnkgaW5jbHVkaW5nIDEwMCQgdGlwcy4gTmV0QW1vdW50PTEwMDAkLCBhbW91bnQ9OTAwJCwgdGlwcz0xMDAkXG4gICAqL1xuICBnZXQgbmV0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcigodCkgPT4gdC5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKSArIHRoaXMuYW1vdW50V2l0aEdzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb3N0IG9mIHRoZSB0cmFuc2FjdGlvbnMgY291bGQgaGF2ZSBvbmx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMsIHNvIHdlIGlnbm9yZVxuICAgKiB1c2VyJ3MgY2hvaWNlIGFuZCB0cmFuc2Zvcm0gYW1vdW50LCBidXQgdGhlcmUgYXJlIGV4Y2VwdGlvbnMgbGlrZSBhZHZhbmNlIChuZWdhdGl2ZSBvciBwb3NpdGl2ZSBhbW91bnQpXG4gICAqL1xuICBpZ25vcmVTaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuY2hhcnRBY2NvdW50cz8uaWQgaW4gQ2hhcnRBY2NvdW50c0tlZXBTaWduKTtcbiAgfVxuXG4gIHNldFBhcmVudCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5jaGFydEFjY291bnRzLm5hbWU7XG4gICAgdGhpcy5kYXRlID0gdHJhbnNhY3Rpb24uZGF0ZTtcbiAgICB0aGlzLmNsYWltUGVyY2VudCA9IHRyYW5zYWN0aW9uLmNsYWltUGVyY2VudDtcbiAgICB0aGlzLnByb3BlcnR5ID0gdHJhbnNhY3Rpb24ucHJvcGVydHk7XG4gICAgdGhpcy5sb2FuID0gdHJhbnNhY3Rpb24ubG9hbjtcbiAgICB0aGlzLmluY29tZVNvdXJjZSA9IHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZTtcbiAgICB0aGlzLmJ1c2luZXNzID0gdHJhbnNhY3Rpb24uYnVzaW5lc3M7XG4gIH1cblxuICBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhQ2hhcnRBY2NvdW50cy5zeXN0ZW1MaXN0LmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5pZCk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var HomeOfficeClaimMessagesEnum;
|
2
|
+
(function (HomeOfficeClaimMessagesEnum) {
|
3
|
+
HomeOfficeClaimMessagesEnum["CREATED"] = "Claim created";
|
4
|
+
HomeOfficeClaimMessagesEnum["UPDATED"] = "Claim updated";
|
5
|
+
HomeOfficeClaimMessagesEnum["DELETED"] = "Claim deleted";
|
6
|
+
HomeOfficeClaimMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this claim?";
|
7
|
+
})(HomeOfficeClaimMessagesEnum || (HomeOfficeClaimMessagesEnum = {}));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1vZmZpY2UtY2xhaW0tbWVzc2FnZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2hvbWUtb2ZmaWNlL2hvbWUtb2ZmaWNlLWNsYWltLW1lc3NhZ2VzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksMkJBS1g7QUFMRCxXQUFZLDJCQUEyQjtJQUNyQyx3REFBeUIsQ0FBQTtJQUN6Qix3REFBeUIsQ0FBQTtJQUN6Qix3REFBeUIsQ0FBQTtJQUN6Qiw2RkFBOEQsQ0FBQTtBQUNoRSxDQUFDLEVBTFcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQUt0QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhvbWVPZmZpY2VDbGFpbU1lc3NhZ2VzRW51bSB7XG4gIENSRUFURUQgPSAnQ2xhaW0gY3JlYXRlZCcsXG4gIFVQREFURUQgPSAnQ2xhaW0gdXBkYXRlZCcsXG4gIERFTEVURUQgPSAnQ2xhaW0gZGVsZXRlZCcsXG4gIENPTkZJUk1fREVMRVRFID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBjbGFpbT8nLFxufVxuIl19
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { RestService } from '../rest';
|
3
|
+
import { Collection } from '../../../collections';
|
4
|
+
import { HomeOfficeClaim } from '../../../models/home-office';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class HomeOfficeClaimService extends RestService {
|
7
|
+
constructor() {
|
8
|
+
super(...arguments);
|
9
|
+
this.endpointUri = 'home-office-claims';
|
10
|
+
this.modelClass = HomeOfficeClaim;
|
11
|
+
this.collectionClass = (Collection);
|
12
|
+
this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
|
13
|
+
}
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HomeOfficeClaimService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
15
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HomeOfficeClaimService, providedIn: 'root' }); }
|
16
|
+
}
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HomeOfficeClaimService, decorators: [{
|
18
|
+
type: Injectable,
|
19
|
+
args: [{
|
20
|
+
providedIn: 'root'
|
21
|
+
}]
|
22
|
+
}] });
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1vZmZpY2UtY2xhaW0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2hvbWUtb2ZmaWNlL2hvbWUtb2ZmaWNlLWNsYWltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUE0QixNQUFNLDZCQUE2QixDQUFDOztBQUt4RixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBbUY7SUFIL0g7O1FBSVksZ0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztRQUM3QyxlQUFVLEdBQTJCLGVBQWUsQ0FBQztRQUNyRCxvQkFBZSxHQUF1QyxDQUFBLFVBQTJCLENBQUEsQ0FBQztRQUNsRixvQkFBZSxHQUFpQixDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDMUU7K0dBTFksc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSG9tZU9mZmljZUNsYWltLCBIb21lT2ZmaWNlQ2xhaW1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaG9tZS1vZmZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIb21lT2ZmaWNlQ2xhaW1TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8SG9tZU9mZmljZUNsYWltSW50ZXJmYWNlLCBIb21lT2ZmaWNlQ2xhaW0sIENvbGxlY3Rpb248SG9tZU9mZmljZUNsYWltPj4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRVcmkgPSAnaG9tZS1vZmZpY2UtY2xhaW1zJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEhvbWVPZmZpY2VDbGFpbSA9IEhvbWVPZmZpY2VDbGFpbTtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgQ29sbGVjdGlvbjxIb21lT2ZmaWNlQ2xhaW0+ID0gQ29sbGVjdGlvbjxIb21lT2ZmaWNlQ2xhaW0+O1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJ107XG59XG4iXX0=
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var HomeOfficeLogMessagesEnum;
|
2
|
+
(function (HomeOfficeLogMessagesEnum) {
|
3
|
+
HomeOfficeLogMessagesEnum["CREATED"] = "Log created";
|
4
|
+
HomeOfficeLogMessagesEnum["UPDATED"] = "Log updated";
|
5
|
+
HomeOfficeLogMessagesEnum["DELETED"] = "Log deleted";
|
6
|
+
HomeOfficeLogMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this Log?";
|
7
|
+
})(HomeOfficeLogMessagesEnum || (HomeOfficeLogMessagesEnum = {}));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1vZmZpY2UtbG9nLW1lc3NhZ2VzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9ob21lLW9mZmljZS9ob21lLW9mZmljZS1sb2ctbWVzc2FnZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLG9EQUF1QixDQUFBO0lBQ3ZCLG9EQUF1QixDQUFBO0lBQ3ZCLG9EQUF1QixDQUFBO0lBQ3ZCLHlGQUE0RCxDQUFBO0FBQzlELENBQUMsRUFMVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBS3BDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSG9tZU9mZmljZUxvZ01lc3NhZ2VzRW51bSB7XG4gIENSRUFURUQgPSAnTG9nIGNyZWF0ZWQnLFxuICBVUERBVEVEID0gJ0xvZyB1cGRhdGVkJyxcbiAgREVMRVRFRCA9ICdMb2cgZGVsZXRlZCcsXG4gIENPTkZJUk1fREVMRVRFID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBMb2c/Jyxcbn1cbiJdfQ==
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { RestService } from '../rest';
|
3
|
+
import { Collection } from '../../../collections';
|
4
|
+
import { HomeOfficeClaim } from '../../../models/home-office';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class HomeOfficeLogService extends RestService {
|
7
|
+
constructor() {
|
8
|
+
super(...arguments);
|
9
|
+
this.endpointUri = 'home-office-logs';
|
10
|
+
this.modelClass = HomeOfficeClaim;
|
11
|
+
this.collectionClass = (Collection);
|
12
|
+
this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
|
13
|
+
}
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HomeOfficeLogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
15
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HomeOfficeLogService, providedIn: 'root' }); }
|
16
|
+
}
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HomeOfficeLogService, decorators: [{
|
18
|
+
type: Injectable,
|
19
|
+
args: [{
|
20
|
+
providedIn: 'root'
|
21
|
+
}]
|
22
|
+
}] });
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1vZmZpY2UtbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9ob21lLW9mZmljZS9ob21lLW9mZmljZS1sb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxlQUFlLEVBR2hCLE1BQU0sNkJBQTZCLENBQUM7O0FBS3JDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUE2RTtJQUh2SDs7UUFJWSxnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBQzNDLGVBQVUsR0FBMkIsZUFBZSxDQUFDO1FBQ3JELG9CQUFlLEdBQXVDLENBQUEsVUFBMkIsQ0FBQSxDQUFDO1FBQ2xGLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztLQUMxRTsrR0FMWSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0JztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1xuICBIb21lT2ZmaWNlQ2xhaW0sXG4gIEhvbWVPZmZpY2VMb2csXG4gIEhvbWVPZmZpY2VMb2dJbnRlcmZhY2Vcbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2hvbWUtb2ZmaWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSG9tZU9mZmljZUxvZ1NlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxIb21lT2ZmaWNlTG9nSW50ZXJmYWNlLCBIb21lT2ZmaWNlTG9nLCBDb2xsZWN0aW9uPEhvbWVPZmZpY2VMb2c+PiB7XG4gIHByb3RlY3RlZCBlbmRwb2ludFVyaSA9ICdob21lLW9mZmljZS1sb2dzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEhvbWVPZmZpY2VDbGFpbSA9IEhvbWVPZmZpY2VDbGFpbTtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgQ29sbGVjdGlvbjxIb21lT2ZmaWNlQ2xhaW0+ID0gQ29sbGVjdGlvbjxIb21lT2ZmaWNlQ2xhaW0+O1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJywgJ2RlbGV0ZUJhdGNoJ107XG59XG4iXX0=
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export * from './home-office-claim.service';
|
2
|
+
export * from './home-office-claim-messages.enum';
|
3
|
+
export * from './home-office-log.service';
|
4
|
+
export * from './home-office-log-messages.enum';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9ob21lLW9mZmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ob21lLW9mZmljZS1jbGFpbS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1vZmZpY2UtY2xhaW0tbWVzc2FnZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2hvbWUtb2ZmaWNlLWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1vZmZpY2UtbG9nLW1lc3NhZ2VzLmVudW0nO1xuIl19
|
@@ -26,4 +26,6 @@ export * from './client';
|
|
26
26
|
export * from './user';
|
27
27
|
export * from './document';
|
28
28
|
export * from './holding';
|
29
|
-
|
29
|
+
export * from './home-office';
|
30
|
+
export * from './rest-messages.enum';
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFlBQVksQ0FBQztBQUUzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFFBQVEsQ0FBQztBQUV2QixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsUUFBUSxDQUFDO0FBRXZCLGNBQWMsWUFBWSxDQUFDO0FBRTNCLGNBQWMsUUFBUSxDQUFDO0FBRXZCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQztBQUUxQixjQUFjLFdBQVcsQ0FBQztBQUUxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQztBQUV2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vcGRmL3BkZi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9iYW5rJztcbmV4cG9ydCAqIGZyb20gJy4vYnVkZ2V0JztcblxuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RlcHJlY2lhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9mYWNlYm9vayc7XG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJtJztcblxuZXhwb3J0ICogZnJvbSAnLi9pbmNvbWUtc291cmNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9sb2FuJztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVzdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1ub3RpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zb2xlJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi90YXgtcmV2aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vdGF4LXN1bW1hcnknO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3lvdXR1YmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvbWUtb2ZmaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdC1tZXNzYWdlcy5lbnVtJztcbiJdfQ==
|
@@ -0,0 +1,7 @@
|
|
1
|
+
export var RestMessagesEnum;
|
2
|
+
(function (RestMessagesEnum) {
|
3
|
+
RestMessagesEnum["POST"] = "Created";
|
4
|
+
RestMessagesEnum["PUT"] = "Updated";
|
5
|
+
RestMessagesEnum["DELETE"] = "Deleted";
|
6
|
+
})(RestMessagesEnum || (RestMessagesEnum = {}));
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1tZXNzYWdlcy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC1tZXNzYWdlcy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsb0NBQWdCLENBQUE7SUFDaEIsbUNBQWUsQ0FBQTtJQUNmLHNDQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUmVzdE1lc3NhZ2VzRW51bSB7XG4gIFBPU1QgPSAnQ3JlYXRlZCcsXG4gIFBVVCA9ICdVcGRhdGVkJyxcbiAgREVMRVRFID0gJ0RlbGV0ZWQnXG59XG4iXX0=
|
@@ -3,7 +3,7 @@ import { map } from 'rxjs/operators';
|
|
3
3
|
import { replace } from '../../../functions/array';
|
4
4
|
import { TransactionOperationEnum } from '../../../db/Enums/transaction-operation.enum';
|
5
5
|
import { RestService } from '../rest/rest-old.service';
|
6
|
-
import { AppEvent, AppEventTypeEnum, Depreciation, PropertyShare, Transaction, VehicleClaim } from '../../../models';
|
6
|
+
import { AppEvent, AppEventTypeEnum, Depreciation, HomeOfficeClaim, PropertyShare, Transaction, VehicleClaim } from '../../../models';
|
7
7
|
import _ from 'lodash';
|
8
8
|
import { classToPlain } from 'class-transformer';
|
9
9
|
import { UserEventTypeTypeEnum } from '../../../db/Enums/user-event-type-type.enum';
|
@@ -33,11 +33,12 @@ export class TransactionService extends RestService {
|
|
33
33
|
this.eventDispatcherService.on2(PropertyShare.getEventName('put')).subscribe(() => this.refreshCache());
|
34
34
|
this.listenDepreciationChange();
|
35
35
|
this.listenVehicleClaimChanges();
|
36
|
+
this.listenHomeOfficeClaim();
|
36
37
|
this.listenPropertyForecastUpdate();
|
37
38
|
this.listenNotifications();
|
38
39
|
}
|
39
|
-
|
40
|
-
return super.
|
40
|
+
get(path = this.apiUrl) {
|
41
|
+
return super.get(path).pipe(map(transactions => {
|
41
42
|
transactions.forEach((transaction) => {
|
42
43
|
transaction.transactions = transactions
|
43
44
|
// get list of child transactions
|
@@ -213,9 +214,12 @@ export class TransactionService extends RestService {
|
|
213
214
|
}
|
214
215
|
listenVehicleClaimChanges() {
|
215
216
|
this.eventDispatcherService.on2(...VehicleClaim.getEventNames('post', 'put')).subscribe(() => this.refreshCache());
|
216
|
-
this.eventDispatcherService.on([
|
217
|
-
|
218
|
-
|
217
|
+
this.eventDispatcherService.on([AppEventTypeEnum.VEHICLE_CLAIM_DETAILS_UPDATED]).subscribe(() => {
|
218
|
+
this.refreshCache();
|
219
|
+
});
|
220
|
+
}
|
221
|
+
listenHomeOfficeClaim() {
|
222
|
+
this.eventDispatcherService.on2(...HomeOfficeClaim.getEventNames('post', 'put')).subscribe(() => {
|
219
223
|
this.refreshCache();
|
220
224
|
});
|
221
225
|
}
|
@@ -259,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
259
263
|
type: Inject,
|
260
264
|
args: ['environment']
|
261
265
|
}] }] });
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFRLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFFRSxhQUFhLEVBQzNCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRTdEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQXlDO0lBTS9FLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUpULFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVJu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Q0FBQyxvQkFBaUM7UUFDdEQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQzNHLE1BQU0sTUFBTSxHQUFHO2dCQUNiLHFCQUFxQixDQUFDLHNCQUFzQjtnQkFDNUMscUJBQXFCLENBQUMsMkJBQTJCO2dCQUNqRCxxQkFBcUIsQ0FBQyxvQkFBb0I7YUFDM0MsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNuRSw4Q0FBOEM7Z0JBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E3U1Usa0JBQWtCLGtGQVNuQixhQUFhO21IQVRaLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UsIHNvcnQgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBwRXZlbnQsXG4gIEFwcEV2ZW50VHlwZUVudW0sXG4gIERlcHJlY2lhdGlvbixcbiAgRmluYW5jaWFsWWVhcixcbiAgTm90aWZpY2F0aW9uLCBQcm9wZXJ0eVNoYXJlLFxuICBUcmFuc2FjdGlvbixcbiAgVmVoaWNsZUNsYWltXG59IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgdHJhbnNhY3Rpb25zIGJ1c2luZXNzIGxvZ2ljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFRyYW5zYWN0aW9uQmFzZSwgVHJhbnNhY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3IgVHJhbnNhY3Rpb24gQVBJXG4gIHVybCA9ICd0cmFuc2FjdGlvbnMnO1xuICBtb2RlbENsYXNzID0gVHJhbnNhY3Rpb247XG4gIHRyYW5zYWN0aW9uRGVsZXRlZDogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZXNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKFByb3BlcnR5U2hhcmUuZ2V0RXZlbnROYW1lKCdwdXQnKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICAgIHRoaXMubGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5WZWhpY2xlQ2xhaW1DaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmV0Y2gocGF0aCA9IHRoaXMuYXBpVXJsLCBjYWNoZSA9IHRydWUpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gc3VwZXIuZmV0Y2gocGF0aCwgY2FjaGUpLnBpcGUoXG4gICAgICBtYXAodHJhbnNhY3Rpb25zID0+IHtcbiAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQgPT4ge1xuICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLy8gZ2V0IGxpc3Qgb2YgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC5wYXJlbnRUcmFuc2FjdGlvbiAmJiB0LnBhcmVudFRyYW5zYWN0aW9uLmlkID09PSB0cmFuc2FjdGlvbi5pZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0cmFuc2FjdGlvbnM7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEN1cnJlbnRZZWFyKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKS5maWx0ZXJCeUZpbmFuY2lhbFllYXIoJ2RhdGUnKS50b0FycmF5KCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2luZ2xlIG5ldyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gbW9kZWwgTmV3IFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZChtb2RlbDogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSBQT1NUIEFQSSBlbmRwb2ludCBmb3Igc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW21vZGVsXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld1RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uID0+IHtcbiAgICAgICAgICAvLyBAVE9ETyBhbGV4XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0NSRUFURUQsIG5ld1RyYW5zYWN0aW9uc1swXSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uc1swXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRyYW5zYWN0aW9ucyByZWxhdGVkIHdpdGggcHJvcGVydHlcbiAgICovXG4gIGdldEJ5UHJvcGVydHlJZChwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50WWVhcigpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24ucHJvcGVydHk/LmlkID09PSBwcm9wZXJ0eUlkKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHdpdGggdGFuayB0eXBlICdXb3JrJ1xuICAgKi9cbiAgZ2V0V29ya1RyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50WWVhcigpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNXb3JrVGFuaygpKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgcHJvcGVydHkgaG9sZGluZyBjb3N0cyAodHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gdmFjYW50IGxhbmQgcHJvcGVydHkpXG4gICAqL1xuICBnZXRQcm9wZXJ0eUhvbGRpbmdDb3N0cyhwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0aWVzLyR7cHJvcGVydHlJZH0vaG9sZGluZy1jb3N0c2AsIGZhbHNlKTtcbiAgfVxuXG4gIGdldFdpdGhvdXRUYXhGcmVlUHJvcGVydHkoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2goYCR7dGhpcy5hcGlVcmx9P2V4Y2x1ZGVUYXhGcmVlUHJvcGVydHlDYXRlZ29yaWVzYCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRheGFibGUgdHJhbnNhY3Rpb25zIHdpdGggdGFuayB0eXBlICdXb3JrJ1xuICAgKi9cbiAgZ2V0VGF4YWJsZVdvcmtUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V29ya1RyYW5zYWN0aW9ucygpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gISF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLnRheFJldHVybkl0ZW0pKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgTGlzdCBvZiBuZXcgVHJhbnNhY3Rpb24gaW5zdGFuY2VzIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZEJhdGNoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHRyYW5zYWN0aW9ucyA9IF8uY2xvbmVEZWVwKHRyYW5zYWN0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9ucykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlW10pID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuXG4gICAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgLy8gQFRPRE8gVmlrdG9yOiBpbXBsZW1lbnQgQVBJIGZvciBzYXZpbmcgb2YgbmVzdGVkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLy8gYWRkIGNoaWxkIHRyYW5zYWN0aW9ucyBpZiBleGlzdFxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZvckVhY2goKGNoaWxkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY2hpbGRUcmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbiA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh7IGlkOiBhZGRlZFRyYW5zYWN0aW9uc1tpbmRleF0uaWQgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmFkZEJhdGNoKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucykuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCB0cmFuc2ZlciB0cmFuc2FjdGlvbiB0byBjYWNoZVxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSKSB7XG4gICAgICAgICAgICAgIGFkZGVkVHJhbnNhY3Rpb25zLnB1c2goYWRkZWRUcmFuc2FjdGlvbnNbMF0udHJhbnNmZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hZGRlZFRyYW5zYWN0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uW10+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05TX0NSRUFURUQsIGFkZGVkVHJhbnNhY3Rpb25zKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gYWRkZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBleGlzdGluZyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGUodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7dHJhbnNhY3Rpb24uaWR9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9uKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGFkZCBwYXJlbnQgdHJhbnNhY3Rpb24gdG8gY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgY2hpbGRUcmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbiA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh7IGlkOiB1cGRhdGVkVHJhbnNhY3Rpb24uaWQgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNoaWxkIHRyYW5zYWN0aW9ucyBieSBpZCBleGlzdGluZyB0byBkZWZpbmUgYWRkIG9yIHVwZGF0ZSBhY3Rpb24uXG4gICAgICAgICAgICBjb25zdCBjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlOiBUcmFuc2FjdGlvbltdID0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZpbHRlcigodDogVHJhbnNhY3Rpb24pID0+IHQuaWQpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRUcmFuc2FjdGlvbnNUb0FkZDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKSA9PiAhdC5pZCk7XG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJhdGNoKGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGUpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBhZGQgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAoY2hpbGRUcmFuc2FjdGlvbnNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRCYXRjaChjaGlsZFRyYW5zYWN0aW9uc1RvQWRkKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnJlcGxhY2VJbkNhY2hlKHVwZGF0ZWRUcmFuc2FjdGlvbik7XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFRyYW5zYWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgbGlzdCBvZiB0cmFuc2FjdGlvbnMgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGVCYXRjaCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbih0cmFuc2FjdGlvbnMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuXG4gICAgICAgICAgdXBkYXRlZFRyYW5zYWN0aW9ucy5mb3JFYWNoKCh1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRUcmFuc2FjdGlvbik7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZUJhdGNoKG1vZGVscykucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb24+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fREVMRVRFRCwgbW9kZWxzWzBdKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSB0cmFuc2FjdGlvbiBhbmQgcmVsYXRlZCB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqL1xuICBkZWxldGUobW9kZWw6IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbC5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIC8vIHdoZW4gZGVsZXRlIHRyYW5zZmVyIHdlIGRlbGV0ZSBhY3R1YWxseSAyIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlzVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IFttb2RlbC5pZF07XG5cbiAgICAgICAgICAgICAgLy8gZ2V0IGlkIG9mIHJlbGF0ZWQgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgaWYgKG1vZGVsLnRyYW5zZmVyKSB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCB0YWtlIGlkIGlmIHdlIGRlbGV0ZSBzb3VyY2UgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgICBpZHMucHVzaChtb2RlbC50cmFuc2Zlci5pZCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZmluZCBzb3VyY2UgdHJhbnNhY3Rpb24gaWQgaWYgd2UgZGVsZXRlIGRlc3RpbmF0aW9uIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2godGhpcy5jYWNoZS5maW5kKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC50cmFuc2Zlci5pZCA9PT0gbW9kZWwuaWQpLmlkKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAhaWRzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlkICE9PSBtb2RlbC5pZCAmJiB0cmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbj8uaWQgIT09IG1vZGVsLmlkO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0RFTEVURUQsIG1vZGVsKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkRlbGV0ZWQuZW1pdChtb2RlbCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gRGVwcmVjaWF0aW9uIGNoYW5naW5nXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkRlcHJlY2lhdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAvLyBAVE9ETyByZXNldCBjYWNoZSBvbmx5IHdoZW4gcmVxdWlyZWQgKGRlcHJlY2lhdGlvbiBoYXMgdHJhbnNhY3Rpb24pXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMiguLi5EZXByZWNpYXRpb24uZ2V0RXZlbnROYW1lcygncG9zdCcsICdkZWxldGUnKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblZlaGljbGVDbGFpbUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMiguLi5WZWhpY2xlQ2xhaW0uZ2V0RXZlbnROYW1lcygncG9zdCcsICdwdXQnKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaENhY2hlKCkpO1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fREVUQUlMU19VUERBVEVEXG4gICAgXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9wZXJ0eSBmb3JlY2FzdCBpbmNsdWRlcyBjbGFpbVBlcmNlbnQgd2hpY2ggYWZmZWN0cyBwcm9wZXJ0eSByZWxhdGVkIGV4cGVuc2VzXG4gICAqIEBUT0RPIEFsZXggbW92ZSB0byBmb3JlY2FzdCBhcGkgaW5zdGVhZCBvZiBwcm9wZXJ0eVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VJbkNhY2hlKHRyYW5zYWN0aW9uVG9SZXBsYWNlOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdHJhbnNhY3Rpb25Ub1JlcGxhY2UpO1xuICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLklOVk9JQ0VfQVVUT19BTExPQ0FURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5JTlZPSUNFX0FVVE9fUEFSVF9BTExPQ0FURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5SVUxFU19BVVRPX0FMTE9DQVRFRFxuICAgICAgXTtcblxuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIGV2ZW50cy5pbmNsdWRlcyhub3RpZmljYXRpb24uZXZlbnRUeXBlKSkge1xuICAgICAgICAvLyBAVE9ETyBUVC0zODI2IG1vdmUgdG8gdW5pZmllZCBtZXJjdXJlIGV2ZW50XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgICAgIH0sIDMwMDApXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFlBQVksRUFBRSxlQUFlLEVBQ2YsYUFBYSxFQUMzQixXQUFXLEVBQ1gsWUFBWSxFQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUU3RDs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUF5QztJQU0vRSxZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFKVCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFX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cnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBwRXZlbnQsXG4gIEFwcEV2ZW50VHlwZUVudW0sXG4gIERlcHJlY2lhdGlvbiwgSG9tZU9mZmljZUNsYWltLFxuICBOb3RpZmljYXRpb24sIFByb3BlcnR5U2hhcmUsXG4gIFRyYW5zYWN0aW9uLFxuICBWZWhpY2xlQ2xhaW1cbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB0cmFuc2FjdGlvbnMgYnVzaW5lc3MgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8VHJhbnNhY3Rpb25CYXNlLCBUcmFuc2FjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIC8vIHVybCBwYXJ0IGZvciBUcmFuc2FjdGlvbiBBUElcbiAgdXJsID0gJ3RyYW5zYWN0aW9ucyc7XG4gIG1vZGVsQ2xhc3MgPSBUcmFuc2FjdGlvbjtcbiAgdHJhbnNhY3Rpb25EZWxldGVkOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICApIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZXZlbnRzIGZyb20gRXZlbnQgRGlzcGF0Y2hlciBzZXJ2aWNlc1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIoUHJvcGVydHlTaGFyZS5nZXRFdmVudE5hbWUoJ3B1dCcpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoQ2FjaGUoKSk7XG4gICAgdGhpcy5saXN0ZW5EZXByZWNpYXRpb25DaGFuZ2UoKTtcbiAgICB0aGlzLmxpc3RlblZlaGljbGVDbGFpbUNoYW5nZXMoKTtcbiAgICB0aGlzLmxpc3RlbkhvbWVPZmZpY2VDbGFpbSgpO1xuICAgIHRoaXMubGlzdGVuUHJvcGVydHlGb3JlY2FzdFVwZGF0ZSgpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgZ2V0KHBhdGggPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiBzdXBlci5nZXQocGF0aCkucGlwZShcbiAgICAgIG1hcCh0cmFuc2FjdGlvbnMgPT4ge1xuICAgICAgICB0cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCA9PiB7XG4gICAgICAgICAgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zID0gdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAvLyBnZXQgbGlzdCBvZiBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0LnBhcmVudFRyYW5zYWN0aW9uICYmIHQucGFyZW50VHJhbnNhY3Rpb24uaWQgPT09IHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucztcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0Q3VycmVudFllYXIoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMpLmZpbHRlckJ5RmluYW5jaWFsWWVhcignZGF0ZScpLnRvQXJyYXkoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBzaW5nbGUgbmV3IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBtb2RlbCBOZXcgVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIHNhdmluZ1xuICAgKi9cbiAgYWRkKG1vZGVsOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb24+IHtcbiAgICAvLyB3ZSBkb24ndCBoYXZlIFBPU1QgQVBJIGVuZHBvaW50IGZvciBzaW5nbGUgdHJhbnNhY3Rpb25cbiAgICByZXR1cm4gdGhpcy5hZGRCYXRjaChbbW9kZWxdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3VHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb24gPT4ge1xuICAgICAgICAgIC8vIEBUT0RPIGFsZXhcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb24+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fQ1JFQVRFRCwgbmV3VHJhbnNhY3Rpb25zWzBdKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gbmV3VHJhbnNhY3Rpb25zWzBdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgd2l0aCBwcm9wZXJ0eVxuICAgKi9cbiAgZ2V0QnlQcm9wZXJ0eUlkKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRZZWFyKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5wcm9wZXJ0eT8uaWQgPT09IHByb3BlcnR5SWQpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgd2l0aCB0YW5rIHR5cGUgJ1dvcmsnXG4gICAqL1xuICBnZXRXb3JrVHJhbnNhY3Rpb25zKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRZZWFyKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCkpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBwcm9wZXJ0eSBob2xkaW5nIGNvc3RzICh0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byB2YWNhbnQgbGFuZCBwcm9wZXJ0eSlcbiAgICovXG4gIGdldFByb3BlcnR5SG9sZGluZ0Nvc3RzKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3Byb3BlcnRpZXMvJHtwcm9wZXJ0eUlkfS9ob2xkaW5nLWNvc3RzYCwgZmFsc2UpO1xuICB9XG5cbiAgZ2V0V2l0aG91dFRheEZyZWVQcm9wZXJ0eSgpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChgJHt0aGlzLmFwaVVybH0/ZXhjbHVkZVRheEZyZWVQcm9wZXJ0eUNhdGVnb3JpZXNgLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdGF4YWJsZSB0cmFuc2FjdGlvbnMgd2l0aCB0YW5rIHR5cGUgJ1dvcmsnXG4gICAqL1xuICBnZXRUYXhhYmxlV29ya1RyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXb3JrVHJhbnNhY3Rpb25zKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiAhIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMudGF4UmV0dXJuSXRlbSkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBtdWx0aXBsZSB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9ucyBMaXN0IG9mIG5ldyBUcmFuc2FjdGlvbiBpbnN0YW5jZXMgZm9yIHNhdmluZ1xuICAgKi9cbiAgYWRkQmF0Y2godHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgdHJhbnNhY3Rpb25zID0gXy5jbG9uZURlZXAodHJhbnNhY3Rpb25zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4odHJhbnNhY3Rpb25zKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFkZGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gcmVzcG9uc2UubWFwKChpdGVtOiBUcmFuc2FjdGlvbkJhc2UpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG5cbiAgICAgICAgICB0cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAvLyBhZGQgY2hpbGQgdHJhbnNhY3Rpb25zIGlmIGV4aXN0XG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZFRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHsgaWQ6IGFkZGVkVHJhbnNhY3Rpb25zW2luZGV4XS5pZCB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQmF0Y2godHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIHRyYW5zZmVyIHRyYW5zYWN0aW9uIHRvIGNhY2hlXG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24ub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uVFJBTlNGRVIpIHtcbiAgICAgICAgICAgICAgYWRkZWRUcmFuc2FjdGlvbnMucHVzaChhZGRlZFRyYW5zYWN0aW9uc1swXS50cmFuc2Zlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKC4uLmFkZGVkVHJhbnNhY3Rpb25zKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb25bXT4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTlNfQ1JFQVRFRCwgYWRkZWRUcmFuc2FjdGlvbnMpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBhZGRlZFRyYW5zYWN0aW9ucztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogdXBkYXRlIGV4aXN0aW5nIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiBpbnN0YW5jZSBmb3IgdXBkYXRpbmdcbiAgICovXG4gIHVwZGF0ZSh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHt0cmFuc2FjdGlvbi5pZH1gLCBjbGFzc1RvUGxhaW4odHJhbnNhY3Rpb24pKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIC8vIEBUT0RPIFZpa3RvcjogaW1wbGVtZW50IEFQSSBmb3Igc2F2aW5nIG9mIG5lc3RlZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gYWRkIHBhcmVudCB0cmFuc2FjdGlvbiB0byBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5mb3JFYWNoKChjaGlsZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICBjaGlsZFRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHsgaWQ6IHVwZGF0ZWRUcmFuc2FjdGlvbi5pZCB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gc2VwYXJhdGUgY2hpbGQgdHJhbnNhY3Rpb25zIGJ5IGlkIGV4aXN0aW5nIHRvIGRlZmluZSBhZGQgb3IgdXBkYXRlIGFjdGlvbi5cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGU6IFRyYW5zYWN0aW9uW10gPSB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbikgPT4gdC5pZCk7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFRyYW5zYWN0aW9uc1RvQWRkOiBUcmFuc2FjdGlvbltdID0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZpbHRlcigodDogVHJhbnNhY3Rpb24pID0+ICF0LmlkKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlQmF0Y2goY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZSkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChjaGlsZFRyYW5zYWN0aW9uc1RvQWRkLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmFkZEJhdGNoKGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucmVwbGFjZUluQ2FjaGUodXBkYXRlZFRyYW5zYWN0aW9uKTtcblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkVHJhbnNhY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBtdWx0aXBsZSB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9ucyBsaXN0IG9mIHRyYW5zYWN0aW9ucyBmb3IgdXBkYXRpbmdcbiAgICovXG4gIHVwZGF0ZUJhdGNoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKHRyYW5zYWN0aW9ucykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlW10pID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gcmVzcG9uc2UubWFwKChpdGVtOiBUcmFuc2FjdGlvbkJhc2UpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG5cbiAgICAgICAgICB1cGRhdGVkVHJhbnNhY3Rpb25zLmZvckVhY2goKHVwZGF0ZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZFRyYW5zYWN0aW9uKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFRyYW5zYWN0aW9ucztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBkZWxldGVCYXRjaChtb2RlbHM6IFRyYW5zYWN0aW9uW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlQmF0Y2gobW9kZWxzKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbj4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9ERUxFVEVELCBtb2RlbHNbMF0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsZXRlIHRyYW5zYWN0aW9uIGFuZCByZWxhdGVkIHRyYW5zYWN0aW9uc1xuICAgKiBAcGFyYW0gbW9kZWxcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgLy8gd2hlbiBkZWxldGUgdHJhbnNmZXIgd2UgZGVsZXRlIGFjdHVhbGx5IDIgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAobW9kZWwuaXNUcmFuc2Zlcikge1xuICAgICAgICAgICAgICBjb25zdCBpZHM6IG51bWJlcltdID0gW21vZGVsLmlkXTtcblxuICAgICAgICAgICAgICAvLyBnZXQgaWQgb2YgcmVsYXRlZCB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICBpZiAobW9kZWwudHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBqdXN0IHRha2UgaWQgaWYgd2UgZGVsZXRlIHNvdXJjZSB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICAgIGlkcy5wdXNoKG1vZGVsLnRyYW5zZmVyLmlkKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBmaW5kIHNvdXJjZSB0cmFuc2FjdGlvbiBpZCBpZiB3ZSBkZWxldGUgZGVzdGluYXRpb24gdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgICBpZHMucHVzaCh0aGlzLmNhY2hlLmZpbmQoKHQ6IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0LnRyYW5zZmVyLmlkID09PSBtb2RlbC5pZCkuaWQpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuICFpZHMuaW5jbHVkZXModHJhbnNhY3Rpb24uaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb24uaWQgIT09IG1vZGVsLmlkICYmIHRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uPy5pZCAhPT0gbW9kZWwuaWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb24+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fREVMRVRFRCwgbW9kZWwpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRGVsZXRlZC5lbWl0KG1vZGVsKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBEZXByZWNpYXRpb24gY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIC8vIEBUT0RPIHJlc2V0IGNhY2hlIG9ubHkgd2hlbiByZXF1aXJlZCAoZGVwcmVjaWF0aW9uIGhhcyB0cmFuc2FjdGlvbilcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKC4uLkRlcHJlY2lhdGlvbi5nZXRFdmVudE5hbWVzKCdwb3N0JywgJ2RlbGV0ZScpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVmVoaWNsZUNsYWltQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKC4uLlZlaGljbGVDbGFpbS5nZXRFdmVudE5hbWVzKCdwb3N0JywgJ3B1dCcpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoQ2FjaGUoKSk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKFtBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fREVUQUlMU19VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuSG9tZU9mZmljZUNsYWltKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIoLi4uSG9tZU9mZmljZUNsYWltLmdldEV2ZW50TmFtZXMoJ3Bvc3QnLCAncHV0JykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHByb3BlcnR5IGZvcmVjYXN0IGluY2x1ZGVzIGNsYWltUGVyY2VudCB3aGljaCBhZmZlY3RzIHByb3BlcnR5IHJlbGF0ZWQgZXhwZW5zZXNcbiAgICogQFRPRE8gQWxleCBtb3ZlIHRvIGZvcmVjYXN0IGFwaSBpbnN0ZWFkIG9mIHByb3BlcnR5XG4gICAqL1xuICBwcml2YXRlIGxpc3RlblByb3BlcnR5Rm9yZWNhc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKFtBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX1VQREFURURdKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZUluQ2FjaGUodHJhbnNhY3Rpb25Ub1JlcGxhY2U6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB0cmFuc2FjdGlvblRvUmVwbGFjZSk7XG4gICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZXZlbnRzID0gW1xuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uSU5WT0lDRV9BVVRPX0FMTE9DQVRFRCxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLklOVk9JQ0VfQVVUT19QQVJUX0FMTE9DQVRFRCxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLlJVTEVTX0FVVE9fQUxMT0NBVEVEXG4gICAgICBdO1xuXG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgZXZlbnRzLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi5ldmVudFR5cGUpKSB7XG4gICAgICAgIC8vIEBUT0RPIFRULTM4MjYgbW92ZSB0byB1bmlmaWVkIG1lcmN1cmUgZXZlbnRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgICAgfSwgMzAwMClcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|