taxtank-core 0.33.117 → 0.33.119
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.
@@ -78,7 +78,7 @@ export class PropertyEquityChartData {
|
|
78
78
|
items.forEach((item) => {
|
79
79
|
// increase item values with property actual forecasts for item year
|
80
80
|
item.marketValue = this.properties.items.reduce((sum, property) => sum + this.getMarketValueForPropertyByYear(property, item.year), 0);
|
81
|
-
item.loanBalance =
|
81
|
+
item.loanBalance = this.properties.items.reduce((sum, property) => sum + this.getLoanBalanceByYear(property, item.year), 0);
|
82
82
|
});
|
83
83
|
}
|
84
84
|
/**
|
@@ -129,12 +129,12 @@ export class PropertyEquityChartData {
|
|
129
129
|
const loans = this.loans.getByBankAccountsIds(bankAccounts.getIds());
|
130
130
|
const offset = bankAccounts.filterBy('type', BankAccountTypeEnum.OFFSET).getPropertyBalanceAmount(property.id);
|
131
131
|
if (year > this.currentYear) {
|
132
|
-
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (
|
132
|
+
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (loans.getByBankAccountId(bankAccount.id)?.getLastPaymentByYear(year)?.totalOwed || 0)), 0) - offset;
|
133
133
|
}
|
134
134
|
if (year == this.currentYear) {
|
135
|
-
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (loans.getByBankAccountId(bankAccount.id)?.currentBalance || 0)), 0)
|
135
|
+
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (Math.abs(loans.getByBankAccountId(bankAccount.id)?.currentBalance) || 0)), 0) - offset;
|
136
136
|
}
|
137
|
-
return property.getForecastByYear(year).loanBalance
|
137
|
+
return Math.abs(property.getForecastByYear(year).loanBalance) - offset;
|
138
138
|
// @TODO TT-4888 no idea why it was calculated like that
|
139
139
|
// return property.getValuationByYear(year).marketValue - offset;
|
140
140
|
}
|
@@ -165,4 +165,4 @@ export class PropertyEquityChartData {
|
|
165
165
|
});
|
166
166
|
}
|
167
167
|
}
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxtQ0FBbUM7QUFDbkMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxZQUNVLFVBQThCLEVBQzlCLFVBQXVDLEVBQ3ZDLFlBQW1DLEVBQ25DLEtBQXFCLEVBQ3JCLFlBQWtCO1FBSmxCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUNuQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBTTtRQUUxQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFB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SSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlyc3QgZnJvbSAnbG9kYXNoL2ZpcnN0JztcbmltcG9ydCB7IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1lcXVpdHktY2hhcnQtaXRlbSc7XG5pbXBvcnQge1xuICBCYW5rQWNjb3VudENvbGxlY3Rpb24sXG4gIExvYW5Db2xsZWN0aW9uLFxuICBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gIFByb3BlcnR5VmFsdWF0aW9uQ29sbGVjdGlvblxufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgUHJvcGVydHlFcXVpdHlDaGFydFR5cGVFbnVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1lcXVpdHktY2hhcnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uL2JhbmsnO1xuaW1wb3J0IHsgQmFua0FjY291bnRUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuLy8gY291bnQgb2YgeWVhcnMgZm9yIGZ1dHVyZSB2YWx1ZXNcbmNvbnN0IEZPUkVDQVNUX1lFQVJTID0gMjU7XG5cbi8qKlxuICogY2xhc3MgY29udGFpbiBhY3R1YWwgYW5kIGZvcmVjYXN0ZWQgbWFya2V0IHZhbHVlcyBhbmQgbG9hbiBiYWxhbmNlcyBmb3IgcGFzc2VkIHByb3BlcnRpZXNcbiAqIFggYXhpcyAtIHllYXJzIGZyb20gdGhlIGZpcnN0IGFjdHVhbCBkYXRhIHllYXIgdG8gdGhlIGxhc3QgZm9yZWNhc3RlZCB5ZWFyXG4gKiBZIGF4aXMgLSBhbW91bnRzIG9mIG1hcmtldCB2YWx1ZXMsIGxvYW4gYmFsYW5jZXNcbiAqIEFsc28gb24gaG92ZXIgYXBwZWFyIGVxdWl0eSBwb3NpdGlvbnMgcG9pbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5RXF1aXR5Q2hhcnREYXRhIHtcbiAgLy8gbGlzdCBvZiBlcXVpdHkgcG9zaXRpb25zIGZvciBhbGwgeWVhcnMgcmFuZ2VcbiAgbGlzdDogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXTtcbiAgLy8gY3VycmVudCBmaW5hbmNpYWwgeWVhclxuICBjdXJyZW50WWVhcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLFxuICAgIHByaXZhdGUgdmFsdWF0aW9uczogUHJvcGVydHlWYWx1YXRpb25Db2xsZWN0aW9uLFxuICAgIHByaXZhdGUgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSBsb2FuczogTG9hbkNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSByZWdpc3RlckRhdGU6IERhdGVcbiAgKSB7XG4gICAgdGhpcy5iYW5rQWNjb3VudHMgPSBiYW5rQWNjb3VudHMuZ2V0TG9hbkFuZE9mZnNldEFjY291bnRzKCk7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKG5ldyBEYXRlKCkpLnllYXI7XG4gICAgdGhpcy5pbml0SXRlbXMoKTtcbiAgICB0aGlzLmJ1aWxkSGlzdG9yeUl0ZW1zKCk7XG4gICAgdGhpcy5idWlsZEFjdHVhbEl0ZW0oKTtcbiAgICB0aGlzLmJ1aWxkRm9yZWNhc3RlZEl0ZW1zKCk7XG4gICAgdGhpcy5jaGVja1plcm9Mb2FuQmFsYW5jZSgpO1xuICAgIHRoaXMuY2hlY2taZXJvTWFya2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaXRlbXMgbGlzdCBpbiBjaGFydCBzZXJpZXMgZm9ybWF0XG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBnZXRDaGFydFNlcmllcyh0eXBlOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0pOiBudW1iZXJbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0Lm1hcCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0uZ2V0U2VyaWUodHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcmVwYXJlZCBjaGFydCBkYXRhXG4gICAqL1xuICBnZXRDaGFydERhdGEoKTogb2JqZWN0W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWFya2V0VmFsdWUnLFxuICAgICAgICBuYW1lOiAnTWFya2V0IFZhbHVlJyxcbiAgICAgICAgc2VyaWVzOiB0aGlzLmdldENoYXJ0U2VyaWVzKFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bS5NQVJLRVRfVkFMVUUpLFxuICAgICAgICAvLyBkaXNwbGF5IGZ1dHVyZSBtYXJrZXQgdmFsdWUgd2l0aCBkYXNoIGxpbmUgYW5kIHBhc3QgbWFya2V0IHZhbHVlIHdpdGggc29saWQgbGluZVxuICAgICAgICB6b25lczogW3tcbiAgICAgICAgICAvLyBsaW5lIHN0eWxlIGFmdGVyIGN1cnJlbnQgY2FsZW5kYXIgeWVhclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmN1cnJlbnRZZWFyLFxuICAgICAgICAgIGRhc2hTdHlsZTogJ1NvbGlkJ1xuICAgICAgICB9LCB7XG4gICAgICAgICAgLy8gZGVmYXVsdCBsaW5lIHN0eWxlXG4gICAgICAgICAgZGFzaFN0eWxlOiAnRGFzaCdcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGlkIHVzZWQgdG8gYWRkL3JlbW92ZSBzZXJpZSB0byBjaGFydFxuICAgICAgICBpZDogJ2xvYW5CYWxhbmNlJyxcbiAgICAgICAgbmFtZTogJ0xvYW4gQmFsYW5jZScsXG4gICAgICAgIHNlcmllczogdGhpcy5nZXRDaGFydFNlcmllcyhQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0uTE9BTl9CQUxBTkNFKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlIGVtcHR5IGVxdWl0eSBwb3NpdGlvbiBpdGVtIGZvciBlYWNoIHllYXIgaW4gY29sbGVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBpbml0SXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ID0gW107XG4gICAgZm9yIChsZXQgeWVhcjogbnVtYmVyID0gbmV3IEZpbmFuY2lhbFllYXIodGhpcy5yZWdpc3RlckRhdGUpLnllYXIgLSAxOyB5ZWFyIDw9ICh0aGlzLmN1cnJlbnRZZWFyICsgRk9SRUNBU1RfWUVBUlMpOyB5ZWFyKyspIHtcbiAgICAgIHRoaXMubGlzdC5wdXNoKG5ldyBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSh5ZWFyKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgZXF1aXR5IHBvc2l0aW9uIGl0ZW1zIHdpdGggcGFzdCB2YWx1ZXMgZnJvbSBwcm9wZXJ0aWVzIGZvcmVjYXN0c1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhpc3RvcnlJdGVtcygpOiB2b2lkIHtcbiAgICAvLyBnZXQgaXRlbXMgZm9yIHBhc3QgYW5kIGN1cnJlbnQgeWVhcnNcbiAgICBjb25zdCBpdGVtczogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXSA9IHRoaXMubGlzdC5maWx0ZXIoKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpdGVtLnllYXIgPD0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgIC8vIGluY3JlYXNlIGl0ZW0gdmFsdWVzIHdpdGggcHJvcGVydHkgYWN0dWFsIGZvcmVjYXN0cyBmb3IgaXRlbSB5ZWFyXG4gICAgICBpdGVtLm1hcmtldFZhbHVlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldE1hcmtldFZhbHVlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApO1xuXG4gICAgICBpdGVtLmxvYW5CYWxhbmNlID0gTWF0aC5hYnModGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5LCBpdGVtLnllYXIpLCAwKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVtb3ZlLCB0aGVyZSBpcyBubyBkaWZmZXJlbmNlIGJldHdlZW4gYWN0dWFsIGFuZCBoaXN0b3J5IGNhbGN1bGF0aW9uc1xuICAgKiBzZXQgYWN0dWFsIHllYXIncyByZWFsIGRhdGFcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRBY3R1YWxJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtID0gdGhpcy5saXN0LmZpbmQoKGk6IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpLnllYXIgPT09IHRoaXMuY3VycmVudFllYXIpO1xuICAgIGl0ZW0ubWFya2V0VmFsdWUgPSB0aGlzLnZhbHVhdGlvbnMuZ2V0TWFya2V0VmFsdWUobmV3IERhdGUoKSk7XG4gICAgaXRlbS5sb2FuQmFsYW5jZSA9IDA7XG4gICAgdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgaXRlbS5sb2FuQmFsYW5jZSArPSB0aGlzLmdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5LCB0aGlzLmN1cnJlbnRZZWFyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb2xsZWN0IGVxdWl0eSBwb3NpdGlvbiBpdGVtcyB3aXRoIGZvcmVjYXN0ZWQgKGZ1dHVyZSkgY2FsY3VsYXRlZCB2YWx1ZXNcbiAgICovXG4gIHByaXZhdGUgYnVpbGRGb3JlY2FzdGVkSXRlbXMoKTogdm9pZCB7XG4gICAgLy8gY2FsY3VsYXRlIGZ1dHVyZSB2YWx1ZXMgZm9yIGFsbCBwcm9wZXJ0aWVzIHNlcGFyYXRlbHlcbiAgICB0aGlzLnByb3BlcnRpZXMuaXRlbXMuZm9yRWFjaCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICBjb25zdCBtYXJrZXRWYWx1ZSA9IHRoaXMudmFsdWF0aW9ucy5maWx0ZXJCeSgncHJvcGVydHkuaWQnLCBwcm9wZXJ0eS5pZCkuZ2V0TWFya2V0VmFsdWUobmV3IERhdGUoKSk7XG4gICAgICBsZXQgZm9yZWNhc3RlZE1hcmtldFZhbHVlOiBudW1iZXIgPSAocHJvcGVydHkuZ3Jvd3RoUGVyY2VudCAvIDEwMCkgKiBtYXJrZXRWYWx1ZSArIG1hcmtldFZhbHVlO1xuXG4gICAgICAvLyBjYWxjdWxhdGUgZnV0dXJlIHZhbHVlcyBmb3IgZWFjaCBmdXR1cmUgeWVhciBmb3IgY3VycmVudCBoYW5kbGluZyBwcm9wZXJ0eVxuICAgICAgdGhpcy5saXN0XG4gICAgICAgIC5maWx0ZXIoKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpdGVtLnllYXIgPiB0aGlzLmN1cnJlbnRZZWFyKVxuICAgICAgICAuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgICAgICAvLyBpbmNyZWFzZSBsb2FuIGJhbGFuY2UgYW1vdW50IGZvciBoYW5kbGluZyBlcXVpdHkgcG9zaXRpb24gaXRlbVxuICAgICAgICAgIGl0ZW0ubG9hbkJhbGFuY2UgKz0gdGhpcy5nZXRMb2FuQmFsYW5jZUJ5WWVhcihwcm9wZXJ0eSwgaXRlbS55ZWFyKTtcblxuICAgICAgICAgIC8vIGluY3JlYXNlIG1hcmtldCB2YWx1ZSBhbW91bnQgZm9yIGhhbmRsaW5nIGVxdWl0eSBwb3NpdGlvbiBpdGVtXG4gICAgICAgICAgaXRlbS5tYXJrZXRWYWx1ZSArPSBmb3JlY2FzdGVkTWFya2V0VmFsdWU7XG5cbiAgICAgICAgICAvLyBpbmNyZWFzZSBjdXJyZW50IG1hcmtldCB2YWx1ZSBmb3JlY2FzdCBmb3IgdGhlIG5leHQgY3ljbGUgaXRlcmF0aW9uXG4gICAgICAgICAgZm9yZWNhc3RlZE1hcmtldFZhbHVlICs9IGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZSAqIChwcm9wZXJ0eS5ncm93dGhQZXJjZW50IC8gMTAwKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByb3BlcnR5IGxvYW4gYmFsYW5jZSBieSBmaW5hbmNpYWwgeWVhclxuICAgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgaW5zdGFuY2UgZm9yIGZpbHRlclxuICAgKiBAcGFyYW0geWVhciBGaW5hbmNpYWwgeWVhciBudW1iZXJcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0TG9hbkJhbGFuY2VCeVllYXIocHJvcGVydHk6IFByb3BlcnR5LCB5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChuZXcgRmluYW5jaWFsWWVhcihwcm9wZXJ0eS5jb250cmFjdERhdGUpLnllYXIgPiB5ZWFyKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBiYW5rQWNjb3VudHMgPSB0aGlzLmJhbmtBY2NvdW50cy5nZXRCeVByb3BlcnR5SWQocHJvcGVydHkuaWQpO1xuICAgIGNvbnN0IGxvYW5zID0gdGhpcy5sb2Fucy5nZXRCeUJhbmtBY2NvdW50c0lkcyhiYW5rQWNjb3VudHMuZ2V0SWRzKCkpO1xuICAgIGNvbnN0IG9mZnNldCA9IGJhbmtBY2NvdW50cy5maWx0ZXJCeSgndHlwZScsIEJhbmtBY2NvdW50VHlwZUVudW0uT0ZGU0VUKS5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpO1xuXG4gICAgaWYgKHllYXIgPiB0aGlzLmN1cnJlbnRZZWFyKSB7XG4gICAgICByZXR1cm4gYmFua0FjY291bnRzLml0ZW1zLnJlZHVjZSgodG90YWxTdW06IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB0b3RhbFN1bSArIChiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eVBlcmNlbnRhZ2UocHJvcGVydHkuaWQpICogKC1sb2Fucy5nZXRCeUJhbmtBY2NvdW50SWQoYmFua0FjY291bnQuaWQpPy5nZXRMYXN0UGF5bWVudEJ5WWVhcih5ZWFyKT8udG90YWxPd2VkIHx8IDApKSwgMCkgKyBvZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPT0gdGhpcy5jdXJyZW50WWVhcikge1xuICAgICAgcmV0dXJuIGJhbmtBY2NvdW50cy5pdGVtcy5yZWR1Y2UoKHRvdGFsU3VtOiBudW1iZXIsIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4gdG90YWxTdW0gKyAoYmFua0FjY291bnQuZ2V0UHJvcGVydHlQZXJjZW50YWdlKHByb3BlcnR5LmlkKSAqIChsb2Fucy5nZXRCeUJhbmtBY2NvdW50SWQoYmFua0FjY291bnQuaWQpPy5jdXJyZW50QmFsYW5jZSB8fCAwKSksIDApICsgb2Zmc2V0O1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0eS5nZXRGb3JlY2FzdEJ5WWVhcih5ZWFyKS5sb2FuQmFsYW5jZSArIG9mZnNldDtcbiAgICAvLyBAVE9ETyBUVC00ODg4IG5vIGlkZWEgd2h5IGl0IHdhcyBjYWxjdWxhdGVkIGxpa2UgdGhhdFxuICAgIC8vIHJldHVybiBwcm9wZXJ0eS5nZXRWYWx1YXRpb25CeVllYXIoeWVhcikubWFya2V0VmFsdWUgLSBvZmZzZXQ7XG4gIH1cblxuICBnZXRNYXJrZXRWYWx1ZUZvclByb3BlcnR5QnlZZWFyKHByb3BlcnR5OiBQcm9wZXJ0eSwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobmV3IEZpbmFuY2lhbFllYXIocHJvcGVydHkuY29udHJhY3REYXRlKS55ZWFyID4geWVhcikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5LmdldFZhbHVhdGlvbkJ5WWVhcih5ZWFyKS5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBsb2FuIGJhbGFuY2UgaXMgMCBhbmQgc2V0IGl0IGFzIG51bGwgKHRvIG5vdCB0byBkcmF3IHBvaW50IG9uIHRoZSBjaGFydClcbiAgICovXG4gIHByaXZhdGUgY2hlY2taZXJvTG9hbkJhbGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0LmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5sb2FuQmFsYW5jZSA9PT0gMCkge1xuICAgICAgICBpdGVtLmxvYW5CYWxhbmNlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtYXJrZXQgdmFsdWUgaXMgMCBhbmQgc2V0IGl0IGFzIG51bGwgKHRvIG5vdCB0byBkcmF3IHBvaW50IG9uIHRoZSBjaGFydClcbiAgICovXG4gIHByaXZhdGUgY2hlY2taZXJvTWFya2V0VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0LmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5tYXJrZXRWYWx1ZSA9PT0gMCkge1xuICAgICAgICBpdGVtLm1hcmtldFZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUdoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxtQ0FBbUM7QUFDbkMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxZQUNVLFVBQThCLEVBQzlCLFVBQXVDLEVBQ3ZDLFlBQW1DLEVBQ25DLEtBQXFCLEVBQ3JCLFlBQWtCO1FBSmxCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUNuQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBTTtRQUUxQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFB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QUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlyc3QgZnJvbSAnbG9kYXNoL2ZpcnN0JztcbmltcG9ydCB7IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1lcXVpdHktY2hhcnQtaXRlbSc7XG5pbXBvcnQge1xuICBCYW5rQWNjb3VudENvbGxlY3Rpb24sXG4gIExvYW5Db2xsZWN0aW9uLFxuICBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gIFByb3BlcnR5VmFsdWF0aW9uQ29sbGVjdGlvblxufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgUHJvcGVydHlFcXVpdHlDaGFydFR5cGVFbnVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1lcXVpdHktY2hhcnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uL2JhbmsnO1xuaW1wb3J0IHsgQmFua0FjY291bnRUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuLy8gY291bnQgb2YgeWVhcnMgZm9yIGZ1dHVyZSB2YWx1ZXNcbmNvbnN0IEZPUkVDQVNUX1lFQVJTID0gMjU7XG5cbi8qKlxuICogY2xhc3MgY29udGFpbiBhY3R1YWwgYW5kIGZvcmVjYXN0ZWQgbWFya2V0IHZhbHVlcyBhbmQgbG9hbiBiYWxhbmNlcyBmb3IgcGFzc2VkIHByb3BlcnRpZXNcbiAqIFggYXhpcyAtIHllYXJzIGZyb20gdGhlIGZpcnN0IGFjdHVhbCBkYXRhIHllYXIgdG8gdGhlIGxhc3QgZm9yZWNhc3RlZCB5ZWFyXG4gKiBZIGF4aXMgLSBhbW91bnRzIG9mIG1hcmtldCB2YWx1ZXMsIGxvYW4gYmFsYW5jZXNcbiAqIEFsc28gb24gaG92ZXIgYXBwZWFyIGVxdWl0eSBwb3NpdGlvbnMgcG9pbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5RXF1aXR5Q2hhcnREYXRhIHtcbiAgLy8gbGlzdCBvZiBlcXVpdHkgcG9zaXRpb25zIGZvciBhbGwgeWVhcnMgcmFuZ2VcbiAgbGlzdDogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXTtcbiAgLy8gY3VycmVudCBmaW5hbmNpYWwgeWVhclxuICBjdXJyZW50WWVhcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLFxuICAgIHByaXZhdGUgdmFsdWF0aW9uczogUHJvcGVydHlWYWx1YXRpb25Db2xsZWN0aW9uLFxuICAgIHByaXZhdGUgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSBsb2FuczogTG9hbkNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSByZWdpc3RlckRhdGU6IERhdGVcbiAgKSB7XG4gICAgdGhpcy5iYW5rQWNjb3VudHMgPSBiYW5rQWNjb3VudHMuZ2V0TG9hbkFuZE9mZnNldEFjY291bnRzKCk7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKG5ldyBEYXRlKCkpLnllYXI7XG4gICAgdGhpcy5pbml0SXRlbXMoKTtcbiAgICB0aGlzLmJ1aWxkSGlzdG9yeUl0ZW1zKCk7XG4gICAgdGhpcy5idWlsZEFjdHVhbEl0ZW0oKTtcbiAgICB0aGlzLmJ1aWxkRm9yZWNhc3RlZEl0ZW1zKCk7XG4gICAgdGhpcy5jaGVja1plcm9Mb2FuQmFsYW5jZSgpO1xuICAgIHRoaXMuY2hlY2taZXJvTWFya2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaXRlbXMgbGlzdCBpbiBjaGFydCBzZXJpZXMgZm9ybWF0XG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBnZXRDaGFydFNlcmllcyh0eXBlOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0pOiBudW1iZXJbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0Lm1hcCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0uZ2V0U2VyaWUodHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcmVwYXJlZCBjaGFydCBkYXRhXG4gICAqL1xuICBnZXRDaGFydERhdGEoKTogb2JqZWN0W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWFya2V0VmFsdWUnLFxuICAgICAgICBuYW1lOiAnTWFya2V0IFZhbHVlJyxcbiAgICAgICAgc2VyaWVzOiB0aGlzLmdldENoYXJ0U2VyaWVzKFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bS5NQVJLRVRfVkFMVUUpLFxuICAgICAgICAvLyBkaXNwbGF5IGZ1dHVyZSBtYXJrZXQgdmFsdWUgd2l0aCBkYXNoIGxpbmUgYW5kIHBhc3QgbWFya2V0IHZhbHVlIHdpdGggc29saWQgbGluZVxuICAgICAgICB6b25lczogW3tcbiAgICAgICAgICAvLyBsaW5lIHN0eWxlIGFmdGVyIGN1cnJlbnQgY2FsZW5kYXIgeWVhclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmN1cnJlbnRZZWFyLFxuICAgICAgICAgIGRhc2hTdHlsZTogJ1NvbGlkJ1xuICAgICAgICB9LCB7XG4gICAgICAgICAgLy8gZGVmYXVsdCBsaW5lIHN0eWxlXG4gICAgICAgICAgZGFzaFN0eWxlOiAnRGFzaCdcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGlkIHVzZWQgdG8gYWRkL3JlbW92ZSBzZXJpZSB0byBjaGFydFxuICAgICAgICBpZDogJ2xvYW5CYWxhbmNlJyxcbiAgICAgICAgbmFtZTogJ0xvYW4gQmFsYW5jZScsXG4gICAgICAgIHNlcmllczogdGhpcy5nZXRDaGFydFNlcmllcyhQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0uTE9BTl9CQUxBTkNFKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlIGVtcHR5IGVxdWl0eSBwb3NpdGlvbiBpdGVtIGZvciBlYWNoIHllYXIgaW4gY29sbGVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBpbml0SXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ID0gW107XG4gICAgZm9yIChsZXQgeWVhcjogbnVtYmVyID0gbmV3IEZpbmFuY2lhbFllYXIodGhpcy5yZWdpc3RlckRhdGUpLnllYXIgLSAxOyB5ZWFyIDw9ICh0aGlzLmN1cnJlbnRZZWFyICsgRk9SRUNBU1RfWUVBUlMpOyB5ZWFyKyspIHtcbiAgICAgIHRoaXMubGlzdC5wdXNoKG5ldyBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSh5ZWFyKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgZXF1aXR5IHBvc2l0aW9uIGl0ZW1zIHdpdGggcGFzdCB2YWx1ZXMgZnJvbSBwcm9wZXJ0aWVzIGZvcmVjYXN0c1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhpc3RvcnlJdGVtcygpOiB2b2lkIHtcbiAgICAvLyBnZXQgaXRlbXMgZm9yIHBhc3QgYW5kIGN1cnJlbnQgeWVhcnNcbiAgICBjb25zdCBpdGVtczogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXSA9IHRoaXMubGlzdC5maWx0ZXIoKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpdGVtLnllYXIgPD0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgIC8vIGluY3JlYXNlIGl0ZW0gdmFsdWVzIHdpdGggcHJvcGVydHkgYWN0dWFsIGZvcmVjYXN0cyBmb3IgaXRlbSB5ZWFyXG4gICAgICBpdGVtLm1hcmtldFZhbHVlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldE1hcmtldFZhbHVlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApO1xuXG4gICAgICBpdGVtLmxvYW5CYWxhbmNlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5LCBpdGVtLnllYXIpLCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUsIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiBhY3R1YWwgYW5kIGhpc3RvcnkgY2FsY3VsYXRpb25zXG4gICAqIHNldCBhY3R1YWwgeWVhcidzIHJlYWwgZGF0YVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEFjdHVhbEl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0gPSB0aGlzLmxpc3QuZmluZCgoaTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGkueWVhciA9PT0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbS5tYXJrZXRWYWx1ZSA9IHRoaXMudmFsdWF0aW9ucy5nZXRNYXJrZXRWYWx1ZShuZXcgRGF0ZSgpKTtcbiAgICBpdGVtLmxvYW5CYWxhbmNlID0gMDtcbiAgICB0aGlzLnByb3BlcnRpZXMuaXRlbXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBpdGVtLmxvYW5CYWxhbmNlICs9IHRoaXMuZ2V0TG9hbkJhbGFuY2VCeVllYXIocHJvcGVydHksIHRoaXMuY3VycmVudFllYXIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgZXF1aXR5IHBvc2l0aW9uIGl0ZW1zIHdpdGggZm9yZWNhc3RlZCAoZnV0dXJlKSBjYWxjdWxhdGVkIHZhbHVlc1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEZvcmVjYXN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAvLyBjYWxjdWxhdGUgZnV0dXJlIHZhbHVlcyBmb3IgYWxsIHByb3BlcnRpZXMgc2VwYXJhdGVseVxuICAgIHRoaXMucHJvcGVydGllcy5pdGVtcy5mb3JFYWNoKChwcm9wZXJ0eTogUHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IG1hcmtldFZhbHVlID0gdGhpcy52YWx1YXRpb25zLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIHByb3BlcnR5LmlkKS5nZXRNYXJrZXRWYWx1ZShuZXcgRGF0ZSgpKTtcbiAgICAgIGxldCBmb3JlY2FzdGVkTWFya2V0VmFsdWU6IG51bWJlciA9IChwcm9wZXJ0eS5ncm93dGhQZXJjZW50IC8gMTAwKSAqIG1hcmtldFZhbHVlICsgbWFya2V0VmFsdWU7XG5cbiAgICAgIC8vIGNhbGN1bGF0ZSBmdXR1cmUgdmFsdWVzIGZvciBlYWNoIGZ1dHVyZSB5ZWFyIGZvciBjdXJyZW50IGhhbmRsaW5nIHByb3BlcnR5XG4gICAgICB0aGlzLmxpc3RcbiAgICAgICAgLmZpbHRlcigoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0ueWVhciA+IHRoaXMuY3VycmVudFllYXIpXG4gICAgICAgIC5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgICAgIC8vIGluY3JlYXNlIGxvYW4gYmFsYW5jZSBhbW91bnQgZm9yIGhhbmRsaW5nIGVxdWl0eSBwb3NpdGlvbiBpdGVtXG4gICAgICAgICAgaXRlbS5sb2FuQmFsYW5jZSArPSB0aGlzLmdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5LCBpdGVtLnllYXIpO1xuXG4gICAgICAgICAgLy8gaW5jcmVhc2UgbWFya2V0IHZhbHVlIGFtb3VudCBmb3IgaGFuZGxpbmcgZXF1aXR5IHBvc2l0aW9uIGl0ZW1cbiAgICAgICAgICBpdGVtLm1hcmtldFZhbHVlICs9IGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZTtcblxuICAgICAgICAgIC8vIGluY3JlYXNlIGN1cnJlbnQgbWFya2V0IHZhbHVlIGZvcmVjYXN0IGZvciB0aGUgbmV4dCBjeWNsZSBpdGVyYXRpb25cbiAgICAgICAgICBmb3JlY2FzdGVkTWFya2V0VmFsdWUgKz0gZm9yZWNhc3RlZE1hcmtldFZhbHVlICogKHByb3BlcnR5Lmdyb3d0aFBlcmNlbnQgLyAxMDApO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgbG9hbiBiYWxhbmNlIGJ5IGZpbmFuY2lhbCB5ZWFyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBpbnN0YW5jZSBmb3IgZmlsdGVyXG4gICAqIEBwYXJhbSB5ZWFyIEZpbmFuY2lhbCB5ZWFyIG51bWJlclxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMb2FuQmFsYW5jZUJ5WWVhcihwcm9wZXJ0eTogUHJvcGVydHksIHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG5ldyBGaW5hbmNpYWxZZWFyKHByb3BlcnR5LmNvbnRyYWN0RGF0ZSkueWVhciA+IHllYXIpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGNvbnN0IGJhbmtBY2NvdW50cyA9IHRoaXMuYmFua0FjY291bnRzLmdldEJ5UHJvcGVydHlJZChwcm9wZXJ0eS5pZCk7XG4gICAgY29uc3QgbG9hbnMgPSB0aGlzLmxvYW5zLmdldEJ5QmFua0FjY291bnRzSWRzKGJhbmtBY2NvdW50cy5nZXRJZHMoKSk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gYmFua0FjY291bnRzLmZpbHRlckJ5KCd0eXBlJywgQmFua0FjY291bnRUeXBlRW51bS5PRkZTRVQpLmdldFByb3BlcnR5QmFsYW5jZUFtb3VudChwcm9wZXJ0eS5pZCk7XG5cbiAgICBpZiAoeWVhciA+IHRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIHJldHVybiBiYW5rQWNjb3VudHMuaXRlbXMucmVkdWNlKCh0b3RhbFN1bTogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpID0+IHRvdGFsU3VtICsgKGJhbmtBY2NvdW50LmdldFByb3BlcnR5UGVyY2VudGFnZShwcm9wZXJ0eS5pZCkgKiAobG9hbnMuZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50LmlkKT8uZ2V0TGFzdFBheW1lbnRCeVllYXIoeWVhcik/LnRvdGFsT3dlZCB8fCAwKSksIDApIC0gb2Zmc2V0O1xuICAgIH1cblxuICAgIGlmICh5ZWFyID09IHRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIHJldHVybiBiYW5rQWNjb3VudHMuaXRlbXMucmVkdWNlKFxuICAgICAgICAodG90YWxTdW06IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB0b3RhbFN1bSArIChiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eVBlcmNlbnRhZ2UocHJvcGVydHkuaWQpICogKE1hdGguYWJzKGxvYW5zLmdldEJ5QmFua0FjY291bnRJZChiYW5rQWNjb3VudC5pZCk/LmN1cnJlbnRCYWxhbmNlKSB8fCAwKSksIDBcbiAgICAgICkgLSBvZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGguYWJzKHByb3BlcnR5LmdldEZvcmVjYXN0QnlZZWFyKHllYXIpLmxvYW5CYWxhbmNlKSAtIG9mZnNldDtcbiAgICAvLyBAVE9ETyBUVC00ODg4IG5vIGlkZWEgd2h5IGl0IHdhcyBjYWxjdWxhdGVkIGxpa2UgdGhhdFxuICAgIC8vIHJldHVybiBwcm9wZXJ0eS5nZXRWYWx1YXRpb25CeVllYXIoeWVhcikubWFya2V0VmFsdWUgLSBvZmZzZXQ7XG4gIH1cblxuICBnZXRNYXJrZXRWYWx1ZUZvclByb3BlcnR5QnlZZWFyKHByb3BlcnR5OiBQcm9wZXJ0eSwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobmV3IEZpbmFuY2lhbFllYXIocHJvcGVydHkuY29udHJhY3REYXRlKS55ZWFyID4geWVhcikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5LmdldFZhbHVhdGlvbkJ5WWVhcih5ZWFyKS5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBsb2FuIGJhbGFuY2UgaXMgMCBhbmQgc2V0IGl0IGFzIG51bGwgKHRvIG5vdCB0byBkcmF3IHBvaW50IG9uIHRoZSBjaGFydClcbiAgICovXG4gIHByaXZhdGUgY2hlY2taZXJvTG9hbkJhbGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0LmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5sb2FuQmFsYW5jZSA9PT0gMCkge1xuICAgICAgICBpdGVtLmxvYW5CYWxhbmNlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtYXJrZXQgdmFsdWUgaXMgMCBhbmQgc2V0IGl0IGFzIG51bGwgKHRvIG5vdCB0byBkcmF3IHBvaW50IG9uIHRoZSBjaGFydClcbiAgICovXG4gIHByaXZhdGUgY2hlY2taZXJvTWFya2V0VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0LmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5tYXJrZXRWYWx1ZSA9PT0gMCkge1xuICAgICAgICBpdGVtLm1hcmtldFZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -6171,7 +6171,7 @@ class PropertyEquityChartData {
|
|
6171
6171
|
items.forEach((item) => {
|
6172
6172
|
// increase item values with property actual forecasts for item year
|
6173
6173
|
item.marketValue = this.properties.items.reduce((sum, property) => sum + this.getMarketValueForPropertyByYear(property, item.year), 0);
|
6174
|
-
item.loanBalance =
|
6174
|
+
item.loanBalance = this.properties.items.reduce((sum, property) => sum + this.getLoanBalanceByYear(property, item.year), 0);
|
6175
6175
|
});
|
6176
6176
|
}
|
6177
6177
|
/**
|
@@ -6222,12 +6222,12 @@ class PropertyEquityChartData {
|
|
6222
6222
|
const loans = this.loans.getByBankAccountsIds(bankAccounts.getIds());
|
6223
6223
|
const offset = bankAccounts.filterBy('type', BankAccountTypeEnum.OFFSET).getPropertyBalanceAmount(property.id);
|
6224
6224
|
if (year > this.currentYear) {
|
6225
|
-
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (
|
6225
|
+
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (loans.getByBankAccountId(bankAccount.id)?.getLastPaymentByYear(year)?.totalOwed || 0)), 0) - offset;
|
6226
6226
|
}
|
6227
6227
|
if (year == this.currentYear) {
|
6228
|
-
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (loans.getByBankAccountId(bankAccount.id)?.currentBalance || 0)), 0)
|
6228
|
+
return bankAccounts.items.reduce((totalSum, bankAccount) => totalSum + (bankAccount.getPropertyPercentage(property.id) * (Math.abs(loans.getByBankAccountId(bankAccount.id)?.currentBalance) || 0)), 0) - offset;
|
6229
6229
|
}
|
6230
|
-
return property.getForecastByYear(year).loanBalance
|
6230
|
+
return Math.abs(property.getForecastByYear(year).loanBalance) - offset;
|
6231
6231
|
// @TODO TT-4888 no idea why it was calculated like that
|
6232
6232
|
// return property.getValuationByYear(year).marketValue - offset;
|
6233
6233
|
}
|