taxtank-core 0.28.85 → 0.28.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taxtank-core.umd.js +77 -44
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/property/property-category-movement.collection.js +2 -2
- package/esm2015/lib/collections/transaction/transaction.collection.js +4 -12
- package/esm2015/lib/models/event/app-event-type.enum.js +20 -18
- package/esm2015/lib/models/property/property.js +2 -2
- package/esm2015/lib/services/http/sole/sole-invoice/sole-invoice.service.js +12 -1
- package/esm2015/lib/services/http/subscription/subscription.service.js +16 -10
- package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +21 -1
- package/esm2015/lib/services/property/property-calculation/property-calculation.service.js +3 -3
- package/fesm2015/taxtank-core.js +69 -40
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/transaction/transaction.collection.d.ts +1 -9
- package/lib/models/event/app-event-type.enum.d.ts +19 -17
- package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts +4 -1
- package/lib/services/http/subscription/subscription.service.d.ts +7 -5
- package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts +3 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { TransactionAllocation } from '../../../../models/transaction/transactio
|
|
|
3
3
|
import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
|
|
4
4
|
import { RestService } from '../../rest/rest.service';
|
|
5
5
|
import { map } from 'rxjs/operators';
|
|
6
|
+
import { AppEvent } from '../../../../models/event/app-event';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
// @TODO Don't look at the commented code. Will be refactored/removed during TT-1503
|
|
8
9
|
/**
|
|
@@ -22,6 +23,25 @@ export class TransactionAllocationService extends RestService {
|
|
|
22
23
|
add(allocation) {
|
|
23
24
|
return this.addBatch([allocation]).pipe(map((newAllocations) => newAllocations[0]));
|
|
24
25
|
}
|
|
26
|
+
addBatch(models, queryParams) {
|
|
27
|
+
return super.addBatch(models, queryParams)
|
|
28
|
+
.pipe(map((allocations) => {
|
|
29
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_ALLOCATION_CREATED, allocations));
|
|
30
|
+
return allocations;
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
delete(model) {
|
|
34
|
+
return super.delete(model)
|
|
35
|
+
.pipe(map(() => {
|
|
36
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_ALLOCATION_DELETED, null));
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
deleteBatch(models) {
|
|
40
|
+
return super.deleteBatch(models)
|
|
41
|
+
.pipe(map(() => {
|
|
42
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_ALLOCATION_DELETED, null));
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
25
45
|
/**
|
|
26
46
|
* get list of transactions allocations related with passed bank transactions list
|
|
27
47
|
*/
|
|
@@ -79,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
79
99
|
providedIn: 'root'
|
|
80
100
|
}]
|
|
81
101
|
}] });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFOUQsb0ZBQW9GO0FBRXBGOzs7R0FHRztBQUlILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxXQUE2RDtJQUgvRzs7UUFJRSw0Q0FBNEM7UUFDNUMsUUFBRyxHQUFXLDBCQUEwQixDQUFDO1FBQ3pDLGVBQVUsR0FBRyxxQkFBcUIsQ0FBQztLQTZGcEM7SUEzRkM7O09BRUc7SUFDSCxHQUFHLENBQUMsVUFBaUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxDQUFDLGNBQXVDLEVBQXlCLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDM0YsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBK0IsRUFBRSxXQUFvQjtRQUM1RCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdB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QUFDO0lBQ0wsQ0FBQzs7MEhBL0ZVLDRCQUE0Qjs4SEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07NEZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiBhcyBUcmFuc2FjdGlvbkFsbG9jYXRpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuXG4vLyBAVE9ETyBEb24ndCBsb29rIGF0IHRoZSBjb21tZW50ZWQgY29kZS4gV2lsbCBiZSByZWZhY3RvcmVkL3JlbW92ZWQgZHVyaW5nIFRULTE1MDNcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB0cmFuc2FjdGlvbiBhbGxvY2F0aW9ucyBidXNpbmVzcyBsb2dpY1xuICogQFRPRE8gYWxleCByZWZhY3RvclxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8VHJhbnNhY3Rpb25BbGxvY2F0aW9uQmFzZSwgVHJhbnNhY3Rpb25BbGxvY2F0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgLy8gQVBJIFVSTCBwYXJhbSBmb3IgdHJhbnNhY3Rpb24gYWxsb2NhdGlvbnNcbiAgdXJsOiBzdHJpbmcgPSAndHJhbnNhY3Rpb25zLWFsbG9jYXRpb25zJztcbiAgbW9kZWxDbGFzcyA9IFRyYW5zYWN0aW9uQWxsb2NhdGlvbjtcblxuICAvKipcbiAgICogQWRkIHNpbmdsZSB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uXG4gICAqL1xuICBhZGQoYWxsb2NhdGlvbjogVHJhbnNhY3Rpb25BbGxvY2F0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkFsbG9jYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRCYXRjaChbYWxsb2NhdGlvbl0pLnBpcGUoXG4gICAgICBtYXAoKG5ld0FsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25bXSk6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiA9PiBuZXdBbGxvY2F0aW9uc1swXSlcbiAgICApO1xuICB9XG5cbiAgYWRkQmF0Y2gobW9kZWxzOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25bXSwgcXVlcnlQYXJhbXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdPiB7XG4gICAgcmV0dXJuIHN1cGVyLmFkZEJhdGNoKG1vZGVscywgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10pID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fQUxMT0NBVElPTl9DUkVBVEVELCBhbGxvY2F0aW9ucykpO1xuICAgICAgICAgIHJldHVybiBhbGxvY2F0aW9ucztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIGRlbGV0ZShtb2RlbDogVHJhbnNhY3Rpb25BbGxvY2F0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShtb2RlbClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9BTExPQ0FUSU9OX0RFTEVURUQsIG51bGwpKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIGRlbGV0ZUJhdGNoKG1vZGVsczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlQmF0Y2gobW9kZWxzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0FMTE9DQVRJT05fREVMRVRFRCwgbnVsbCkpO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIHRyYW5zYWN0aW9ucyBhbGxvY2F0aW9ucyByZWxhdGVkIHdpdGggcGFzc2VkIGJhbmsgdHJhbnNhY3Rpb25zIGxpc3RcbiAgICovXG4gIGdldEJ5VHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25BbGxvY2F0aW9uW10+IHtcbiAgICBjb25zdCBpZHM6IG51bWJlcltdID0gdHJhbnNhY3Rpb25zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5pZCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uQWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uQWxsb2NhdGlvbnMuZmlsdGVyKChhbGxvY2F0aW9uOiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pID0+IGlkcy5pbmNsdWRlcyhhbGxvY2F0aW9uLnRyYW5zYWN0aW9uLmlkKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMub25UcmFuc2FjdGlvbnNDcmVhdGVkKCk7XG4gICAgdGhpcy5vbkRlcHJlY2lhdGlvbkNyZWF0ZWQoKTtcbiAgICB0aGlzLm9uVHJhbnNhY3Rpb25EZWxldGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgY2FjaGUgb24gdHJhbnNhY3Rpb25zIGNyZWF0ZWRcbiAgICovXG4gIHByaXZhdGUgb25UcmFuc2FjdGlvbnNDcmVhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OU19DUkVBVEVEKS5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IHZvaWQgPT4ge1xuICAgICAgLy8gQFRPRE8gQWxleCBoYWNrOiByZXNlYXJjaCBhbmQgcmVmYWN0b3IgY2FjaGUgdXBkYXRlIGxvZ2ljLCBkb250IHJlc2V0IGNhY2hlIGVhY2ggdGltZSB0cmFuc2FjdGlvbnMgY2hhbmdlZFxuICAgICAgaWYgKHRyYW5zYWN0aW9uc1swXS5pc1RyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIFVwZGF0ZSBhbGxvY2F0aW9ucyBjYWNoZSB0byBzeW5jaHJvbml6ZSBkYXRhIGFuZCBmaXJlIHN1YnNjcmlwdGlvbnNcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGNhY2hlIG9uIGRlcHJlY2lhdGlvbiBjcmVhdGVkXG4gICAqL1xuICBwcml2YXRlIG9uRGVwcmVjaWF0aW9uQ3JlYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5ERVBSRUNJQVRJT05TX0NSRUFURUQpLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAvLyBAVE9ETyBBbGV4IGhhY2s6IHJlc2VhcmNoIGFuZCByZWZhY3RvciBjYWNoZSB1cGRhdGUgbG9naWMsIGRvbnQgcmVzZXQgY2FjaGUgZWFjaCB0aW1lIGRlcHJlY2lhdGlvbnMgY2hhbmdlZFxuICAgICAgLy8gVXBkYXRlIGFsbG9jYXRpb25zIGNhY2hlIHRvIHN5bmNocm9uaXplIGRhdGEgYW5kIGZpcmUgc3Vic2NyaXB0aW9uc1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgY2FjaGUgb24gdHJhbnNhY3Rpb24gZGVsZXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBvblRyYW5zYWN0aW9uRGVsZXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9ERUxFVEVEKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgLy8gQFRPRE8gQWxleCBoYWNrOiByZXNlYXJjaCBhbmQgcmVmYWN0b3IgY2FjaGUgdXBkYXRlIGxvZ2ljLCBkb250IHJlc2V0IGNhY2hlIGVhY2ggdGltZSB0cmFuc2FjdGlvbnMgY2hhbmdlZFxuICAgICAgLy8gVXBkYXRlIGFsbG9jYXRpb25zIGNhY2hlIHRvIHN5bmNocm9uaXplIGRhdGEgYW5kIGZpcmUgc3Vic2NyaXB0aW9uc1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -12,7 +12,7 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
export class PropertyCalculationService {
|
|
13
13
|
getTaxPosition(transactions, depreciations) {
|
|
14
14
|
// @TODO hack: math abs added because we have mismatching of real values signs
|
|
15
|
-
return transactions.
|
|
15
|
+
return transactions.grossClaimAmount - Math.abs(depreciations.claimAmount);
|
|
16
16
|
}
|
|
17
17
|
getTaxPosition$(transactions$, depreciations$) {
|
|
18
18
|
return combineLatest([
|
|
@@ -143,7 +143,7 @@ export class PropertyCalculationService {
|
|
|
143
143
|
if (!forecastedCashPosition) {
|
|
144
144
|
return 0;
|
|
145
145
|
}
|
|
146
|
-
return (transactions.
|
|
146
|
+
return (transactions.grossClaimAmount - forecastedCashPosition) / forecastedCashPosition;
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* Get Badge for single property in collection
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
175
175
|
providedIn: 'root'
|
|
176
176
|
}]
|
|
177
177
|
}] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRXhFOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsZUFBZSxDQUNiLGFBQWdELEVBQ2hELGNBQWtEO1FBRWxELE9BQU8sYUFBYSxDQUFDO1lBQ25CLGFBQWE7WUFDYixjQUFjO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQWtELEVBQVUsRUFBRTtZQUM3RixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlC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Q0FBQyxDQUFDO1lBQ3BELEtBQUssUUFBUSxDQUFDLEVBQUUsS0FBSywwQkFBMEIsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyw2QkFBNkIsQ0FBQyxFQUFFO2dCQUNwRyxPQUFPLElBQUksS0FBSyxDQUFDLCtCQUErQixFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RSxLQUFLLFFBQVEsQ0FBQyxFQUFFLEtBQUssMEJBQTBCLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEUsS0FBSyxRQUFRLENBQUMsRUFBRSxLQUFLLDZCQUE2QixDQUFDLEVBQUU7Z0JBQ25ELE9BQU8sSUFBSSxLQUFLLENBQUMseUJBQXlCLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BFO2dCQUNFLE9BQU8sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7O3dIQXBOVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9iYW5rLWFjY291bnQuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgTG9hbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9sb2FuL2xvYW4uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kaWN0aW9uYXJ5L2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgQmFkZ2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFkZ2UvYmFkZ2UnO1xuaW1wb3J0IHsgQmFkZ2VDb2xvckVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFkZ2UvYmFkZ2UtY29sb3IuZW51bSc7XG5cbi8qKlxuICogU2VydmljZSB3aXRoIGNhbGN1bGF0aW9ucyBtZXRob2RzIGZvciBwcm9wZXJ0aWVzIHJlbGF0ZWQgd2l0aCBvdGhlciBlbnRpdGllcy5cbiAqIExvZ2ljIGhlcmUgd29ya3MgbGlrZSBjb2xsZWN0aW9ucyBtZXRob2RzIGJ1dCBmb3Igc2V2ZXJhbCBlbnRpdGllc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUNhbGN1bGF0aW9uU2VydmljZSB7XG4gIGdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBAVE9ETyBoYWNrOiBtYXRoIGFicyBhZGRlZCBiZWNhdXNlIHdlIGhhdmUgbWlzbWF0Y2hpbmcgb2YgcmVhbCB2YWx1ZXMgc2lnbnNcbiAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmNhc2hQb3NpdGlvbiAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbnMuY2xhaW1BbW91bnQpO1xuICB9XG5cbiAgZ2V0VGF4UG9zaXRpb24kKFxuICAgIHRyYW5zYWN0aW9ucyQ6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICBkZXByZWNpYXRpb25zJDogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRyYW5zYWN0aW9ucyQsXG4gICAgICBkZXByZWNpYXRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnNdOiBbVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBEZXByZWNpYXRpb25Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB0YXhQb3NpdGlvbkdyb3d0aChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICBjb25zdCBmb3JlY2FzdGVkVGF4UG9zaXRpb246IG51bWJlciA9IHByb3BlcnRpZXMuc3VtQnkoJ2ZvcmVjYXN0ZWRUYXhQb3NpdGlvbicpO1xuICAgIC8vIGNoZWNrIGlmIGZvcmVjYXN0ZWRUYXhQb3NpdGlvbiA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghZm9yZWNhc3RlZFRheFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKSAtIGZvcmVjYXN0ZWRUYXhQb3NpdGlvbikgLyBmb3JlY2FzdGVkVGF4UG9zaXRpb247XG4gIH1cblxuICB0YXhQb3NpdGlvbkdyb3d0aCQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICB0cmFuc2FjdGlvbnMkOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4sXG4gICAgZGVwcmVjaWF0aW9ucyQ6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIHRyYW5zYWN0aW9ucyQsXG4gICAgICBkZXByZWNpYXRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIERlcHJlY2lhdGlvbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGF4UG9zaXRpb25Hcm93dGgocHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFJlbnRhbFJldHVybihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmNsYWltSW5jb21lIC8gcHJvcGVydGllcy5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIGdldExvYW5BbW91bnQocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5pdGVtcy5yZWR1Y2UoKHRvdGFsQW1vdW50OiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgICAgLnJlZHVjZSgocHJvcGVydHlBbW91bnQ6IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogbnVtYmVyID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eVBlcmNlbnRhZ2UocHJvcGVydHkuaWQpICogKGxvYW5zLmdldEJ5QmFua0FjY291bnRJZChiYW5rQWNjb3VudC5pZCk/LmFtb3VudCB8fCAwKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRMb2FuVmFsdWUocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMuaXRlbXMucmVkdWNlKCh0b3RhbEFtb3VudDogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHRvdGFsQW1vdW50ICsgYmFua0FjY291bnRzLml0ZW1zXG4gICAgICAgIC5yZWR1Y2UoKHByb3BlcnR5QW1vdW50OiBudW1iZXIsIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IG51bWJlciA9PiB7XG4gICAgICAgICAgcmV0dXJuIHByb3BlcnR5QW1vdW50ICsgYmFua0FjY291bnQuZ2V0UHJvcGVydHlCYWxhbmNlQW1vdW50KHByb3BlcnR5LmlkKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogTFZSXG4gICAqL1xuXG4gIGdldEx2cihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuZ2V0TG9hblZhbHVlKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykpIC8gcHJvcGVydGllcy5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIGdldEx2ciQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICBiYW5rQWNjb3VudHMkOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIGJhbmtBY2NvdW50cyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgYmFua0FjY291bnRzXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgQmFua0FjY291bnRDb2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBNYXRoLmFicyh0aGlzLmdldExvYW5BbW91bnQocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpIC8gcHJvcGVydGllcy5wdXJjaGFzZVByaWNlO1xuICB9XG5cbiAgZ2V0THZyQ29tbWVuY2VtZW50JChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPixcbiAgICBsb2FucyQ6IE9ic2VydmFibGU8TG9hbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkLFxuICAgICAgbG9hbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb24sIExvYW5Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEx2ckNvbW1lbmNlbWVudChwcm9wZXJ0aWVzLCBsb2FucywgYmFua0FjY291bnRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEx2ckdyb3d0aChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IGx2cjogbnVtYmVyID0gdGhpcy5nZXRMdnIocHJvcGVydGllcywgYmFua0FjY291bnRzKTtcbiAgICBjb25zdCBsdnJDb21tZW5jZW1lbnQ6IG51bWJlciA9IHRoaXMuZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXMsIGxvYW5zLCBiYW5rQWNjb3VudHMpO1xuICAgIGlmICghbHZyQ29tbWVuY2VtZW50KSB7XG4gICAgICAvLyBjaGVjayBpZiBsdnJDb21tZW5jZW1lbnQgPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5nZXRMdnIocHJvcGVydGllcywgYmFua0FjY291bnRzKSAtIGx2ckNvbW1lbmNlbWVudCkgLyBsdnJDb21tZW5jZW1lbnQ7XG4gIH1cblxuICBnZXRMdnJHcm93dGgkKFxuICAgIHByb3BlcnRpZXMkOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgYmFua0FjY291bnRzJDogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+LFxuICAgIGxvYW5zJDogT2JzZXJ2YWJsZTxMb2FuQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIGJhbmtBY2NvdW50cyQsXG4gICAgICBsb2FucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fuc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgTG9hbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyR3Jvd3RoKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVxdWl0eSBwb3NpdGlvbiA9IE1hcmtldCB2YWx1ZSAtIGN1cnJlbnQgbG9hbiB2YWx1ZVxuICAgKi9cbiAgZ2V0RXF1aXR5UG9zaXRpb24ocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlIC0gTWF0aC5hYnModGhpcy5nZXRMb2FuVmFsdWUocHJvcGVydGllcywgYmFua0FjY291bnRzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHVyY2hhc2UgRXF1aXR5ID0gUHVyY2hhc2UgcHJpY2UgLSBpbml0aWFsIGxvYW4gdmFsdWVcbiAgICovXG4gIGdldFB1cmNoYXNlRXF1aXR5KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBwcm9wZXJ0aWVzLnB1cmNoYXNlUHJpY2UgLSBNYXRoLmFicyh0aGlzLmdldExvYW5BbW91bnQocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpO1xuICB9XG5cbiAgZ2V0RXF1aXR5R3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgcHVyY2hhc2VFcXVpdHk6IG51bWJlciA9IHRoaXMuZ2V0UHVyY2hhc2VFcXVpdHkocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fucyk7XG4gICAgLy8gY2hlY2sgaWYgcHVyY2hhc2VFcXVpdHkgPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIXB1cmNoYXNlRXF1aXR5KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuZ2V0RXF1aXR5UG9zaXRpb24ocHJvcGVydGllcywgYmFua0FjY291bnRzKSAtIHB1cmNoYXNlRXF1aXR5KSAvIHB1cmNoYXNlRXF1aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkaWN0aW9uYXJ5IG9mIGJhZGdlcyBmb3IgZWFjaCBwcm9wZXJ0eSBpbiBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXRCYWRnZXNCeVByb3BlcnR5KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBEaWN0aW9uYXJ5PEJhZGdlPiB7XG4gICAgY29uc3QgYmFkZ2VzQnlQcm9wZXJ0eSA9IG5ldyBEaWN0aW9uYXJ5KFtdKTtcblxuICAgIHByb3BlcnRpZXMudG9BcnJheSgpLmZvckVhY2goKHByb3BlcnR5OiBQcm9wZXJ0eSkgPT4ge1xuICAgICAgYmFkZ2VzQnlQcm9wZXJ0eS5hZGQocHJvcGVydHkuaWQsIHRoaXMuZ2V0QmFkZ2UocHJvcGVydHksIHByb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucykpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJhZGdlc0J5UHJvcGVydHk7XG4gIH1cblxuICBnZXRDYXNoUG9zaXRpb25Hcm93dGgocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgZm9yZWNhc3RlZENhc2hQb3NpdGlvbjogbnVtYmVyID0gcHJvcGVydGllcy5zdW1CeSgnZm9yZWNhc3RlZENhc2hQb3NpdGlvbicpO1xuXG4gICAgLy8gY2hlY2sgaWYgZm9yZWNhc3RlZENhc2hQb3NpdGlvbiA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghZm9yZWNhc3RlZENhc2hQb3NpdGlvbikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0cmFuc2FjdGlvbnMuY2FzaFBvc2l0aW9uIC0gZm9yZWNhc3RlZENhc2hQb3NpdGlvbikgLyBmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBCYWRnZSBmb3Igc2luZ2xlIHByb3BlcnR5IGluIGNvbGxlY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0QmFkZ2UocHJvcGVydHk6IFByb3BlcnR5LCBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogQmFkZ2Uge1xuICAgIC8vIGJlc3QgcGVyZm9ybWFuY2UgcHJvcGVydGllcyBjb3VsZCBiZSBvbmx5IGZyb20gYWN0aXZlIHByb3BlcnRpZXMgbGlzdFxuICAgIGNvbnN0IGFjdGl2ZVByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiA9IHByb3BlcnRpZXMuZ2V0QWN0aXZlUHJvcGVydGllcygpO1xuICAgIGNvbnN0IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5OiBQcm9wZXJ0eSA9IGFjdGl2ZVByb3BlcnRpZXMuZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTtcbiAgICBjb25zdCBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eTogUHJvcGVydHkgPSBhY3RpdmVQcm9wZXJ0aWVzLmdldEJlc3RQZXJmb3JtYW5jZVRheFByb3BlcnR5KFxuICAgICAgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zXG4gICAgKTtcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSAhcHJvcGVydHkuaXNBY3RpdmU6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0luYWN0aXZlJywgQmFkZ2VDb2xvckVudW0uR1JBWSk7XG4gICAgICBjYXNlIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eS5pZCAmJiBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkuaWQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0Jlc3QgcGVyZm9ybWFuY2UgZ3Jvd3RoICYgdGF4JywgQmFkZ2VDb2xvckVudW0uR09MRCk7XG4gICAgICBjYXNlIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eS5pZDpcbiAgICAgICAgcmV0dXJuIG5ldyBCYWRnZSgnQmVzdCBwZXJmb3JtYW5jZSB0YXgnLCBCYWRnZUNvbG9yRW51bS5HT0xEKTtcbiAgICAgIGNhc2UgcHJvcGVydHkuaWQgPT09IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5LmlkOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdCZXN0IHBlcmZvcm1hbmNlIGdyb3d0aCcsIEJhZGdlQ29sb3JFbnVtLkdSRUVOKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ01vbml0b3JpbmcgcGVyZm9ybWFuY2UnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRXhFOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxlQUFlLENBQ2IsYUFBZ0QsRUFDaEQsY0FBa0Q7UUFFbEQsT0FBTyxhQUFhLENBQUM7WUFDbkIsYUFBYTtZQUNiLGNBQWM7U0FDZixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBa0QsRUFBVSxFQUFFO1lBQzdGLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFB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QUFJLENBQUMsQ0FBQztZQUNwRCxLQUFLLFFBQVEsQ0FBQyxFQUFFLEtBQUssMEJBQTBCLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssNkJBQTZCLENBQUMsRUFBRTtnQkFDcEcsT0FBTyxJQUFJLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekUsS0FBSyxRQUFRLENBQUMsRUFBRSxLQUFLLDBCQUEwQixDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLEtBQUssUUFBUSxDQUFDLEVBQUUsS0FBSyw2QkFBNkIsQ0FBQyxFQUFFO2dCQUNuRCxPQUFPLElBQUksS0FBSyxDQUFDLHlCQUF5QixFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRTtnQkFDRSxPQUFPLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOzt3SEFwTlUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGekIsTUFBTTs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0FjY291bnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvYmFuay1hY2NvdW50LmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IExvYW5Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvbG9hbi9sb2FuLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvcHJvcGVydHkvcHJvcGVydHkuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGljdGlvbmFyeS9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhZGdlL2JhZGdlJztcbmltcG9ydCB7IEJhZGdlQ29sb3JFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhZGdlL2JhZGdlLWNvbG9yLmVudW0nO1xuXG4vKipcbiAqIFNlcnZpY2Ugd2l0aCBjYWxjdWxhdGlvbnMgbWV0aG9kcyBmb3IgcHJvcGVydGllcyByZWxhdGVkIHdpdGggb3RoZXIgZW50aXRpZXMuXG4gKiBMb2dpYyBoZXJlIHdvcmtzIGxpa2UgY29sbGVjdGlvbnMgbWV0aG9kcyBidXQgZm9yIHNldmVyYWwgZW50aXRpZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDYWxjdWxhdGlvblNlcnZpY2Uge1xuICBnZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gQFRPRE8gaGFjazogbWF0aCBhYnMgYWRkZWQgYmVjYXVzZSB3ZSBoYXZlIG1pc21hdGNoaW5nIG9mIHJlYWwgdmFsdWVzIHNpZ25zXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XG4gIH1cblxuICBnZXRUYXhQb3NpdGlvbiQoXG4gICAgdHJhbnNhY3Rpb25zJDogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+LFxuICAgIGRlcHJlY2lhdGlvbnMkOiBPYnNlcnZhYmxlPERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIERlcHJlY2lhdGlvbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbjogbnVtYmVyID0gcHJvcGVydGllcy5zdW1CeSgnZm9yZWNhc3RlZFRheFBvc2l0aW9uJyk7XG4gICAgLy8gY2hlY2sgaWYgZm9yZWNhc3RlZFRheFBvc2l0aW9uID0gMCB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvXG4gICAgaWYgKCFmb3JlY2FzdGVkVGF4UG9zaXRpb24pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpIC0gZm9yZWNhc3RlZFRheFBvc2l0aW9uKSAvIGZvcmVjYXN0ZWRUYXhQb3NpdGlvbjtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIHRyYW5zYWN0aW9ucyQ6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICBkZXByZWNpYXRpb25zJDogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXhQb3NpdGlvbkdyb3d0aChwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0UmVudGFsUmV0dXJuKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuY2xhaW1JbmNvbWUgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgodG90YWxBbW91bnQ6IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiB0b3RhbEFtb3VudCArIGJhbmtBY2NvdW50cy5pdGVtc1xuICAgICAgICAucmVkdWNlKChwcm9wZXJ0eUFtb3VudDogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBudW1iZXIgPT4ge1xuICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUFtb3VudCArIGJhbmtBY2NvdW50LmdldFByb3BlcnR5UGVyY2VudGFnZShwcm9wZXJ0eS5pZCkgKiAobG9hbnMuZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50LmlkKT8uYW1vdW50IHx8IDApO1xuICAgICAgICB9LCAwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldExvYW5WYWx1ZShwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5pdGVtcy5yZWR1Y2UoKHRvdGFsQW1vdW50OiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgICAgLnJlZHVjZSgocHJvcGVydHlBbW91bnQ6IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogbnVtYmVyID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpO1xuICAgICAgICB9LCAwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMVlJcbiAgICovXG5cbiAgZ2V0THZyKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRMb2FuVmFsdWUocHJvcGVydGllcywgYmFua0FjY291bnRzKSkgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0THZyJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSkgLyBwcm9wZXJ0aWVzLnB1cmNoYXNlUHJpY2U7XG4gIH1cblxuICBnZXRMdnJDb21tZW5jZW1lbnQkKFxuICAgIHByb3BlcnRpZXMkOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgYmFua0FjY291bnRzJDogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+LFxuICAgIGxvYW5zJDogT2JzZXJ2YWJsZTxMb2FuQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIGJhbmtBY2NvdW50cyQsXG4gICAgICBsb2FucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fuc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgTG9hbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXMsIGxvYW5zLCBiYW5rQWNjb3VudHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgbHZyOiBudW1iZXIgPSB0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpO1xuICAgIGNvbnN0IGx2ckNvbW1lbmNlbWVudDogbnVtYmVyID0gdGhpcy5nZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllcywgbG9hbnMsIGJhbmtBY2NvdW50cyk7XG4gICAgaWYgKCFsdnJDb21tZW5jZW1lbnQpIHtcbiAgICAgIC8vIGNoZWNrIGlmIGx2ckNvbW1lbmNlbWVudCA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpIC0gbHZyQ29tbWVuY2VtZW50KSAvIGx2ckNvbW1lbmNlbWVudDtcbiAgfVxuXG4gIGdldEx2ckdyb3d0aCQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICBiYW5rQWNjb3VudHMkOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj4sXG4gICAgbG9hbnMkOiBPYnNlcnZhYmxlPExvYW5Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJCxcbiAgICAgIGxvYW5zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgQmFua0FjY291bnRDb2xsZWN0aW9uLCBMb2FuQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRMdnJHcm93dGgocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fucyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXF1aXR5IHBvc2l0aW9uID0gTWFya2V0IHZhbHVlIC0gY3VycmVudCBsb2FuIHZhbHVlXG4gICAqL1xuICBnZXRFcXVpdHlQb3NpdGlvbihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIHByb3BlcnRpZXMubWFya2V0VmFsdWUgLSBNYXRoLmFicyh0aGlzLmdldExvYW5WYWx1ZShwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXJjaGFzZSBFcXVpdHkgPSBQdXJjaGFzZSBwcmljZSAtIGluaXRpYWwgbG9hbiB2YWx1ZVxuICAgKi9cbiAgZ2V0UHVyY2hhc2VFcXVpdHkocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIHByb3BlcnRpZXMucHVyY2hhc2VQcmljZSAtIE1hdGguYWJzKHRoaXMuZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSk7XG4gIH1cblxuICBnZXRFcXVpdHlHcm93dGgocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICBjb25zdCBwdXJjaGFzZUVxdWl0eTogbnVtYmVyID0gdGhpcy5nZXRQdXJjaGFzZUVxdWl0eShwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKTtcbiAgICAvLyBjaGVjayBpZiBwdXJjaGFzZUVxdWl0eSA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghcHVyY2hhc2VFcXVpdHkpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5nZXRFcXVpdHlQb3NpdGlvbihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpIC0gcHVyY2hhc2VFcXVpdHkpIC8gcHVyY2hhc2VFcXVpdHk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRpY3Rpb25hcnkgb2YgYmFkZ2VzIGZvciBlYWNoIHByb3BlcnR5IGluIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldEJhZGdlc0J5UHJvcGVydHkocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IERpY3Rpb25hcnk8QmFkZ2U+IHtcbiAgICBjb25zdCBiYWRnZXNCeVByb3BlcnR5ID0gbmV3IERpY3Rpb25hcnkoW10pO1xuXG4gICAgcHJvcGVydGllcy50b0FycmF5KCkuZm9yRWFjaCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICBiYWRnZXNCeVByb3BlcnR5LmFkZChwcm9wZXJ0eS5pZCwgdGhpcy5nZXRCYWRnZShwcm9wZXJ0eSwgcHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFkZ2VzQnlQcm9wZXJ0eTtcbiAgfVxuXG4gIGdldENhc2hQb3NpdGlvbkdyb3d0aChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICBjb25zdCBmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uOiBudW1iZXIgPSBwcm9wZXJ0aWVzLnN1bUJ5KCdmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uJyk7XG5cbiAgICAvLyBjaGVjayBpZiBmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uID0gMCB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvXG4gICAgaWYgKCFmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gZm9yZWNhc3RlZENhc2hQb3NpdGlvbikgLyBmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBCYWRnZSBmb3Igc2luZ2xlIHByb3BlcnR5IGluIGNvbGxlY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0QmFkZ2UocHJvcGVydHk6IFByb3BlcnR5LCBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogQmFkZ2Uge1xuICAgIC8vIGJlc3QgcGVyZm9ybWFuY2UgcHJvcGVydGllcyBjb3VsZCBiZSBvbmx5IGZyb20gYWN0aXZlIHByb3BlcnRpZXMgbGlzdFxuICAgIGNvbnN0IGFjdGl2ZVByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiA9IHByb3BlcnRpZXMuZ2V0QWN0aXZlUHJvcGVydGllcygpO1xuICAgIGNvbnN0IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5OiBQcm9wZXJ0eSA9IGFjdGl2ZVByb3BlcnRpZXMuZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTtcbiAgICBjb25zdCBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eTogUHJvcGVydHkgPSBhY3RpdmVQcm9wZXJ0aWVzLmdldEJlc3RQZXJmb3JtYW5jZVRheFByb3BlcnR5KFxuICAgICAgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zXG4gICAgKTtcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSAhcHJvcGVydHkuaXNBY3RpdmU6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0luYWN0aXZlJywgQmFkZ2VDb2xvckVudW0uR1JBWSk7XG4gICAgICBjYXNlIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eS5pZCAmJiBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkuaWQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0Jlc3QgcGVyZm9ybWFuY2UgZ3Jvd3RoICYgdGF4JywgQmFkZ2VDb2xvckVudW0uR09MRCk7XG4gICAgICBjYXNlIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eS5pZDpcbiAgICAgICAgcmV0dXJuIG5ldyBCYWRnZSgnQmVzdCBwZXJmb3JtYW5jZSB0YXgnLCBCYWRnZUNvbG9yRW51bS5HT0xEKTtcbiAgICAgIGNhc2UgcHJvcGVydHkuaWQgPT09IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5LmlkOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdCZXN0IHBlcmZvcm1hbmNlIGdyb3d0aCcsIEJhZGdlQ29sb3JFbnVtLkdSRUVOKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ01vbml0b3JpbmcgcGVyZm9ybWFuY2UnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/fesm2015/taxtank-core.js
CHANGED
|
@@ -249,23 +249,25 @@ var AppEventTypeEnum;
|
|
|
249
249
|
AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_UPDATED"] = 49] = "SOLE_DETAILS_UPDATED";
|
|
250
250
|
AppEventTypeEnum[AppEventTypeEnum["SOLE_INVOICE_PUBLISHED"] = 50] = "SOLE_INVOICE_PUBLISHED";
|
|
251
251
|
AppEventTypeEnum[AppEventTypeEnum["TAX_REVIEW_UPDATED"] = 51] = "TAX_REVIEW_UPDATED";
|
|
252
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
253
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
254
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
255
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
256
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
257
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
258
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
259
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
260
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
261
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
262
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
263
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
264
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
265
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
266
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
267
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
268
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
|
252
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_ALLOCATION_CREATED"] = 52] = "TRANSACTION_ALLOCATION_CREATED";
|
|
253
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_ALLOCATION_DELETED"] = 53] = "TRANSACTION_ALLOCATION_DELETED";
|
|
254
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_CREATED"] = 54] = "TRANSACTION_CREATED";
|
|
255
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_DELETED"] = 55] = "TRANSACTION_DELETED";
|
|
256
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED"] = 56] = "TRANSACTION_UPDATED";
|
|
257
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED_WITH_RECEIPT"] = 57] = "TRANSACTION_UPDATED_WITH_RECEIPT";
|
|
258
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED_WITH_DELETED_RECEIPT"] = 58] = "TRANSACTION_UPDATED_WITH_DELETED_RECEIPT";
|
|
259
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_RECEIPT_CREATED"] = 59] = "TRANSACTION_RECEIPT_CREATED";
|
|
260
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_RECEIPT_DELETED"] = 60] = "TRANSACTION_RECEIPT_DELETED";
|
|
261
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTIONS_CREATED"] = 61] = "TRANSACTIONS_CREATED";
|
|
262
|
+
AppEventTypeEnum[AppEventTypeEnum["USER_UPDATED"] = 62] = "USER_UPDATED";
|
|
263
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_UPDATED"] = 63] = "VEHICLE_CLAIM_UPDATED";
|
|
264
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_CREATED"] = 64] = "VEHICLE_CLAIM_CREATED";
|
|
265
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_UPDATED"] = 65] = "VEHICLE_CLAIM_DETAILS_UPDATED";
|
|
266
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_CREATED"] = 66] = "VEHICLE_CLAIM_DETAILS_CREATED";
|
|
267
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_CREATED"] = 67] = "VEHICLE_LOGBOOK_CREATED";
|
|
268
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_UPDATED"] = 68] = "VEHICLE_LOGBOOK_UPDATED";
|
|
269
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_DELETED"] = 69] = "VEHICLE_LOGBOOK_DELETED";
|
|
270
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED"] = 70] = "VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED";
|
|
269
271
|
})(AppEventTypeEnum || (AppEventTypeEnum = {}));
|
|
270
272
|
|
|
271
273
|
class EventDispatcherService {
|
|
@@ -4749,7 +4751,7 @@ class Property extends Property$1 {
|
|
|
4749
4751
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217415928/Dashboard+Property
|
|
4750
4752
|
*/
|
|
4751
4753
|
getTaxPosition(transactions, depreciations) {
|
|
4752
|
-
return transactions.
|
|
4754
|
+
return transactions.grossClaimAmount - Math.abs(depreciations.claimAmount);
|
|
4753
4755
|
}
|
|
4754
4756
|
}
|
|
4755
4757
|
/**
|
|
@@ -6210,7 +6212,7 @@ class PropertyCategoryMovementCollection extends Collection {
|
|
|
6210
6212
|
getByForecast(property, forecast) {
|
|
6211
6213
|
const financialYear = new FinancialYear(forecast.financialYear);
|
|
6212
6214
|
return this.filterBy('property.id', property.id).filter((movement) => {
|
|
6213
|
-
return movement.fromDate <= financialYear.endDate && movement.toDate >= financialYear.startDate;
|
|
6215
|
+
return movement.fromDate <= financialYear.endDate && !movement.toDate || movement.toDate >= financialYear.startDate;
|
|
6214
6216
|
});
|
|
6215
6217
|
}
|
|
6216
6218
|
hasCategory(categoryId) {
|
|
@@ -6263,26 +6265,18 @@ class TransactionCollection extends ExportableCollection {
|
|
|
6263
6265
|
return sum + transaction.getUnallocatedAmount(allocations.filterBy('transaction.id', transaction.id));
|
|
6264
6266
|
}, 0);
|
|
6265
6267
|
}
|
|
6266
|
-
/**
|
|
6267
|
-
* Get cash position
|
|
6268
|
-
* Cash Position = Income - Expenses
|
|
6269
|
-
* Cash position is equal to Total Amount because income is positive and expense is negative,
|
|
6270
|
-
*/
|
|
6271
|
-
get cashPosition() {
|
|
6272
|
-
return this.grossAmount;
|
|
6273
|
-
}
|
|
6274
6268
|
/**
|
|
6275
6269
|
* get date of the last transaction
|
|
6276
6270
|
*/
|
|
6277
6271
|
getLastTransactionDate() {
|
|
6278
6272
|
return new Date(Math.max.apply(Math, this.items.map((transaction) => transaction.date)));
|
|
6279
6273
|
}
|
|
6280
|
-
/**
|
|
6281
|
-
* Get summary of claim amounts
|
|
6282
|
-
*/
|
|
6283
6274
|
get claimAmount() {
|
|
6284
6275
|
return this.items.reduce((sum, transaction) => sum + transaction.claimAmount, 0);
|
|
6285
6276
|
}
|
|
6277
|
+
get grossClaimAmount() {
|
|
6278
|
+
return this.items.reduce((sum, transaction) => sum + transaction.grossClaimAmount, 0);
|
|
6279
|
+
}
|
|
6286
6280
|
get grossAmount() {
|
|
6287
6281
|
return this.items.reduce((sum, transaction) => sum + transaction.grossAmount, 0);
|
|
6288
6282
|
}
|
|
@@ -10507,6 +10501,9 @@ class SoleInvoiceService extends RestService {
|
|
|
10507
10501
|
this.url = 'sole-invoices';
|
|
10508
10502
|
this.isHydra = true;
|
|
10509
10503
|
}
|
|
10504
|
+
listenEvents() {
|
|
10505
|
+
this.listenAllocations();
|
|
10506
|
+
}
|
|
10510
10507
|
add(invoice) {
|
|
10511
10508
|
return super.add(invoice).pipe(map((newInvoice) => {
|
|
10512
10509
|
// invoice published right away skipping draft status
|
|
@@ -10552,6 +10549,14 @@ class SoleInvoiceService extends RestService {
|
|
|
10552
10549
|
const number = (_b = (_a = last(this.cache)) === null || _a === void 0 ? void 0 : _a.number) !== null && _b !== void 0 ? _b : 0;
|
|
10553
10550
|
return number + 1;
|
|
10554
10551
|
}
|
|
10552
|
+
listenAllocations() {
|
|
10553
|
+
this.eventDispatcherService.on([
|
|
10554
|
+
AppEventTypeEnum.TRANSACTION_ALLOCATION_CREATED,
|
|
10555
|
+
AppEventTypeEnum.TRANSACTION_ALLOCATION_DELETED
|
|
10556
|
+
]).subscribe(() => {
|
|
10557
|
+
this.resetCache();
|
|
10558
|
+
});
|
|
10559
|
+
}
|
|
10555
10560
|
}
|
|
10556
10561
|
SoleInvoiceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SoleInvoiceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
10557
10562
|
SoleInvoiceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SoleInvoiceService, providedIn: 'root' });
|
|
@@ -11549,6 +11554,25 @@ class TransactionAllocationService extends RestService {
|
|
|
11549
11554
|
add(allocation) {
|
|
11550
11555
|
return this.addBatch([allocation]).pipe(map((newAllocations) => newAllocations[0]));
|
|
11551
11556
|
}
|
|
11557
|
+
addBatch(models, queryParams) {
|
|
11558
|
+
return super.addBatch(models, queryParams)
|
|
11559
|
+
.pipe(map((allocations) => {
|
|
11560
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_ALLOCATION_CREATED, allocations));
|
|
11561
|
+
return allocations;
|
|
11562
|
+
}));
|
|
11563
|
+
}
|
|
11564
|
+
delete(model) {
|
|
11565
|
+
return super.delete(model)
|
|
11566
|
+
.pipe(map(() => {
|
|
11567
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_ALLOCATION_DELETED, null));
|
|
11568
|
+
}));
|
|
11569
|
+
}
|
|
11570
|
+
deleteBatch(models) {
|
|
11571
|
+
return super.deleteBatch(models)
|
|
11572
|
+
.pipe(map(() => {
|
|
11573
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_ALLOCATION_DELETED, null));
|
|
11574
|
+
}));
|
|
11575
|
+
}
|
|
11552
11576
|
/**
|
|
11553
11577
|
* get list of transactions allocations related with passed bank transactions list
|
|
11554
11578
|
*/
|
|
@@ -14293,7 +14317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
14293
14317
|
class PropertyCalculationService {
|
|
14294
14318
|
getTaxPosition(transactions, depreciations) {
|
|
14295
14319
|
// @TODO hack: math abs added because we have mismatching of real values signs
|
|
14296
|
-
return transactions.
|
|
14320
|
+
return transactions.grossClaimAmount - Math.abs(depreciations.claimAmount);
|
|
14297
14321
|
}
|
|
14298
14322
|
getTaxPosition$(transactions$, depreciations$) {
|
|
14299
14323
|
return combineLatest([
|
|
@@ -14424,7 +14448,7 @@ class PropertyCalculationService {
|
|
|
14424
14448
|
if (!forecastedCashPosition) {
|
|
14425
14449
|
return 0;
|
|
14426
14450
|
}
|
|
14427
|
-
return (transactions.
|
|
14451
|
+
return (transactions.grossClaimAmount - forecastedCashPosition) / forecastedCashPosition;
|
|
14428
14452
|
}
|
|
14429
14453
|
/**
|
|
14430
14454
|
* Get Badge for single property in collection
|
|
@@ -14759,20 +14783,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
14759
14783
|
}]
|
|
14760
14784
|
}] });
|
|
14761
14785
|
|
|
14786
|
+
/**
|
|
14787
|
+
* @TODO Alex refactor
|
|
14788
|
+
*/
|
|
14762
14789
|
class SubscriptionService {
|
|
14763
|
-
constructor(http, eventDispatcherService, sseService, environment) {
|
|
14790
|
+
constructor(http, eventDispatcherService, sseService, toastService, environment) {
|
|
14764
14791
|
this.http = http;
|
|
14765
14792
|
this.eventDispatcherService = eventDispatcherService;
|
|
14766
14793
|
this.sseService = sseService;
|
|
14794
|
+
this.toastService = toastService;
|
|
14767
14795
|
this.environment = environment;
|
|
14768
14796
|
this.serviceSubscriptionSubject = new ReplaySubject(1);
|
|
14769
|
-
this.serviceSubscriptionsSubject = new ReplaySubject(1);
|
|
14770
14797
|
this.servicePaymentsSubject = new ReplaySubject(1);
|
|
14771
|
-
this.subscriptionChangeSubject = new BehaviorSubject(null);
|
|
14772
14798
|
this.listenSubscriptions();
|
|
14773
14799
|
}
|
|
14774
14800
|
getSubscription(force = false) {
|
|
14775
|
-
if (
|
|
14801
|
+
if (this._serviceSubscription === undefined || force) {
|
|
14802
|
+
this._serviceSubscription = null;
|
|
14776
14803
|
this.http.get(`${this.environment.apiV2}/subscriptions/last`)
|
|
14777
14804
|
.pipe(map((response) => {
|
|
14778
14805
|
return plainToClass(ServiceSubscription, response);
|
|
@@ -14838,20 +14865,22 @@ class SubscriptionService {
|
|
|
14838
14865
|
this.sseService.on(`serviceSubscriptions`)
|
|
14839
14866
|
.pipe(map((event) => plainToClass(ServiceSubscription, event)))
|
|
14840
14867
|
.subscribe((subscription) => {
|
|
14841
|
-
this.
|
|
14842
|
-
this.
|
|
14868
|
+
this._serviceSubscription = subscription;
|
|
14869
|
+
this.serviceSubscriptionSubject.next(this._serviceSubscription);
|
|
14843
14870
|
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.SERVICE_SUBSCRIPTION_UPDATED, null));
|
|
14871
|
+
// @TODO move?
|
|
14872
|
+
this.toastService.success('Subscription successfully updated');
|
|
14844
14873
|
});
|
|
14845
14874
|
}
|
|
14846
14875
|
}
|
|
14847
|
-
SubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, deps: [{ token: i1.HttpClient }, { token: EventDispatcherService }, { token: SseService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14876
|
+
SubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, deps: [{ token: i1.HttpClient }, { token: EventDispatcherService }, { token: SseService }, { token: ToastService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14848
14877
|
SubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, providedIn: 'root' });
|
|
14849
14878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, decorators: [{
|
|
14850
14879
|
type: Injectable,
|
|
14851
14880
|
args: [{
|
|
14852
14881
|
providedIn: 'root'
|
|
14853
14882
|
}]
|
|
14854
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EventDispatcherService }, { type: SseService }, { type: undefined, decorators: [{
|
|
14883
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EventDispatcherService }, { type: SseService }, { type: ToastService }, { type: undefined, decorators: [{
|
|
14855
14884
|
type: Inject,
|
|
14856
14885
|
args: ['environment']
|
|
14857
14886
|
}] }]; } });
|