taxtank-core 0.33.12 → 0.33.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -71,5 +71,8 @@ export class HoldingCollection extends ExportableCollection {
71
71
  getUnsold() {
72
72
  return this.removeBy('currentQuantity', 0);
73
73
  }
74
+ getUnrealisedProfit() {
75
+ return this.marketValue - this.getPurchaseValue();
76
+ }
74
77
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2hvbGRpbmcvaG9sZGluZy5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUE2QjtJQUNsRSxlQUFlO1FBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU87WUFDTCxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDO1lBQzFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEYsWUFBWSxD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RUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZXhwb3J0YWJsZS5jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgSG9sZGluZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEV4cG9ydENlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsJztcclxuaW1wb3J0IHsgRXhwb3J0Q2VsbFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtY2VsbC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBIb2xkaW5nQ29sbGVjdGlvbiBleHRlbmRzIEV4cG9ydGFibGVDb2xsZWN0aW9uPEhvbGRpbmc+IHtcclxuICBnZXRFeHBvcnRIZWFkZXIoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFsnRGF0ZScsICdUaWNrZXInLCAnTmFtZScsICdBc3NldCB0eXBlJywgJ1F0eSBib3VnaHQnLCAnUXR5IGN1cnJlbnQnLCAnQnV5IHByaWNlL1VuaXQnLCAnQ3VycmVudCBwcmljZS9Vbml0JywgJ1RvdGFsIE1WJywgJ1Byb2ZpdC9Mb3NzJ107XHJcbiAgfVxyXG5cclxuICBnZXRFeHBvcnRGb290ZXIoKTogRXhwb3J0Q2VsbFtdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBnZXRFeHBvcnRCb2R5KCk6IEV4cG9ydENlbGxbXVtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaG9sZGluZzogSG9sZGluZykgPT4gW1xyXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZy5kYXRlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uREFURSB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcudHlwZS50aWNrZXIsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XHJcbiAgICAgICAgdmFsdWU6IGhvbGRpbmcudHlwZS5uYW1lLFxyXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkdcclxuICAgICAgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLnR5cGUuY2F0ZWdvcnlMYWJlbCwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcucXVhbnRpdHksIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLmN1cnJlbnRRdWFudGl0eSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcucHJpY2UsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcclxuICAgICAgICB2YWx1ZTogaG9sZGluZy50eXBlLnByaWNlLFxyXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWVxyXG4gICAgICB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcclxuICAgICAgICB2YWx1ZTogaG9sZGluZy5tYXJrZXRWYWx1ZSxcclxuICAgICAgICB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1lcclxuICAgICAgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XHJcbiAgICAgICAgdmFsdWU6IGhvbGRpbmcuZ3Jvd3RoQ29lZmZpY2llbnQsXHJcbiAgICAgICAgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlBFUkNFTlRcclxuICAgICAgfSksXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldFNoYXJlcygpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uU1RPQ0spO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3J5cHRvcygpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ1JZUFRPKTtcclxuICB9XHJcblxyXG4gIGdldE90aGVycygpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgW1xyXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcclxuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssXHJcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVQsXHJcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldFB1cmNoYXNlVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVZhbHVlJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlZE1hcmtldFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgc2hhcmVkTWFya2V0VmFsdWUgPSAwO1xyXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKGhvbGRpbmcgPT4ge1xyXG4gICAgICBzaGFyZWRNYXJrZXRWYWx1ZSArPSBob2xkaW5nLm93bmVyc2hpcFBlcmNlbnQgLyAxMDAgKiBob2xkaW5nLm1hcmtldFZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRHcm93dGhDb2VmZmljaWVudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubWFya2V0VmFsdWUgLyB0aGlzLmdldFB1cmNoYXNlVmFsdWUoKSAtIDE7XHJcbiAgfVxyXG5cclxuICBnZXRVbnNvbGQoKTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVCeSgnY3VycmVudFF1YW50aXR5JywgMCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2hvbGRpbmcvaG9sZGluZy5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUE2QjtJQUNsRSxlQUFlO1FBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU87WUFDTCxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDO1lBQzFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEYsWUFBWSxD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RUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZXhwb3J0YWJsZS5jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgSG9sZGluZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEV4cG9ydENlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsJztcclxuaW1wb3J0IHsgRXhwb3J0Q2VsbFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtY2VsbC10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBIb2xkaW5nQ29sbGVjdGlvbiBleHRlbmRzIEV4cG9ydGFibGVDb2xsZWN0aW9uPEhvbGRpbmc+IHtcclxuICBnZXRFeHBvcnRIZWFkZXIoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFsnRGF0ZScsICdUaWNrZXInLCAnTmFtZScsICdBc3NldCB0eXBlJywgJ1F0eSBib3VnaHQnLCAnUXR5IGN1cnJlbnQnLCAnQnV5IHByaWNlL1VuaXQnLCAnQ3VycmVudCBwcmljZS9Vbml0JywgJ1RvdGFsIE1WJywgJ1Byb2ZpdC9Mb3NzJ107XHJcbiAgfVxyXG5cclxuICBnZXRFeHBvcnRGb290ZXIoKTogRXhwb3J0Q2VsbFtdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBnZXRFeHBvcnRCb2R5KCk6IEV4cG9ydENlbGxbXVtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaG9sZGluZzogSG9sZGluZykgPT4gW1xyXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZy5kYXRlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uREFURSB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcudHlwZS50aWNrZXIsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XHJcbiAgICAgICAgdmFsdWU6IGhvbGRpbmcudHlwZS5uYW1lLFxyXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkdcclxuICAgICAgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLnR5cGUuY2F0ZWdvcnlMYWJlbCwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcucXVhbnRpdHksIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nLmN1cnJlbnRRdWFudGl0eSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmcucHJpY2UsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcclxuICAgICAgICB2YWx1ZTogaG9sZGluZy50eXBlLnByaWNlLFxyXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWVxyXG4gICAgICB9KSxcclxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcclxuICAgICAgICB2YWx1ZTogaG9sZGluZy5tYXJrZXRWYWx1ZSxcclxuICAgICAgICB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1lcclxuICAgICAgfSksXHJcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XHJcbiAgICAgICAgdmFsdWU6IGhvbGRpbmcuZ3Jvd3RoQ29lZmZpY2llbnQsXHJcbiAgICAgICAgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlBFUkNFTlRcclxuICAgICAgfSksXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldFNoYXJlcygpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uU1RPQ0spO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3J5cHRvcygpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uQ1JZUFRPKTtcclxuICB9XHJcblxyXG4gIGdldE90aGVycygpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlLmNhdGVnb3J5JywgW1xyXG4gICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcclxuICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssXHJcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVQsXHJcbiAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldFB1cmNoYXNlVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVZhbHVlJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlZE1hcmtldFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgc2hhcmVkTWFya2V0VmFsdWUgPSAwO1xyXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKGhvbGRpbmcgPT4ge1xyXG4gICAgICBzaGFyZWRNYXJrZXRWYWx1ZSArPSBob2xkaW5nLm93bmVyc2hpcFBlcmNlbnQgLyAxMDAgKiBob2xkaW5nLm1hcmtldFZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRHcm93dGhDb2VmZmljaWVudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubWFya2V0VmFsdWUgLyB0aGlzLmdldFB1cmNoYXNlVmFsdWUoKSAtIDE7XHJcbiAgfVxyXG5cclxuICBnZXRVbnNvbGQoKTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVCeSgnY3VycmVudFF1YW50aXR5JywgMCk7XHJcbiAgfVxyXG5cclxuICBnZXRVbnJlYWxpc2VkUHJvZml0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFya2V0VmFsdWUgLSB0aGlzLmdldFB1cmNoYXNlVmFsdWUoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -29,14 +29,10 @@ export class PropertyCollection extends Collection {
29
29
  return this.sumBy('growthPercent');
30
30
  }
31
31
  get marketValue() {
32
- return this.sumBy('valuation.marketValue');
32
+ return this.sumBy('marketValue');
33
33
  }
34
34
  get sharedMarketValue() {
35
- let sharedMarketValue = 0;
36
- this.items.forEach(property => {
37
- sharedMarketValue += property.shareRatio * property.marketValue;
38
- });
39
- return sharedMarketValue;
35
+ return this.sumBy('sharedMarketValue');
40
36
  }
41
37
  /**
42
38
  * Get list of unique property categories from collection
@@ -114,4 +110,4 @@ export class PropertyCollection extends Collection {
114
110
  return propertiesByCategory;
115
111
  }
116
112
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBTW5DLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxVQUFvQjtJQUMxRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztP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QUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVsRixNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBeUMsQ0FBQztRQUMzRSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLG9CQUFvQixDQUFDLEdBQUcsQ0FDdEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDeEYsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEVBQUU7WUFDZCxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdEYsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixFQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbic7XHJcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eUNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gvdW5pcUJ5JztcclxuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24nO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4uL2NvbGxlY3Rpb24tZGljdGlvbmFyeSc7XHJcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudENvbGxlY3Rpb24gfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5LW1vdmVtZW50LmNvbGxlY3Rpb24nO1xyXG5cclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Q29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248UHJvcGVydHk+IHtcclxuICAvKipcclxuICAgKiBHZXQgbmV3IHByb3BlcnR5IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgYWN0aXZlIHN0YXR1c1xyXG4gICAqL1xyXG4gIGdldEFjdGl2ZVByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcclxuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5pc0FjdGl2ZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDcmVhdGVkUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXHJcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmlzT3duKCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IHNoYXJlZFxyXG4gICAqL1xyXG4gIGdldFNoYXJlZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcclxuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiAhcHJvcGVydHkuaXNPd24oKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVbnNvbGQoKTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXHJcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpID0+ICFwcm9wZXJ0eS5pc1NvbGQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2UgcHJpY2UgZm9yIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBjb2xsZWN0aW9uXHJcbiAgICovXHJcbiAgZ2V0IHB1cmNoYXNlUHJpY2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVByaWNlJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgZ3Jvd3RoUGVyY2VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2dyb3d0aFBlcmNlbnQnKTtcclxuICB9XHJcblxyXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ3ZhbHVhdGlvbi5tYXJrZXRWYWx1ZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlZE1hcmtldFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgc2hhcmVkTWFya2V0VmFsdWUgPSAwO1xyXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKHByb3BlcnR5ID0+IHtcclxuICAgICAgc2hhcmVkTWFya2V0VmFsdWUgKz0gcHJvcGVydHkuc2hhcmVSYXRpbyAqIHByb3BlcnR5Lm1hcmtldFZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc2hhcmVkTWFya2V0VmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgbGlzdCBvZiB1bmlxdWUgcHJvcGVydHkgY2F0ZWdvcmllcyBmcm9tIGNvbGxlY3Rpb25cclxuICAgKi9cclxuICBnZXRDYXRlZ29yaWVzKCk6IFByb3BlcnR5Q2F0ZWdvcnlbXSB7XHJcbiAgICByZXR1cm4gdW5pcUJ5KHRoaXMuaXRlbXMubWFwKChwcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eUNhdGVnb3J5ID0+IHByb3BlcnR5LmNhdGVnb3J5KSwgJ2lkJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBsaXN0IG9mIHByb3BlcnRpZXNcclxuICAgKi9cclxuICBnZXRDR1RBcHBsaWNhYmxlKCk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eS5pc0NHVEFwcGxpY2FibGUoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBncm93dGggcGVyY2VudFxyXG4gICAqL1xyXG4gIGdldEJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5KCk6IFByb3BlcnR5IHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgobWF4OiBQcm9wZXJ0eSwgY3VycmVudDogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiBtYXguZ3Jvd3RoUGVyY2VudCA8IGN1cnJlbnQuZ3Jvd3RoUGVyY2VudCA/IGN1cnJlbnQgOiBtYXgsIHRoaXMuZmlyc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHByb3BlcnR5IHdpdGggdGhlIGxvd2VzdCB0YXggcG9zaXRpb25cclxuICAgKi9cclxuICBnZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IFByb3BlcnR5IHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uc0J5UHJvcGVydHk6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4gPSB0cmFuc2FjdGlvbnMuZ3JvdXBCeSgncHJvcGVydHkuaWQnKTtcclxuICAgIGNvbnN0IGRlcHJlY2lhdGlvbnNCeVByb3BlcnR5OiBDb2xsZWN0aW9uRGljdGlvbmFyeTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPiA9IGRlcHJlY2lhdGlvbnMuZ3JvdXBCeSgncHJvcGVydHkuaWQnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogUHJvcGVydHksIGN1cnJlbnQ6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xyXG4gICAgICBjb25zdCBtaW5UYXhQb3NpdGlvbjogbnVtYmVyID0gbWluLmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uc0J5UHJvcGVydHkuZ2V0KG1pbi5pZCksIGRlcHJlY2lhdGlvbnNCeVByb3BlcnR5LmdldChtaW4uaWQpKTtcclxuICAgICAgY29uc3QgY3VycmVudFRheFBvc2l0aW9uOiBudW1iZXIgPSBjdXJyZW50LmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uc0J5UHJvcGVydHkuZ2V0KGN1cnJlbnQuaWQpLCBkZXByZWNpYXRpb25zQnlQcm9wZXJ0eS5nZXQoY3VycmVudC5pZCkpO1xyXG5cclxuICAgICAgcmV0dXJuIG1pblRheFBvc2l0aW9uID4gY3VycmVudFRheFBvc2l0aW9uID8gY3VycmVudCA6IG1pbjtcclxuICAgIH0sIHRoaXMuZmlyc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQFRPRE8gTmljb2xlIG5vdCBuZWVkZWQgYW55bW9yZT9cclxuICAgKiBTaG93IGJlc3QgcGVyZm9ybWFuY2UgcHJvcGVydGllcyBmaXJzdFxyXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTk3L1Byb3BlcnR5K1RhbmsrRGFzaGJvYXJkXHJcbiAgICovXHJcbiAgc29ydEJ5QmVzdFBlcmZvcm1hbmNlKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogdGhpcyB7XHJcbiAgICBjb25zdCBhY3RpdmVQcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSB0aGlzLmdldEFjdGl2ZVByb3BlcnRpZXMoKTtcclxuXHJcbiAgICAvLyBub3RoaW5nIHRvIHNvcnQgd2hlbiBubyBhY3RpdmUgcHJvcGVydGllc1xyXG4gICAgaWYgKCFhY3RpdmVQcm9wZXJ0aWVzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiZXN0UHJvcGVydGllczogUHJvcGVydHlbXSA9IHVuaXFCeSh0aGlzLmNyZWF0ZShbXHJcbiAgICAgIGFjdGl2ZVByb3BlcnRpZXMuZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKSxcclxuICAgICAgYWN0aXZlUHJvcGVydGllcy5nZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpXHJcbiAgICBdKS50b0FycmF5KCksICdpZCcpO1xyXG5cclxuICAgIGNvbnN0IG5ld0l0ZW1zOiBQcm9wZXJ0eVtdID0gdGhpcy5kaWZmKGJlc3RQcm9wZXJ0aWVzKS50b0FycmF5KCk7XHJcbiAgICBuZXdJdGVtcy51bnNoaWZ0KC4uLmJlc3RQcm9wZXJ0aWVzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUobmV3SXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5ldE1vbnRobHlJbmNvbWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtb250aGx5SW5jb21lJykgKyB0aGlzLnN1bUJ5KCdtb250aGx5RXhwZW5zZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3duZXJPY2N1cGllZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcclxuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pc093bmVyT2NjdXBpZWQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0aWVzIHRoYXQgYXJlIHRheGVkIGFuZCB3aWxsIGJlIGluY2x1ZGVkIGluIHJlcG9ydHMgKFRheCBzdW1tYXJ5LCBNeSB0YXggcmVwb3J0LCBlLnQuYy4pXHJcbiAgICovXHJcbiAgZ2V0VGF4SW5jbHVzaXZlKCk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pc1RheEluY2x1c2l2ZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5Q2F0ZWdvcnkoY2F0ZWdvcmllczogQ29sbGVjdGlvbjxQcm9wZXJ0eUNhdGVnb3J5PiwgbW92ZW1lbnRzOiBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnRDb2xsZWN0aW9uLCBhbGxvd0VtcHR5ID0gZmFsc2UpOiBNYXA8UHJvcGVydHlDYXRlZ29yeSwgUHJvcGVydHlDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBjYXRlZ29yeUJ5SWQgPSBjYXRlZ29yaWVzLmluZGV4QnkoJ2lkJyk7XHJcbiAgICBjb25zdCBtb3ZlbWVudHNCeUNhdGVnb3J5ID0gbW92ZW1lbnRzLmdldEN1cnJlbnQoKS5ncm91cEJ5KCdwcm9wZXJ0eUNhdGVnb3J5LmlkJyk7XHJcblxyXG4gICAgY29uc3QgcHJvcGVydGllc0J5Q2F0ZWdvcnkgPSBuZXcgTWFwPFByb3BlcnR5Q2F0ZWdvcnksIFByb3BlcnR5Q29sbGVjdGlvbj47XHJcbiAgICBtb3ZlbWVudHNCeUNhdGVnb3J5LmtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBwcm9wZXJ0aWVzQnlDYXRlZ29yeS5zZXQoXHJcbiAgICAgICAgY2F0ZWdvcnlCeUlkLmdldChrZXkpLFxyXG4gICAgICAgIHRoaXMuZmlsdGVyQnkoJ2lkJywgbW92ZW1lbnRzQnlDYXRlZ29yeS5nZXQoa2V5KS5tYXAobW92ZW1lbnQgPT4gbW92ZW1lbnQucHJvcGVydHkuaWQpKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGFsbG93RW1wdHkpIHtcclxuICAgICAgY2F0ZWdvcmllcy5yZW1vdmUoQXJyYXkuZnJvbShwcm9wZXJ0aWVzQnlDYXRlZ29yeS5rZXlzKCkpKS50b0FycmF5KCkuZm9yRWFjaChjYXRlZ29yeSA9PiB7XHJcbiAgICAgICAgcHJvcGVydGllc0J5Q2F0ZWdvcnkuc2V0KGNhdGVnb3J5LCBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKCkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcHJvcGVydGllc0J5Q2F0ZWdvcnk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBTW5DLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxVQUFvQjtJQUMxRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztP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RyxDQUN0QixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN4RixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0RixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgUHJvcGVydHksIFByb3BlcnR5Q2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xyXG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24nO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi90cmFuc2FjdGlvbic7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50Q29sbGVjdGlvbiB9IGZyb20gJy4vcHJvcGVydHktY2F0ZWdvcnktbW92ZW1lbnQuY29sbGVjdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxQcm9wZXJ0eT4ge1xyXG4gIC8qKlxyXG4gICAqIEdldCBuZXcgcHJvcGVydHkgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBhY3RpdmUgc3RhdHVzXHJcbiAgICovXHJcbiAgZ2V0QWN0aXZlUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXHJcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmlzQWN0aXZlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENyZWF0ZWRQcm9wZXJ0aWVzKCk6IFByb3BlcnR5Q29sbGVjdGlvbiB7XHJcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5Q29sbGVjdGlvbihcclxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNPd24oKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgbmV3IHByb3BlcnR5IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgc2hhcmVkXHJcbiAgICovXHJcbiAgZ2V0U2hhcmVkUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXHJcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+ICFwcm9wZXJ0eS5pc093bigpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFVuc29sZCgpOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcclxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSkgPT4gIXByb3BlcnR5LmlzU29sZCgpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0b3RhbCBwdXJjaGFzZSBwcmljZSBmb3IgYWxsIHByb3BlcnRpZXMgaW4gdGhlIGNvbGxlY3Rpb25cclxuICAgKi9cclxuICBnZXQgcHVyY2hhc2VQcmljZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ3B1cmNoYXNlUHJpY2UnKTtcclxuICB9XHJcblxyXG4gIGdldCBncm93dGhQZXJjZW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnZ3Jvd3RoUGVyY2VudCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1hcmtldFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnbWFya2V0VmFsdWUnKTtcclxuICB9XHJcblxyXG4gIGdldCBzaGFyZWRNYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ3NoYXJlZE1hcmtldFZhbHVlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgbGlzdCBvZiB1bmlxdWUgcHJvcGVydHkgY2F0ZWdvcmllcyBmcm9tIGNvbGxlY3Rpb25cclxuICAgKi9cclxuICBnZXRDYXRlZ29yaWVzKCk6IFByb3BlcnR5Q2F0ZWdvcnlbXSB7XHJcbiAgICByZXR1cm4gdW5pcUJ5KHRoaXMuaXRlbXMubWFwKChwcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eUNhdGVnb3J5ID0+IHByb3BlcnR5LmNhdGVnb3J5KSwgJ2lkJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBsaXN0IG9mIHByb3BlcnRpZXNcclxuICAgKi9cclxuICBnZXRDR1RBcHBsaWNhYmxlKCk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eS5pc0NHVEFwcGxpY2FibGUoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBncm93dGggcGVyY2VudFxyXG4gICAqL1xyXG4gIGdldEJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5KCk6IFByb3BlcnR5IHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgobWF4OiBQcm9wZXJ0eSwgY3VycmVudDogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiBtYXguZ3Jvd3RoUGVyY2VudCA8IGN1cnJlbnQuZ3Jvd3RoUGVyY2VudCA/IGN1cnJlbnQgOiBtYXgsIHRoaXMuZmlyc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHByb3BlcnR5IHdpdGggdGhlIGxvd2VzdCB0YXggcG9zaXRpb25cclxuICAgKi9cclxuICBnZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IFByb3BlcnR5IHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uc0J5UHJvcGVydHk6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4gPSB0cmFuc2FjdGlvbnMuZ3JvdXBCeSgncHJvcGVydHkuaWQnKTtcclxuICAgIGNvbnN0IGRlcHJlY2lhdGlvbnNCeVByb3BlcnR5OiBDb2xsZWN0aW9uRGljdGlvbmFyeTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPiA9IGRlcHJlY2lhdGlvbnMuZ3JvdXBCeSgncHJvcGVydHkuaWQnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogUHJvcGVydHksIGN1cnJlbnQ6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xyXG4gICAgICBjb25zdCBtaW5UYXhQb3NpdGlvbjogbnVtYmVyID0gbWluLmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uc0J5UHJvcGVydHkuZ2V0KG1pbi5pZCksIGRlcHJlY2lhdGlvbnNCeVByb3BlcnR5LmdldChtaW4uaWQpKTtcclxuICAgICAgY29uc3QgY3VycmVudFRheFBvc2l0aW9uOiBudW1iZXIgPSBjdXJyZW50LmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uc0J5UHJvcGVydHkuZ2V0KGN1cnJlbnQuaWQpLCBkZXByZWNpYXRpb25zQnlQcm9wZXJ0eS5nZXQoY3VycmVudC5pZCkpO1xyXG5cclxuICAgICAgcmV0dXJuIG1pblRheFBvc2l0aW9uID4gY3VycmVudFRheFBvc2l0aW9uID8gY3VycmVudCA6IG1pbjtcclxuICAgIH0sIHRoaXMuZmlyc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQFRPRE8gTmljb2xlIG5vdCBuZWVkZWQgYW55bW9yZT9cclxuICAgKiBTaG93IGJlc3QgcGVyZm9ybWFuY2UgcHJvcGVydGllcyBmaXJzdFxyXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTk3L1Byb3BlcnR5K1RhbmsrRGFzaGJvYXJkXHJcbiAgICovXHJcbiAgc29ydEJ5QmVzdFBlcmZvcm1hbmNlKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogdGhpcyB7XHJcbiAgICBjb25zdCBhY3RpdmVQcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSB0aGlzLmdldEFjdGl2ZVByb3BlcnRpZXMoKTtcclxuXHJcbiAgICAvLyBub3RoaW5nIHRvIHNvcnQgd2hlbiBubyBhY3RpdmUgcHJvcGVydGllc1xyXG4gICAgaWYgKCFhY3RpdmVQcm9wZXJ0aWVzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiZXN0UHJvcGVydGllczogUHJvcGVydHlbXSA9IHVuaXFCeSh0aGlzLmNyZWF0ZShbXHJcbiAgICAgIGFjdGl2ZVByb3BlcnRpZXMuZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKSxcclxuICAgICAgYWN0aXZlUHJvcGVydGllcy5nZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpXHJcbiAgICBdKS50b0FycmF5KCksICdpZCcpO1xyXG5cclxuICAgIGNvbnN0IG5ld0l0ZW1zOiBQcm9wZXJ0eVtdID0gdGhpcy5kaWZmKGJlc3RQcm9wZXJ0aWVzKS50b0FycmF5KCk7XHJcbiAgICBuZXdJdGVtcy51bnNoaWZ0KC4uLmJlc3RQcm9wZXJ0aWVzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUobmV3SXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5ldE1vbnRobHlJbmNvbWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtb250aGx5SW5jb21lJykgKyB0aGlzLnN1bUJ5KCdtb250aGx5RXhwZW5zZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3duZXJPY2N1cGllZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcclxuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pc093bmVyT2NjdXBpZWQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0aWVzIHRoYXQgYXJlIHRheGVkIGFuZCB3aWxsIGJlIGluY2x1ZGVkIGluIHJlcG9ydHMgKFRheCBzdW1tYXJ5LCBNeSB0YXggcmVwb3J0LCBlLnQuYy4pXHJcbiAgICovXHJcbiAgZ2V0VGF4SW5jbHVzaXZlKCk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pc1RheEluY2x1c2l2ZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5Q2F0ZWdvcnkoY2F0ZWdvcmllczogQ29sbGVjdGlvbjxQcm9wZXJ0eUNhdGVnb3J5PiwgbW92ZW1lbnRzOiBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnRDb2xsZWN0aW9uLCBhbGxvd0VtcHR5ID0gZmFsc2UpOiBNYXA8UHJvcGVydHlDYXRlZ29yeSwgUHJvcGVydHlDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBjYXRlZ29yeUJ5SWQgPSBjYXRlZ29yaWVzLmluZGV4QnkoJ2lkJyk7XHJcbiAgICBjb25zdCBtb3ZlbWVudHNCeUNhdGVnb3J5ID0gbW92ZW1lbnRzLmdldEN1cnJlbnQoKS5ncm91cEJ5KCdwcm9wZXJ0eUNhdGVnb3J5LmlkJyk7XHJcblxyXG4gICAgY29uc3QgcHJvcGVydGllc0J5Q2F0ZWdvcnkgPSBuZXcgTWFwPFByb3BlcnR5Q2F0ZWdvcnksIFByb3BlcnR5Q29sbGVjdGlvbj47XHJcbiAgICBtb3ZlbWVudHNCeUNhdGVnb3J5LmtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBwcm9wZXJ0aWVzQnlDYXRlZ29yeS5zZXQoXHJcbiAgICAgICAgY2F0ZWdvcnlCeUlkLmdldChrZXkpLFxyXG4gICAgICAgIHRoaXMuZmlsdGVyQnkoJ2lkJywgbW92ZW1lbnRzQnlDYXRlZ29yeS5nZXQoa2V5KS5tYXAobW92ZW1lbnQgPT4gbW92ZW1lbnQucHJvcGVydHkuaWQpKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGFsbG93RW1wdHkpIHtcclxuICAgICAgY2F0ZWdvcmllcy5yZW1vdmUoQXJyYXkuZnJvbShwcm9wZXJ0aWVzQnlDYXRlZ29yeS5rZXlzKCkpKS50b0FycmF5KCkuZm9yRWFjaChjYXRlZ29yeSA9PiB7XHJcbiAgICAgICAgcHJvcGVydGllc0J5Q2F0ZWdvcnkuc2V0KGNhdGVnb3J5LCBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKCkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcHJvcGVydGllc0J5Q2F0ZWdvcnk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -18,6 +18,9 @@ export class TransactionBaseFilterForm extends FormGroup {
18
18
  });
19
19
  }
20
20
  filter(collection) {
21
+ if (!collection.length) {
22
+ return collection;
23
+ }
21
24
  const value = this.value;
22
25
  if (value.dateFrom) {
23
26
  collection = collection.filter(transaction => transaction.date >= value.dateFrom);
@@ -37,4 +40,4 @@ export class TransactionBaseFilterForm extends FormGroup {
37
40
  return collection;
38
41
  }
39
42
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS1maWx0ZXIuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1iYXNlLWZpbHRlci5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBYTdELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxTQUF5QztJQUN0RixZQUFZLFFBQXVCLEVBQUUsUUFBdUIsRUFBRSxVQUF1QjtRQUNuRixLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQ25DLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzlELFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xFLFFBQVEsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUMzQixNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JELFFBQVEsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hHLFFBQVEsS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBcUYsVUFBMkI7UUFDcEgsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuRjtRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNoQixVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pGO1FBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2xCLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEU7UUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDaEc7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250cm9sc0ludGVyZmFjZSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFByb3BlcnR5LCBTb2xlQnVzaW5lc3MgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xyXG5cclxuaW50ZXJmYWNlIElUcmFuc2FjdGlvbkJhc2VGaWx0ZXJDb250cm9scyBleHRlbmRzIENvbnRyb2xzSW50ZXJmYWNlIHtcclxuICB0YW5rVHlwZTogRm9ybUNvbnRyb2w8VGFua1R5cGVFbnVtPjtcclxuICBidXNpbmVzczogRm9ybUNvbnRyb2w8U29sZUJ1c2luZXNzPjtcclxuICBwcm9wZXJ0aWVzOiBGb3JtQ29udHJvbDxQcm9wZXJ0eVtdPlxyXG4gIGRhdGVGcm9tOiBGb3JtQ29udHJvbDxEYXRlPjtcclxuICBkYXRlVG86IEZvcm1Db250cm9sPERhdGU+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CYXNlRmlsdGVyRm9ybSBleHRlbmRzIEZvcm1Hcm91cDxJVHJhbnNhY3Rpb25CYXNlRmlsdGVyQ29udHJvbHM+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xyXG4gIGNvbnN0cnVjdG9yKHRhbmtUeXBlPzogVGFua1R5cGVFbnVtLCBidXNpbmVzcz86IFNvbGVCdXNpbmVzcywgcHJvcGVydGllcz86IFByb3BlcnR5W10pIHtcclxuICAgIHN1cGVyKHtcclxuICAgICAgdGFua1R5cGU6IG5ldyBGb3JtQ29udHJvbCh0YW5rVHlwZSksXHJcbiAgICAgIGJ1c2luZXNzOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogYnVzaW5lc3MsIGRpc2FibGVkOiB0cnVlIH0pLFxyXG4gICAgICBwcm9wZXJ0aWVzOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogcHJvcGVydGllcywgZGlzYWJsZWQ6IHRydWUgfSksXHJcbiAgICAgIGRhdGVGcm9tOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgZGF0ZVRvOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XHJcbiAgfVxyXG5cclxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldCgndGFua1R5cGUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHRhbmtUeXBlID0+IHtcclxuICAgICAgdGFua1R5cGUgPT09IFRhbmtUeXBlRW51bS5TT0xFID8gdGhpcy5nZXQoJ2J1c2luZXNzJykuZW5hYmxlKCkgOiB0aGlzLmdldCgnYnVzaW5lc3MnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRhbmtUeXBlID09PSBUYW5rVHlwZUVudW0uUFJPUEVSVFkgPyB0aGlzLmdldCgncHJvcGVydGllcycpLmVuYWJsZSgpIDogdGhpcy5nZXQoJ3Byb3BlcnRpZXMnKS5kaXNhYmxlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlcjxNb2RlbENsYXNzIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlLCBDb2xsZWN0aW9uQ2xhc3MgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsQ2xhc3M+Pihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ2xhc3MpOiBDb2xsZWN0aW9uQ2xhc3Mge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZS5kYXRlRnJvbSkge1xyXG4gICAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5maWx0ZXIodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24uZGF0ZSA+PSB2YWx1ZS5kYXRlRnJvbSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUuZGF0ZVRvKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5kYXRlIDw9IHZhbHVlLmRhdGVUbyk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUudGFua1R5cGUpIHtcclxuICAgICAgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uZmlsdGVyQnkoJ3RhbmtUeXBlJywgdmFsdWUudGFua1R5cGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlLmJ1c2luZXNzKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmZpbHRlckJ5KCdidXNpbmVzcy5pZCcsIHZhbHVlLmJ1c2luZXNzLmlkKTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIHZhbHVlLnByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+IHByb3BlcnR5LmlkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgfVxyXG59XHJcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS1maWx0ZXIuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1iYXNlLWZpbHRlci5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBYTdELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxTQUF5QztJQUN0RixZQUFZLFFBQXVCLEVBQUUsUUFBdUIsRUFBRSxVQUF1QjtRQUNuRixLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQ25DLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzlELFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xFLFFBQVEsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUMzQixNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JELFFBQVEsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hHLFFBQVEsS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBcUYsVUFBMkI7UUFDcEgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXpCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2hCLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakY7UUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5RDtRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQixVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNoRztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRyb2xzSW50ZXJmYWNlIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUHJvcGVydHksIFNvbGVCdXNpbmVzcyB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XHJcblxyXG5pbnRlcmZhY2UgSVRyYW5zYWN0aW9uQmFzZUZpbHRlckNvbnRyb2xzIGV4dGVuZHMgQ29udHJvbHNJbnRlcmZhY2Uge1xyXG4gIHRhbmtUeXBlOiBGb3JtQ29udHJvbDxUYW5rVHlwZUVudW0+O1xyXG4gIGJ1c2luZXNzOiBGb3JtQ29udHJvbDxTb2xlQnVzaW5lc3M+O1xyXG4gIHByb3BlcnRpZXM6IEZvcm1Db250cm9sPFByb3BlcnR5W10+XHJcbiAgZGF0ZUZyb206IEZvcm1Db250cm9sPERhdGU+O1xyXG4gIGRhdGVUbzogRm9ybUNvbnRyb2w8RGF0ZT47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJhc2VGaWx0ZXJGb3JtIGV4dGVuZHMgRm9ybUdyb3VwPElUcmFuc2FjdGlvbkJhc2VGaWx0ZXJDb250cm9scz4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XHJcbiAgY29uc3RydWN0b3IodGFua1R5cGU/OiBUYW5rVHlwZUVudW0sIGJ1c2luZXNzPzogU29sZUJ1c2luZXNzLCBwcm9wZXJ0aWVzPzogUHJvcGVydHlbXSkge1xyXG4gICAgc3VwZXIoe1xyXG4gICAgICB0YW5rVHlwZTogbmV3IEZvcm1Db250cm9sKHRhbmtUeXBlKSxcclxuICAgICAgYnVzaW5lc3M6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBidXNpbmVzcywgZGlzYWJsZWQ6IHRydWUgfSksXHJcbiAgICAgIHByb3BlcnRpZXM6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBwcm9wZXJ0aWVzLCBkaXNhYmxlZDogdHJ1ZSB9KSxcclxuICAgICAgZGF0ZUZyb206IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICBkYXRlVG86IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcclxuICB9XHJcblxyXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0KCd0YW5rVHlwZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodGFua1R5cGUgPT4ge1xyXG4gICAgICB0YW5rVHlwZSA9PT0gVGFua1R5cGVFbnVtLlNPTEUgPyB0aGlzLmdldCgnYnVzaW5lc3MnKS5lbmFibGUoKSA6IHRoaXMuZ2V0KCdidXNpbmVzcycpLmRpc2FibGUoKTtcclxuICAgICAgdGFua1R5cGUgPT09IFRhbmtUeXBlRW51bS5QUk9QRVJUWSA/IHRoaXMuZ2V0KCdwcm9wZXJ0aWVzJykuZW5hYmxlKCkgOiB0aGlzLmdldCgncHJvcGVydGllcycpLmRpc2FibGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyPE1vZGVsQ2xhc3MgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2UsIENvbGxlY3Rpb25DbGFzcyBleHRlbmRzIENvbGxlY3Rpb248TW9kZWxDbGFzcz4+KGNvbGxlY3Rpb246IENvbGxlY3Rpb25DbGFzcyk6IENvbGxlY3Rpb25DbGFzcyB7XHJcbiAgICBpZiAoIWNvbGxlY3Rpb24ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZS5kYXRlRnJvbSkge1xyXG4gICAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5maWx0ZXIodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24uZGF0ZSA+PSB2YWx1ZS5kYXRlRnJvbSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUuZGF0ZVRvKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5kYXRlIDw9IHZhbHVlLmRhdGVUbyk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUudGFua1R5cGUpIHtcclxuICAgICAgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uZmlsdGVyQnkoJ3RhbmtUeXBlJywgdmFsdWUudGFua1R5cGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlLmJ1c2luZXNzKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmZpbHRlckJ5KCdidXNpbmVzcy5pZCcsIHZhbHVlLmJ1c2luZXNzLmlkKTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIHZhbHVlLnByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+IHByb3BlcnR5LmlkKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -47,6 +47,12 @@ export class Property extends PropertyBase {
47
47
  }
48
48
  return this.valuation?.marketValue || 0;
49
49
  }
50
+ get sharedMarketValue() {
51
+ if (this.isSold()) {
52
+ return 0;
53
+ }
54
+ return this.shareRatio * this.marketValue;
55
+ }
50
56
  get currentYearForecast() {
51
57
  const year = new FinancialYear().year;
52
58
  return this.forecasts.find((forecast) => forecast.financialYear === year)
@@ -247,4 +253,4 @@ __decorate([
247
253
  __decorate([
248
254
  Exclude()
249
255
  ], Property.prototype, "documentFile", void 0);
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUNtQiwyQ0FBMkMsRUFDcEUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvcGVydHkgYXMgUHJvcGVydHlCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcclxuaW1wb3J0IHsgUHJvcGVydHlTaGFyZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XHJcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xyXG5pbXBvcnQgeyBFeGNsdWRlLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi4vYWRkcmVzcyc7XHJcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnkgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcclxuaW1wb3J0IHsgUHJvcGVydHlWYWx1YXRpb24gfSBmcm9tICcuL3Byb3BlcnR5LXZhbHVhdGlvbic7XHJcbmltcG9ydCB7IFByb3BlcnR5Rm9yZWNhc3QgfSBmcm9tICcuL3Byb3BlcnR5LWZvcmVjYXN0JztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xyXG5pbXBvcnQgeyBUYXhFeGVtcHRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLmVudW0nO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1saXN0LmVudW0nO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFByb3BlcnR5U2FsZSB9IGZyb20gJy4vcHJvcGVydHktc2FsZSc7XHJcbmltcG9ydCB7IHVuaXRPZlRpbWUgfSBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQge1xyXG4gIERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sIFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvblxyXG59IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHJvdW5kIGZyb20gJ2xvZGFzaC9yb3VuZCc7XHJcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tICcuLi9maWxlJztcclxuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudCc7XHJcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XHJcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcclxuXHJcbi8qKlxyXG4gKiBwcm9wZXJ0eVNhbGUgZG9jcyAtIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDIwOTUwODM1My9Qcm9wZXJ0eStTb2xkK2J1dHRvblxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcclxuICAvKipcclxuICAgKiBQcm9wZXJ0eSBhY3F1aXJlZCBiZWZvcmUgMjAgU2VwdGVtYmVyIDE5ODUgd2lsbCBnZW5lcmFsbHkgYmUgdHJlYXRlZCBhcyBwcmUtQ2FwaXRhbCBHYWlucyBUYXggKENHVCkgYXNzZXRzLlxyXG4gICAqIEFueSBhc3NldHMgYWNxdWlyZWQgYmVmb3JlIHRoaXMgZGF5IGFyZSBDR1QgZXhlbXB0IChiZWNhdXNlIHRoZSB0YXggZGlkbid0IGV4aXN0IGJlZm9yZSB0aGlzIGRhdGUpLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBwcmVDR1RBc3NldERhdGU6IERhdGUgPSBuZXcgRGF0ZSgxOTg1LCA5LCAyMCk7XHJcblxyXG4gIEBUeXBlKCgpID0+IE51bWJlcilcclxuICBwdXJjaGFzZVByaWNlOiBudW1iZXI7XHJcblxyXG4gIEBUeXBlKCgpID0+IE51bWJlcilcclxuICBncm93dGhQZXJjZW50OiBudW1iZXJcclxuXHJcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcclxuICBjb250cmFjdERhdGU6IERhdGU7XHJcblxyXG4gIEBUeXBlKCgpID0+IERhdGUpXHJcbiAgc2V0dGxlbWVudERhdGU6IERhdGU7XHJcblxyXG4gIEBUeXBlKCgpID0+IEFkZHJlc3MpXHJcbiAgYWRkcmVzczogQWRkcmVzcztcclxuXHJcbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlDYXRlZ29yeSlcclxuICBjYXRlZ29yeTogUHJvcGVydHlDYXRlZ29yeTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50KVxyXG4gIGNhdGVnb3J5TW92ZW1lbnRzOiBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnRbXTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxyXG4gIHN0YW1wRHV0eT86IG51bWJlcjtcclxuXHJcbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxyXG4gIGxlZ2FsRmVlcz86IG51bWJlcjtcclxuXHJcbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxyXG4gIG90aGVyQ2FwaXRhbENvc3RzPzogbnVtYmVyO1xyXG5cclxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eUZvcmVjYXN0KVxyXG4gIGZvcmVjYXN0czogUHJvcGVydHlGb3JlY2FzdFtdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVNoYXJlKVxyXG4gIHNoYXJlczogUHJvcGVydHlTaGFyZVtdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVZhbHVhdGlvbilcclxuICB2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbltdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVZhbHVhdGlvbilcclxuICB2YWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uO1xyXG5cclxuICBAVHlwZSgoKSA9PiBVc2VyKVxyXG4gIHVzZXI6IFVzZXI7XHJcblxyXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5U3Vic2NyaXB0aW9uKVxyXG4gIHN1YnNjcmlwdGlvbnM6IFByb3BlcnR5U3Vic2NyaXB0aW9uW107XHJcblxyXG4gIEBUeXBlKCgpID0+IEFwcEZpbGUpXHJcbiAgZmlsZTogQXBwRmlsZTtcclxuXHJcbiAgQEV4Y2x1ZGUoKVxyXG4gIGRvY3VtZW50RmlsZTogRmlsZTtcclxuXHJcbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmFkZHJlc3MubmFtZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgaXNPd24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyLmlkID09PSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpO1xyXG4gIH1cclxuXHJcbiAgaXNTb2xkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5teVNoYXJlPy5zYWxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhcGl0YWxDb3N0c1RvdGFsQW1vdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFtcER1dHkgKyB0aGlzLmxlZ2FsRmVlcyArIHRoaXMub3RoZXJDYXBpdGFsQ29zdHM7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLmlzU29sZCgpKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnZhbHVhdGlvbj8ubWFya2V0VmFsdWUgfHwgMDtcclxuICB9XHJcblxyXG4gIGdldCBjdXJyZW50WWVhckZvcmVjYXN0KCk6IFByb3BlcnR5Rm9yZWNhc3Qge1xyXG4gICAgY29uc3QgeWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcjtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmZpbmFuY2lhbFllYXIgPT09IHllYXIpXHJcbiAgICAgID8/IHBsYWluVG9DbGFzcyhQcm9wZXJ0eUZvcmVjYXN0LCB7fSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdD8ucmVudGFsUmV0dXJuIHx8IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9yZWNhc3RlZFRheFBvc2l0aW9uKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhckZvcmVjYXN0Py50YXhQb3NpdGlvbiB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcmVjYXN0ZWRDYXNoUG9zaXRpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LmNhc2hQb3NpdGlvbiB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG15U2hhcmUoKTogUHJvcGVydHlTaGFyZSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsYWltUGVyY2VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5jbGFpbVBlcmNlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1Db2VmZmljaWVudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xhaW1QZXJjZW50IC8gMTAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlUGVyY2VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubXlTaGFyZS5wZXJjZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlUmF0aW8oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm15U2hhcmUucGVyY2VudCAvIDEwMDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRTdWJzY3JpcHRpb24oKTogUHJvcGVydHlTdWJzY3JpcHRpb24ge1xyXG4gICAgLy8gYWx3YXlzIHJldHVybiBmaXJzdCBlbGVtZW50IGJlY2F1c2Ugc3Vic2NyaXB0aW9ucyBhcnJheSBjb250YWlucyBvbmx5IG9uZSBlbGVtZW50XHJcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogUHJvcGVydHlGb3JlY2FzdCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmZpbmFuY2lhbFllYXIgPT09IHllYXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2hhcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hhcmVzLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAVE9ETyBjb25zaWRlciB0byBtb3ZlIG1ldGhvZHMgcmVsYXRlZCB3aXRoIHByb3BlcnR5U2FsZSB0byBzZXBhcmF0ZWQgY2xhc3MsIHNpbmNlIHVzZWQganVzdCBpbiBvbmUgbW9kdWxlIHlldFxyXG4gICAqIHB1cmNoYXNlIGNvc3RzIC0gY2xhaW1lZCBjb3N0cywgZXhjZXB0IGBwcHIgdG8gaW52ZXN0bWVudGAgZXhlbXB0aW9uLFxyXG4gICAqIGluIHRoYXQgY2FzZSBpdCdzIGVxdWFsIHRvIG1hcmtldCB2YWx1ZSwgd2hlbiBwcm9wZXJ0eSBiZWNhbWUgYW4gaW52ZXN0bWVudCBwcm9wZXJ0eVxyXG4gICAqL1xyXG4gIGNhbGN1bGF0ZUNvc3RCYXNlKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBtYXJrZXRWYWx1ZTogbnVtYmVyID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhRmllbGRzKS5nZXRNYXJrZXRWYWx1ZSgpO1xyXG4gICAgaWYgKG1hcmtldFZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBtYXJrZXRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZVByaWNlICsgdGhpcy5jYXBpdGFsQ29zdHNUb3RhbEFtb3VudCArIHNhbGUuaG9sZGluZ0Nvc3RzICsgc2FsZS5zdHJ1Y3R1cmFsSW1wcm92ZW1lbnRzV0RWIC0gc2FsZS5idWlsZGluZ0F0Q29zdENsYWltZWQ7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVHcm9zc0NhcGl0YWxHYWluKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gcm91bmQoKHNhbGUubmV0UHJpY2UgLSB0aGlzLmNhbGN1bGF0ZUNvc3RCYXNlKHNhbGUpKSAqIHRoaXMuZ2V0UGFydGlhbENHVEV4ZW1wdGlvblJhdGlvKHNhbGUpICogdGhpcy5zaGFyZVJhdGlvLCAyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5ldCBjYXBpdGFsIGdhaW4gaW5jbHVkZXMgdGF4IGV4ZW1wdGlvblxyXG4gICAqL1xyXG4gIGNhbGN1bGF0ZU5ldENhcGl0YWxHYWluKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlKSAqIHNhbGUuZ3Jvc3NDYXBpdGFsR2FpbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGd1ZXNzIHRheCBleGVtcHRpb24gYmFzZWQgb24gcHJvcGVydHkgZGV0YWlsc1xyXG4gICAqL1xyXG4gIGdldENHVEV4ZW1wdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBUYXhFeGVtcHRpb25FbnVtIHtcclxuICAgIGlmIChzYWxlLnRheEV4ZW1wdGlvbikge1xyXG4gICAgICByZXR1cm4gc2FsZS50YXhFeGVtcHRpb24uaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2UgcHJvcGVydGllc1xyXG4gICAgICBjYXNlIHRoaXMuY2F0ZWdvcnkuaWQgPT09IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bS5PV05FUl9PQ0NVUElFRDpcclxuICAgICAgICByZXR1cm4gVGF4RXhlbXB0aW9uRW51bS5QUFI7XHJcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudCBwcm9wZXJ0aWVzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxyXG4gICAgICBjYXNlIHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKTpcclxuICAgICAgICByZXR1cm4gVGF4RXhlbXB0aW9uRW51bS5PTkVfWUVBUl9SVUxFO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGFydGlhbENHVEV4ZW1wdGlvblJhdGlvKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBtZXRhRmllbGRzOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRDb2xsZWN0aW9uID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhRmllbGRzKTtcclxuXHJcbiAgICBzd2l0Y2ggKHNhbGUudGF4RXhlbXB0aW9uPy5pZCkge1xyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uSU5WRVNUTUVOVF9UT19QUFI6XHJcbiAgICAgICAgY29uc3Qgb3duZXJzaGlwRGF5cyA9IHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSk7XHJcbiAgICAgICAgcmV0dXJuIChvd25lcnNoaXBEYXlzIC0gbWV0YUZpZWxkcy5nZXRQUFJEYXlzKCkpIC8gb3duZXJzaGlwRGF5cztcclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxyXG4gICAgICAgIHJldHVybiBtZXRhRmllbGRzLmdldENsYWltUGVyY2VudCgpIC8gMTAwO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogdGF4IGV4ZW1wdGlvbiBjYW4gcmVkdWNlIGNndCBmcm9tIDEwMCUgdG8gbGVzcyAodXAgdG8gemVybylcclxuICAgKi9cclxuICBnZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xyXG4gICAgc3dpdGNoIChzYWxlLnRheEV4ZW1wdGlvbj8uaWQpIHtcclxuICAgICAgLy8gNTAlIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudHMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXHJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5PTkVfWUVBUl9SVUxFOlxyXG4gICAgICAgIHJldHVybiAwLjU7XHJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5JTlZFU1RNRU5UX1RPX1BQUjpcclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSkgPyAwLjUgOiAxO1xyXG4gICAgICAvLyBmdWxsIGV4ZW1wdGlvblxyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uUFBSOlxyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uU0lYX1lFQVJTX1JVTEU6XHJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5UUkFOU0ZFUjpcclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLk9USEVSOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICAvLyBubyBleGVtcHRpb25cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGluIGNndCByZXBvcnQgd2UgYXBwbHkgbG9zc2VzLCB3aGljaCBjYW4gcmVzZXQgMSB5ZWFyIHJ1bGUgKGluIGNhc2UgaWYgdGhlcmUgaXMgbm8gcHJvZml0IGFmdGVyIGxvc3MpXHJcbiAgICovXHJcbiAgaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzYWxlLmdyb3NzQ2FwaXRhbEdhaW4gPiAwICYmIHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSwgJ3llYXJzJykgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ0dUIGlzIG5vdCBhcHBsaWNhYmxlIGZvciBwcm9wZXJ0aWVzIGFjcXVpcmVkIGJlZm9yZSAyMC4wOS4xOTg1ICh0YXggZGlkbid0IGV4aXN0IGJlZm9yZSB0aGlzIGRhdGUpLlxyXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiQ2FwaXRhbCBnYWlucyBvciBsb3NzZXNcIiBzZWN0aW9uKVxyXG4gICAqL1xyXG4gIGlzQ0dUQXBwbGljYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyYWN0RGF0ZSA+PSBQcm9wZXJ0eS5wcmVDR1RBc3NldERhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBvd25lcnNoaXAgZHVyYXRpb24gZnJvbSBwdXJjaGFzZSB0aWxsIHNhbGVcclxuICAgKi9cclxuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gbW9tZW50KHNhbGUuZGF0ZSkuZGlmZihtb21lbnQodGhpcy5jb250cmFjdERhdGUpLCB1bml0T2ZUaW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRheCBQb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2UgLSBJbnRlcmVzdCAtIERlcHJlY2lhdGlvblxyXG4gICAqIFdoZXJlIChJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QpIGlzIGNhc2ggcG9zaXRpb24uXHJcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc0MTU5MjgvRGFzaGJvYXJkK1Byb3BlcnR5XHJcbiAgICovXHJcbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9udGhseUluY29tZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5pbmNvbWUgLyAxMjtcclxuICB9XHJcblxyXG4gIGdldCBtb250aGx5RXhwZW5zZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5leHBlbnNlIC8gMTI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUNtQiwyQ0FBMkMsRUFDcEUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7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QUFDO3NDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7K0NBQ0s7QUFHdEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3NDQUNOO0FBR2Q7SUFEQyxPQUFPLEVBQUU7OENBQ1MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eSBhcyBQcm9wZXJ0eUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eVNoYXJlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcclxuaW1wb3J0IHsgUHJvcGVydHlTdWJzY3JpcHRpb24gfSBmcm9tICcuL3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XHJcbmltcG9ydCB7IEV4Y2x1ZGUsIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcclxuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeSB9IGZyb20gJy4vcHJvcGVydHktY2F0ZWdvcnknO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eVZhbHVhdGlvbiB9IGZyb20gJy4vcHJvcGVydHktdmFsdWF0aW9uJztcclxuaW1wb3J0IHsgUHJvcGVydHlGb3JlY2FzdCB9IGZyb20gJy4vcHJvcGVydHktZm9yZWNhc3QnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XHJcbmltcG9ydCB7IFRheEV4ZW1wdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3RheC1leGVtcHRpb24uZW51bSc7XHJcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgUHJvcGVydHlTYWxlIH0gZnJvbSAnLi9wcm9wZXJ0eS1zYWxlJztcclxuaW1wb3J0IHsgdW5pdE9mVGltZSB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7XHJcbiAgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiwgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YUZpZWxkQ29sbGVjdGlvbiwgVHJhbnNhY3Rpb25Db2xsZWN0aW9uXHJcbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgcm91bmQgZnJvbSAnbG9kYXNoL3JvdW5kJztcclxuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gJy4uL2ZpbGUnO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5LW1vdmVtZW50JztcclxuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcclxuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5cclxuLyoqXHJcbiAqIHByb3BlcnR5U2FsZSBkb2NzIC0gaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80MjA5NTA4MzUzL1Byb3BlcnR5K1NvbGQrYnV0dG9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xyXG4gIC8qKlxyXG4gICAqIFByb3BlcnR5IGFjcXVpcmVkIGJlZm9yZSAyMCBTZXB0ZW1iZXIgMTk4NSB3aWxsIGdlbmVyYWxseSBiZSB0cmVhdGVkIGFzIHByZS1DYXBpdGFsIEdhaW5zIFRheCAoQ0dUKSBhc3NldHMuXHJcbiAgICogQW55IGFzc2V0cyBhY3F1aXJlZCBiZWZvcmUgdGhpcyBkYXkgYXJlIENHVCBleGVtcHQgKGJlY2F1c2UgdGhlIHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXHJcbiAgICovXHJcbiAgc3RhdGljIHByZUNHVEFzc2V0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKDE5ODUsIDksIDIwKTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxyXG4gIHB1cmNoYXNlUHJpY2U6IG51bWJlcjtcclxuXHJcbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxyXG4gIGdyb3d0aFBlcmNlbnQ6IG51bWJlclxyXG5cclxuICBAVHlwZSgoKSA9PiBEYXRlKVxyXG4gIGNvbnRyYWN0RGF0ZTogRGF0ZTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcclxuICBzZXR0bGVtZW50RGF0ZTogRGF0ZTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gQWRkcmVzcylcclxuICBhZGRyZXNzOiBBZGRyZXNzO1xyXG5cclxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eUNhdGVnb3J5KVxyXG4gIGNhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xyXG5cclxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQpXHJcbiAgY2F0ZWdvcnlNb3ZlbWVudHM6IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudFtdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXHJcbiAgc3RhbXBEdXR5PzogbnVtYmVyO1xyXG5cclxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXHJcbiAgbGVnYWxGZWVzPzogbnVtYmVyO1xyXG5cclxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXHJcbiAgb3RoZXJDYXBpdGFsQ29zdHM/OiBudW1iZXI7XHJcblxyXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Rm9yZWNhc3QpXHJcbiAgZm9yZWNhc3RzOiBQcm9wZXJ0eUZvcmVjYXN0W107XHJcblxyXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5U2hhcmUpXHJcbiAgc2hhcmVzOiBQcm9wZXJ0eVNoYXJlW107XHJcblxyXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5VmFsdWF0aW9uKVxyXG4gIHZhbHVhdGlvbnM6IFByb3BlcnR5VmFsdWF0aW9uW107XHJcblxyXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5VmFsdWF0aW9uKVxyXG4gIHZhbHVhdGlvbjogUHJvcGVydHlWYWx1YXRpb247XHJcblxyXG4gIEBUeXBlKCgpID0+IFVzZXIpXHJcbiAgdXNlcjogVXNlcjtcclxuXHJcbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlTdWJzY3JpcHRpb24pXHJcbiAgc3Vic2NyaXB0aW9uczogUHJvcGVydHlTdWJzY3JpcHRpb25bXTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gQXBwRmlsZSlcclxuICBmaWxlOiBBcHBGaWxlO1xyXG5cclxuICBARXhjbHVkZSgpXHJcbiAgZG9jdW1lbnRGaWxlOiBGaWxlO1xyXG5cclxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5zdWJzY3JpcHRpb25zPy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBpc093bigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJyk7XHJcbiAgfVxyXG5cclxuICBpc1NvbGQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLm15U2hhcmU/LnNhbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FwaXRhbENvc3RzVG90YWxBbW91bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN0YW1wRHV0eSArIHRoaXMubGVnYWxGZWVzICsgdGhpcy5vdGhlckNhcGl0YWxDb3N0cztcclxuICB9XHJcblxyXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMuaXNTb2xkKCkpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudmFsdWF0aW9uPy5tYXJrZXRWYWx1ZSB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlZE1hcmtldFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5pc1NvbGQoKSkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zaGFyZVJhdGlvICogdGhpcy5tYXJrZXRWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBjdXJyZW50WWVhckZvcmVjYXN0KCk6IFByb3BlcnR5Rm9yZWNhc3Qge1xyXG4gICAgY29uc3QgeWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcjtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmZpbmFuY2lhbFllYXIgPT09IHllYXIpXHJcbiAgICAgID8/IHBsYWluVG9DbGFzcyhQcm9wZXJ0eUZvcmVjYXN0LCB7fSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdD8ucmVudGFsUmV0dXJuIHx8IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9yZWNhc3RlZFRheFBvc2l0aW9uKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhckZvcmVjYXN0Py50YXhQb3NpdGlvbiB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcmVjYXN0ZWRDYXNoUG9zaXRpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LmNhc2hQb3NpdGlvbiB8fCAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG15U2hhcmUoKTogUHJvcGVydHlTaGFyZSB7XHJcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsYWltUGVyY2VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5jbGFpbVBlcmNlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1Db2VmZmljaWVudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xhaW1QZXJjZW50IC8gMTAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlUGVyY2VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubXlTaGFyZS5wZXJjZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoYXJlUmF0aW8oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm15U2hhcmUucGVyY2VudCAvIDEwMDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRTdWJzY3JpcHRpb24oKTogUHJvcGVydHlTdWJzY3JpcHRpb24ge1xyXG4gICAgLy8gYWx3YXlzIHJldHVybiBmaXJzdCBlbGVtZW50IGJlY2F1c2Ugc3Vic2NyaXB0aW9ucyBhcnJheSBjb250YWlucyBvbmx5IG9uZSBlbGVtZW50XHJcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25zWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogUHJvcGVydHlGb3JlY2FzdCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmZpbmFuY2lhbFllYXIgPT09IHllYXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2hhcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hhcmVzLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAVE9ETyBjb25zaWRlciB0byBtb3ZlIG1ldGhvZHMgcmVsYXRlZCB3aXRoIHByb3BlcnR5U2FsZSB0byBzZXBhcmF0ZWQgY2xhc3MsIHNpbmNlIHVzZWQganVzdCBpbiBvbmUgbW9kdWxlIHlldFxyXG4gICAqIHB1cmNoYXNlIGNvc3RzIC0gY2xhaW1lZCBjb3N0cywgZXhjZXB0IGBwcHIgdG8gaW52ZXN0bWVudGAgZXhlbXB0aW9uLFxyXG4gICAqIGluIHRoYXQgY2FzZSBpdCdzIGVxdWFsIHRvIG1hcmtldCB2YWx1ZSwgd2hlbiBwcm9wZXJ0eSBiZWNhbWUgYW4gaW52ZXN0bWVudCBwcm9wZXJ0eVxyXG4gICAqL1xyXG4gIGNhbGN1bGF0ZUNvc3RCYXNlKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBtYXJrZXRWYWx1ZTogbnVtYmVyID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhRmllbGRzKS5nZXRNYXJrZXRWYWx1ZSgpO1xyXG4gICAgaWYgKG1hcmtldFZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBtYXJrZXRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZVByaWNlICsgdGhpcy5jYXBpdGFsQ29zdHNUb3RhbEFtb3VudCArIHNhbGUuaG9sZGluZ0Nvc3RzICsgc2FsZS5zdHJ1Y3R1cmFsSW1wcm92ZW1lbnRzV0RWIC0gc2FsZS5idWlsZGluZ0F0Q29zdENsYWltZWQ7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVHcm9zc0NhcGl0YWxHYWluKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gcm91bmQoKHNhbGUubmV0UHJpY2UgLSB0aGlzLmNhbGN1bGF0ZUNvc3RCYXNlKHNhbGUpKSAqIHRoaXMuZ2V0UGFydGlhbENHVEV4ZW1wdGlvblJhdGlvKHNhbGUpICogdGhpcy5zaGFyZVJhdGlvLCAyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5ldCBjYXBpdGFsIGdhaW4gaW5jbHVkZXMgdGF4IGV4ZW1wdGlvblxyXG4gICAqL1xyXG4gIGNhbGN1bGF0ZU5ldENhcGl0YWxHYWluKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlKSAqIHNhbGUuZ3Jvc3NDYXBpdGFsR2FpbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGd1ZXNzIHRheCBleGVtcHRpb24gYmFzZWQgb24gcHJvcGVydHkgZGV0YWlsc1xyXG4gICAqL1xyXG4gIGdldENHVEV4ZW1wdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBUYXhFeGVtcHRpb25FbnVtIHtcclxuICAgIGlmIChzYWxlLnRheEV4ZW1wdGlvbikge1xyXG4gICAgICByZXR1cm4gc2FsZS50YXhFeGVtcHRpb24uaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2UgcHJvcGVydGllc1xyXG4gICAgICBjYXNlIHRoaXMuY2F0ZWdvcnkuaWQgPT09IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bS5PV05FUl9PQ0NVUElFRDpcclxuICAgICAgICByZXR1cm4gVGF4RXhlbXB0aW9uRW51bS5QUFI7XHJcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudCBwcm9wZXJ0aWVzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxyXG4gICAgICBjYXNlIHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKTpcclxuICAgICAgICByZXR1cm4gVGF4RXhlbXB0aW9uRW51bS5PTkVfWUVBUl9SVUxFO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGFydGlhbENHVEV4ZW1wdGlvblJhdGlvKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBtZXRhRmllbGRzOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRDb2xsZWN0aW9uID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhRmllbGRzKTtcclxuXHJcbiAgICBzd2l0Y2ggKHNhbGUudGF4RXhlbXB0aW9uPy5pZCkge1xyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uSU5WRVNUTUVOVF9UT19QUFI6XHJcbiAgICAgICAgY29uc3Qgb3duZXJzaGlwRGF5cyA9IHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSk7XHJcbiAgICAgICAgcmV0dXJuIChvd25lcnNoaXBEYXlzIC0gbWV0YUZpZWxkcy5nZXRQUFJEYXlzKCkpIC8gb3duZXJzaGlwRGF5cztcclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxyXG4gICAgICAgIHJldHVybiBtZXRhRmllbGRzLmdldENsYWltUGVyY2VudCgpIC8gMTAwO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogdGF4IGV4ZW1wdGlvbiBjYW4gcmVkdWNlIGNndCBmcm9tIDEwMCUgdG8gbGVzcyAodXAgdG8gemVybylcclxuICAgKi9cclxuICBnZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xyXG4gICAgc3dpdGNoIChzYWxlLnRheEV4ZW1wdGlvbj8uaWQpIHtcclxuICAgICAgLy8gNTAlIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudHMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXHJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5PTkVfWUVBUl9SVUxFOlxyXG4gICAgICAgIHJldHVybiAwLjU7XHJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5JTlZFU1RNRU5UX1RPX1BQUjpcclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSkgPyAwLjUgOiAxO1xyXG4gICAgICAvLyBmdWxsIGV4ZW1wdGlvblxyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uUFBSOlxyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uU0lYX1lFQVJTX1JVTEU6XHJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5UUkFOU0ZFUjpcclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLk9USEVSOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICAvLyBubyBleGVtcHRpb25cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGluIGNndCByZXBvcnQgd2UgYXBwbHkgbG9zc2VzLCB3aGljaCBjYW4gcmVzZXQgMSB5ZWFyIHJ1bGUgKGluIGNhc2UgaWYgdGhlcmUgaXMgbm8gcHJvZml0IGFmdGVyIGxvc3MpXHJcbiAgICovXHJcbiAgaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzYWxlLmdyb3NzQ2FwaXRhbEdhaW4gPiAwICYmIHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSwgJ3llYXJzJykgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ0dUIGlzIG5vdCBhcHBsaWNhYmxlIGZvciBwcm9wZXJ0aWVzIGFjcXVpcmVkIGJlZm9yZSAyMC4wOS4xOTg1ICh0YXggZGlkbid0IGV4aXN0IGJlZm9yZSB0aGlzIGRhdGUpLlxyXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiQ2FwaXRhbCBnYWlucyBvciBsb3NzZXNcIiBzZWN0aW9uKVxyXG4gICAqL1xyXG4gIGlzQ0dUQXBwbGljYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyYWN0RGF0ZSA+PSBQcm9wZXJ0eS5wcmVDR1RBc3NldERhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBvd25lcnNoaXAgZHVyYXRpb24gZnJvbSBwdXJjaGFzZSB0aWxsIHNhbGVcclxuICAgKi9cclxuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gbW9tZW50KHNhbGUuZGF0ZSkuZGlmZihtb21lbnQodGhpcy5jb250cmFjdERhdGUpLCB1bml0T2ZUaW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRheCBQb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2UgLSBJbnRlcmVzdCAtIERlcHJlY2lhdGlvblxyXG4gICAqIFdoZXJlIChJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QpIGlzIGNhc2ggcG9zaXRpb24uXHJcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc0MTU5MjgvRGFzaGJvYXJkK1Byb3BlcnR5XHJcbiAgICovXHJcbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9udGhseUluY29tZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5pbmNvbWUgLyAxMjtcclxuICB9XHJcblxyXG4gIGdldCBtb250aGx5RXhwZW5zZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5leHBlbnNlIC8gMTI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2339,14 +2339,10 @@ class PropertyCollection extends Collection {
2339
2339
  return this.sumBy('growthPercent');
2340
2340
  }
2341
2341
  get marketValue() {
2342
- return this.sumBy('valuation.marketValue');
2342
+ return this.sumBy('marketValue');
2343
2343
  }
2344
2344
  get sharedMarketValue() {
2345
- let sharedMarketValue = 0;
2346
- this.items.forEach(property => {
2347
- sharedMarketValue += property.shareRatio * property.marketValue;
2348
- });
2349
- return sharedMarketValue;
2345
+ return this.sumBy('sharedMarketValue');
2350
2346
  }
2351
2347
  /**
2352
2348
  * Get list of unique property categories from collection
@@ -5800,6 +5796,12 @@ class Property extends Property$1 {
5800
5796
  }
5801
5797
  return this.valuation?.marketValue || 0;
5802
5798
  }
5799
+ get sharedMarketValue() {
5800
+ if (this.isSold()) {
5801
+ return 0;
5802
+ }
5803
+ return this.shareRatio * this.marketValue;
5804
+ }
5803
5805
  get currentYearForecast() {
5804
5806
  const year = new FinancialYear().year;
5805
5807
  return this.forecasts.find((forecast) => forecast.financialYear === year)
@@ -9504,6 +9506,9 @@ class HoldingCollection extends ExportableCollection {
9504
9506
  getUnsold() {
9505
9507
  return this.removeBy('currentQuantity', 0);
9506
9508
  }
9509
+ getUnrealisedProfit() {
9510
+ return this.marketValue - this.getPurchaseValue();
9511
+ }
9507
9512
  }
9508
9513
 
9509
9514
  class HoldingSaleCollection extends ExportableCollection {
@@ -23861,6 +23866,9 @@ class TransactionBaseFilterForm extends FormGroup {
23861
23866
  });
23862
23867
  }
23863
23868
  filter(collection) {
23869
+ if (!collection.length) {
23870
+ return collection;
23871
+ }
23864
23872
  const value = this.value;
23865
23873
  if (value.dateFrom) {
23866
23874
  collection = collection.filter(transaction => transaction.date >= value.dateFrom);