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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2hvbGRpbmcvaG9sZGluZy10cmFkZS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG9CQUFrQztJQUM1RSxlQUFlO1FBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU87WUFDTCxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQXFCLEVBQUUsRUFBRSxDQUFDO1lBQy9DLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFB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YW5zZm9ybWVyJztcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZXhwb3J0YWJsZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBFeHBvcnRDZWxsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtY2VsbCc7XG5pbXBvcnQgeyBFeHBvcnRDZWxsVHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBIb2xkaW5nVHJhZGVUeXBlRW51bSwgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uIGV4dGVuZHMgRXhwb3J0YWJsZUNvbGxlY3Rpb248SG9sZGluZ1RyYWRlPiB7XG4gIGdldEV4cG9ydEhlYWRlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnRGF0ZScsICdUaWNrZXInLCAnTmFtZScsICdBc3NldCB0eXBlJywgJ1F0eSBib3VnaHQnLCAnUXR5IGN1cnJlbnQnLCAnQnV5IHByaWNlL1VuaXQnLCAnQ3VycmVudCBwcmljZS9Vbml0JywgJ1RvdGFsIE1WJywgJ1Byb2ZpdC9Mb3NzJ107XG4gIH1cblxuICBnZXRFeHBvcnRGb290ZXIoKTogRXhwb3J0Q2VsbFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6ICcnLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HIH0pLFxuICAgIF07XG4gIH1cblxuICBnZXRFeHBvcnRCb2R5KCk6IEV4cG9ydENlbGxbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGhvbGRpbmc6IEhvbGRpbmdUcmFkZSkgPT4gW1xuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcuZGF0ZSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkRBVEUgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZy5ob2xkaW5nVHlwZS50aWNrZXIsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogaG9sZGluZy5ob2xkaW5nVHlwZS5uYW1lLFxuICAgICAgICB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HXG4gICAgICB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLmhvbGRpbmdUeXBlLmNhdGVnb3J5TGFiZWwsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZy5xdWFudGl0eSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIC8vIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLmN1cnJlbnRRdWFudGl0eSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLnByaWNlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogaG9sZGluZy5ob2xkaW5nVHlwZS5wcmljZSxcbiAgICAgICAgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZXG4gICAgICB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XG4gICAgICAgIHZhbHVlOiBob2xkaW5nLm1hcmtldFZhbHVlLFxuICAgICAgICB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1lcbiAgICAgIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcbiAgICAgICAgdmFsdWU6IGhvbGRpbmcuZ3Jvd3RoQ29lZmZpY2llbnQsXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5QRVJDRU5UXG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIGdldFB1cmNoYXNlcygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIEhvbGRpbmdUcmFkZVR5cGVFbnVtLkJVWSk7XG4gIH1cblxuICBnZXRTYWxlcygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIEhvbGRpbmdUcmFkZVR5cGVFbnVtLlNFTEwpO1xuICB9XG5cbiAgZ2V0U2hhcmVzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCdob2xkaW5nVHlwZS5jYXRlZ29yeScsIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlNUT0NLKTtcbiAgfVxuXG4gIGdldENyeXB0b3MoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2hvbGRpbmdUeXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ1JZUFRPKTtcbiAgfVxuXG4gIGdldE90aGVycygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgnaG9sZGluZ1R5cGUuY2F0ZWdvcnknLCBbXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1NUT0NLLFxuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfVU5JVCxcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIHJlbW92ZSwgdXNlIGhvbGRpbmcubWFya2V0VmFsdWUgaW5zdGVhZFxuICAgKi9cbiAgZ2V0IG1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ21hcmtldFZhbHVlJyk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIHJlbW92ZSwgdXNlIGhvbGRpbmcuc2hhcmVkTWFya2V0VmFsdWUgaW5zdGVhZFxuICAgKi9cbiAgZ2V0IHNoYXJlZE1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgbGV0IHNoYXJlZE1hcmtldFZhbHVlID0gMDtcbiAgICB0aGlzLml0ZW1zLmZvckVhY2godHJhZGUgPT4ge1xuICAgICAgc2hhcmVkTWFya2V0VmFsdWUgKz0gdHJhZGUub3duZXJzaGlwUGVyY2VudCAvIDEwMCAqIHRyYWRlLm1hcmtldFZhbHVlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XG4gIH1cbn1cbiJdfQ==
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).sumBy('quantity') > 0) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2hvbGRpbmcvaG9sZGluZy5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsVUFBbUI7SUFDeEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUE4QixFQUFFLFlBQW1DO1FBQ25GLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUU7WUFDM0MsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsRjtTQUNGO1FBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO1lBQ3BDLHVCQUF1QixDQUFDLFdBQVc7WUFDbkMsdUJBQXVCLENBQUMsY0FBYztZQUN0Qyx1QkFBdUIsQ0FBQyxhQUFhO1lBQ3JDLHVCQUF1QixDQUFDLEtBQUs7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgSG9sZGluZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uIH0gZnJvbSAnLi9ob2xkaW5nLXRyYWRlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgSG9sZGluZ1R5cGVDb2xsZWN0aW9uIH0gZnJvbSAnLi9ob2xkaW5nLXR5cGUuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmdDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxIb2xkaW5nPiB7XG4gIHN0YXRpYyBmcm9tVHJhZGVzKHRyYWRlczogSG9sZGluZ1RyYWRlQ29sbGVjdGlvbiwgaG9sZGluZ1R5cGVzOiBIb2xkaW5nVHlwZUNvbGxlY3Rpb24pOiBIb2xkaW5nQ29sbGVjdGlvbiB7XG4gICAgY29uc3QgaG9sZGluZ1R5cGVzQnlJZCA9IGhvbGRpbmdUeXBlcy5pbmRleEJ5KCdpZCcpO1xuICAgIGNvbnN0IHRyYWRlc0J5SG9sZGluZ1R5cGUgPSB0cmFkZXMuZ3JvdXBCeSgnaG9sZGluZ1R5cGUuaWQnKTtcbiAgICBjb25zdCBpdGVtcyA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRyYWRlc0J5SG9sZGluZ1R5cGUuaXRlbXMpIHtcbiAgICAgIGlmICh0cmFkZXNCeUhvbGRpbmdUeXBlLmdldChrZXkpLnN1bUJ5KCdxdWFudGl0eScpID4gMCkge1xuICAgICAgICBpdGVtcy5wdXNoKG5ldyBIb2xkaW5nKHRyYWRlc0J5SG9sZGluZ1R5cGUuZ2V0KGtleSksIGhvbGRpbmdUeXBlc0J5SWQuZ2V0KGtleSkpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEhvbGRpbmdDb2xsZWN0aW9uKGl0ZW1zKTtcbiAgfVxuXG4gIGdldFNoYXJlcygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZS5jYXRlZ29yeScsIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlNUT0NLKTtcbiAgfVxuXG4gIGdldENyeXB0b3MoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ3R5cGUuY2F0ZWdvcnknLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DUllQVE8pO1xuICB9XG5cbiAgZ2V0T3RoZXJzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgW1xuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ09MTEVDVElCTEUsXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5VTkxJU1RFRF9TVE9DSyxcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVQsXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5PVEhFUlxuICAgIF0pO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ21hcmtldFZhbHVlJyk7XG4gIH1cblxuICBnZXQgcHVyY2hhc2VWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVZhbHVlJyk7XG4gIH1cblxuICBnZXRHcm93dGhDb2VmZmljaWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcmtldFZhbHVlIC8gdGhpcy5wdXJjaGFzZVZhbHVlIC0gMTtcbiAgfVxuXG4gIGdldFBubCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZXRWYWx1ZSAtIHRoaXMucHVyY2hhc2VWYWx1ZTtcbiAgfVxufVxuIl19
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(false),
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.filterBy('isTaxFree', this.value.isTaxFree);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS1maWx0ZXIuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9ob2xkaW5nL2hvbGRpbmctdHJhZGUvaG9sZGluZy10cmFkZS1maWx0ZXIuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFlBQTBCO0lBRXBFO1FBQ0UsS0FBSyxDQUFDO1lBQ0osUUFBUSxFQUFFLElBQUksa0JBQWtCLEVBQUU7WUFDbEMsU0FBUyxFQUFFLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUxMLGVBQVUsR0FBOEIsRUFBRSxDQUFDO1FBT3pDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLO2dCQUMxRCxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMsV0FBVyxFQUFFLHVCQUF1QixDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7Z0JBQ3JKLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUE4QjtRQUNuQyxJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25GO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlRmlsdGVyRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxIb2xkaW5nVHJhZGU+IHtcbiAgY2F0ZWdvcmllczogSG9sZGluZ1R5cGVDYXRlZ29yeUVudW1bXSA9IFtdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICBjYXRlZ29yeTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICAgICAgaXNUYXhGcmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICB9KTtcblxuICAgIHRoaXMuZ2V0KCdjYXRlZ29yeScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2F0ZWdvcnkgPT4ge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzID0gY2F0ZWdvcnkgPT09IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgICAgID8gW0hvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSwgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVRdXG4gICAgICAgIDogW2NhdGVnb3J5XTtcbiAgICB9KTtcbiAgfVxuXG4gIGZpbHRlcih0cmFkZXM6IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24pOiBIb2xkaW5nVHJhZGVDb2xsZWN0aW9uIHtcbiAgICBsZXQgZmlsdGVyZWRUcmFkZXMgPSB0cmFkZXMuZmlsdGVyQnkoJ2lzVGF4RnJlZScsIHRoaXMudmFsdWUuaXNUYXhGcmVlKTtcbiAgICBpZiAodGhpcy5jYXRlZ29yaWVzLmxlbmd0aCkge1xuICAgICAgZmlsdGVyZWRUcmFkZXMgPSBmaWx0ZXJlZFRyYWRlcy5maWx0ZXJCeSgnaG9sZGluZ1R5cGUuY2F0ZWdvcnknLCB0aGlzLmNhdGVnb3JpZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFRyYWRlcztcbiAgfVxufVxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2hvbGRpbmcvaG9sZGluZy10cmFkZS9ob2xkaW5nLXRyYWRlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBMEI7SUFFOUQsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3ZELFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5RSxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEUsUUFBUSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RyxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0YsR0FBRyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNwRSxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbEYsZ0JBQWdCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkcsSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztTQUNoRCxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBYm5CLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBZWhCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQTtRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZSxFQUFFLEVBQUUscUJBQXFCLEdBQUcsS0FBSztRQUNyRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdyZWF0ZXJUaGFuVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nVHJhZGVGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPEhvbGRpbmdUcmFkZT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHB1cmNoYXNlVmFsdWUgPSAwO1xuICBjb25zdHJ1Y3Rvcihob2xkaW5nVHJhZGU6IEhvbGRpbmdUcmFkZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNhdGVnb3J5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5jYXRlZ29yeSksXG4gICAgICBpc1RheEZyZWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaG9sZGluZ1RyYWRlLmlzVGF4RnJlZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0eXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS50eXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHF1YW50aXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5xdWFudGl0eSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGdyZWF0ZXJUaGFuVmFsaWRhdG9yKDApXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUucHJpY2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5mZWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBob2xkaW5nVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuaG9sZGluZ1R5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgb3duZXJzaGlwUGVyY2VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUub3duZXJzaGlwUGVyY2VudCB8fCAxMDAsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZmlsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZmlsZSlcbiAgICB9LCBob2xkaW5nVHJhZGUpO1xuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xzQ2hhbmdlcyhbJ3F1YW50aXR5JywgJ3ByaWNlJywgJ2ZlZSddKS5zdWJzY3JpYmUoKFtxdWFudGl0eSwgcHJpY2UsIGZlZV0pID0+IHtcbiAgICAgIHRoaXMucHVyY2hhc2VWYWx1ZSA9IHF1YW50aXR5ICogcHJpY2UgKyBmZWVcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSwgaW5jbHVkZURpc2FibGVkRmllbGRzID0gZmFsc2UpOiBIb2xkaW5nVHJhZGUge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoZGF0YSwgaW5jbHVkZURpc2FibGVkRmllbGRzKTtcbiAgfVxufVxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2hvbGRpbmcvaG9sZGluZy10cmFkZS9ob2xkaW5nLXRyYWRlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBMEI7SUFFOUQsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDOUUsSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BFLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkcsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNGLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEUsV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xGLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ25HLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDaEQsRUFBRSxZQUFZLENBQUMsQ0FBQztRQVpuQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQWNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUE7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWUsRUFBRSxFQUFFLHFCQUFxQixHQUFHLEtBQUs7UUFDckQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi8uLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBncmVhdGVyVGhhblZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxIb2xkaW5nVHJhZGU+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBwdXJjaGFzZVZhbHVlID0gMDtcbiAgY29uc3RydWN0b3IoaG9sZGluZ1RyYWRlOiBIb2xkaW5nVHJhZGUpIHtcbiAgICBzdXBlcih7XG4gICAgICBpc1RheEZyZWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaG9sZGluZ1RyYWRlLmlzVGF4RnJlZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0eXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS50eXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHF1YW50aXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5xdWFudGl0eSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGdyZWF0ZXJUaGFuVmFsaWRhdG9yKDApXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUucHJpY2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5mZWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBob2xkaW5nVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuaG9sZGluZ1R5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgb3duZXJzaGlwUGVyY2VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUub3duZXJzaGlwUGVyY2VudCB8fCAxMDAsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZmlsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZmlsZSlcbiAgICB9LCBob2xkaW5nVHJhZGUpO1xuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xzQ2hhbmdlcyhbJ3F1YW50aXR5JywgJ3ByaWNlJywgJ2ZlZSddKS5zdWJzY3JpYmUoKFtxdWFudGl0eSwgcHJpY2UsIGZlZV0pID0+IHtcbiAgICAgIHRoaXMucHVyY2hhc2VWYWx1ZSA9IHF1YW50aXR5ICogcHJpY2UgKyBmZWVcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSwgaW5jbHVkZURpc2FibGVkRmllbGRzID0gZmFsc2UpOiBIb2xkaW5nVHJhZGUge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoZGF0YSwgaW5jbHVkZURpc2FibGVkRmllbGRzKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  import { __decorate } from "tslib";
2
- import { Expose, Transform, Type, plainToClass } from 'class-transformer';
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, HoldingTypeCategoryEnum } from '../../db/Enums';
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
- __decorate([
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.quantity = this.getQuantity();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUloRCxNQUFNLE9BQU8sT0FBUSxTQUFRLGFBQWE7SUFReEMsWUFBb0IsTUFBOEIsRUFBRSxJQUFpQjtRQUNuRSxLQUFLLEVBQUUsQ0FBQztRQURVLFdBQU0sR0FBTixNQUFNLENBQXdCO1FBRWhELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsRUFBRTtnQkFDMUIsT0FBTzthQUNSO1lBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2RSxTQUFTLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzFELGlCQUFpQixJQUFJLGtCQUFrQixDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEMsaUJBQWlCLElBQUksT0FBTyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFBO1FBQzNFLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlIH0gZnJvbSAnLi9ob2xkaW5nLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZyBleHRlbmRzIEFic3RyYWN0TW9kZWwge1xuICB0eXBlOiBIb2xkaW5nVHlwZTtcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgYXZnUHJpY2U6IG51bWJlcjtcbiAgcHVyY2hhc2VWYWx1ZTogbnVtYmVyO1xuICBtYXJrZXRWYWx1ZTogbnVtYmVyO1xuICBwbmw6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYWRlczogSG9sZGluZ1RyYWRlQ29sbGVjdGlvbiwgdHlwZTogSG9sZGluZ1R5cGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5xdWFudGl0eSA9IHRoaXMuZ2V0UXVhbnRpdHkoKTtcbiAgICB0aGlzLnB1cmNoYXNlVmFsdWUgPSB0aGlzLmdldFB1cmNoYXNlVmFsdWUoKTtcbiAgICB0aGlzLm1hcmtldFZhbHVlID0gdGhpcy5nZXRNYXJrZXRWYWx1ZSgpO1xuICAgIHRoaXMuYXZnUHJpY2UgPSB0aGlzLmdldEF2Z1ByaWNlKCk7XG4gICAgdGhpcy5wbmwgPSB0aGlzLmdldFBubCgpO1xuICB9XG5cbiAgZ2V0UXVhbnRpdHkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50cmFkZXMuZ2V0UHVyY2hhc2VzKCkuc3VtQnkoJ3F1YW50aXR5JykgLSB0aGlzLnRyYWRlcy5nZXRTYWxlcygpLnN1bUJ5KCdxdWFudGl0eScpO1xuICB9XG5cbiAgZ2V0UHVyY2hhc2VWYWx1ZSgpOiBudW1iZXIge1xuICAgIGxldCByZW1haW5pbmdRdWFudGl0eSA9IHRoaXMucXVhbnRpdHk7XG4gICAgbGV0IHRvdGFsQ29zdCA9IDA7XG5cbiAgICB0aGlzLnRyYWRlcy5nZXRQdXJjaGFzZXMoKS5pdGVtcy5mb3JFYWNoKHRyYWRlID0+IHtcbiAgICAgIGlmIChyZW1haW5pbmdRdWFudGl0eSA8PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXBwbGljYWJsZVF1YW50aXR5ID0gTWF0aC5taW4odHJhZGUucXVhbnRpdHksIHJlbWFpbmluZ1F1YW50aXR5KTtcbiAgICAgIHRvdGFsQ29zdCArPSBhcHBsaWNhYmxlUXVhbnRpdHkgKiB0cmFkZS5wcmljZSArIHRyYWRlLmZlZTtcbiAgICAgIHJlbWFpbmluZ1F1YW50aXR5IC09IGFwcGxpY2FibGVRdWFudGl0eTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0b3RhbENvc3Q7XG4gIH1cblxuICBnZXRNYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YW50aXR5ICogdGhpcy50eXBlLnByaWNlO1xuICB9XG5cbiAgZ2V0QXZnUHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZVZhbHVlIC8gdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9maXQgYW5kIGxvc3NcbiAgICovXG4gIGdldFBubCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVZhbHVlO1xuICB9XG5cbiAgZ2V0U2hhcmVkTWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICBsZXQgc2hhcmVkTWFya2V0VmFsdWUgPSAwO1xuICAgIHRoaXMudHJhZGVzLml0ZW1zLmZvckVhY2goaG9sZGluZyA9PiB7XG4gICAgICBzaGFyZWRNYXJrZXRWYWx1ZSArPSBob2xkaW5nLm93bmVyc2hpcFBlcmNlbnQgLyAxMDAgKiBob2xkaW5nLm1hcmtldFZhbHVlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXRHcm93dGhDb2VmZmljaWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcmtldFZhbHVlIC8gdGhpcy5wdXJjaGFzZVZhbHVlIC0gMTtcbiAgfVxuXG4gIGdldFVucmVhbGlzZWRQcm9maXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFya2V0VmFsdWUgLSB0aGlzLnB1cmNoYXNlVmFsdWU7XG4gIH1cbn1cbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtc3VtLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi92YWxpZGF0b3JzL21hdGNoLXN1bS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFVBQW1DO0lBQ25FLE9BQU8sQ0FBQyxhQUE4QixFQUEyQixFQUFFO1FBQ2pFLE1BQU0sUUFBUSxHQUFzQixVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRXhDLE9BQU8sR0FBRyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6RCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiBAcGFyYW0gY29udHJvbHNGbiBmdW5jdGlvbiB0byBnZXQgY29udHJvbHMgZnJvbSB0YXJnZXQgcGFyZW50XG4gKiBpdCdzIGVhc2llciB0byBwYXNzIGNvbnRyb2xzIGluc3RlYWQgb2YgZnVuY3Rpb24sIGJ1dCBpdCB3b24ndCB3b3JrIHdpdGggZHluYW1pYyBmaWVsZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoU3VtVmFsaWRhdG9yKGNvbnRyb2xzRm46ICgpID0+IEFic3RyYWN0Q29udHJvbFtdKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKHRhcmdldENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBjb25zdCBjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gPSBjb250cm9sc0ZuLmJpbmQodGFyZ2V0Q29udHJvbC5wYXJlbnQpKCk7XG4gICAgaWYgKGNvbnRyb2xzLmZpbmQoY29udHJvbCA9PiBjb250cm9sLnZhbHVlID09PSBudWxsKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHN1bSA9IGNvbnRyb2xzLnJlZHVjZSgoYWNjLCBjb250cm9sKSA9PiBhY2MgKyBjb250cm9sLnZhbHVlLCAwKTtcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IHRhcmdldENvbnRyb2wudmFsdWU7XG5cbiAgICByZXR1cm4gc3VtID09PSB0YXJnZXRWYWx1ZSA/IG51bGwgOiB7IG1hdGNoU3VtOiB0cnVlIH07XG4gIH07XG59XG4iXX0=
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).sumBy('quantity') > 0) {
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.quantity = this.getQuantity();
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(false),
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.filterBy('isTaxFree', this.value.isTaxFree);
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
  }