taxtank-core 0.33.80 → 0.33.81
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/esm2022/src/lib/forms/transaction/work/work-income.form.mjs +8 -11
- package/esm2022/src/lib/models/transaction/transaction.mjs +4 -3
- package/fesm2022/taxtank-core.mjs +9 -11
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/forms/transaction/work/work-income.form.d.ts +1 -1
@@ -7,15 +7,15 @@ import { WorkTransactionForm } from './work-transaction.form';
|
|
7
7
|
export class WorkIncomeForm extends WorkTransactionForm {
|
8
8
|
constructor(transaction, registeredForGst, allocations) {
|
9
9
|
super(transaction, registeredForGst, allocations, {
|
10
|
-
netAmount: new UntypedFormControl(transaction.netAmount, Validators.required),
|
11
10
|
tax: new UntypedFormControl({
|
12
11
|
value: transaction.tax,
|
13
12
|
disabled: !transaction.chartAccounts || transaction.chartAccounts.isNRAS(),
|
14
13
|
}, Validators.required),
|
15
14
|
incomeSource: new UntypedFormControl(transaction.incomeSource, [Validators.required, autocompleteValidator()]),
|
16
15
|
});
|
17
|
-
|
18
|
-
|
16
|
+
// @TODO we use amount field as netAmount to avoid extra watcher for amount recalculation
|
17
|
+
if (transaction.id) {
|
18
|
+
this.get('amount').setValue(transaction.netAmount);
|
19
19
|
}
|
20
20
|
// forbid to edit some fields for allocated transaction
|
21
21
|
if (allocations.length) {
|
@@ -39,12 +39,6 @@ export class WorkIncomeForm extends WorkTransactionForm {
|
|
39
39
|
listenEvents() {
|
40
40
|
super.listenEvents();
|
41
41
|
this.watchIncomeSource();
|
42
|
-
this.watchNetAmount();
|
43
|
-
}
|
44
|
-
watchNetAmount() {
|
45
|
-
this.get('netAmount').valueChanges.subscribe(() => {
|
46
|
-
this.get('amount').setValue(this.getAmount());
|
47
|
-
});
|
48
42
|
}
|
49
43
|
watchIncomeSource() {
|
50
44
|
this.get('incomeSource').valueChanges.subscribe((incomeSource) => {
|
@@ -85,9 +79,12 @@ export class WorkIncomeForm extends WorkTransactionForm {
|
|
85
79
|
* ie bankTransaction=1000$ with 900$ salary and 100$ tips will create 2 transactions with 900$ and 100$
|
86
80
|
*/
|
87
81
|
getAmount() {
|
88
|
-
return this.get('
|
82
|
+
return this.get('amount').value - new Collection(this.currentValue.transactions)
|
89
83
|
.filter((t) => t.chartAccounts?.isAdjustmentIncluded())
|
90
84
|
.sumBy('amount');
|
91
85
|
}
|
86
|
+
submit(data = {}) {
|
87
|
+
return super.submit(Object.assign(data, { amount: this.getAmount() }));
|
88
|
+
}
|
92
89
|
}
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pbmNvbWUuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi93b3JrL3dvcmstaW5jb21lLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksR0FHYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFDckQsWUFBWSxXQUF3QixFQUFFLGdCQUF5QixFQUFFLFdBQW9DO1FBQ25HLEtBQUssQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxHQUFHLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUN0QixRQUFRLEVBQUUsQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO2FBQzNFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN2QixZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFB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QzNCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDMUI7WUFFRCxxREFBcUQ7WUFDckQsSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2FBQ2hGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFydEFjY291bnRzLFxuICBJbmNvbWVTb3VyY2UsIFNhbGFyeUZvcmVjYXN0LFxuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25BbGxvY2F0aW9uLFxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGF1dG9jb21wbGV0ZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFdvcmtUcmFuc2FjdGlvbkZvcm0gfSBmcm9tICcuL3dvcmstdHJhbnNhY3Rpb24uZm9ybSc7XG5cbmV4cG9ydCBjbGFzcyBXb3JrSW5jb21lRm9ybSBleHRlbmRzIFdvcmtUcmFuc2FjdGlvbkZvcm0gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIGNvbnN0cnVjdG9yKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgcmVnaXN0ZXJlZEZvckdzdDogYm9vbGVhbiwgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdKSB7XG4gICAgc3VwZXIodHJhbnNhY3Rpb24sIHJlZ2lzdGVyZWRGb3JHc3QsIGFsbG9jYXRpb25zLCB7XG4gICAgICBuZXRBbW91bnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24ubmV0QW1vdW50LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHRheDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7XG4gICAgICAgIHZhbHVlOiB0cmFuc2FjdGlvbi50YXgsXG4gICAgICAgIGRpc2FibGVkOiAhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cyB8fCB0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmlzTlJBUygpLFxuICAgICAgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpbmNvbWVTb3VyY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCldKSxcbiAgICB9KTtcbiAgICBpZiAoYWxsb2NhdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdldCgnbmV0QW1vdW50JykuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIGZvcmJpZCB0byBlZGl0IHNvbWUgZmllbGRzIGZvciBhbGxvY2F0ZWQgdHJhbnNhY3Rpb25cbiAgICBpZiAoYWxsb2NhdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLmRpc2FibGUoKTtcbiAgICB9XG4gICAgLy8gYWRqdXN0bWVudHMgYWxsb3dlZCBvbmx5IGZvciBzYWxhcnlcbiAgICBpZiAoIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHM/LmlzU2FsYXJ5KCkpIHtcbiAgICAgIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbnMnKS5kaXNhYmxlKCk7XG4gICAgfVxuICAgIC8vIGFtb3VudCBjaGFuZ2VzIGFyZSBub3QgYXZhaWxhYmxlIGZvciB0cmFuc2FjdGlvbnMgd2l0aCBhbGxvY2F0aW9ucyBvciBkdXJpbmcgYWxsb2NhdGUgcHJvY2Vzc1xuICAgIGlmIChhbGxvY2F0aW9ucy5sZW5ndGggfHwgdHJhbnNhY3Rpb24ub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uQUxMT0NBVEUpIHtcbiAgICAgIHRoaXMuZ2V0KCdhbW91bnQnKS5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gcHJlZmlsbCB0YXggdmFsdWUgZm9yIHByZXNlbGVjdGVkIHNhbGFyeSBpbmNvbWUgc291cmNlIGluIGNhc2UgaWYgd2UgaGF2ZSBhdCBsZWFzdCAxIHNhbGFyeUZvcmVjYXN0XG4gICAgaWYgKCF0aGlzLmdldCgndGF4JykudmFsdWUgJiYgdHJhbnNhY3Rpb24uaW5jb21lU291cmNlICYmIHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZS5pc1dvcmtJbmNvbWUoKVxuICAgICAgJiYgdHJhbnNhY3Rpb24uaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlVGF4VmFsdWUodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0c1swXSk7XG4gICAgfVxuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICBzdXBlci5saXN0ZW5FdmVudHMoKTtcbiAgICB0aGlzLndhdGNoSW5jb21lU291cmNlKCk7XG4gICAgdGhpcy53YXRjaE5ldEFtb3VudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaE5ldEFtb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgnbmV0QW1vdW50JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmdldCgnYW1vdW50Jykuc2V0VmFsdWUodGhpcy5nZXRBbW91bnQoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoSW5jb21lU291cmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCdpbmNvbWVTb3VyY2UnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChpbmNvbWVTb3VyY2U6IHN0cmluZyB8IEluY29tZVNvdXJjZSk6IHZvaWQgPT4ge1xuICAgICAgLy8gcHJlZmlsbCBzYWxhcnkgdGF4IHdpdGggaXRzIGluY29tZSBzb3VyY2UgZm9yZWNhc3QgaW4gY2FzZSBpZiB3ZSBoYXZlIGF0IGxlYXN0IDEgc2FsYXJ5Rm9yZWNhc3RcbiAgICAgIGlmIChpbmNvbWVTb3VyY2UgaW5zdGFuY2VvZiBJbmNvbWVTb3VyY2UgJiYgaW5jb21lU291cmNlLmlzV29ya0luY29tZSgpICYmICF0aGlzLmdldCgndGF4JykudmFsdWVcbiAgICAgICAgJiYgaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUYXhWYWx1ZShpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzWzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGF4VmFsdWUoc2FsYXJ5Rm9yZWNhc3Q6IFNhbGFyeUZvcmVjYXN0KTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ3RheCcpLnNldFZhbHVlKHNhbGFyeUZvcmVjYXN0LnRheFdpdGhoZWxkKTtcbiAgfVxuXG4gIHdhdGNoQ2hhcnRBY2NvdW50cygpOiB2b2lkIHtcbiAgICBzdXBlci53YXRjaENoYXJ0QWNjb3VudHMoKTtcbiAgICB0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMpID0+IHtcbiAgICAgIC8vIHRheCBtYWtlIG5vIHNlbnNlIGZvciBwcmUtcGF5aW5nIHRheCBjYXRlZ29yeVxuICAgICAgaWYgKGNoYXJ0QWNjb3VudHMuaXNOUkFTKCkpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RheCcpLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXgnKS5lbmFibGUoKTtcbiAgICAgIH1cblxuICAgICAgLy8gYWRqdXN0bWVudHMgcG9zc2libGUgb25seSBmb3Igc2FsYXJ5IGNoYXJ0QWNjb3VudHNcbiAgICAgIGlmIChjaGFydEFjY291bnRzLmlzU2FsYXJ5KCkpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzYWxhcnkgY29tZXMgdG8gYmFua0FjY291bnQgdG9nZXRoZXIgd2l0aCByZWxhdGVkIHRyYW5zYWN0aW9ucyBsaWtlIHRpcHMgKGtpbmQgb2Ygc2FsYXJ5LCBidXQgcmVwb3J0ZWQgaW4gZGlmZmVyZW50IHRheCBzdW1tYXJ5IHNlY3Rpb24pLFxuICAgKiBhZGp1c3RtZW50cyB1c2VkIHRvIGNsYXJpZnkgcmVjZWl2ZWQgcGF5bWVudCBieSBzZXBhcmF0aW5nIGl0IGludG8gbXVsdGlwbGUgdHJhbnNhY3Rpb25zLFxuICAgKiBuZXRBbW91bnQgYWx3YXlzIG1hdGNoIHJlY2VpdmVkIHBheW1lbnQgYW5kIGluY2x1ZGVzIHJlbGF0ZWQgYWRqdXN0bWVudHNcbiAgICogYW1vdW50IGNhbGN1bGF0ZWQgYXMgbmV0QW1vdW50IC0gc2FsYXJ5IGluY2x1ZGVkIGFkanVzdG1lbnRzXG4gICAqIGllIGJhbmtUcmFuc2FjdGlvbj0xMDAwJCB3aXRoIDkwMCQgc2FsYXJ5IGFuZCAxMDAkIHRpcHMgd2lsbCBjcmVhdGUgMiB0cmFuc2FjdGlvbnMgd2l0aCA5MDAkIGFuZCAxMDAkXG4gICAqL1xuICBnZXRBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ25ldEFtb3VudCcpLnZhbHVlIC0gbmV3IENvbGxlY3Rpb24odGhpcy5jdXJyZW50VmFsdWUudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcigodCkgPT4gdC5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKTtcbiAgfVxufVxuIl19
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pbmNvbWUuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi93b3JrL3dvcmstaW5jb21lLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksR0FHYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFDckQsWUFBWSxXQUF3QixFQUFFLGdCQUF5QixFQUFFLFdBQW9DO1FBQ25HLEtBQUssQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFO1lBQ2hELEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDO2dCQUMxQixLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUc7Z0JBQ3RCLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7YUFDM0UsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztTQUMvRyxDQUFDLENBQUM7UUFDSCx5RkFBeUY7UUFDekYsSUFBSSxXQUFXLENBQUMs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QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2FBQzdFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWUsRUFBRTtRQUN0QixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYXJ0QWNjb3VudHMsXG4gIEluY29tZVNvdXJjZSwgU2FsYXJ5Rm9yZWNhc3QsXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkFsbG9jYXRpb24sXG59IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXV0b2NvbXBsZXRlVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgV29ya1RyYW5zYWN0aW9uRm9ybSB9IGZyb20gJy4vd29yay10cmFuc2FjdGlvbi5mb3JtJztcblxuZXhwb3J0IGNsYXNzIFdvcmtJbmNvbWVGb3JtIGV4dGVuZHMgV29ya1RyYW5zYWN0aW9uRm9ybSBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY29uc3RydWN0b3IodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLCByZWdpc3RlcmVkRm9yR3N0OiBib29sZWFuLCBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10pIHtcbiAgICBzdXBlcih0cmFuc2FjdGlvbiwgcmVnaXN0ZXJlZEZvckdzdCwgYWxsb2NhdGlvbnMsIHtcbiAgICAgIHRheDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7XG4gICAgICAgIHZhbHVlOiB0cmFuc2FjdGlvbi50YXgsXG4gICAgICAgIGRpc2FibGVkOiAhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cyB8fCB0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmlzTlJBUygpLFxuICAgICAgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpbmNvbWVTb3VyY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCldKSxcbiAgICB9KTtcbiAgICAvLyBAVE9ETyB3ZSB1c2UgYW1vdW50IGZpZWxkIGFzIG5ldEFtb3VudCB0byBhdm9pZCBleHRyYSB3YXRjaGVyIGZvciBhbW91bnQgcmVjYWxjdWxhdGlvblxuICAgIGlmICh0cmFuc2FjdGlvbi5pZCkge1xuICAgICAgdGhpcy5nZXQoJ2Ftb3VudCcpLnNldFZhbHVlKHRyYW5zYWN0aW9uLm5ldEFtb3VudCk7XG4gICAgfVxuXG4gICAgLy8gZm9yYmlkIHRvIGVkaXQgc29tZSBmaWVsZHMgZm9yIGFsbG9jYXRlZCB0cmFuc2FjdGlvblxuICAgIGlmIChhbGxvY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykuZGlzYWJsZSgpO1xuICAgIH1cbiAgICAvLyBhZGp1c3RtZW50cyBhbGxvd2VkIG9ubHkgZm9yIHNhbGFyeVxuICAgIGlmICghdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cz8uaXNTYWxhcnkoKSkge1xuICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmRpc2FibGUoKTtcbiAgICB9XG4gICAgLy8gYW1vdW50IGNoYW5nZXMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIHRyYW5zYWN0aW9ucyB3aXRoIGFsbG9jYXRpb25zIG9yIGR1cmluZyBhbGxvY2F0ZSBwcm9jZXNzXG4gICAgaWYgKGFsbG9jYXRpb25zLmxlbmd0aCB8fCB0cmFuc2FjdGlvbi5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5BTExPQ0FURSkge1xuICAgICAgdGhpcy5nZXQoJ2Ftb3VudCcpLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBwcmVmaWxsIHRheCB2YWx1ZSBmb3IgcHJlc2VsZWN0ZWQgc2FsYXJ5IGluY29tZSBzb3VyY2UgaW4gY2FzZSBpZiB3ZSBoYXZlIGF0IGxlYXN0IDEgc2FsYXJ5Rm9yZWNhc3RcbiAgICBpZiAoIXRoaXMuZ2V0KCd0YXgnKS52YWx1ZSAmJiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2UgJiYgdHJhbnNhY3Rpb24uaW5jb21lU291cmNlLmlzV29ya0luY29tZSgpXG4gICAgICAmJiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgdGhpcy51cGRhdGVUYXhWYWx1ZSh0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCkge1xuICAgIHN1cGVyLmxpc3RlbkV2ZW50cygpO1xuICAgIHRoaXMud2F0Y2hJbmNvbWVTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hJbmNvbWVTb3VyY2UoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ2luY29tZVNvdXJjZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGluY29tZVNvdXJjZTogc3RyaW5nIHwgSW5jb21lU291cmNlKTogdm9pZCA9PiB7XG4gICAgICAvLyBwcmVmaWxsIHNhbGFyeSB0YXggd2l0aCBpdHMgaW5jb21lIHNvdXJjZSBmb3JlY2FzdCBpbiBjYXNlIGlmIHdlIGhhdmUgYXQgbGVhc3QgMSBzYWxhcnlGb3JlY2FzdFxuICAgICAgaWYgKGluY29tZVNvdXJjZSBpbnN0YW5jZW9mIEluY29tZVNvdXJjZSAmJiBpbmNvbWVTb3VyY2UuaXNXb3JrSW5jb21lKCkgJiYgIXRoaXMuZ2V0KCd0YXgnKS52YWx1ZVxuICAgICAgICAmJiBpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVRheFZhbHVlKGluY29tZVNvdXJjZS5zYWxhcnlGb3JlY2FzdHNbMF0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYXhWYWx1ZShzYWxhcnlGb3JlY2FzdDogU2FsYXJ5Rm9yZWNhc3QpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgndGF4Jykuc2V0VmFsdWUoc2FsYXJ5Rm9yZWNhc3QudGF4V2l0aGhlbGQpO1xuICB9XG5cbiAgd2F0Y2hDaGFydEFjY291bnRzKCk6IHZvaWQge1xuICAgIHN1cGVyLndhdGNoQ2hhcnRBY2NvdW50cygpO1xuICAgIHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cykgPT4ge1xuICAgICAgLy8gdGF4IG1ha2Ugbm8gc2Vuc2UgZm9yIHByZS1wYXlpbmcgdGF4IGNhdGVnb3J5XG4gICAgICBpZiAoY2hhcnRBY2NvdW50cy5pc05SQVMoKSkge1xuICAgICAgICB0aGlzLmdldCgndGF4JykuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RheCcpLmVuYWJsZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBhZGp1c3RtZW50cyBwb3NzaWJsZSBvbmx5IGZvciBzYWxhcnkgY2hhcnRBY2NvdW50c1xuICAgICAgaWYgKGNoYXJ0QWNjb3VudHMuaXNTYWxhcnkoKSkge1xuICAgICAgICB0aGlzLmdldCgndHJhbnNhY3Rpb25zJykuZW5hYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmdldCgndHJhbnNhY3Rpb25zJykuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNhbGFyeSBjb21lcyB0byBiYW5rQWNjb3VudCB0b2dldGhlciB3aXRoIHJlbGF0ZWQgdHJhbnNhY3Rpb25zIGxpa2UgdGlwcyAoa2luZCBvZiBzYWxhcnksIGJ1dCByZXBvcnRlZCBpbiBkaWZmZXJlbnQgdGF4IHN1bW1hcnkgc2VjdGlvbiksXG4gICAqIGFkanVzdG1lbnRzIHVzZWQgdG8gY2xhcmlmeSByZWNlaXZlZCBwYXltZW50IGJ5IHNlcGFyYXRpbmcgaXQgaW50byBtdWx0aXBsZSB0cmFuc2FjdGlvbnMsXG4gICAqIG5ldEFtb3VudCBhbHdheXMgbWF0Y2ggcmVjZWl2ZWQgcGF5bWVudCBhbmQgaW5jbHVkZXMgcmVsYXRlZCBhZGp1c3RtZW50c1xuICAgKiBhbW91bnQgY2FsY3VsYXRlZCBhcyBuZXRBbW91bnQgLSBzYWxhcnkgaW5jbHVkZWQgYWRqdXN0bWVudHNcbiAgICogaWUgYmFua1RyYW5zYWN0aW9uPTEwMDAkIHdpdGggOTAwJCBzYWxhcnkgYW5kIDEwMCQgdGlwcyB3aWxsIGNyZWF0ZSAyIHRyYW5zYWN0aW9ucyB3aXRoIDkwMCQgYW5kIDEwMCRcbiAgICovXG4gIGdldEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldCgnYW1vdW50JykudmFsdWUgLSBuZXcgQ29sbGVjdGlvbih0aGlzLmN1cnJlbnRWYWx1ZS50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKCh0KSA9PiB0LmNoYXJ0QWNjb3VudHM/LmlzQWRqdXN0bWVudEluY2x1ZGVkKCkpXG4gICAgICAuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgc3VibWl0KGRhdGE6IG9iamVjdCA9IHt9KTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoT2JqZWN0LmFzc2lnbihkYXRhLCB7IGFtb3VudDogdGhpcy5nZXRBbW91bnQoKSB9KSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -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 {
|
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';
|
@@ -160,7 +160,8 @@ export class Transaction extends TransactionBase {
|
|
160
160
|
return grossAmount;
|
161
161
|
}
|
162
162
|
// included transactions affect parent transaction amount and as a result grossAmount, skip to avoid double sum
|
163
|
-
const adjustments = new Collection(this.transactions)
|
163
|
+
const adjustments = new Collection(this.transactions)
|
164
|
+
.filter(transaction => !transaction.chartAccounts?.isAdjustmentIncluded());
|
164
165
|
const income = adjustments.filter(transaction => transaction.isIncome()).sumBy('amount');
|
165
166
|
const expense = adjustments.filter(transaction => transaction.isExpense()).sumBy('amount', true);
|
166
167
|
// all adjustments except property income increase grossIncome
|
@@ -239,4 +240,4 @@ __decorate([
|
|
239
240
|
__decorate([
|
240
241
|
Transform(({ value }) => +value)
|
241
242
|
], Transaction.prototype, "tax", void 0);
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLG1C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SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNTO0FBR2pDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs2Q0FDRjtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7a0RBQ0c7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2lEQUNFO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDOytDQUNPO0FBR3hDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzs2Q0FDRjtBQUd0QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnREFDUTtBQUcxQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0RBQ0M7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDOzZDQUNGO0FBR3ZCO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7d0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0FkanVzdG1lbnRJbmNsdWRlZExpc3RFbnVtLFxuICBDaGFydEFjY291bnRzS2VlcFNpZ24sXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSxcbiAgQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLFxufSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNvdXJjZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5JztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMsIENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uTWV0YUZpZWxkIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1tZXRhLWZpZWxkJztcbmltcG9ydCB7IExvYW4gfSBmcm9tICcuLi9sb2FuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uIH0gZnJvbSAnLi4vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IEV4cGVuc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcywgU29sZUludm9pY2VJdGVtIH0gZnJvbSAnLi4vc29sZSc7XG5cbi8vIEBUT0RPIEFsZXg6IHJlZmFjdG9yOiBtb3ZlIGhlcmUgYWxsb2NhdGlvbnMgbWV0aG9kcywgbmV0QW1vdW50ID0gYW1vdW50LCBncm9zc0Ftb3VudCBjYWxjdWxhdGlvbiwgcmVtb3ZlIHVudXNlZCBtZXRob2RzLCBldGMuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2UgaW1wbGVtZW50cyBFeHBlbnNlIHtcbiAgc3RhdGljIGNsYXNzTmFtZSA9ICdUcmFuc2FjdGlvbic7XG4gIC8qKlxuICAgKiBAVE9ETyByZW5hbWUgdG8gY2hpbGRUcmFuc2FjdGlvbnNcbiAgICovXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eSlcbiAgcHJvcGVydHk6IFByb3BlcnR5O1xuXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHMpXG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlKVxuICBpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbk1ldGFGaWVsZClcbiAgbWV0YUZpZWxkczogVHJhbnNhY3Rpb25NZXRhRmllbGRbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2ZlcjogVHJhbnNhY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gTG9hbilcbiAgbG9hbjogTG9hbjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uQWxsb2NhdGlvbilcbiAgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gU29sZUludm9pY2VJdGVtKVxuICBpbnZvaWNlSXRlbTogU29sZUludm9pY2VJdGVtO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBAVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+ICt2YWx1ZSlcbiAgdGF4ID0gMDtcblxuICBvcGVyYXRpb246IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgY2xhaW1QZXJjZW50ID0gMTAwO1xuICBhbW91bnQgPSAwO1xuXG4gIGdldCBpbnZvaWNlSWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbnZvaWNlSXRlbT8uaW52b2ljZS5pZDtcbiAgfVxuXG4gIGlzRGViaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5ERUJJVDtcbiAgfVxuXG4gIGlzQ3JlZGl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uQ1JFRElUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0luY29tZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyBub3QgdXNlZFxuICAgIGlmICghdGhpcy5jaGFydEFjY291bnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0NyZWRpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgLy8gQFRPRE8gbm90IHVzZWRcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzSW50ZXJlc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyB2ZWhpY2xlXG4gICAqL1xuICBpc1ZlaGljbGVUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlzVmVoaWNsZUV4cGVuc2UoKTtcbiAgfVxuXG4gIGdldCB0YXhGcmVlQ29tcG9uZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLlRBWF9GUkVFX0NPTVBPTkVOVCk7XG4gIH1cblxuICBnZXQgZnJhbmtpbmdDcmVkaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uRlJBTktJTkdfQ1JFRElUKTtcbiAgfVxuXG4gIGdldCBlbGlnaWJsZUZvclJlZHVjdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5FTElHSUJMRV9GT1JfUkVEVUNUSU9OKTtcbiAgfVxuXG4gIGdldCB1bnRheGVkRWxlbWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5VTlRBWEVEX0VMRU1FTlQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHJlY29uY2lsZSBvcGVyYXRpb24gaWYgVFJBTlNGRVJcbiAgICogQFRPRE8gYmFkIHVzYWdlIG9mIGdldCAoYW5kIGFsbCBpcyogbWV0aG9kcyksIGdldHRlciBzaG91bGQgc291bmQgbGlrZSBhIG5vdW5cbiAgICovXG4gIGdldCBpc1RyYW5zZmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSO1xuICB9XG5cbiAgaXNGaW5kQW5kTWF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIH1cblxuICBnZXQgZGViaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0RlYml0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCkgOiAwO1xuICB9XG5cbiAgZ2V0IGNyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCkgOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB2YWx1ZSBvZiB0cmFuc2FjdGlvbiBtZXRhIGZpZWxkXG4gICAqIEBwYXJhbSBmaWVsZCBmb3Igd2hpY2ggdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkXG4gICAqIEBUb2RvIG1vZGlmeSAnbWV0YUZpZWxkcycgcHJvcGVydHkgZnJvbSBhcnJheSB0byBDb2xsZWN0aW9uXG4gICAqL1xuICBnZXRNZXRhRmllbGRWYWx1ZShmaWVsZDogQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMubWV0YUZpZWxkcy5maW5kKCh0cmFuc2FjdGlvbk1ldGFGaWVsZDogVHJhbnNhY3Rpb25NZXRhRmllbGQpOiBib29sZWFuID0+IHRyYW5zYWN0aW9uTWV0YUZpZWxkLmNoYXJ0QWNjb3VudHNNZXRhRmllbGQuaWQgPT09IGZpZWxkKT8udmFsdWUgfHwgMDtcbiAgfVxuXG4gIGlzQ2FzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UgPT09IFRyYW5zYWN0aW9uU291cmNlRW51bS5DQVNIO1xuICB9XG5cbiAgY2FuRmluZEFuZE1hdGNoKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFRyYW5zYWN0aW9uXG4gICAgICAmJiAhdGhpcy5pc0Nhc2goKVxuICAgICAgJiYgISh0aGlzLmlzU29sZVRhbmsoKSAmJiB0aGlzLmlzSW5jb21lKCkpXG4gICAgICAmJiB0aGlzLmlzRWRpdGFibGUoKVxuICAgICAgJiYgIXRoaXMuaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEZXByZWNpYXRpb24gaW5zdGFuY2UgYmFzZWQgb24gVHJhbnNhY3Rpb25cbiAgICovXG4gIHRvRGVwcmVjaWF0aW9uKCk6IERlcHJlY2lhdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhEZXByZWNpYXRpb24sIHtcbiAgICAgIGRhdGU6IHRoaXMuZGF0ZSxcbiAgICAgIGFtb3VudDogTWF0aC5hYnModGhpcy5hbW91bnQpLFxuICAgICAgY2hhcnRBY2NvdW50czogdGhpcy5jaGFydEFjY291bnRzLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICB0eXBlOiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNQcm9wZXJ0eUNhcGl0YWxXb3JrcygpID8gRGVwcmVjaWF0aW9uVHlwZUVudW0uQ0FQSVRBTF9XT1JLUyA6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NULFxuICAgICAgdHJhbnNhY3Rpb25zOiBbdGhpc10sXG4gICAgICBidXNpbmVzczogdGhpcy5idXNpbmVzcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBpcyBjb21wbGV0ZWx5IGFsbG9jYXRlZFxuICAgKi9cbiAgaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpKSAtIE1hdGguYWJzKHRoaXMubmV0QW1vdW50KSA+PSAwO1xuICB9XG5cbiAgZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnMuZmlsdGVyQnkoJ3RyYW5zYWN0aW9uLmlkJywgdGhpcy5pZCkuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldEFtb3VudCAtIHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgaW5jbHVkaW5nIHRheGVzIGFuZCBvdGhlciBhZGRpdGlvbmFsIGFtb3VudHNcbiAgICovXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCArIHRoaXMuZ3N0QW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50V2l0aG91dEdzdCgpOiBudW1iZXIge1xuICAgIGxldCBncm9zc0Ftb3VudCA9IHRoaXMuYW1vdW50ICsgdGhpcy50YXg7XG4gICAgaWYgKHRoaXMuaXNFeHBlbnNlKCkpIHtcbiAgICAgIHJldHVybiBncm9zc0Ftb3VudDtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlZCB0cmFuc2FjdGlvbnMgYWZmZWN0IHBhcmVudCB0cmFuc2FjdGlvbiBhbW91bnQgYW5kIGFzIGEgcmVzdWx0IGdyb3NzQW1vdW50LCBza2lwIHRvIGF2b2lkIGRvdWJsZSBzdW1cbiAgICBjb25zdCBhZGp1c3RtZW50cyA9IG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKS5maWx0ZXIoXG4gICAgICB0cmFuc2FjdGlvbiA9PiAhW0NoYXJ0QWNjb3VudHNBZGp1c3RtZW50SW5jbHVkZWRMaXN0RW51bS5GVU5EU19PVkVSX0FESlVTVE1FTlQsIENoYXJ0QWNjb3VudHNBZGp1c3RtZW50SW5jbHVkZWRMaXN0RW51bS5MQU5ETE9SRF9SRUlNQlVSU0VNRU5UXS5pbmNsdWRlcyh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzPy5pZCkpO1xuICAgIGNvbnN0IGluY29tZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0luY29tZSgpKS5zdW1CeSgnYW1vdW50Jyk7XG4gICAgY29uc3QgZXhwZW5zZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSkuc3VtQnkoJ2Ftb3VudCcsIHRydWUpO1xuICAgIC8vIGFsbCBhZGp1c3RtZW50cyBleGNlcHQgcHJvcGVydHkgaW5jb21lIGluY3JlYXNlIGdyb3NzSW5jb21lXG4gICAgZ3Jvc3NBbW91bnQgKz0gZXhwZW5zZSArICh0aGlzLmlzUHJvcGVydHlUYW5rKCkgPyAtaW5jb21lIDogaW5jb21lKTtcblxuICAgIGlmICh0aGlzLmlzV29ya1RhbmsoKSB8fCB0aGlzLmlzSG9sZGluZ1RhbmsoKSkge1xuICAgICAgZ3Jvc3NBbW91bnQgKz0gdGhpcy5mcmFua2luZ0NyZWRpdCAtIHRoaXMudGF4RnJlZUNvbXBvbmVudCAtIHRoaXMuZWxpZ2libGVGb3JSZWR1Y3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3NzQW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQ2xhaW1BbW91bnRXaXRob3V0R3N0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0ICogdGhpcy5jbGFpbVJhdGlvO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayBjb25mdXNpbmcgbG9naWMgZGVtYW5kZWQgYnkgTmljb2xlLCB3ZSBuZWVkIGEgYmV0dGVyIHV4IHRvIGZpeCBpdFxuICAgKiBuZXRBbW91bnQgbWF0Y2hlcyByZWNlaXZlZCBwYXltZW50IChiYW5rVHJhbnNhY3Rpb24gYW1vdW50KSwgaW5jbHVkZXMgZ3N0IGFuZCBzYWxhcnkgaW5jbHVkZWQgYWRqdXN0bWVudHNcbiAgICogaWUgdXNlciByZWNlaXZlZCAxMDAwJCBzYWxhcnkgaW5jbHVkaW5nIDEwMCQgdGlwcy4gTmV0QW1vdW50PTEwMDAkLCBhbW91bnQ9OTAwJCwgdGlwcz0xMDAkXG4gICAqL1xuICBnZXQgbmV0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcigodCkgPT4gdC5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKSArIHRoaXMuYW1vdW50V2l0aEdzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb3N0IG9mIHRoZSB0cmFuc2FjdGlvbnMgY291bGQgaGF2ZSBvbmx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMsIHNvIHdlIGlnbm9yZVxuICAgKiB1c2VyJ3MgY2hvaWNlIGFuZCB0cmFuc2Zvcm0gYW1vdW50LCBidXQgdGhlcmUgYXJlIGV4Y2VwdGlvbnMgbGlrZSBhZHZhbmNlIChuZWdhdGl2ZSBvciBwb3NpdGl2ZSBhbW91bnQpXG4gICAqL1xuICBpZ25vcmVTaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuY2hhcnRBY2NvdW50cz8uaWQgaW4gQ2hhcnRBY2NvdW50c0tlZXBTaWduKTtcbiAgfVxuXG4gIHNldFBhcmVudCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5jaGFydEFjY291bnRzLm5hbWU7XG4gICAgdGhpcy5kYXRlID0gdHJhbnNhY3Rpb24uZGF0ZTtcbiAgICB0aGlzLmNsYWltUGVyY2VudCA9IHRyYW5zYWN0aW9uLmNsYWltUGVyY2VudDtcbiAgICB0aGlzLnByb3BlcnR5ID0gdHJhbnNhY3Rpb24ucHJvcGVydHk7XG4gICAgdGhpcy5sb2FuID0gdHJhbnNhY3Rpb24ubG9hbjtcbiAgICB0aGlzLmluY29tZVNvdXJjZSA9IHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZTtcbiAgICB0aGlzLmJ1c2luZXNzID0gdHJhbnNhY3Rpb24uYnVzaW5lc3M7XG4gIH1cblxuICBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhQ2hhcnRBY2NvdW50cy5zeXN0ZW1MaXN0LmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5pZCk7XG4gIH1cbn1cbiJdfQ==
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUMvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQW1DLE1BQU0sbUJBQW1CLENBQUM7QUFD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QUMsUUFBUSxDQUFDOzZDQUNGO0FBR25CO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztrREFDRztBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7aURBQ0U7QUFHM0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7K0NBQ087QUFHeEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDOzZDQUNGO0FBR3RCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dEQUNRO0FBRzFDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnREFDQztBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7NkNBQ0Y7QUFHdkI7SUFEQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3Q0FDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQge1xuICBDaGFydEFjY291bnRzQWRqdXN0bWVudEluY2x1ZGVkTGlzdEVudW0sXG4gIENoYXJ0QWNjb3VudHNLZWVwU2lnbixcbiAgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLFxuICBDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0sXG59IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU291cmNlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLXNvdXJjZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5pbXBvcnQgeyBUcmFuc2Zvcm0sIFR5cGUsIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vcHJvcGVydHknO1xuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUywgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25NZXRhRmllbGQgfSBmcm9tICcuL3RyYW5zYWN0aW9uLW1ldGEtZmllbGQnO1xuaW1wb3J0IHsgTG9hbiB9IGZyb20gJy4uL2xvYW4nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uJztcbmltcG9ydCB7IENvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRXhwZW5zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzLCBTb2xlSW52b2ljZUl0ZW0gfSBmcm9tICcuLi9zb2xlJztcblxuLy8gQFRPRE8gQWxleDogcmVmYWN0b3I6IG1vdmUgaGVyZSBhbGxvY2F0aW9ucyBtZXRob2RzLCBuZXRBbW91bnQgPSBhbW91bnQsIGdyb3NzQW1vdW50IGNhbGN1bGF0aW9uLCByZW1vdmUgdW51c2VkIG1ldGhvZHMsIGV0Yy5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZSBpbXBsZW1lbnRzIEV4cGVuc2Uge1xuICBzdGF0aWMgY2xhc3NOYW1lID0gJ1RyYW5zYWN0aW9uJztcbiAgLyoqXG4gICAqIEBUT0RPIHJlbmFtZSB0byBjaGlsZFRyYW5zYWN0aW9uc1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5KVxuICBwcm9wZXJ0eTogUHJvcGVydHk7XG5cbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBJbmNvbWVTb3VyY2UpXG4gIGluY29tZVNvdXJjZTogSW5jb21lU291cmNlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uTWV0YUZpZWxkKVxuICBtZXRhRmllbGRzOiBUcmFuc2FjdGlvbk1ldGFGaWVsZFtdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zZmVyOiBUcmFuc2FjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBMb2FuKVxuICBsb2FuOiBMb2FuO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25BbGxvY2F0aW9uKVxuICBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBTb2xlSW52b2ljZUl0ZW0pXG4gIGludm9pY2VJdGVtOiBTb2xlSW52b2ljZUl0ZW07XG5cbiAgQFR5cGUoKCkgPT4gU29sZUJ1c2luZXNzKVxuICBidXNpbmVzczogU29sZUJ1c2luZXNzO1xuXG4gIEBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4gK3ZhbHVlKVxuICB0YXggPSAwO1xuXG4gIG9wZXJhdGlvbjogVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtID0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLkZJTkRfQU5EX01BVENIO1xuICBjbGFpbVBlcmNlbnQgPSAxMDA7XG4gIGFtb3VudCA9IDA7XG5cbiAgZ2V0IGludm9pY2VJZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmludm9pY2VJdGVtPy5pbnZvaWNlLmlkO1xuICB9XG5cbiAgaXNEZWJpdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGVFbnVtLkRFQklUO1xuICB9XG5cbiAgaXNDcmVkaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5DUkVESVQ7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBiYXNlIGNvbGxlY3Rpb25cbiAgICovXG4gIGlzSW5jb21lKCk6IGJvb2xlYW4ge1xuICAgIC8vIEBUT0RPIG5vdCB1c2VkXG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuaW5jb21lLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBiYXNlIGNvbGxlY3Rpb25cbiAgICovXG4gIGlzRXhwZW5zZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyBub3QgdXNlZFxuICAgIGlmICghdGhpcy5jaGFydEFjY291bnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0RlYml0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZXhwZW5zZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgaXNQZXJzb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wZXJzb25hbC5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgaXNJbnRlcmVzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfT05fTE9BTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiB0eXBlIGlzIHZlaGljbGVcbiAgICovXG4gIGlzVmVoaWNsZVRyYW5zYWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNWZWhpY2xlRXhwZW5zZSgpO1xuICB9XG5cbiAgZ2V0IHRheEZyZWVDb21wb25lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uVEFYX0ZSRUVfQ09NUE9ORU5UKTtcbiAgfVxuXG4gIGdldCBmcmFua2luZ0NyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5GUkFOS0lOR19DUkVESVQpO1xuICB9XG5cbiAgZ2V0IGVsaWdpYmxlRm9yUmVkdWN0aW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLkVMSUdJQkxFX0ZPUl9SRURVQ1RJT04pO1xuICB9XG5cbiAgZ2V0IHVudGF4ZWRFbGVtZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLlVOVEFYRURfRUxFTUVOVCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gcmVjb25jaWxlIG9wZXJhdGlvbiBpZiBUUkFOU0ZFUlxuICAgKiBAVE9ETyBiYWQgdXNhZ2Ugb2YgZ2V0IChhbmQgYWxsIGlzKiBtZXRob2RzKSwgZ2V0dGVyIHNob3VsZCBzb3VuZCBsaWtlIGEgbm91blxuICAgKi9cbiAgZ2V0IGlzVHJhbnNmZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uVFJBTlNGRVI7XG4gIH1cblxuICBpc0ZpbmRBbmRNYXRjaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgfVxuXG4gIGdldCBkZWJpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzRGViaXQoKSA/IE1hdGguYWJzKHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0KSA6IDA7XG4gIH1cblxuICBnZXQgY3JlZGl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNDcmVkaXQoKSA/IE1hdGguYWJzKHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0KSA6IDA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHZhbHVlIG9mIHRyYW5zYWN0aW9uIG1ldGEgZmllbGRcbiAgICogQHBhcmFtIGZpZWxkIGZvciB3aGljaCB2YWx1ZSBzaG91bGQgYmUgcmV0dXJuZWRcbiAgICogQFRvZG8gbW9kaWZ5ICdtZXRhRmllbGRzJyBwcm9wZXJ0eSBmcm9tIGFycmF5IHRvIENvbGxlY3Rpb25cbiAgICovXG4gIGdldE1ldGFGaWVsZFZhbHVlKGZpZWxkOiBDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0pOiBudW1iZXIge1xuICAgIHJldHVybiArdGhpcy5tZXRhRmllbGRzLmZpbmQoKHRyYW5zYWN0aW9uTWV0YUZpZWxkOiBUcmFuc2FjdGlvbk1ldGFGaWVsZCk6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb25NZXRhRmllbGQuY2hhcnRBY2NvdW50c01ldGFGaWVsZC5pZCA9PT0gZmllbGQpPy52YWx1ZSB8fCAwO1xuICB9XG5cbiAgaXNDYXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZSA9PT0gVHJhbnNhY3Rpb25Tb3VyY2VFbnVtLkNBU0g7XG4gIH1cblxuICBjYW5GaW5kQW5kTWF0Y2goYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucGFyZW50VHJhbnNhY3Rpb25cbiAgICAgICYmICF0aGlzLmlzQ2FzaCgpXG4gICAgICAmJiAhKHRoaXMuaXNTb2xlVGFuaygpICYmIHRoaXMuaXNJbmNvbWUoKSlcbiAgICAgICYmIHRoaXMuaXNFZGl0YWJsZSgpXG4gICAgICAmJiAhdGhpcy5pc0FsbG9jYXRlZChhbGxvY2F0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIERlcHJlY2lhdGlvbiBpbnN0YW5jZSBiYXNlZCBvbiBUcmFuc2FjdGlvblxuICAgKi9cbiAgdG9EZXByZWNpYXRpb24oKTogRGVwcmVjaWF0aW9uIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKERlcHJlY2lhdGlvbiwge1xuICAgICAgZGF0ZTogdGhpcy5kYXRlLFxuICAgICAgYW1vdW50OiBNYXRoLmFicyh0aGlzLmFtb3VudCksXG4gICAgICBjaGFydEFjY291bnRzOiB0aGlzLmNoYXJ0QWNjb3VudHMsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHR5cGU6IHRoaXMuY2hhcnRBY2NvdW50cy5pc1Byb3BlcnR5Q2FwaXRhbFdvcmtzKCkgPyBEZXByZWNpYXRpb25UeXBlRW51bS5DQVBJVEFMX1dPUktTIDogRGVwcmVjaWF0aW9uVHlwZUVudW0uUExBTlRfRVFVSVBNRU5ULFxuICAgICAgY2xhaW1QZXJjZW50OiB0aGlzLmNsYWltUGVyY2VudCxcbiAgICAgIHByb3BlcnR5OiB0aGlzLnByb3BlcnR5LFxuICAgICAgY2FsY3VsYXRpb246IHRoaXMucHJvcGVydHkgPyB0aGlzLnByb3BlcnR5LmRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uIDogRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtLlBSSU1FX0NPU1QsXG4gICAgICB0cmFuc2FjdGlvbnM6IFt0aGlzXSxcbiAgICAgIGJ1c2luZXNzOiB0aGlzLmJ1c2luZXNzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIGlzIGNvbXBsZXRlbHkgYWxsb2NhdGVkXG4gICAqL1xuICBpc0FsbG9jYXRlZChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBNYXRoLmFicyh0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucykpIC0gTWF0aC5hYnModGhpcy5uZXRBbW91bnQpID49IDA7XG4gIH1cblxuICBnZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBhbGxvY2F0aW9ucy5maWx0ZXJCeSgndHJhbnNhY3Rpb24uaWQnLCB0aGlzLmlkKS5zdW1CeSgnYW1vdW50Jyk7XG4gIH1cblxuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubmV0QW1vdW50IC0gdGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvdGFsIHRyYW5zYWN0aW9uIGFtb3VudCBpbmNsdWRpbmcgdGF4ZXMgYW5kIG90aGVyIGFkZGl0aW9uYWwgYW1vdW50c1xuICAgKi9cbiAgZ2V0IGdyb3NzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0ICsgdGhpcy5nc3RBbW91bnQ7XG4gIH1cblxuICBnZXQgZ3Jvc3NBbW91bnRXaXRob3V0R3N0KCk6IG51bWJlciB7XG4gICAgbGV0IGdyb3NzQW1vdW50ID0gdGhpcy5hbW91bnQgKyB0aGlzLnRheDtcbiAgICBpZiAodGhpcy5pc0V4cGVuc2UoKSkge1xuICAgICAgcmV0dXJuIGdyb3NzQW1vdW50O1xuICAgIH1cblxuICAgIC8vIGluY2x1ZGVkIHRyYW5zYWN0aW9ucyBhZmZlY3QgcGFyZW50IHRyYW5zYWN0aW9uIGFtb3VudCBhbmQgYXMgYSByZXN1bHQgZ3Jvc3NBbW91bnQsIHNraXAgdG8gYXZvaWQgZG91YmxlIHN1bVxuICAgIGNvbnN0IGFkanVzdG1lbnRzID0gbmV3IENvbGxlY3Rpb24odGhpcy50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKHRyYW5zYWN0aW9uID0+ICF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKTtcblxuICAgIGNvbnN0IGluY29tZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0luY29tZSgpKS5zdW1CeSgnYW1vdW50Jyk7XG4gICAgY29uc3QgZXhwZW5zZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSkuc3VtQnkoJ2Ftb3VudCcsIHRydWUpO1xuICAgIC8vIGFsbCBhZGp1c3RtZW50cyBleGNlcHQgcHJvcGVydHkgaW5jb21lIGluY3JlYXNlIGdyb3NzSW5jb21lXG4gICAgZ3Jvc3NBbW91bnQgKz0gZXhwZW5zZSArICh0aGlzLmlzUHJvcGVydHlUYW5rKCkgPyAtaW5jb21lIDogaW5jb21lKTtcblxuICAgIGlmICh0aGlzLmlzV29ya1RhbmsoKSB8fCB0aGlzLmlzSG9sZGluZ1RhbmsoKSkge1xuICAgICAgZ3Jvc3NBbW91bnQgKz0gdGhpcy5mcmFua2luZ0NyZWRpdCAtIHRoaXMudGF4RnJlZUNvbXBvbmVudCAtIHRoaXMuZWxpZ2libGVGb3JSZWR1Y3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3NzQW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQ2xhaW1BbW91bnRXaXRob3V0R3N0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0ICogdGhpcy5jbGFpbVJhdGlvO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayBjb25mdXNpbmcgbG9naWMgZGVtYW5kZWQgYnkgTmljb2xlLCB3ZSBuZWVkIGEgYmV0dGVyIHV4IHRvIGZpeCBpdFxuICAgKiBuZXRBbW91bnQgbWF0Y2hlcyByZWNlaXZlZCBwYXltZW50IChiYW5rVHJhbnNhY3Rpb24gYW1vdW50KSwgaW5jbHVkZXMgZ3N0IGFuZCBzYWxhcnkgaW5jbHVkZWQgYWRqdXN0bWVudHNcbiAgICogaWUgdXNlciByZWNlaXZlZCAxMDAwJCBzYWxhcnkgaW5jbHVkaW5nIDEwMCQgdGlwcy4gTmV0QW1vdW50PTEwMDAkLCBhbW91bnQ9OTAwJCwgdGlwcz0xMDAkXG4gICAqL1xuICBnZXQgbmV0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcigodCkgPT4gdC5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKSArIHRoaXMuYW1vdW50V2l0aEdzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb3N0IG9mIHRoZSB0cmFuc2FjdGlvbnMgY291bGQgaGF2ZSBvbmx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMsIHNvIHdlIGlnbm9yZVxuICAgKiB1c2VyJ3MgY2hvaWNlIGFuZCB0cmFuc2Zvcm0gYW1vdW50LCBidXQgdGhlcmUgYXJlIGV4Y2VwdGlvbnMgbGlrZSBhZHZhbmNlIChuZWdhdGl2ZSBvciBwb3NpdGl2ZSBhbW91bnQpXG4gICAqL1xuICBpZ25vcmVTaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuY2hhcnRBY2NvdW50cz8uaWQgaW4gQ2hhcnRBY2NvdW50c0tlZXBTaWduKTtcbiAgfVxuXG4gIHNldFBhcmVudCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5jaGFydEFjY291bnRzLm5hbWU7XG4gICAgdGhpcy5kYXRlID0gdHJhbnNhY3Rpb24uZGF0ZTtcbiAgICB0aGlzLmNsYWltUGVyY2VudCA9IHRyYW5zYWN0aW9uLmNsYWltUGVyY2VudDtcbiAgICB0aGlzLnByb3BlcnR5ID0gdHJhbnNhY3Rpb24ucHJvcGVydHk7XG4gICAgdGhpcy5sb2FuID0gdHJhbnNhY3Rpb24ubG9hbjtcbiAgICB0aGlzLmluY29tZVNvdXJjZSA9IHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZTtcbiAgICB0aGlzLmJ1c2luZXNzID0gdHJhbnNhY3Rpb24uYnVzaW5lc3M7XG4gIH1cblxuICBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhQ2hhcnRBY2NvdW50cy5zeXN0ZW1MaXN0LmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5pZCk7XG4gIH1cbn1cbiJdfQ==
|
@@ -6429,7 +6429,8 @@ class Transaction extends Transaction$1 {
|
|
6429
6429
|
return grossAmount;
|
6430
6430
|
}
|
6431
6431
|
// included transactions affect parent transaction amount and as a result grossAmount, skip to avoid double sum
|
6432
|
-
const adjustments = new Collection(this.transactions)
|
6432
|
+
const adjustments = new Collection(this.transactions)
|
6433
|
+
.filter(transaction => !transaction.chartAccounts?.isAdjustmentIncluded());
|
6433
6434
|
const income = adjustments.filter(transaction => transaction.isIncome()).sumBy('amount');
|
6434
6435
|
const expense = adjustments.filter(transaction => transaction.isExpense()).sumBy('amount', true);
|
6435
6436
|
// all adjustments except property income increase grossIncome
|
@@ -24336,15 +24337,15 @@ class WorkTransactionForm extends TransactionForm {
|
|
24336
24337
|
class WorkIncomeForm extends WorkTransactionForm {
|
24337
24338
|
constructor(transaction, registeredForGst, allocations) {
|
24338
24339
|
super(transaction, registeredForGst, allocations, {
|
24339
|
-
netAmount: new UntypedFormControl(transaction.netAmount, Validators.required),
|
24340
24340
|
tax: new UntypedFormControl({
|
24341
24341
|
value: transaction.tax,
|
24342
24342
|
disabled: !transaction.chartAccounts || transaction.chartAccounts.isNRAS(),
|
24343
24343
|
}, Validators.required),
|
24344
24344
|
incomeSource: new UntypedFormControl(transaction.incomeSource, [Validators.required, autocompleteValidator()]),
|
24345
24345
|
});
|
24346
|
-
|
24347
|
-
|
24346
|
+
// @TODO we use amount field as netAmount to avoid extra watcher for amount recalculation
|
24347
|
+
if (transaction.id) {
|
24348
|
+
this.get('amount').setValue(transaction.netAmount);
|
24348
24349
|
}
|
24349
24350
|
// forbid to edit some fields for allocated transaction
|
24350
24351
|
if (allocations.length) {
|
@@ -24368,12 +24369,6 @@ class WorkIncomeForm extends WorkTransactionForm {
|
|
24368
24369
|
listenEvents() {
|
24369
24370
|
super.listenEvents();
|
24370
24371
|
this.watchIncomeSource();
|
24371
|
-
this.watchNetAmount();
|
24372
|
-
}
|
24373
|
-
watchNetAmount() {
|
24374
|
-
this.get('netAmount').valueChanges.subscribe(() => {
|
24375
|
-
this.get('amount').setValue(this.getAmount());
|
24376
|
-
});
|
24377
24372
|
}
|
24378
24373
|
watchIncomeSource() {
|
24379
24374
|
this.get('incomeSource').valueChanges.subscribe((incomeSource) => {
|
@@ -24414,10 +24409,13 @@ class WorkIncomeForm extends WorkTransactionForm {
|
|
24414
24409
|
* ie bankTransaction=1000$ with 900$ salary and 100$ tips will create 2 transactions with 900$ and 100$
|
24415
24410
|
*/
|
24416
24411
|
getAmount() {
|
24417
|
-
return this.get('
|
24412
|
+
return this.get('amount').value - new Collection(this.currentValue.transactions)
|
24418
24413
|
.filter((t) => t.chartAccounts?.isAdjustmentIncluded())
|
24419
24414
|
.sumBy('amount');
|
24420
24415
|
}
|
24416
|
+
submit(data = {}) {
|
24417
|
+
return super.submit(Object.assign(data, { amount: this.getAmount() }));
|
24418
|
+
}
|
24421
24419
|
}
|
24422
24420
|
|
24423
24421
|
class WorkExpenseForm extends WorkTransactionForm {
|