taxtank-core 0.33.61 → 0.33.62
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/collections/holding/holding-trade.collection.mjs +4 -1
- package/esm2022/src/lib/collections/holding/holding.collection.mjs +2 -2
- package/esm2022/src/lib/forms/holding/holding-trade/holding-trade-filter.form.mjs +6 -3
- package/esm2022/src/lib/forms/holding/holding-trade/holding-trade.form.mjs +1 -2
- package/esm2022/src/lib/models/holding/holding-trade.mjs +6 -21
- package/esm2022/src/lib/models/holding/holding.mjs +4 -5
- package/esm2022/src/lib/validators/match-sum.validator.mjs +2 -2
- package/fesm2022/taxtank-core.mjs +16 -27
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/collections/holding/holding-trade.collection.d.ts +1 -0
- package/src/lib/models/holding/holding-trade.d.ts +2 -6
- package/src/lib/models/holding/holding.d.ts +2 -1
@@ -44,6 +44,9 @@ export class HoldingTradeCollection extends ExportableCollection {
|
|
44
44
|
getSales() {
|
45
45
|
return this.filterBy('type', HoldingTradeTypeEnum.SELL);
|
46
46
|
}
|
47
|
+
getPosition() {
|
48
|
+
return this.getPurchases().sumBy('quantity') - this.getSales().sumBy('quantity');
|
49
|
+
}
|
47
50
|
getShares() {
|
48
51
|
return this.filterBy('holdingType.category', HoldingTypeCategoryEnum.STOCK);
|
49
52
|
}
|
@@ -75,4 +78,4 @@ export class HoldingTradeCollection extends ExportableCollection {
|
|
75
78
|
return sharedMarketValue;
|
76
79
|
}
|
77
80
|
}
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2hvbGRpbmcvaG9sZGluZy10cmFkZS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG9CQUFrQztJQUM1RSxlQUFlO1FBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU87WUFDTCxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQXFCLEVBQUUsRUFBRSxDQUFDO1lBQy9DLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFB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QUFDLFdBQVcsQ0FBQTtRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgRXhwb3J0YWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9leHBvcnRhYmxlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEV4cG9ydENlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsJztcbmltcG9ydCB7IEV4cG9ydENlbGxUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwtdHlwZS5lbnVtJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZVR5cGVFbnVtLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gZXh0ZW5kcyBFeHBvcnRhYmxlQ29sbGVjdGlvbjxIb2xkaW5nVHJhZGU+IHtcbiAgZ2V0RXhwb3J0SGVhZGVyKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWydEYXRlJywgJ1RpY2tlcicsICdOYW1lJywgJ0Fzc2V0IHR5cGUnLCAnUXR5IGJvdWdodCcsICdRdHkgY3VycmVudCcsICdCdXkgcHJpY2UvVW5pdCcsICdDdXJyZW50IHByaWNlL1VuaXQnLCAnVG90YWwgTVYnLCAnUHJvZml0L0xvc3MnXTtcbiAgfVxuXG4gIGdldEV4cG9ydEZvb3RlcigpOiBFeHBvcnRDZWxsW10ge1xuICAgIHJldHVybiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogJycsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXG4gICAgXTtcbiAgfVxuXG4gIGdldEV4cG9ydEJvZHkoKTogRXhwb3J0Q2VsbFtdW10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaG9sZGluZzogSG9sZGluZ1RyYWRlKSA9PiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZy5kYXRlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uREFURSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLmhvbGRpbmdUeXBlLnRpY2tlciwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XG4gICAgICAgIHZhbHVlOiBob2xkaW5nLmhvbGRpbmdUeXBlLm5hbWUsXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkdcbiAgICAgIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcuaG9sZGluZ1R5cGUuY2F0ZWdvcnlMYWJlbCwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLnF1YW50aXR5LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HIH0pLFxuICAgICAgLy8gcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcuY3VycmVudFF1YW50aXR5LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcucHJpY2UsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XG4gICAgICAgIHZhbHVlOiBob2xkaW5nLmhvbGRpbmdUeXBlLnByaWNlLFxuICAgICAgICB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1lcbiAgICAgIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcbiAgICAgICAgdmFsdWU6IGhvbGRpbmcubWFya2V0VmFsdWUsXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWVxuICAgICAgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogaG9sZGluZy5ncm93dGhDb2VmZmljaWVudCxcbiAgICAgICAgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlBFUkNFTlRcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG5cbiAgZ2V0UHVyY2hhc2VzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlJywgSG9sZGluZ1RyYWRlVHlwZUVudW0uQlVZKTtcbiAgfVxuXG4gIGdldFNhbGVzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlJywgSG9sZGluZ1RyYWRlVHlwZUVudW0uU0VMTCk7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFB1cmNoYXNlcygpLnN1bUJ5KCdxdWFudGl0eScpIC0gdGhpcy5nZXRTYWxlcygpLnN1bUJ5KCdxdWFudGl0eScpO1xuICB9XG5cbiAgZ2V0U2hhcmVzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCdob2xkaW5nVHlwZS5jYXRlZ29yeScsIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlNUT0NLKTtcbiAgfVxuXG4gIGdldENyeXB0b3MoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2hvbGRpbmdUeXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ1JZUFRPKTtcbiAgfVxuXG4gIGdldE90aGVycygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgnaG9sZGluZ1R5cGUuY2F0ZWdvcnknLCBbXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1NUT0NLLFxuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfVU5JVCxcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIHJlbW92ZSwgdXNlIGhvbGRpbmcubWFya2V0VmFsdWUgaW5zdGVhZFxuICAgKi9cbiAgZ2V0IG1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ21hcmtldFZhbHVlJyk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIHJlbW92ZSwgdXNlIGhvbGRpbmcuc2hhcmVkTWFya2V0VmFsdWUgaW5zdGVhZFxuICAgKi9cbiAgZ2V0IHNoYXJlZE1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgbGV0IHNoYXJlZE1hcmtldFZhbHVlID0gMDtcbiAgICB0aGlzLml0ZW1zLmZvckVhY2godHJhZGUgPT4ge1xuICAgICAgc2hhcmVkTWFya2V0VmFsdWUgKz0gdHJhZGUub3duZXJzaGlwUGVyY2VudCAvIDEwMCAqIHRyYWRlLm1hcmtldFZhbHVlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
@@ -7,7 +7,7 @@ export class HoldingCollection extends Collection {
|
|
7
7
|
const tradesByHoldingType = trades.groupBy('holdingType.id');
|
8
8
|
const items = [];
|
9
9
|
for (const key in tradesByHoldingType.items) {
|
10
|
-
if (tradesByHoldingType.get(key).
|
10
|
+
if (tradesByHoldingType.get(key).getPosition() > 0) {
|
11
11
|
items.push(new Holding(tradesByHoldingType.get(key), holdingTypesById.get(key)));
|
12
12
|
}
|
13
13
|
}
|
@@ -40,4 +40,4 @@ export class HoldingCollection extends Collection {
|
|
40
40
|
return this.marketValue - this.purchaseValue;
|
41
41
|
}
|
42
42
|
}
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2hvbGRpbmcvaG9sZGluZy5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsVUFBbUI7SUFDeEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUE4QixFQUFFLFlBQW1DO1FBQ25GLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUU7WUFDM0MsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xGO1NBQ0Y7UUFFRCxPQUFPLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7WUFDcEMsdUJBQXVCLENBQUMsV0FBVztZQUNuQyx1QkFBdUIsQ0FBQyxjQUFjO1lBQ3RDLHVCQUF1QixDQUFDLGFBQWE7WUFDckMsdUJBQXVCLENBQUMsS0FBSztTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBIb2xkaW5nIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gfSBmcm9tICcuL2hvbGRpbmctdHJhZGUuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZUNvbGxlY3Rpb24gfSBmcm9tICcuL2hvbGRpbmctdHlwZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ0NvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPEhvbGRpbmc+IHtcbiAgc3RhdGljIGZyb21UcmFkZXModHJhZGVzOiBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uLCBob2xkaW5nVHlwZXM6IEhvbGRpbmdUeXBlQ29sbGVjdGlvbik6IEhvbGRpbmdDb2xsZWN0aW9uIHtcbiAgICBjb25zdCBob2xkaW5nVHlwZXNCeUlkID0gaG9sZGluZ1R5cGVzLmluZGV4QnkoJ2lkJyk7XG4gICAgY29uc3QgdHJhZGVzQnlIb2xkaW5nVHlwZSA9IHRyYWRlcy5ncm91cEJ5KCdob2xkaW5nVHlwZS5pZCcpO1xuICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdHJhZGVzQnlIb2xkaW5nVHlwZS5pdGVtcykge1xuICAgICAgaWYgKHRyYWRlc0J5SG9sZGluZ1R5cGUuZ2V0KGtleSkuZ2V0UG9zaXRpb24oKSA+IDApIHtcbiAgICAgICAgaXRlbXMucHVzaChuZXcgSG9sZGluZyh0cmFkZXNCeUhvbGRpbmdUeXBlLmdldChrZXkpLCBob2xkaW5nVHlwZXNCeUlkLmdldChrZXkpKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBIb2xkaW5nQ29sbGVjdGlvbihpdGVtcyk7XG4gIH1cblxuICBnZXRTaGFyZXMoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ3R5cGUuY2F0ZWdvcnknLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5TVE9DSyk7XG4gIH1cblxuICBnZXRDcnlwdG9zKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ1JZUFRPKTtcbiAgfVxuXG4gIGdldE90aGVycygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZS5jYXRlZ29yeScsIFtcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLkNPTExFQ1RJQkxFLFxuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5VTkxJU1RFRF9VTklULFxuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uT1RIRVJcbiAgICBdKTtcbiAgfVxuXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZScpO1xuICB9XG5cbiAgZ2V0IHB1cmNoYXNlVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgncHVyY2hhc2VWYWx1ZScpO1xuICB9XG5cbiAgZ2V0R3Jvd3RoQ29lZmZpY2llbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZXRWYWx1ZSAvIHRoaXMucHVyY2hhc2VWYWx1ZSAtIDE7XG4gIH1cblxuICBnZXRQbmwoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFya2V0VmFsdWUgLSB0aGlzLnB1cmNoYXNlVmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
@@ -5,7 +5,7 @@ export class HoldingTradeFilterForm extends AbstractForm {
|
|
5
5
|
constructor() {
|
6
6
|
super({
|
7
7
|
category: new UntypedFormControl(),
|
8
|
-
isTaxFree: new UntypedFormControl(
|
8
|
+
isTaxFree: new UntypedFormControl(''),
|
9
9
|
});
|
10
10
|
this.categories = [];
|
11
11
|
this.get('category').valueChanges.subscribe(category => {
|
@@ -15,11 +15,14 @@ export class HoldingTradeFilterForm extends AbstractForm {
|
|
15
15
|
});
|
16
16
|
}
|
17
17
|
filter(trades) {
|
18
|
-
let filteredTrades = trades
|
18
|
+
let filteredTrades = trades;
|
19
|
+
if (typeof this.value.isTaxFree == 'boolean') {
|
20
|
+
filteredTrades = trades.filterBy('isTaxFree', this.value.isTaxFree);
|
21
|
+
}
|
19
22
|
if (this.categories.length) {
|
20
23
|
filteredTrades = filteredTrades.filterBy('holdingType.category', this.categories);
|
21
24
|
}
|
22
25
|
return filteredTrades;
|
23
26
|
}
|
24
27
|
}
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS1maWx0ZXIuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9ob2xkaW5nL2hvbGRpbmctdHJhZGUvaG9sZGluZy10cmFkZS1maWx0ZXIuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFlBQTBCO0lBRXBFO1FBQ0UsS0FBSyxDQUFDO1lBQ0osUUFBUSxFQUFFLElBQUksa0JBQWtCLEVBQUU7WUFDbEMsU0FBUyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUxMLGVBQVUsR0FBOEIsRUFBRSxDQUFDO1FBT3pDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLO2dCQUMxRCxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsV0FBVyxFQUFFLHVCQUF1QixDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7Z0JBQ3JKLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUE4QjtRQUNuQyxJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFFNUIsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUM1QyxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyRTtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25GO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlRmlsdGVyRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxIb2xkaW5nVHJhZGU+IHtcbiAgY2F0ZWdvcmllczogSG9sZGluZ1R5cGVDYXRlZ29yeUVudW1bXSA9IFtdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICBjYXRlZ29yeTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICAgICAgaXNUYXhGcmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICB9KTtcblxuICAgIHRoaXMuZ2V0KCdjYXRlZ29yeScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2F0ZWdvcnkgPT4ge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzID0gY2F0ZWdvcnkgPT09IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgICAgID8gW0hvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSwgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVRdXG4gICAgICAgIDogW2NhdGVnb3J5XTtcbiAgICB9KTtcbiAgfVxuXG4gIGZpbHRlcih0cmFkZXM6IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24pOiBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uIHtcbiAgICBsZXQgZmlsdGVyZWRUcmFkZXMgPSB0cmFkZXM7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUuaXNUYXhGcmVlID09ICdib29sZWFuJykge1xuICAgICAgZmlsdGVyZWRUcmFkZXMgPSB0cmFkZXMuZmlsdGVyQnkoJ2lzVGF4RnJlZScsIHRoaXMudmFsdWUuaXNUYXhGcmVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2F0ZWdvcmllcy5sZW5ndGgpIHtcbiAgICAgIGZpbHRlcmVkVHJhZGVzID0gZmlsdGVyZWRUcmFkZXMuZmlsdGVyQnkoJ2hvbGRpbmdUeXBlLmNhdGVnb3J5JywgdGhpcy5jYXRlZ29yaWVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyZWRUcmFkZXM7XG4gIH1cbn1cbiJdfQ==
|
@@ -4,7 +4,6 @@ import { greaterThanValidator } from '../../../validators';
|
|
4
4
|
export class HoldingTradeForm extends AbstractForm {
|
5
5
|
constructor(holdingTrade) {
|
6
6
|
super({
|
7
|
-
category: new UntypedFormControl(holdingTrade.category),
|
8
7
|
isTaxFree: new UntypedFormControl(holdingTrade.isTaxFree, Validators.required),
|
9
8
|
type: new UntypedFormControl(holdingTrade.type, Validators.required),
|
10
9
|
quantity: new UntypedFormControl(holdingTrade.quantity, [Validators.required, greaterThanValidator(0)]),
|
@@ -27,4 +26,4 @@ export class HoldingTradeForm extends AbstractForm {
|
|
27
26
|
return super.submit(data, includeDisabledFields);
|
28
27
|
}
|
29
28
|
}
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2hvbGRpbmcvaG9sZGluZy10cmFkZS9ob2xkaW5nLXRyYWRlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBMEI7SUFFOUQsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDOUUsSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BFLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkcsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNGLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEUsV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xGLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ25HLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDaEQsRUFBRSxZQUFZLENBQUMsQ0FBQztRQVpuQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQWNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUE7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWUsRUFBRSxFQUFFLHFCQUFxQixHQUFHLEtBQUs7UUFDckQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi8uLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBncmVhdGVyVGhhblZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxIb2xkaW5nVHJhZGU+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBwdXJjaGFzZVZhbHVlID0gMDtcbiAgY29uc3RydWN0b3IoaG9sZGluZ1RyYWRlOiBIb2xkaW5nVHJhZGUpIHtcbiAgICBzdXBlcih7XG4gICAgICBpc1RheEZyZWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaG9sZGluZ1RyYWRlLmlzVGF4RnJlZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0eXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS50eXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHF1YW50aXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5xdWFudGl0eSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGdyZWF0ZXJUaGFuVmFsaWRhdG9yKDApXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUucHJpY2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5mZWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBob2xkaW5nVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuaG9sZGluZ1R5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgb3duZXJzaGlwUGVyY2VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUub3duZXJzaGlwUGVyY2VudCB8fCAxMDAsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZmlsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZmlsZSlcbiAgICB9LCBob2xkaW5nVHJhZGUpO1xuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xzQ2hhbmdlcyhbJ3F1YW50aXR5JywgJ3ByaWNlJywgJ2ZlZSddKS5zdWJzY3JpYmUoKFtxdWFudGl0eSwgcHJpY2UsIGZlZV0pID0+IHtcbiAgICAgIHRoaXMucHVyY2hhc2VWYWx1ZSA9IHF1YW50aXR5ICogcHJpY2UgKyBmZWVcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSwgaW5jbHVkZURpc2FibGVkRmllbGRzID0gZmFsc2UpOiBIb2xkaW5nVHJhZGUge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoZGF0YSwgaW5jbHVkZURpc2FibGVkRmllbGRzKTtcbiAgfVxufVxuIl19
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
|
-
import {
|
2
|
+
import { Type } from 'class-transformer';
|
3
3
|
import { User } from '../user';
|
4
4
|
import { HoldingType } from './holding-type';
|
5
5
|
import { AppFile } from '../file';
|
6
6
|
import { AbstractModel } from '../../db/Models';
|
7
7
|
import { FinancialYear } from '../financial-year';
|
8
|
-
import { HoldingTradeTypeEnum
|
8
|
+
import { HoldingTradeTypeEnum } from '../../db/Enums';
|
9
9
|
export class HoldingTrade extends AbstractModel {
|
10
10
|
constructor() {
|
11
11
|
super(...arguments);
|
@@ -20,6 +20,9 @@ export class HoldingTrade extends AbstractModel {
|
|
20
20
|
get typeLabel() {
|
21
21
|
return this.isPurchase() ? 'Buy' : 'Sell';
|
22
22
|
}
|
23
|
+
get sign() {
|
24
|
+
return this.isPurchase() ? '' : '-';
|
25
|
+
}
|
23
26
|
/**
|
24
27
|
* Get total purchasing price
|
25
28
|
*/
|
@@ -56,22 +59,4 @@ __decorate([
|
|
56
59
|
__decorate([
|
57
60
|
Type(() => AppFile)
|
58
61
|
], HoldingTrade.prototype, "file", void 0);
|
59
|
-
|
60
|
-
Transform(({ obj }) => {
|
61
|
-
const holdingType = plainToClass(HoldingType, obj.holdingType);
|
62
|
-
if (holdingType) {
|
63
|
-
return holdingType.isOther() ? null : holdingType.category;
|
64
|
-
}
|
65
|
-
if (obj.category) {
|
66
|
-
return [
|
67
|
-
HoldingTypeCategoryEnum.COLLECTIBLE,
|
68
|
-
HoldingTypeCategoryEnum.UNLISTED_STOCK,
|
69
|
-
HoldingTypeCategoryEnum.UNLISTED_UNIT,
|
70
|
-
HoldingTypeCategoryEnum.OTHER
|
71
|
-
].includes(obj.category) ? null : obj.category;
|
72
|
-
}
|
73
|
-
return HoldingTypeCategoryEnum.STOCK;
|
74
|
-
}, { toClassOnly: true }),
|
75
|
-
Expose({ toClassOnly: true })
|
76
|
-
], HoldingTrade.prototype, "category", void 0);
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUEvQzs7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsU0FBSSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQXlFbEMsQ0FBQztJQW5DQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sUUFBUSxHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFFbkQsT0FBTyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDcEYsQ0FBQztDQUNGO0FBdEVDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQU1YO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztpREFDQztBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7MENBQ047QUFxQmlCO0lBZjlCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUNyQixNQUFNLFdBQVcsR0FBZ0IsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0UsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO1NBQzNEO1FBQ0QsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0wsdUJBQXVCLENBQUMsV0FBVztnQkFDbkMsdUJBQXVCLENBQUMsY0FBYztnQkFDdEMsdUJBQXVCLENBQUMsYUFBYTtnQkFDckMsdUJBQXVCLENBQUMsS0FBSzthQUM5QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztTQUNoRDtRQUNELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7OENBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3NlLCBUcmFuc2Zvcm0sIFR5cGUsIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlIH0gZnJvbSAnLi9ob2xkaW5nLXR5cGUnO1xuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlVHlwZUVudW0sIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGlzVGF4RnJlZSA9IGZhbHNlO1xuICBxdWFudGl0eSA9IDA7XG4gIG93bmVyc2hpcFBlcmNlbnQ/OiBudW1iZXI7XG4gIHByaWNlID0gMDtcbiAgZmVlOiBudW1iZXI7XG4gIHR5cGUgPSBIb2xkaW5nVHJhZGVUeXBlRW51bS5CVVk7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgNDUyMSByZW5hbWUgdG8gaG9sZGluZ1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1R5cGUpXG4gIGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZTtcblxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxuICBmaWxlOiBBcHBGaWxlO1xuXG4gIC8qKlxuICAgKiBAVE9ETyBBcnRlbS9BbGV4IGxvb2tzIGJhZCwgY29tZSB1cCB3aXRoIGEgYmV0dGVyIHNvbHV0aW9uXG4gICAqIGdldCBjdXJyZW50IGNhdGVnb3J5LCBpbiBob2xkaW5nIHdlIGFyZSBpbnRlcmVzdGVkIGluIDMgbWFpbiBjYXRlZ29yaWVzOiBzdG9jay9jcnlwdG8vb3RoZXJcbiAgICovXG4gIEBUcmFuc2Zvcm0oKHsgb2JqIH0pID0+IHtcbiAgICBjb25zdCBob2xkaW5nVHlwZTogSG9sZGluZ1R5cGUgPSBwbGFpblRvQ2xhc3MoSG9sZGluZ1R5cGUsIG9iai5ob2xkaW5nVHlwZSlcbiAgICBpZiAoaG9sZGluZ1R5cGUpIHtcbiAgICAgIHJldHVybiBob2xkaW5nVHlwZS5pc090aGVyKCkgPyBudWxsIDogaG9sZGluZ1R5cGUuY2F0ZWdvcnlcbiAgICB9XG4gICAgaWYgKG9iai5jYXRlZ29yeSkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ09MTEVDVElCTEUsXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1NUT0NLLFxuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5VTkxJU1RFRF9VTklULFxuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5PVEhFUlxuICAgICAgXS5pbmNsdWRlcyhvYmouY2F0ZWdvcnkpID8gbnVsbCA6IG9iai5jYXRlZ29yeTtcbiAgICB9XG4gICAgcmV0dXJuIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlNUT0NLO1xuICB9LCB7IHRvQ2xhc3NPbmx5OiB0cnVlIH0pXG4gIEBFeHBvc2UoeyB0b0NsYXNzT25seTogdHJ1ZSB9KSBjYXRlZ29yeTogSG9sZGluZ1R5cGVDYXRlZ29yeUVudW07XG5cbiAgaXNQdXJjaGFzZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBIb2xkaW5nVHJhZGVUeXBlRW51bS5CVVk7XG4gIH1cblxuICBnZXQgdHlwZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNQdXJjaGFzZSgpID8gJ0J1eScgOiAnU2VsbCc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRvdGFsIHB1cmNoYXNpbmcgcHJpY2VcbiAgICovXG4gIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByaWNlICogdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgcmVtb3ZlXG4gICAqL1xuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5xdWFudGl0eSAqIHRoaXMuaG9sZGluZ1R5cGUucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBlcmNlbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgYW5kIGJ1eSBwcmljZVxuICAgKiBAVE9ETyB2aWsvYWxleCBubyBuZWVkIHRvIHBhc3MgaG9sZGluZ1R5cGUsIHNob3VsZCBjb21lIGZyb20gYmFja2VuZFxuICAgKi9cbiAgZ2V0IGdyb3d0aENvZWZmaWNpZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaG9sZGluZ1R5cGUucHJpY2UgLyB0aGlzLnByaWNlIC0gMTtcbiAgfVxuXG4gIGhlbGRNb3JlWWVhcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB5ZWFyVGltZTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTtcblxuICAgIHJldHVybiAobmV3IEZpbmFuY2lhbFllYXIoKS5zdGFydERhdGUuZ2V0VGltZSgpIC0gdGhpcy5kYXRlLmdldFRpbWUoKSkgPiB5ZWFyVGltZTtcbiAgfVxufVxuIl19
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLElBQUksRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUEvQzs7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsU0FBSSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQXdEbEMsQ0FBQztJQXZDQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQVcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNwRixDQUFDO0NBQ0Y7QUFyREM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNOO0FBTVg7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNDO0FBR3pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQzswQ0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9zZSwgVHJhbnNmb3JtLCBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSB9IGZyb20gJy4vaG9sZGluZy10eXBlJztcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tICcuLi9maWxlJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZVR5cGVFbnVtLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmdUcmFkZSBleHRlbmRzIEFic3RyYWN0TW9kZWwge1xuICBpc1RheEZyZWUgPSBmYWxzZTtcbiAgcXVhbnRpdHkgPSAwO1xuICBvd25lcnNoaXBQZXJjZW50PzogbnVtYmVyO1xuICBwcmljZSA9IDA7XG4gIGZlZTogbnVtYmVyO1xuICB0eXBlID0gSG9sZGluZ1RyYWRlVHlwZUVudW0uQlVZO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICAvKipcbiAgICogQFRPRE8gdmlrIDQ1MjEgcmVuYW1lIHRvIGhvbGRpbmdcbiAgICovXG4gIEBUeXBlKCgpID0+IEhvbGRpbmdUeXBlKVxuICBob2xkaW5nVHlwZTogSG9sZGluZ1R5cGU7XG5cbiAgQFR5cGUoKCkgPT4gQXBwRmlsZSlcbiAgZmlsZTogQXBwRmlsZTtcblxuICBpc1B1cmNoYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEhvbGRpbmdUcmFkZVR5cGVFbnVtLkJVWTtcbiAgfVxuXG4gIGdldCB0eXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1B1cmNoYXNlKCkgPyAnQnV5JyA6ICdTZWxsJztcbiAgfVxuXG4gIGdldCBzaWduKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNQdXJjaGFzZSgpID8gJycgOiAnLSc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRvdGFsIHB1cmNoYXNpbmcgcHJpY2VcbiAgICovXG4gIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByaWNlICogdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgcmVtb3ZlXG4gICAqL1xuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5xdWFudGl0eSAqIHRoaXMuaG9sZGluZ1R5cGUucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBlcmNlbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgYW5kIGJ1eSBwcmljZVxuICAgKiBAVE9ETyB2aWsvYWxleCBubyBuZWVkIHRvIHBhc3MgaG9sZGluZ1R5cGUsIHNob3VsZCBjb21lIGZyb20gYmFja2VuZFxuICAgKi9cbiAgZ2V0IGdyb3d0aENvZWZmaWNpZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaG9sZGluZ1R5cGUucHJpY2UgLyB0aGlzLnByaWNlIC0gMTtcbiAgfVxuXG4gIGhlbGRNb3JlWWVhcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB5ZWFyVGltZTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTtcblxuICAgIHJldHVybiAobmV3IEZpbmFuY2lhbFllYXIoKS5zdGFydERhdGUuZ2V0VGltZSgpIC0gdGhpcy5kYXRlLmdldFRpbWUoKSkgPiB5ZWFyVGltZTtcbiAgfVxufVxuIl19
|
@@ -4,15 +4,14 @@ export class Holding extends AbstractModel {
|
|
4
4
|
super();
|
5
5
|
this.trades = trades;
|
6
6
|
this.type = type;
|
7
|
-
this.
|
7
|
+
this.name = type.name;
|
8
|
+
this.ticker = type.ticker;
|
9
|
+
this.quantity = trades.getPosition();
|
8
10
|
this.purchaseValue = this.getPurchaseValue();
|
9
11
|
this.marketValue = this.getMarketValue();
|
10
12
|
this.avgPrice = this.getAvgPrice();
|
11
13
|
this.pnl = this.getPnl();
|
12
14
|
}
|
13
|
-
getQuantity() {
|
14
|
-
return this.trades.getPurchases().sumBy('quantity') - this.trades.getSales().sumBy('quantity');
|
15
|
-
}
|
16
15
|
getPurchaseValue() {
|
17
16
|
let remainingQuantity = this.quantity;
|
18
17
|
let totalCost = 0;
|
@@ -52,4 +51,4 @@ export class Holding extends AbstractModel {
|
|
52
51
|
return this.marketValue - this.purchaseValue;
|
53
52
|
}
|
54
53
|
}
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUloRCxNQUFNLE9BQU8sT0FBUSxTQUFRLGFBQWE7SUFVeEMsWUFBb0IsTUFBOEIsRUFBRSxJQUFpQjtRQUNuRSxLQUFLLEVBQUUsQ0FBQztRQURVLFdBQU0sR0FBTixNQUFNLENBQXdCO1FBRWhELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLEVBQUU7Z0JBQzFCLE9BQU87YUFDUjtZQUVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkUsU0FBUyxJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUMxRCxpQkFBaUIsSUFBSSxrQkFBa0IsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtRQUMzRSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSB9IGZyb20gJy4vaG9sZGluZy10eXBlJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmcgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgdHlwZTogSG9sZGluZ1R5cGU7XG4gIG5hbWU6IHN0cmluZztcbiAgdGlja2VyOiBzdHJpbmc7XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIGF2Z1ByaWNlOiBudW1iZXI7XG4gIHB1cmNoYXNlVmFsdWU6IG51bWJlcjtcbiAgbWFya2V0VmFsdWU6IG51bWJlcjtcbiAgcG5sOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFkZXM6IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24sIHR5cGU6IEhvbGRpbmdUeXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IHR5cGUubmFtZTtcbiAgICB0aGlzLnRpY2tlciA9IHR5cGUudGlja2VyO1xuICAgIHRoaXMucXVhbnRpdHkgPSB0cmFkZXMuZ2V0UG9zaXRpb24oKTtcbiAgICB0aGlzLnB1cmNoYXNlVmFsdWUgPSB0aGlzLmdldFB1cmNoYXNlVmFsdWUoKTtcbiAgICB0aGlzLm1hcmtldFZhbHVlID0gdGhpcy5nZXRNYXJrZXRWYWx1ZSgpO1xuICAgIHRoaXMuYXZnUHJpY2UgPSB0aGlzLmdldEF2Z1ByaWNlKCk7XG4gICAgdGhpcy5wbmwgPSB0aGlzLmdldFBubCgpO1xuICB9XG5cbiAgZ2V0UHVyY2hhc2VWYWx1ZSgpOiBudW1iZXIge1xuICAgIGxldCByZW1haW5pbmdRdWFudGl0eSA9IHRoaXMucXVhbnRpdHk7XG4gICAgbGV0IHRvdGFsQ29zdCA9IDA7XG5cbiAgICB0aGlzLnRyYWRlcy5nZXRQdXJjaGFzZXMoKS5pdGVtcy5mb3JFYWNoKHRyYWRlID0+IHtcbiAgICAgIGlmIChyZW1haW5pbmdRdWFudGl0eSA8PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXBwbGljYWJsZVF1YW50aXR5ID0gTWF0aC5taW4odHJhZGUucXVhbnRpdHksIHJlbWFpbmluZ1F1YW50aXR5KTtcbiAgICAgIHRvdGFsQ29zdCArPSBhcHBsaWNhYmxlUXVhbnRpdHkgKiB0cmFkZS5wcmljZSArIHRyYWRlLmZlZTtcbiAgICAgIHJlbWFpbmluZ1F1YW50aXR5IC09IGFwcGxpY2FibGVRdWFudGl0eTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0b3RhbENvc3Q7XG4gIH1cblxuICBnZXRNYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YW50aXR5ICogdGhpcy50eXBlLnByaWNlO1xuICB9XG5cbiAgZ2V0QXZnUHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZVZhbHVlIC8gdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9maXQgYW5kIGxvc3NcbiAgICovXG4gIGdldFBubCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVZhbHVlO1xuICB9XG5cbiAgZ2V0U2hhcmVkTWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICBsZXQgc2hhcmVkTWFya2V0VmFsdWUgPSAwO1xuICAgIHRoaXMudHJhZGVzLml0ZW1zLmZvckVhY2goaG9sZGluZyA9PiB7XG4gICAgICBzaGFyZWRNYXJrZXRWYWx1ZSArPSBob2xkaW5nLm93bmVyc2hpcFBlcmNlbnQgLyAxMDAgKiBob2xkaW5nLm1hcmtldFZhbHVlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXRHcm93dGhDb2VmZmljaWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcmtldFZhbHVlIC8gdGhpcy5wdXJjaGFzZVZhbHVlIC0gMTtcbiAgfVxuXG4gIGdldFVucmVhbGlzZWRQcm9maXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFya2V0VmFsdWUgLSB0aGlzLnB1cmNoYXNlVmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
@@ -10,7 +10,7 @@ export function matchSumValidator(controlsFn) {
|
|
10
10
|
}
|
11
11
|
const sum = controls.reduce((acc, control) => acc + control.value, 0);
|
12
12
|
const targetValue = targetControl.value;
|
13
|
-
return sum === targetValue ? null : { matchSum: true };
|
13
|
+
return sum.toFixed(2) === targetValue.toFixed(2) ? null : { matchSum: true };
|
14
14
|
};
|
15
15
|
}
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtc3VtLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi92YWxpZGF0b3JzL21hdGNoLXN1bS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFVBQW1DO0lBQ25FLE9BQU8sQ0FBQyxhQUE4QixFQUEyQixFQUFFO1FBQ2pFLE1BQU0sUUFBUSxHQUFzQixVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRXhDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9FLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEBwYXJhbSBjb250cm9sc0ZuIGZ1bmN0aW9uIHRvIGdldCBjb250cm9scyBmcm9tIHRhcmdldCBwYXJlbnRcbiAqIGl0J3MgZWFzaWVyIHRvIHBhc3MgY29udHJvbHMgaW5zdGVhZCBvZiBmdW5jdGlvbiwgYnV0IGl0IHdvbid0IHdvcmsgd2l0aCBkeW5hbWljIGZpZWxkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hTdW1WYWxpZGF0b3IoY29udHJvbHNGbjogKCkgPT4gQWJzdHJhY3RDb250cm9sW10pOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAodGFyZ2V0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGNvbnN0IGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSA9IGNvbnRyb2xzRm4uYmluZCh0YXJnZXRDb250cm9sLnBhcmVudCkoKTtcbiAgICBpZiAoY29udHJvbHMuZmluZChjb250cm9sID0+IGNvbnRyb2wudmFsdWUgPT09IG51bGwpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgc3VtID0gY29udHJvbHMucmVkdWNlKChhY2MsIGNvbnRyb2wpID0+IGFjYyArIGNvbnRyb2wudmFsdWUsIDApO1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGFyZ2V0Q29udHJvbC52YWx1ZTtcblxuICAgIHJldHVybiBzdW0udG9GaXhlZCgyKSA9PT0gdGFyZ2V0VmFsdWUudG9GaXhlZCgyKSA/IG51bGwgOiB7IG1hdGNoU3VtOiB0cnVlIH07XG4gIH07XG59XG4iXX0=
|
@@ -9439,6 +9439,9 @@ class HoldingTradeCollection extends ExportableCollection {
|
|
9439
9439
|
getSales() {
|
9440
9440
|
return this.filterBy('type', HoldingTradeTypeEnum.SELL);
|
9441
9441
|
}
|
9442
|
+
getPosition() {
|
9443
|
+
return this.getPurchases().sumBy('quantity') - this.getSales().sumBy('quantity');
|
9444
|
+
}
|
9442
9445
|
getShares() {
|
9443
9446
|
return this.filterBy('holdingType.category', HoldingTypeCategoryEnum.STOCK);
|
9444
9447
|
}
|
@@ -9525,7 +9528,7 @@ class HoldingCollection extends Collection {
|
|
9525
9528
|
const tradesByHoldingType = trades.groupBy('holdingType.id');
|
9526
9529
|
const items = [];
|
9527
9530
|
for (const key in tradesByHoldingType.items) {
|
9528
|
-
if (tradesByHoldingType.get(key).
|
9531
|
+
if (tradesByHoldingType.get(key).getPosition() > 0) {
|
9529
9532
|
items.push(new Holding(tradesByHoldingType.get(key), holdingTypesById.get(key)));
|
9530
9533
|
}
|
9531
9534
|
}
|
@@ -10575,6 +10578,9 @@ class HoldingTrade extends AbstractModel {
|
|
10575
10578
|
get typeLabel() {
|
10576
10579
|
return this.isPurchase() ? 'Buy' : 'Sell';
|
10577
10580
|
}
|
10581
|
+
get sign() {
|
10582
|
+
return this.isPurchase() ? '' : '-';
|
10583
|
+
}
|
10578
10584
|
/**
|
10579
10585
|
* Get total purchasing price
|
10580
10586
|
*/
|
@@ -10611,24 +10617,6 @@ __decorate([
|
|
10611
10617
|
__decorate([
|
10612
10618
|
Type(() => AppFile)
|
10613
10619
|
], HoldingTrade.prototype, "file", void 0);
|
10614
|
-
__decorate([
|
10615
|
-
Transform(({ obj }) => {
|
10616
|
-
const holdingType = plainToClass(HoldingType, obj.holdingType);
|
10617
|
-
if (holdingType) {
|
10618
|
-
return holdingType.isOther() ? null : holdingType.category;
|
10619
|
-
}
|
10620
|
-
if (obj.category) {
|
10621
|
-
return [
|
10622
|
-
HoldingTypeCategoryEnum.COLLECTIBLE,
|
10623
|
-
HoldingTypeCategoryEnum.UNLISTED_STOCK,
|
10624
|
-
HoldingTypeCategoryEnum.UNLISTED_UNIT,
|
10625
|
-
HoldingTypeCategoryEnum.OTHER
|
10626
|
-
].includes(obj.category) ? null : obj.category;
|
10627
|
-
}
|
10628
|
-
return HoldingTypeCategoryEnum.STOCK;
|
10629
|
-
}, { toClassOnly: true }),
|
10630
|
-
Expose({ toClassOnly: true })
|
10631
|
-
], HoldingTrade.prototype, "category", void 0);
|
10632
10620
|
|
10633
10621
|
/**
|
10634
10622
|
* @TODO vik rename to HoldingTradeParcel when backend ready
|
@@ -10706,15 +10694,14 @@ class Holding extends AbstractModel {
|
|
10706
10694
|
super();
|
10707
10695
|
this.trades = trades;
|
10708
10696
|
this.type = type;
|
10709
|
-
this.
|
10697
|
+
this.name = type.name;
|
10698
|
+
this.ticker = type.ticker;
|
10699
|
+
this.quantity = trades.getPosition();
|
10710
10700
|
this.purchaseValue = this.getPurchaseValue();
|
10711
10701
|
this.marketValue = this.getMarketValue();
|
10712
10702
|
this.avgPrice = this.getAvgPrice();
|
10713
10703
|
this.pnl = this.getPnl();
|
10714
10704
|
}
|
10715
|
-
getQuantity() {
|
10716
|
-
return this.trades.getPurchases().sumBy('quantity') - this.trades.getSales().sumBy('quantity');
|
10717
|
-
}
|
10718
10705
|
getPurchaseValue() {
|
10719
10706
|
let remainingQuantity = this.quantity;
|
10720
10707
|
let totalCost = 0;
|
@@ -21609,7 +21596,7 @@ function matchSumValidator(controlsFn) {
|
|
21609
21596
|
}
|
21610
21597
|
const sum = controls.reduce((acc, control) => acc + control.value, 0);
|
21611
21598
|
const targetValue = targetControl.value;
|
21612
|
-
return sum === targetValue ? null : { matchSum: true };
|
21599
|
+
return sum.toFixed(2) === targetValue.toFixed(2) ? null : { matchSum: true };
|
21613
21600
|
};
|
21614
21601
|
}
|
21615
21602
|
|
@@ -24476,7 +24463,6 @@ class DepreciationForm extends TransactionBaseForm {
|
|
24476
24463
|
class HoldingTradeForm extends AbstractForm {
|
24477
24464
|
constructor(holdingTrade) {
|
24478
24465
|
super({
|
24479
|
-
category: new UntypedFormControl(holdingTrade.category),
|
24480
24466
|
isTaxFree: new UntypedFormControl(holdingTrade.isTaxFree, Validators.required),
|
24481
24467
|
type: new UntypedFormControl(holdingTrade.type, Validators.required),
|
24482
24468
|
quantity: new UntypedFormControl(holdingTrade.quantity, [Validators.required, greaterThanValidator(0)]),
|
@@ -24504,7 +24490,7 @@ class HoldingTradeFilterForm extends AbstractForm {
|
|
24504
24490
|
constructor() {
|
24505
24491
|
super({
|
24506
24492
|
category: new UntypedFormControl(),
|
24507
|
-
isTaxFree: new UntypedFormControl(
|
24493
|
+
isTaxFree: new UntypedFormControl(''),
|
24508
24494
|
});
|
24509
24495
|
this.categories = [];
|
24510
24496
|
this.get('category').valueChanges.subscribe(category => {
|
@@ -24514,7 +24500,10 @@ class HoldingTradeFilterForm extends AbstractForm {
|
|
24514
24500
|
});
|
24515
24501
|
}
|
24516
24502
|
filter(trades) {
|
24517
|
-
let filteredTrades = trades
|
24503
|
+
let filteredTrades = trades;
|
24504
|
+
if (typeof this.value.isTaxFree == 'boolean') {
|
24505
|
+
filteredTrades = trades.filterBy('isTaxFree', this.value.isTaxFree);
|
24506
|
+
}
|
24518
24507
|
if (this.categories.length) {
|
24519
24508
|
filteredTrades = filteredTrades.filterBy('holdingType.category', this.categories);
|
24520
24509
|
}
|