taxtank-core 0.33.62 → 0.33.63

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.
@@ -17,18 +17,18 @@ export class HoldingSaleCollection extends ExportableCollection {
17
17
  getExportBody(holdingsById) {
18
18
  return this.items.map((sale) => [
19
19
  plainToClass(ExportCell, {
20
- value: holdingsById.get(sale.holding.id).holdingType.ticker || '',
20
+ value: holdingsById.get(sale.holdingType.id).holdingType.ticker || '',
21
21
  type: ExportCellTypeEnum.STRING
22
22
  }),
23
23
  plainToClass(ExportCell, {
24
- value: holdingsById.get(sale.holding.id).holdingType.categoryLabel,
24
+ value: holdingsById.get(sale.holdingType.id).holdingType.categoryLabel,
25
25
  type: ExportCellTypeEnum.STRING
26
26
  }),
27
- plainToClass(ExportCell, { value: holdingsById.get(sale.holding.id)?.date, type: ExportCellTypeEnum.DATE }),
27
+ plainToClass(ExportCell, { value: holdingsById.get(sale.holdingType.id)?.date, type: ExportCellTypeEnum.DATE }),
28
28
  plainToClass(ExportCell, { value: sale.date, type: ExportCellTypeEnum.DATE }),
29
- plainToClass(ExportCell, { value: sale.getCostBase(holdingsById.get(sale.holding.id)), type: ExportCellTypeEnum.CURRENCY }),
29
+ plainToClass(ExportCell, { value: sale.getCostBase(holdingsById.get(sale.holdingType.id)), type: ExportCellTypeEnum.CURRENCY }),
30
30
  plainToClass(ExportCell, { value: sale.netCost, type: ExportCellTypeEnum.CURRENCY }),
31
- plainToClass(ExportCell, { value: holdingsById.get(sale.holding.id).ownershipPercent, type: ExportCellTypeEnum.PERCENT }),
31
+ plainToClass(ExportCell, { value: holdingsById.get(sale.holdingType.id).ownershipPercent, type: ExportCellTypeEnum.PERCENT }),
32
32
  plainToClass(ExportCell, { value: sale.totalCapitalGain, type: ExportCellTypeEnum.CURRENCY }),
33
33
  plainToClass(ExportCell, { value: sale.grossCapitalGain, type: ExportCellTypeEnum.CURRENCY }),
34
34
  plainToClass(ExportCell, {
@@ -38,4 +38,4 @@ export class HoldingSaleCollection extends ExportableCollection {
38
38
  ]);
39
39
  }
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy1zYWxlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvaG9sZGluZy9ob2xkaW5nLXNhbGUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2pELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxvQkFBaUM7SUFDMUUsZUFBZSxDQUFDLFFBQWdDLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDakUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RMLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTztZQUNMLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUFzQztRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUM7WUFDM0MsWUFBWSxDQUFDLFVBQVUsRUFBRTtnQkFDdkIsS0FBSyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUU7Z0JBQ2pFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO2FBQ2hDLENBQUM7WUFDRixZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhO2dCQUNsRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTTthQUNoQyxDQUFDO1lBQ0YsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdFLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0gsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRixZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekgsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdGLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RixZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3RCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO2FBQ2hDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5LCBIb2xkaW5nU2FsZSwgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZXhwb3J0YWJsZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEV4cG9ydENlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsJztcbmltcG9ydCB7IEV4cG9ydENlbGxUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwtdHlwZS5lbnVtJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gfSBmcm9tICcuL2hvbGRpbmctdHJhZGUuY29sbGVjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nU2FsZUNvbGxlY3Rpb24gZXh0ZW5kcyBFeHBvcnRhYmxlQ29sbGVjdGlvbjxIb2xkaW5nU2FsZT4ge1xuICBmaWx0ZXJCeVRheEZyZWUoaG9sZGluZ3M6IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24sIGlzVGF4RnJlZSA9IGZhbHNlKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2hvbGRpbmcuaWQnLCBob2xkaW5ncy5maWx0ZXJCeSgnaXNUYXhGcmVlJywgaXNUYXhGcmVlKS5nZXRJZHMoKSk7XG4gIH1cblxuICBnZXRFeHBvcnRIZWFkZXIoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ1RpY2tlcicsICdBc3NldCB0eXBlJywgJ0RhdGUgb2YgYnV5JywgJ0RhdGUgb2Ygc2FsZScsICdDb3N0IGJhc2UnLCAnTmV0IHNhbGUnLCAnT3duZXJzaGlwJywgJ1RvdGFsIGNhcGl0YWwgR2Fpbi8oTG9zcyknLCAnTXkgQ2FwaXRhbCBHYWluLyhMb3NzKScsICdFeGVtcHQgb3IgQ29uY2Vzc2lvbiddO1xuICB9XG5cbiAgZ2V0RXhwb3J0Rm9vdGVyKCk6IEV4cG9ydENlbGxbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0RXhwb3J0Qm9keShob2xkaW5nc0J5SWQ6IERpY3Rpb25hcnk8SG9sZGluZ1RyYWRlPik6IEV4cG9ydENlbGxbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKHNhbGU6IEhvbGRpbmdTYWxlKSA9PiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogaG9sZGluZ3NCeUlkLmdldChzYWxlLmhvbGRpbmcuaWQpLmhvbGRpbmdUeXBlLnRpY2tlciB8fCAnJyxcbiAgICAgICAgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklOR1xuICAgICAgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogaG9sZGluZ3NCeUlkLmdldChzYWxlLmhvbGRpbmcuaWQpLmhvbGRpbmdUeXBlLmNhdGVnb3J5TGFiZWwsXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkdcbiAgICAgIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IGhvbGRpbmdzQnlJZC5nZXQoc2FsZS5ob2xkaW5nLmlkKT8uZGF0ZSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkRBVEUgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogc2FsZS5kYXRlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uREFURSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBzYWxlLmdldENvc3RCYXNlKGhvbGRpbmdzQnlJZC5nZXQoc2FsZS5ob2xkaW5nLmlkKSksIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBzYWxlLm5ldENvc3QsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBob2xkaW5nc0J5SWQuZ2V0KHNhbGUuaG9sZGluZy5pZCkub3duZXJzaGlwUGVyY2VudCwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlBFUkNFTlQgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogc2FsZS50b3RhbENhcGl0YWxHYWluLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogc2FsZS5ncm9zc0NhcGl0YWxHYWluLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogc2FsZS5jb25jZXNzaW9uLFxuICAgICAgICB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HXG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy1zYWxlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvaG9sZGluZy9ob2xkaW5nLXNhbGUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2pELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxvQkFBaUM7SUFDMUUsZUFBZSxDQUFDLFFBQWdDLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDakUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RMLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTztZQUNMLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUFzQztRQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUM7WUFDM0MsWUFBWSxDQUFDLFVBQVUsRUFBRTtnQkFDdkIsS0FBSyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUU7Z0JBQ3JFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO2FBQ2hDLENBQUM7WUFDRixZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhO2dCQUN0RSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTTthQUNoQyxDQUFDO1lBQ0YsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvRyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdFLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0gsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRixZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0gsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdGLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RixZQUFZLENBQUMsVUFBVSxFQUFFO2dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3RCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO2FBQ2hDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5LCBIb2xkaW5nU2FsZSwgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZXhwb3J0YWJsZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEV4cG9ydENlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsJztcbmltcG9ydCB7IEV4cG9ydENlbGxUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwtdHlwZS5lbnVtJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24gfSBmcm9tICcuL2hvbGRpbmctdHJhZGUuY29sbGVjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nU2FsZUNvbGxlY3Rpb24gZXh0ZW5kcyBFeHBvcnRhYmxlQ29sbGVjdGlvbjxIb2xkaW5nU2FsZT4ge1xuICBmaWx0ZXJCeVRheEZyZWUoaG9sZGluZ3M6IEhvbGRpbmdUcmFkZUNvbGxlY3Rpb24sIGlzVGF4RnJlZSA9IGZhbHNlKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2hvbGRpbmcuaWQnLCBob2xkaW5ncy5maWx0ZXJCeSgnaXNUYXhGcmVlJywgaXNUYXhGcmVlKS5nZXRJZHMoKSk7XG4gIH1cblxuICBnZXRFeHBvcnRIZWFkZXIoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ1RpY2tlcicsICdBc3NldCB0eXBlJywgJ0RhdGUgb2YgYnV5JywgJ0RhdGUgb2Ygc2FsZScsICdDb3N0IGJhc2UnLCAnTmV0IHNhbGUnLCAnT3duZXJzaGlwJywgJ1RvdGFsIGNhcGl0YWwgR2Fpbi8oTG9zcyknLCAnTXkgQ2FwaXRhbCBHYWluLyhMb3NzKScsICdFeGVtcHQgb3IgQ29uY2Vzc2lvbiddO1xuICB9XG5cbiAgZ2V0RXhwb3J0Rm9vdGVyKCk6IEV4cG9ydENlbGxbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0RXhwb3J0Qm9keShob2xkaW5nc0J5SWQ6IERpY3Rpb25hcnk8SG9sZGluZ1RyYWRlPik6IEV4cG9ydENlbGxbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKHNhbGU6IEhvbGRpbmdTYWxlKSA9PiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge1xuICAgICAgICB2YWx1ZTogaG9sZGluZ3NCeUlkLmdldChzYWxlLmhvbGRpbmdUeXBlLmlkKS5ob2xkaW5nVHlwZS50aWNrZXIgfHwgJycsXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkdcbiAgICAgIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHtcbiAgICAgICAgdmFsdWU6IGhvbGRpbmdzQnlJZC5nZXQoc2FsZS5ob2xkaW5nVHlwZS5pZCkuaG9sZGluZ1R5cGUuY2F0ZWdvcnlMYWJlbCxcbiAgICAgICAgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklOR1xuICAgICAgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZ3NCeUlkLmdldChzYWxlLmhvbGRpbmdUeXBlLmlkKT8uZGF0ZSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkRBVEUgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogc2FsZS5kYXRlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uREFURSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBzYWxlLmdldENvc3RCYXNlKGhvbGRpbmdzQnlJZC5nZXQoc2FsZS5ob2xkaW5nVHlwZS5pZCkpLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogc2FsZS5uZXRDb3N0LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogaG9sZGluZ3NCeUlkLmdldChzYWxlLmhvbGRpbmdUeXBlLmlkKS5vd25lcnNoaXBQZXJjZW50LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uUEVSQ0VOVCB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBzYWxlLnRvdGFsQ2FwaXRhbEdhaW4sIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiBzYWxlLmdyb3NzQ2FwaXRhbEdhaW4sIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7XG4gICAgICAgIHZhbHVlOiBzYWxlLmNvbmNlc3Npb24sXG4gICAgICAgIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkdcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG59XG4iXX0=
@@ -4,6 +4,7 @@ import { greaterThanValidator } from '../../../validators';
4
4
  export class HoldingTradeForm extends AbstractForm {
5
5
  constructor(holdingTrade) {
6
6
  super({
7
+ category: new UntypedFormControl(holdingTrade.category),
7
8
  isTaxFree: new UntypedFormControl(holdingTrade.isTaxFree, Validators.required),
8
9
  type: new UntypedFormControl(holdingTrade.type, Validators.required),
9
10
  quantity: new UntypedFormControl(holdingTrade.quantity, [Validators.required, greaterThanValidator(0)]),
@@ -26,4 +27,4 @@ export class HoldingTradeForm extends AbstractForm {
26
27
  return super.submit(data, includeDisabledFields);
27
28
  }
28
29
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2hvbGRpbmcvaG9sZGluZy10cmFkZS9ob2xkaW5nLXRyYWRlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBMEI7SUFFOUQsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDOUUsSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BFLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkcsS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNGLEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEUsV0FBVyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xGLGdCQUFnQixFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixJQUFJLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ25HLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDaEQsRUFBRSxZQUFZLENBQUMsQ0FBQztRQVpuQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQWNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUE7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWUsRUFBRSxFQUFFLHFCQUFxQixHQUFHLEtBQUs7UUFDckQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi8uLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBncmVhdGVyVGhhblZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxIb2xkaW5nVHJhZGU+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBwdXJjaGFzZVZhbHVlID0gMDtcbiAgY29uc3RydWN0b3IoaG9sZGluZ1RyYWRlOiBIb2xkaW5nVHJhZGUpIHtcbiAgICBzdXBlcih7XG4gICAgICBpc1RheEZyZWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaG9sZGluZ1RyYWRlLmlzVGF4RnJlZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0eXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS50eXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHF1YW50aXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5xdWFudGl0eSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGdyZWF0ZXJUaGFuVmFsaWRhdG9yKDApXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUucHJpY2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5mZWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBob2xkaW5nVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuaG9sZGluZ1R5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgb3duZXJzaGlwUGVyY2VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUub3duZXJzaGlwUGVyY2VudCB8fCAxMDAsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZmlsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZmlsZSlcbiAgICB9LCBob2xkaW5nVHJhZGUpO1xuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xzQ2hhbmdlcyhbJ3F1YW50aXR5JywgJ3ByaWNlJywgJ2ZlZSddKS5zdWJzY3JpYmUoKFtxdWFudGl0eSwgcHJpY2UsIGZlZV0pID0+IHtcbiAgICAgIHRoaXMucHVyY2hhc2VWYWx1ZSA9IHF1YW50aXR5ICogcHJpY2UgKyBmZWVcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSwgaW5jbHVkZURpc2FibGVkRmllbGRzID0gZmFsc2UpOiBIb2xkaW5nVHJhZGUge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoZGF0YSwgaW5jbHVkZURpc2FibGVkRmllbGRzKTtcbiAgfVxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2hvbGRpbmcvaG9sZGluZy10cmFkZS9ob2xkaW5nLXRyYWRlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBMEI7SUFFOUQsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3ZELFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5RSxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEUsUUFBUSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RyxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0YsR0FBRyxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNwRSxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbEYsZ0JBQWdCLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLElBQUksR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkcsSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztTQUNoRCxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBYm5CLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBZWhCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQTtRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZSxFQUFFLEVBQUUscUJBQXFCLEdBQUcsS0FBSztRQUNyRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdyZWF0ZXJUaGFuVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nVHJhZGVGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPEhvbGRpbmdUcmFkZT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHB1cmNoYXNlVmFsdWUgPSAwO1xuICBjb25zdHJ1Y3Rvcihob2xkaW5nVHJhZGU6IEhvbGRpbmdUcmFkZSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGNhdGVnb3J5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5jYXRlZ29yeSksXG4gICAgICBpc1RheEZyZWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woaG9sZGluZ1RyYWRlLmlzVGF4RnJlZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0eXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS50eXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHF1YW50aXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5xdWFudGl0eSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGdyZWF0ZXJUaGFuVmFsaWRhdG9yKDApXSksXG4gICAgICBwcmljZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUucHJpY2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZmVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGhvbGRpbmdUcmFkZS5mZWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKV0pLFxuICAgICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBob2xkaW5nVHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuaG9sZGluZ1R5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgb3duZXJzaGlwUGVyY2VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUub3duZXJzaGlwUGVyY2VudCB8fCAxMDAsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZmlsZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChob2xkaW5nVHJhZGUuZmlsZSlcbiAgICB9LCBob2xkaW5nVHJhZGUpO1xuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xzQ2hhbmdlcyhbJ3F1YW50aXR5JywgJ3ByaWNlJywgJ2ZlZSddKS5zdWJzY3JpYmUoKFtxdWFudGl0eSwgcHJpY2UsIGZlZV0pID0+IHtcbiAgICAgIHRoaXMucHVyY2hhc2VWYWx1ZSA9IHF1YW50aXR5ICogcHJpY2UgKyBmZWVcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSwgaW5jbHVkZURpc2FibGVkRmllbGRzID0gZmFsc2UpOiBIb2xkaW5nVHJhZGUge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoZGF0YSwgaW5jbHVkZURpc2FibGVkRmllbGRzKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
1
  export * from './holding-trade';
2
- export * from './holding-sale.form';
3
2
  export * from './holding-type.form';
4
3
  export * from './holding-reinvest.form';
5
4
  export * from './holding-trade-import.form';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvaG9sZGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hvbGRpbmctdHJhZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ob2xkaW5nLXNhbGUuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2hvbGRpbmctdHlwZS5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZy1yZWludmVzdC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZy10cmFkZS1pbXBvcnQuZm9ybSc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvaG9sZGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ob2xkaW5nLXRyYWRlJztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZy10eXBlLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9ob2xkaW5nLXJlaW52ZXN0LmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9ob2xkaW5nLXRyYWRlLWltcG9ydC5mb3JtJztcbiJdfQ==
@@ -1,19 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
- import { Transform, Type } from 'class-transformer';
3
- import { AppFile } from '../file';
2
+ import { Transform } from 'class-transformer';
4
3
  import { AssetSale } from '../asset-sale';
5
4
  /**
6
5
  * @TODO vik rename to HoldingTradeParcel when backend ready
7
6
  */
8
7
  export class HoldingSale extends AssetSale {
9
- /**
10
- * netCapitalGain is different from grossCapitalGain only when 1 year rule applied
11
- */
12
- isOneYearExemptionApplicable() {
13
- return this.grossCapitalGain !== this.netCapitalGain;
14
- }
15
8
  get concession() {
16
- return this.isOneYearExemptionApplicable() ? '50% (1 year rule)' : 'None';
9
+ return this.isHalfExemption ? '50% (1 year rule)' : 'None';
17
10
  }
18
11
  getCostBase(holding) {
19
12
  return this.getPurchasePrice(holding) + holding.fee;
@@ -28,7 +21,7 @@ export class HoldingSale extends AssetSale {
28
21
  * total price of sale
29
22
  */
30
23
  get netCost() {
31
- return this.cost - this.fee;
24
+ return this.marketValue;
32
25
  }
33
26
  /**
34
27
  * total price of sale without fee
@@ -39,8 +32,5 @@ export class HoldingSale extends AssetSale {
39
32
  }
40
33
  __decorate([
41
34
  Transform(({ value }) => ({ id: value.id }), { toPlainOnly: true })
42
- ], HoldingSale.prototype, "holding", void 0);
43
- __decorate([
44
- Type(() => AppFile)
45
- ], HoldingSale.prototype, "file", void 0);
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy1zYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9ob2xkaW5nL2hvbGRpbmctc2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFNBQVM7SUFleEM7O09BRUc7SUFDSCw0QkFBNEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1RSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsT0FBcUI7UUFDcEMsT0FBTyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBeENDO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQzs0Q0FDN0M7QUFHdkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3lDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlIH0gZnJvbSAnLi9ob2xkaW5nLXRyYWRlJztcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tICcuLi9maWxlJztcbmltcG9ydCB7IEFzc2V0U2FsZSB9IGZyb20gJy4uL2Fzc2V0LXNhbGUnO1xuXG4vKipcbiAqIEBUT0RPIHZpayByZW5hbWUgdG8gSG9sZGluZ1RyYWRlUGFyY2VsIHdoZW4gYmFja2VuZCByZWFkeVxuICovXG5leHBvcnQgY2xhc3MgSG9sZGluZ1NhbGUgZXh0ZW5kcyBBc3NldFNhbGUge1xuICBxdWFudGl0eTogbnVtYmVyO1xuICBwcmljZTogbnVtYmVyO1xuICBmZWU6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcblxuICAvKipcbiAgICogQFRPRE8gdmlrIDQ1MjEgcmVtb3ZlXG4gICAqL1xuICBAVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+ICh7IGlkOiB2YWx1ZS5pZCB9KSwgeyB0b1BsYWluT25seTogdHJ1ZSB9KVxuICBob2xkaW5nPzogSG9sZGluZ1RyYWRlO1xuXG4gIEBUeXBlKCgpID0+IEFwcEZpbGUpXG4gIGZpbGU6IEFwcEZpbGU7XG5cbiAgLyoqXG4gICAqIG5ldENhcGl0YWxHYWluIGlzIGRpZmZlcmVudCBmcm9tIGdyb3NzQ2FwaXRhbEdhaW4gb25seSB3aGVuIDEgeWVhciBydWxlIGFwcGxpZWRcbiAgICovXG4gIGlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NDYXBpdGFsR2FpbiAhPT0gdGhpcy5uZXRDYXBpdGFsR2FpbjtcbiAgfVxuXG4gIGdldCBjb25jZXNzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZSgpID8gJzUwJSAoMSB5ZWFyIHJ1bGUpJyA6ICdOb25lJztcbiAgfVxuXG4gIGdldENvc3RCYXNlKGhvbGRpbmc6IEhvbGRpbmdUcmFkZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHVyY2hhc2VQcmljZShob2xkaW5nKSArIGhvbGRpbmcuZmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1cmNoYXNlIHByaWNlIG9mIHNvbGQgaXRlbXNcbiAgICovXG4gIGdldFB1cmNoYXNlUHJpY2UoaG9sZGluZzogSG9sZGluZ1RyYWRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaG9sZGluZy5wcmljZSAqIHRoaXMucXVhbnRpdHk7XG4gIH1cblxuICAvKipcbiAgICogdG90YWwgcHJpY2Ugb2Ygc2FsZVxuICAgKi9cbiAgZ2V0IG5ldENvc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb3N0IC0gdGhpcy5mZWU7XG4gIH1cblxuICAvKipcbiAgICogdG90YWwgcHJpY2Ugb2Ygc2FsZSB3aXRob3V0IGZlZVxuICAgKi9cbiAgZ2V0IGNvc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcmljZSAqIHRoaXMucXVhbnRpdHk7XG4gIH1cbn1cbiJdfQ==
35
+ ], HoldingSale.prototype, "holdingType", void 0);
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy1zYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9ob2xkaW5nL2hvbGRpbmctc2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFNBQVM7SUFZeEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBcUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxPQUFxQjtRQUNwQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBOUJDO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztnREFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBIb2xkaW5nVHJhZGUgfSBmcm9tICcuL2hvbGRpbmctdHJhZGUnO1xuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgQXNzZXRTYWxlIH0gZnJvbSAnLi4vYXNzZXQtc2FsZSc7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSB9IGZyb20gJy4vaG9sZGluZy10eXBlJztcblxuLyoqXG4gKiBAVE9ETyB2aWsgcmVuYW1lIHRvIEhvbGRpbmdUcmFkZVBhcmNlbCB3aGVuIGJhY2tlbmQgcmVhZHlcbiAqL1xuZXhwb3J0IGNsYXNzIEhvbGRpbmdTYWxlIGV4dGVuZHMgQXNzZXRTYWxlIHtcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgcHJpY2U6IG51bWJlcjtcbiAgY29zdEJhc2U6IG51bWJlcjtcbiAgbWFya2V0VmFsdWU6IG51bWJlcjtcbiAgaXNIYWxmRXhlbXB0aW9uOiBib29sZWFuO1xuICBvd25lcnNoaXBQZXJjZW50OiBudW1iZXI7XG4gIGlzVGF4RnJlZTogYm9vbGVhbjtcblxuICBAVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+ICh7IGlkOiB2YWx1ZS5pZCB9KSwgeyB0b1BsYWluT25seTogdHJ1ZSB9KVxuICBob2xkaW5nVHlwZTogSG9sZGluZ1R5cGU7XG5cbiAgZ2V0IGNvbmNlc3Npb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0hhbGZFeGVtcHRpb24gPyAnNTAlICgxIHllYXIgcnVsZSknIDogJ05vbmUnO1xuICB9XG5cbiAgZ2V0Q29zdEJhc2UoaG9sZGluZzogSG9sZGluZ1RyYWRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQdXJjaGFzZVByaWNlKGhvbGRpbmcpICsgaG9sZGluZy5mZWU7XG4gIH1cblxuICAvKipcbiAgICogUHVyY2hhc2UgcHJpY2Ugb2Ygc29sZCBpdGVtc1xuICAgKi9cbiAgZ2V0UHVyY2hhc2VQcmljZShob2xkaW5nOiBIb2xkaW5nVHJhZGUpOiBudW1iZXIge1xuICAgIHJldHVybiBob2xkaW5nLnByaWNlICogdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0b3RhbCBwcmljZSBvZiBzYWxlXG4gICAqL1xuICBnZXQgbmV0Q29zdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIHRvdGFsIHByaWNlIG9mIHNhbGUgd2l0aG91dCBmZWVcbiAgICovXG4gIGdldCBjb3N0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2UgKiB0aGlzLnF1YW50aXR5O1xuICB9XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { __decorate } from "tslib";
2
- import { Type } from 'class-transformer';
2
+ import { Expose, Transform, Type, plainToClass } 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 } from '../../db/Enums';
8
+ import { HoldingTradeTypeEnum, HoldingTypeCategoryEnum } from '../../db/Enums';
9
9
  export class HoldingTrade extends AbstractModel {
10
10
  constructor() {
11
11
  super(...arguments);
@@ -59,4 +59,22 @@ __decorate([
59
59
  __decorate([
60
60
  Type(() => AppFile)
61
61
  ], HoldingTrade.prototype, "file", void 0);
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLElBQUksRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUEvQzs7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsU0FBSSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQXdEbEMsQ0FBQztJQXZDQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQVcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNwRixDQUFDO0NBQ0Y7QUFyREM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNOO0FBTVg7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNDO0FBR3pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQzswQ0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9zZSwgVHJhbnNmb3JtLCBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZSB9IGZyb20gJy4vaG9sZGluZy10eXBlJztcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tICcuLi9maWxlJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7IEhvbGRpbmdUcmFkZVR5cGVFbnVtLCBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmdUcmFkZSBleHRlbmRzIEFic3RyYWN0TW9kZWwge1xuICBpc1RheEZyZWUgPSBmYWxzZTtcbiAgcXVhbnRpdHkgPSAwO1xuICBvd25lcnNoaXBQZXJjZW50PzogbnVtYmVyO1xuICBwcmljZSA9IDA7XG4gIGZlZTogbnVtYmVyO1xuICB0eXBlID0gSG9sZGluZ1RyYWRlVHlwZUVudW0uQlVZO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGRhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICAvKipcbiAgICogQFRPRE8gdmlrIDQ1MjEgcmVuYW1lIHRvIGhvbGRpbmdcbiAgICovXG4gIEBUeXBlKCgpID0+IEhvbGRpbmdUeXBlKVxuICBob2xkaW5nVHlwZTogSG9sZGluZ1R5cGU7XG5cbiAgQFR5cGUoKCkgPT4gQXBwRmlsZSlcbiAgZmlsZTogQXBwRmlsZTtcblxuICBpc1B1cmNoYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEhvbGRpbmdUcmFkZVR5cGVFbnVtLkJVWTtcbiAgfVxuXG4gIGdldCB0eXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1B1cmNoYXNlKCkgPyAnQnV5JyA6ICdTZWxsJztcbiAgfVxuXG4gIGdldCBzaWduKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNQdXJjaGFzZSgpID8gJycgOiAnLSc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRvdGFsIHB1cmNoYXNpbmcgcHJpY2VcbiAgICovXG4gIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByaWNlICogdGhpcy5xdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgcmVtb3ZlXG4gICAqL1xuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5xdWFudGl0eSAqIHRoaXMuaG9sZGluZ1R5cGUucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBlcmNlbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgYW5kIGJ1eSBwcmljZVxuICAgKiBAVE9ETyB2aWsvYWxleCBubyBuZWVkIHRvIHBhc3MgaG9sZGluZ1R5cGUsIHNob3VsZCBjb21lIGZyb20gYmFja2VuZFxuICAgKi9cbiAgZ2V0IGdyb3d0aENvZWZmaWNpZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaG9sZGluZ1R5cGUucHJpY2UgLyB0aGlzLnByaWNlIC0gMTtcbiAgfVxuXG4gIGhlbGRNb3JlWWVhcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB5ZWFyVGltZTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTtcblxuICAgIHJldHVybiAobmV3IEZpbmFuY2lhbFllYXIoKS5zdGFydERhdGUuZ2V0VGltZSgpIC0gdGhpcy5kYXRlLmdldFRpbWUoKSkgPiB5ZWFyVGltZTtcbiAgfVxufVxuIl19
62
+ __decorate([
63
+ Transform(({ obj }) => {
64
+ const holdingType = plainToClass(HoldingType, obj.holdingType);
65
+ if (holdingType) {
66
+ return holdingType.isOther() ? null : holdingType.category;
67
+ }
68
+ if (obj.category) {
69
+ return [
70
+ HoldingTypeCategoryEnum.COLLECTIBLE,
71
+ HoldingTypeCategoryEnum.UNLISTED_STOCK,
72
+ HoldingTypeCategoryEnum.UNLISTED_UNIT,
73
+ HoldingTypeCategoryEnum.OTHER
74
+ ].includes(obj.category) ? null : obj.category;
75
+ }
76
+ return HoldingTypeCategoryEnum.STOCK;
77
+ }, { toClassOnly: true }),
78
+ Expose({ toClassOnly: true })
79
+ ], HoldingTrade.prototype, "category", void 0);
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10cmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLXRyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUEvQzs7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRVYsU0FBSSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQTZFbEMsQ0FBQztJQTVEQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQVcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNwRixDQUFDO0NBc0JGO0FBMUVDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDTjtBQU1YO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztpREFDQztBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7MENBQ047QUE2RGlCO0lBZjlCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUNyQixNQUFNLFdBQVcsR0FBZ0IsWUFBWSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDM0UsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO1NBQzNEO1FBQ0QsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0wsdUJBQXVCLENBQUMsV0FBVztnQkFDbkMsdUJBQXVCLENBQUMsY0FBYztnQkFDdEMsdUJBQXVCLENBQUMsYUFBYTtnQkFDckMsdUJBQXVCLENBQUMsS0FBSzthQUM5QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztTQUNoRDtRQUNELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7OENBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3NlLCBUcmFuc2Zvcm0sIFR5cGUsIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IEhvbGRpbmdUeXBlIH0gZnJvbSAnLi9ob2xkaW5nLXR5cGUnO1xuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgSG9sZGluZ1RyYWRlVHlwZUVudW0sIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1RyYWRlIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGlzVGF4RnJlZSA9IGZhbHNlO1xuICBxdWFudGl0eSA9IDA7XG4gIG93bmVyc2hpcFBlcmNlbnQ/OiBudW1iZXI7XG4gIHByaWNlID0gMDtcbiAgZmVlOiBudW1iZXI7XG4gIHR5cGUgPSBIb2xkaW5nVHJhZGVUeXBlRW51bS5CVVk7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgNDUyMSByZW5hbWUgdG8gaG9sZGluZ1xuICAgKi9cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1R5cGUpXG4gIGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZTtcblxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxuICBmaWxlOiBBcHBGaWxlO1xuXG4gIGlzUHVyY2hhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSG9sZGluZ1RyYWRlVHlwZUVudW0uQlVZO1xuICB9XG5cbiAgZ2V0IHR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzUHVyY2hhc2UoKSA/ICdCdXknIDogJ1NlbGwnO1xuICB9XG5cbiAgZ2V0IHNpZ24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1B1cmNoYXNlKCkgPyAnJyA6ICctJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2luZyBwcmljZVxuICAgKi9cbiAgZ2V0IHRvdGFsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2UgKiB0aGlzLnF1YW50aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayByZW1vdmVcbiAgICovXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnF1YW50aXR5ICogdGhpcy5ob2xkaW5nVHlwZS5wcmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcGVyY2VudCBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgYnV5IHByaWNlXG4gICAqIEBUT0RPIHZpay9hbGV4IG5vIG5lZWQgdG8gcGFzcyBob2xkaW5nVHlwZSwgc2hvdWxkIGNvbWUgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBnZXQgZ3Jvd3RoQ29lZmZpY2llbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ob2xkaW5nVHlwZS5wcmljZSAvIHRoaXMucHJpY2UgLSAxO1xuICB9XG5cbiAgaGVsZE1vcmVZZWFyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHllYXJUaW1lOiBudW1iZXIgPSAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1O1xuXG4gICAgcmV0dXJuIChuZXcgRmluYW5jaWFsWWVhcigpLnN0YXJ0RGF0ZS5nZXRUaW1lKCkgLSB0aGlzLmRhdGUuZ2V0VGltZSgpKSA+IHllYXJUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFydGVtL0FsZXggbG9va3MgYmFkLCBjb21lIHVwIHdpdGggYSBiZXR0ZXIgc29sdXRpb25cbiAgICogZ2V0IGN1cnJlbnQgY2F0ZWdvcnksIGluIGhvbGRpbmcgd2UgYXJlIGludGVyZXN0ZWQgaW4gMyBtYWluIGNhdGVnb3JpZXM6IHN0b2NrL2NyeXB0by9vdGhlclxuICAgKi9cbiAgQFRyYW5zZm9ybSgoeyBvYmogfSkgPT4ge1xuICAgIGNvbnN0IGhvbGRpbmdUeXBlOiBIb2xkaW5nVHlwZSA9IHBsYWluVG9DbGFzcyhIb2xkaW5nVHlwZSwgb2JqLmhvbGRpbmdUeXBlKVxuICAgIGlmIChob2xkaW5nVHlwZSkge1xuICAgICAgcmV0dXJuIGhvbGRpbmdUeXBlLmlzT3RoZXIoKSA/IG51bGwgOiBob2xkaW5nVHlwZS5jYXRlZ29yeVxuICAgIH1cbiAgICBpZiAob2JqLmNhdGVnb3J5KSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5DT0xMRUNUSUJMRSxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfU1RPQ0ssXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLlVOTElTVEVEX1VOSVQsXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLk9USEVSXG4gICAgICBdLmluY2x1ZGVzKG9iai5jYXRlZ29yeSkgPyBudWxsIDogb2JqLmNhdGVnb3J5O1xuICAgIH1cbiAgICByZXR1cm4gSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uU1RPQ0s7XG4gIH0sIHsgdG9DbGFzc09ubHk6IHRydWUgfSlcbiAgQEV4cG9zZSh7IHRvQ2xhc3NPbmx5OiB0cnVlIH0pIGNhdGVnb3J5OiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bTtcbn1cbiJdfQ==
@@ -329,4 +329,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
329
329
  type: Inject,
330
330
  args: ['environment']
331
331
  }] }] });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBQ2pDLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFbEU7Ozs7Ozs7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LE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWhZbUIsV0FBVyxrQkEwQ1gsYUFBYTttSEExQ2IsV0FBVyxjQUZuQixNQUFNOzs0RkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBMkNjLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLCBTc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwsIE9ic2VydmFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudDIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kIH0gZnJvbSAnLi9yZXN0LW1ldGhvZC50eXBlJztcbmltcG9ydCB7IEh0dHBNZXRob2QgfSBmcm9tICcuL2h0dHAtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IEhUVFBfRVJST1JfTUVTU0FHRVMgfSBmcm9tICcuL2h0dHAtZXJyb3ItbWVzc2FnZXMuY29uc3QnO1xuXG4vKipcbiAqIEBUT0RPIHJlZmFjdG9yIHRvIGJlaGF2aW9yIHN1YmplY3Q/XG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQ29sbGVjdGlvbk1vZGVsIC0gZW50aXR5IGNvbGxlY3Rpb24gY2xhc3NcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdFNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWwsIENvbGxlY3Rpb25Nb2RlbCBleHRlbmRzIENvbGxlY3Rpb248TW9kZWw+PlxuICBleHRlbmRzIERhdGFTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwsIENvbGxlY3Rpb25Nb2RlbD4ge1xuXG4gIC8qKlxuICAgKiBVcmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW5kcG9pbnRVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogU3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxDb2xsZWN0aW9uTW9kZWw+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbWV0aG9kcyB1bmF2YWlsYWJsZSBmb3IgY3VycmVudCBBUElcbiAgICogQFRPRE8gQWxleDogYWRkIGFuZCBoYW5kbGUgZW5hYmxlZCBtZXRob2RzIHRvb1xuICAgKiBAVE9ETyBBbGV4OiBkaXNhYmxlIGJhdGNoIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gW107XG4gIHByb3RlY3RlZCBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlID0gaW5qZWN0KFNzZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlID0gaW5qZWN0KEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UpO1xuICAvKipcbiAgICogYWRkcyBuZXcgZW50aXRpZXMgdG8gdGhlIGJlZ2lubmluZyB3aGVuIHRydWVcbiAgICogQFRPRE8gbWFrZSB0cnVlIGJ5IGRlZmF1bHQgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG9yZGVyQnlEZXNjID0gZmFsc2U7XG5cbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuICBtZXJjdXJlVG9waWM6IHN0cmluZztcbiAgLyoqXG4gICAqIGZsYWcgdG8gdXNlIGVycm9yIG1lc3NhZ2VzIGZyb20gYXBpIG9yIGRlZmF1bHQgb25lc1xuICAgKiBAVE9ETzogVFQtNDY0MiBjaGVjayBjdXN0b21IdHRwRXJyb3JNZXNzYWdlcyBmaXggY2hhbmdlIHRvIGJhY2tlbmQgZXJyb3JzXG4gICAqL1xuICBwcm90ZWN0ZWQgdXNlQmFja2VuZEVycm9yID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG1hcHBpbmcgd2l0aCBIVFRQIGVycm9ycyBjb2RlcyBhbmQgZ2VuZXJhbCBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGh0dHBFcnJvck1lc3NhZ2VzOiB7W2tleTogbnVtYmVyXTogc3RyaW5nfTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmh0dHBFcnJvck1lc3NhZ2VzID0geyAuLi5IVFRQX0VSUk9SX01FU1NBR0VTLCAuLi50aGlzLmdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCkgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy5lbmRwb2ludFVyaX1gO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLnNldENhY2hlKGRhdGEpO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZWZyZXNoQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHBlcmZvcm0gYSBzaGFsbG93IGNvcHkgb2YgdGhlIGVtaXR0ZWQgZGF0YSB0byBtYWtlIGl0IGltbXV0YWJsZVxuICAgKi9cbiAgZ2V0Q2FjaGVTdWJqZWN0T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoY2FjaGUpID0+IGNsb25lRGVlcChjYWNoZSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGF0YSBmcm9tIGJhY2tlbmQgYW5kIGZpbGwgdGhlIGNhY2hlXG4gICAqL1xuICBwcm90ZWN0ZWQgZmV0Y2gocGF0aCA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdnZXQnKTtcblxuICAgIGlmICghdGhpcy5oYXNSb2xlcygpKSB7XG4gICAgICB0aGlzLnNldENhY2hlKFtdLCB0cnVlKTtcbiAgICAgIHJldHVybiB0aGlzLmdldENhY2hlU3ViamVjdE9ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgY2FjaGUgYXMgZW1wdHkgY29sbGVjdGlvbiB0byBhdm9pZCBtdWx0aXBsZSByZXF1ZXN0cyBiZWZvcmUgY2FjaGUgZmlsbGVkXG4gICAgdGhpcy5zZXRDYWNoZShbXSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQocGF0aClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QgfCBvYmplY3RbXSkgPT4gQXJyYXkuaXNBcnJheShyZXNwb25zZSkgPyByZXNwb25zZSA6IHRvQXJyYXkocmVzcG9uc2UpKSxcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICB0aGlzLnNldENhY2hlKHJlc3BvbnNlLCB0cnVlKTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmNhY2hlO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8Q29sbGVjdGlvbk1vZGVsPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLmZldGNoKHBhdGgpLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGVTdWJqZWN0T2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0QnkocGF0aDogc3RyaW5nLCB2YWx1ZXM6IGFueSk6IE9ic2VydmFibGU8Q29sbGVjdGlvbk1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShtYXAoKHByb2plY3RzKSA9PiBwcm9qZWN0cy5maWx0ZXJCeShwYXRoLCB2YWx1ZXMpKSk7XG4gIH1cblxuICBnZXRGaXJzdCgpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZ2V0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpXG4gICAgKTtcbiAgfVxuXG4gIGhhc0luQ2FjaGUoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Q2FjaGUoKT8uZmluZEJ5KCdpZCcsIGlkKTtcbiAgfVxuXG4gIGdldEFycmF5KCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24udG9BcnJheSgpKSk7XG4gIH1cblxuICBnZXRBcnJheUJ5KHBhdGg6IHN0cmluZywgdmFsdWVzOiBhbnkpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeShwYXRoLCB2YWx1ZXMpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24udG9BcnJheSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IE1vZGVsIGluc3RhbmNlIGluIGRhdGFiYXNlXG4gICAqL1xuICBwb3N0KG1vZGVsOiBNb2RlbCwgcGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncG9zdCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHBhdGgsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbXVsdGlwbGUgbmV3IE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcG9zdEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3RCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgYW4gZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dChtb2RlbDogTW9kZWwsIHBhdGggPSBgJHt0aGlzLmFwaVVybH0vJHttb2RlbC5pZH1gKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQocGF0aCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncHV0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIG11bHRpcGxlIGV4aXN0aW5nIE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHV0QmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3B1dCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIE1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwsIHBhdGggPSBgJHt0aGlzLmFwaVVybH0vJHttb2RlbC5pZH1gKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShwYXRoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbbW9kZWxdLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbXVsdGlwbGUgTW9kZWwgaW5zdGFuY2VzIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZUJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2RlbGV0ZUJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9L2RlbGV0ZWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShtb2RlbHMsICdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIG1ldGhvZCB3aXRoIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHJlZGVmaW5lZCBpbiBvdGhlciBjbGFzc2VzIHRvIGN1c3RvbWl6ZSBodHRwRXJyb3JNZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCk6IFJlY29yZDxudW1iZXIsIHN0cmluZz4ge1xuICAgIHJldHVybiB7fVxuICB9XG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZXJyb3JzIC0gc2hvd3MgZXJyb3IgaW4gdG9hc3RcbiAgICogYW5kIHRocm93cyBlcnJvciBmdXJ0aGVyXG4gICAqIEBwYXJhbSBlcnJvciAtIGFueSBiYWNrZW5kIGVycm9yXG4gICAqIEB0aHJvd3MgSHR0cEVycm9yUmVzcG9uc2UgfCBFcnJvciAtIEFsd2F5cyB0aHJvd3MgdGhlIGVycm9yIGZ1cnRoZXIgYXMgYW4gT2JzZXJ2YWJsZTxuZXZlcj5cbiAgICovXG4gIGhhbmRsZUVycm9yKGVycm9yOiB1bmtub3duKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGlmICh0aGlzLnVzZUJhY2tlbmRFcnJvcikge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcihlcnJvci5lcnJvci5tYXAoKGVycm9yOiB7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiBlcnJvci5tZXNzYWdlKS5qb2luKCcgJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IodGhpcy5odHRwRXJyb3JNZXNzYWdlc1tlcnJvci5zdGF0dXNdIHx8ICdVbmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZGF0YSAtIHVwZGF0ZSBjYWNoZSBhbmQgZGlzcGF0Y2ggZXZlbnQgaWYgaXQgaXMgbmVlZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2U6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCkge1xuICAgIGlmICh0aGlzLmdldENhY2hlKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cGRhdGVDYWNoZShyZXNwb25zZSwgbWV0aG9kKTtcbiAgICB9XG5cbiAgICAvLyBkaXNwYXRjaCBldmVudCBmb3IgaW50ZXJlc3RlZCBzZXJ2aWNlc1xuICAgIGlmIChyZXNwb25zZVswXSBpbnN0YW5jZW9mIE9ic2VydmFibGVNb2RlbCkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1ldGhvZCwgcmVzcG9uc2UgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlTW9kZWxbXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aXRoIHBhc3NlZCBpdGVtcy4gQWRkL1VwZGF0ZSBkZXRlY3RzIGF1dG9tYXRpY2FsbHksIERlbGV0ZSB2aWEgb3B0aW9uYWwgZmxhZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUNhY2hlKGl0ZW1zOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QpOiB2b2lkIHtcbiAgICBsZXQgY2FjaGU6IENvbGxlY3Rpb25Nb2RlbDtcblxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLm9yZGVyQnlEZXNjID8gdGhpcy5jYWNoZS51bnNoaWZ0KC4uLml0ZW1zKSA6IHRoaXMuY2FjaGUucHVzaCguLi5pdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwdXQnOlxuICAgICAgICAvLyBAVE9ETyBBbGV4IG9sZCBpbnN0YW5jZVxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBNb2RlbCkgPT4ge1xuICAgICAgICAgIGNhY2hlID0gdGhpcy5jYWNoZS5yZXBsYWNlQnkoJ2lkJywgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlbW92ZUJ5KCdpZCcsIGl0ZW1zLm1hcCgoaXRlbTogTW9kZWwpID0+IGl0ZW0uaWQpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICAgIGNhY2hlID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIGl0ZW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldENhY2hlKGNhY2hlLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW5kIGRpc3BhdGNoIHJlc3QgZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkaXNwYXRjaEV2ZW50KG1ldGhvZDogSHR0cE1ldGhvZCwgaXRlbXM6IE9ic2VydmFibGVNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnROYW1lOiBzdHJpbmcgPSB0aGlzLm1vZGVsQ2xhc3MuZ2V0RXZlbnROYW1lKG1ldGhvZCk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoMihuZXcgQXBwRXZlbnQyKGV2ZW50TmFtZSwgaXRlbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtZXRob2QgaXMgbm90IGRpc2FibGVkLiBUaHJvdyBleGNlcHRpb24gb3RoZXJ3aXNlLlxuICAgKiBTb21lIGVudGl0aWVzIGRvZXMgbm90IGhhdmUgZW5kcG9pbnRzIGZvciBhbGwgbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQWNjZXNzRXJyb3IobWV0aG9kOiBSZXN0TWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9KCkgaXMgbm90IGFsbG93ZWQgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBodHRwIGV2ZW50cyBhbmQgcnVuIGNhbGxiYWNrLlxuICAgKiBDU0UgLSBDbGVpbnQgU2VudCBFdmVudHNcbiAgICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAgICogQHBhcmFtIG1ldGhvZHMgVGhlIGxpc3Qgb2YgaHR0cCBtZXRob2RzIHNob3VsZCBiZSBsaXN0ZW5lZCBmb3JcbiAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCB0cmlnZ2VyZWRcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5DU0UobW9kZWxDbGFzczogdHlwZW9mIE9ic2VydmFibGVNb2RlbCwgY2FsbGJhY2s6IEZ1bmN0aW9uLCBtZXRob2RzOiBIdHRwTWV0aG9kW10gPSBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgdXNlciBoYXMgc3Vic2NyaXB0aW9uIHJvbGUgdG8gYWNjZXNzIGFwaVxuICAgKi9cbiAgaGFzUm9sZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnJvbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhaW50ZXJzZWN0aW9uKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvbGVzJykpLCB0aGlzLnJvbGVzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBTZXJ2ZXItU2VudCBFdmVudHMgKFNTRSkgb24gdGhlIHNwZWNpZmllZCBNZXJjdXJlIHRvcGljXG4gICAqL1xuICBsaXN0ZW5TU0UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3NlU2VydmljZS5vbih0aGlzLm1lcmN1cmVUb3BpYykucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICBsZXQgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICAgICAgICBpZiAobW9kZWwuaWQpIHtcbiAgICAgICAgICBtZXRob2QgPSB0aGlzLmhhc0luQ2FjaGUobW9kZWwuaWQpID8gJ3B1dCcgOiAncG9zdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWV0aG9kID0gJ2RlbGV0ZSc7XG4gICAgICAgICAgLy8gd2UgZ290IGVtcHR5IGJvZHkgd2hlbiBpdGVtIGRlbGV0ZWQsIHNvIHdlIHNob3VsZCBnZXQgaWQgZnJvbSBBcGkgUGxhdGZvcm0gZGF0YSAoQGlkKVxuICAgICAgICAgIG1vZGVsID0gbWVyZ2UobW9kZWwsIHsgaWQ6ICtsYXN0KG1vZGVsWydAaWQnXS5zcGxpdCgnLycpKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IG1ldGhvZCwgbW9kZWwgfTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbY2hhbmdlLm1vZGVsXSwgY2hhbmdlLm1ldGhvZClcbiAgICB9KTtcbiAgfVxufVxuIl19
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBQ2pDLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFbEU7Ozs7Ozs7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LE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWhZbUIsV0FBVyxrQkEwQ1gsYUFBYTttSEExQ2IsV0FBVyxjQUZuQixNQUFNOzs0RkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBMkNjLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLCBTc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwsIE9ic2VydmFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudDIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kIH0gZnJvbSAnLi9yZXN0LW1ldGhvZC50eXBlJztcbmltcG9ydCB7IEh0dHBNZXRob2QgfSBmcm9tICcuL2h0dHAtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IEhUVFBfRVJST1JfTUVTU0FHRVMgfSBmcm9tICcuL2h0dHAtZXJyb3ItbWVzc2FnZXMuY29uc3QnO1xuXG4vKipcbiAqIEBUT0RPIHJlZmFjdG9yIHRvIGJlaGF2aW9yIHN1YmplY3Q/XG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQ29sbGVjdGlvbk1vZGVsIC0gZW50aXR5IGNvbGxlY3Rpb24gY2xhc3NcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdFNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWwsIENvbGxlY3Rpb25Nb2RlbCBleHRlbmRzIENvbGxlY3Rpb248TW9kZWw+PlxuICBleHRlbmRzIERhdGFTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwsIENvbGxlY3Rpb25Nb2RlbD4ge1xuXG4gIC8qKlxuICAgKiBVcmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW5kcG9pbnRVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogU3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxDb2xsZWN0aW9uTW9kZWw+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbWV0aG9kcyB1bmF2YWlsYWJsZSBmb3IgY3VycmVudCBBUElcbiAgICogQFRPRE8gQWxleDogYWRkIGFuZCBoYW5kbGUgZW5hYmxlZCBtZXRob2RzIHRvb1xuICAgKiBAVE9ETyBBbGV4OiBkaXNhYmxlIGJhdGNoIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gW107XG4gIHByb3RlY3RlZCBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlID0gaW5qZWN0KFNzZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlID0gaW5qZWN0KEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UpO1xuICAvKipcbiAgICogYWRkcyBuZXcgZW50aXRpZXMgdG8gdGhlIGJlZ2lubmluZyB3aGVuIHRydWVcbiAgICogQFRPRE8gbWFrZSB0cnVlIGJ5IGRlZmF1bHQgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG9yZGVyQnlEZXNjID0gZmFsc2U7XG5cbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuICBtZXJjdXJlVG9waWM6IHN0cmluZztcbiAgLyoqXG4gICAqIGZsYWcgdG8gdXNlIGVycm9yIG1lc3NhZ2VzIGZyb20gYXBpIG9yIGRlZmF1bHQgb25lc1xuICAgKiBAVE9ETzogVFQtNDY0MiBjaGVjayBjdXN0b21IdHRwRXJyb3JNZXNzYWdlcyBmaXggY2hhbmdlIHRvIGJhY2tlbmQgZXJyb3JzXG4gICAqL1xuICBwcm90ZWN0ZWQgdXNlQmFja2VuZEVycm9yID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG1hcHBpbmcgd2l0aCBIVFRQIGVycm9ycyBjb2RlcyBhbmQgZ2VuZXJhbCBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGh0dHBFcnJvck1lc3NhZ2VzOiB7W2tleTogbnVtYmVyXTogc3RyaW5nfTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmh0dHBFcnJvck1lc3NhZ2VzID0geyAuLi5IVFRQX0VSUk9SX01FU1NBR0VTLCAuLi50aGlzLmdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCkgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy5lbmRwb2ludFVyaX1gO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLnNldENhY2hlKGRhdGEpO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZWZyZXNoQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHBlcmZvcm0gYSBzaGFsbG93IGNvcHkgb2YgdGhlIGVtaXR0ZWQgZGF0YSB0byBtYWtlIGl0IGltbXV0YWJsZVxuICAgKi9cbiAgZ2V0Q2FjaGVTdWJqZWN0T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoY2FjaGUpID0+IGNsb25lRGVlcChjYWNoZSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGF0YSBmcm9tIGJhY2tlbmQgYW5kIGZpbGwgdGhlIGNhY2hlXG4gICAqL1xuICBmZXRjaChwYXRoID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2dldCcpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1JvbGVzKCkpIHtcbiAgICAgIHRoaXMuc2V0Q2FjaGUoW10sIHRydWUpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGVTdWJqZWN0T2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFNldCBjYWNoZSBhcyBlbXB0eSBjb2xsZWN0aW9uIHRvIGF2b2lkIG11bHRpcGxlIHJlcXVlc3RzIGJlZm9yZSBjYWNoZSBmaWxsZWRcbiAgICB0aGlzLnNldENhY2hlKFtdKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChwYXRoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCB8IG9iamVjdFtdKSA9PiBBcnJheS5pc0FycmF5KHJlc3BvbnNlKSA/IHJlc3BvbnNlIDogdG9BcnJheShyZXNwb25zZSkpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UsIHRydWUpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGU7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgZ2V0KHBhdGg6IHN0cmluZyA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2gocGF0aCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDYWNoZVN1YmplY3RPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgocHJvamVjdHMpID0+IHByb2plY3RzLmZpbHRlckJ5KHBhdGgsIHZhbHVlcykpKTtcbiAgfVxuXG4gIGdldEZpcnN0KCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdnZXQnKTtcblxuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi5maXJzdClcbiAgICApO1xuICB9XG5cbiAgaGFzSW5DYWNoZShpZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRDYWNoZSgpPy5maW5kQnkoJ2lkJywgaWQpO1xuICB9XG5cbiAgZ2V0QXJyYXkoKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi50b0FycmF5KCkpKTtcbiAgfVxuXG4gIGdldEFycmF5QnkocGF0aDogc3RyaW5nLCB2YWx1ZXM6IGFueSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEJ5KHBhdGgsIHZhbHVlcykucGlwZShtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi50b0FycmF5KCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3QobW9kZWw6IE1vZGVsLCBwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QocGF0aCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncG9zdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBtdWx0aXBsZSBuZXcgTW9kZWwgaW5zdGFuY2VzIGluIGRhdGFiYXNlXG4gICAqL1xuICBwb3N0QmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncG9zdEJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5hcGlVcmwsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbFtdID0gcmVzcG9uc2UubWFwKChpdGVtOiBvYmplY3QpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0LCAncG9zdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBhbiBleGlzdGluZyBNb2RlbCBpbnN0YW5jZSBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHV0KG1vZGVsOiBNb2RlbCwgcGF0aCA9IGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwdXQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbXVsdGlwbGUgZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2VzIGluIGRhdGFiYXNlXG4gICAqL1xuICBwdXRCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwdXRCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5hcGlVcmwsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbFtdID0gcmVzcG9uc2UubWFwKChpdGVtOiBvYmplY3QpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0LCAncHV0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgTW9kZWwgaW5zdGFuY2UgZnJvbSBkYXRhYmFzZVxuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBNb2RlbCwgcGF0aCA9IGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGUnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHBhdGgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFttb2RlbF0sICdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBtdWx0aXBsZSBNb2RlbCBpbnN0YW5jZXMgZnJvbSBkYXRhYmFzZVxuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlQmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vZGVsZXRlYCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKG1vZGVscywgJ2RlbGV0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogbWV0aG9kIHdpdGggbWVzc2FnZXMgdGhhdCBjYW4gYmUgcmVkZWZpbmVkIGluIG90aGVyIGNsYXNzZXMgdG8gY3VzdG9taXplIGh0dHBFcnJvck1lc3NhZ2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Q3VzdG9tSHR0cEVycm9yTWVzc2FnZXMoKTogUmVjb3JkPG51bWJlciwgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHt9XG4gIH1cbiAgLyoqXG4gICAqIEhhbmRsZSByZXNwb25zZSBlcnJvcnMgLSBzaG93cyBlcnJvciBpbiB0b2FzdFxuICAgKiBhbmQgdGhyb3dzIGVycm9yIGZ1cnRoZXJcbiAgICogQHBhcmFtIGVycm9yIC0gYW55IGJhY2tlbmQgZXJyb3JcbiAgICogQHRocm93cyBIdHRwRXJyb3JSZXNwb25zZSB8IEVycm9yIC0gQWx3YXlzIHRocm93cyB0aGUgZXJyb3IgZnVydGhlciBhcyBhbiBPYnNlcnZhYmxlPG5ldmVyPlxuICAgKi9cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IHVua25vd24pIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgaWYgKHRoaXMudXNlQmFja2VuZEVycm9yKSB7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yLm1hcCgoZXJyb3I6IHsgbWVzc2FnZTogc3RyaW5nIH0pID0+IGVycm9yLm1lc3NhZ2UpLmpvaW4oJyAnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcih0aGlzLmh0dHBFcnJvck1lc3NhZ2VzW2Vycm9yLnN0YXR1c10gfHwgJ1VuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSByZXNwb25zZSBkYXRhIC0gdXBkYXRlIGNhY2hlIGFuZCBkaXNwYXRjaCBldmVudCBpZiBpdCBpcyBuZWVkZWRcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVSZXNwb25zZShyZXNwb25zZTogTW9kZWxbXSwgbWV0aG9kOiBIdHRwTWV0aG9kKSB7XG4gICAgaWYgKHRoaXMuZ2V0Q2FjaGUoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNhY2hlKHJlc3BvbnNlLCBtZXRob2QpO1xuICAgIH1cblxuICAgIC8vIGRpc3BhdGNoIGV2ZW50IGZvciBpbnRlcmVzdGVkIHNlcnZpY2VzXG4gICAgaWYgKHJlc3BvbnNlWzBdIGluc3RhbmNlb2YgT2JzZXJ2YWJsZU1vZGVsKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobWV0aG9kLCByZXNwb25zZSBhcyB1bmtub3duIGFzIE9ic2VydmFibGVNb2RlbFtdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdpdGggcGFzc2VkIGl0ZW1zLiBBZGQvVXBkYXRlIGRldGVjdHMgYXV0b21hdGljYWxseSwgRGVsZXRlIHZpYSBvcHRpb25hbCBmbGFnXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoaXRlbXM6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCk6IHZvaWQge1xuICAgIGxldCBjYWNoZTogQ29sbGVjdGlvbk1vZGVsO1xuXG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgICBjYWNoZSA9IHRoaXMub3JkZXJCeURlc2MgPyB0aGlzLmNhY2hlLnVuc2hpZnQoLi4uaXRlbXMpIDogdGhpcy5jYWNoZS5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICAgIC8vIEBUT0RPIEFsZXggb2xkIGluc3RhbmNlXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IE1vZGVsKSA9PiB7XG4gICAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlcGxhY2VCeSgnaWQnLCBpdGVtLmlkLCBpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICBjYWNoZSA9IHRoaXMuY2FjaGUucmVtb3ZlQnkoJ2lkJywgaXRlbXMubWFwKChpdGVtOiBNb2RlbCkgPT4gaXRlbS5pZCkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZ2V0JzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q2FjaGUoY2FjaGUudG9BcnJheSgpLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhbmQgZGlzcGF0Y2ggcmVzdCBldmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIGRpc3BhdGNoRXZlbnQobWV0aG9kOiBIdHRwTWV0aG9kLCBpdGVtczogT2JzZXJ2YWJsZU1vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudE5hbWU6IHN0cmluZyA9IHRoaXMubW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKTtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gyKG5ldyBBcHBFdmVudDIoZXZlbnROYW1lLCBpdGVtcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIG1ldGhvZCBpcyBub3QgZGlzYWJsZWQuIFRocm93IGV4Y2VwdGlvbiBvdGhlcndpc2UuXG4gICAqIFNvbWUgZW50aXRpZXMgZG9lcyBub3QgaGF2ZSBlbmRwb2ludHMgZm9yIGFsbCBtZXRob2RzLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVBY2Nlc3NFcnJvcihtZXRob2Q6IFJlc3RNZXRob2QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWRNZXRob2RzLmluY2x1ZGVzKG1ldGhvZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGhvZCAke21ldGhvZH0oKSBpcyBub3QgYWxsb3dlZCBmb3IgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIGh0dHAgZXZlbnRzIGFuZCBydW4gY2FsbGJhY2suXG4gICAqIENTRSAtIENsZWludCBTZW50IEV2ZW50c1xuICAgKiBAcGFyYW0gbW9kZWxDbGFzc1xuICAgKiBAcGFyYW0gbWV0aG9kcyBUaGUgbGlzdCBvZiBodHRwIG1ldGhvZHMgc2hvdWxkIGJlIGxpc3RlbmVkIGZvclxuICAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGV2ZW50IHRyaWdnZXJlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGxpc3RlbkNTRShtb2RlbENsYXNzOiB0eXBlb2YgT2JzZXJ2YWJsZU1vZGVsLCBjYWxsYmFjazogRnVuY3Rpb24sIG1ldGhvZHM6IEh0dHBNZXRob2RbXSA9IFsncG9zdCcsICdwdXQnLCAnZGVsZXRlJ10pOiB2b2lkIHtcbiAgICBjYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQodGhpcyk7XG5cbiAgICBtZXRob2RzLmZvckVhY2goKG1ldGhvZDogSHR0cE1ldGhvZCkgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMihtb2RlbENsYXNzLmdldEV2ZW50TmFtZShtZXRob2QpKS5zdWJzY3JpYmUoKGRhdGE6IE9ic2VydmFibGVNb2RlbFtdKSA9PiB7XG4gICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiB1c2VyIGhhcyBzdWJzY3JpcHRpb24gcm9sZSB0byBhY2Nlc3MgYXBpXG4gICAqL1xuICBoYXNSb2xlcygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMucm9sZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gISFpbnRlcnNlY3Rpb24oSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncm9sZXMnKSksIHRoaXMucm9sZXMpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIFNlcnZlci1TZW50IEV2ZW50cyAoU1NFKSBvbiB0aGUgc3BlY2lmaWVkIE1lcmN1cmUgdG9waWNcbiAgICovXG4gIGxpc3RlblNTRSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zc2VTZXJ2aWNlLm9uKHRoaXMubWVyY3VyZVRvcGljKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgIGxldCBtb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgIGxldCBtZXRob2Q6IEh0dHBNZXRob2Q7XG4gICAgICAgIGlmIChtb2RlbC5pZCkge1xuICAgICAgICAgIG1ldGhvZCA9IHRoaXMuaGFzSW5DYWNoZShtb2RlbC5pZCkgPyAncHV0JyA6ICdwb3N0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZXRob2QgPSAnZGVsZXRlJztcbiAgICAgICAgICAvLyB3ZSBnb3QgZW1wdHkgYm9keSB3aGVuIGl0ZW0gZGVsZXRlZCwgc28gd2Ugc2hvdWxkIGdldCBpZCBmcm9tIEFwaSBQbGF0Zm9ybSBkYXRhIChAaWQpXG4gICAgICAgICAgbW9kZWwgPSBtZXJnZShtb2RlbCwgeyBpZDogK2xhc3QobW9kZWxbJ0BpZCddLnNwbGl0KCcvJykpIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgbWV0aG9kLCBtb2RlbCB9O1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtjaGFuZ2UubW9kZWxdLCBjaGFuZ2UubWV0aG9kKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -9489,18 +9489,18 @@ class HoldingSaleCollection extends ExportableCollection {
9489
9489
  getExportBody(holdingsById) {
9490
9490
  return this.items.map((sale) => [
9491
9491
  plainToClass(ExportCell, {
9492
- value: holdingsById.get(sale.holding.id).holdingType.ticker || '',
9492
+ value: holdingsById.get(sale.holdingType.id).holdingType.ticker || '',
9493
9493
  type: ExportCellTypeEnum.STRING
9494
9494
  }),
9495
9495
  plainToClass(ExportCell, {
9496
- value: holdingsById.get(sale.holding.id).holdingType.categoryLabel,
9496
+ value: holdingsById.get(sale.holdingType.id).holdingType.categoryLabel,
9497
9497
  type: ExportCellTypeEnum.STRING
9498
9498
  }),
9499
- plainToClass(ExportCell, { value: holdingsById.get(sale.holding.id)?.date, type: ExportCellTypeEnum.DATE }),
9499
+ plainToClass(ExportCell, { value: holdingsById.get(sale.holdingType.id)?.date, type: ExportCellTypeEnum.DATE }),
9500
9500
  plainToClass(ExportCell, { value: sale.date, type: ExportCellTypeEnum.DATE }),
9501
- plainToClass(ExportCell, { value: sale.getCostBase(holdingsById.get(sale.holding.id)), type: ExportCellTypeEnum.CURRENCY }),
9501
+ plainToClass(ExportCell, { value: sale.getCostBase(holdingsById.get(sale.holdingType.id)), type: ExportCellTypeEnum.CURRENCY }),
9502
9502
  plainToClass(ExportCell, { value: sale.netCost, type: ExportCellTypeEnum.CURRENCY }),
9503
- plainToClass(ExportCell, { value: holdingsById.get(sale.holding.id).ownershipPercent, type: ExportCellTypeEnum.PERCENT }),
9503
+ plainToClass(ExportCell, { value: holdingsById.get(sale.holdingType.id).ownershipPercent, type: ExportCellTypeEnum.PERCENT }),
9504
9504
  plainToClass(ExportCell, { value: sale.totalCapitalGain, type: ExportCellTypeEnum.CURRENCY }),
9505
9505
  plainToClass(ExportCell, { value: sale.grossCapitalGain, type: ExportCellTypeEnum.CURRENCY }),
9506
9506
  plainToClass(ExportCell, {
@@ -10617,19 +10617,31 @@ __decorate([
10617
10617
  __decorate([
10618
10618
  Type(() => AppFile)
10619
10619
  ], HoldingTrade.prototype, "file", void 0);
10620
+ __decorate([
10621
+ Transform(({ obj }) => {
10622
+ const holdingType = plainToClass(HoldingType, obj.holdingType);
10623
+ if (holdingType) {
10624
+ return holdingType.isOther() ? null : holdingType.category;
10625
+ }
10626
+ if (obj.category) {
10627
+ return [
10628
+ HoldingTypeCategoryEnum.COLLECTIBLE,
10629
+ HoldingTypeCategoryEnum.UNLISTED_STOCK,
10630
+ HoldingTypeCategoryEnum.UNLISTED_UNIT,
10631
+ HoldingTypeCategoryEnum.OTHER
10632
+ ].includes(obj.category) ? null : obj.category;
10633
+ }
10634
+ return HoldingTypeCategoryEnum.STOCK;
10635
+ }, { toClassOnly: true }),
10636
+ Expose({ toClassOnly: true })
10637
+ ], HoldingTrade.prototype, "category", void 0);
10620
10638
 
10621
10639
  /**
10622
10640
  * @TODO vik rename to HoldingTradeParcel when backend ready
10623
10641
  */
10624
10642
  class HoldingSale extends AssetSale {
10625
- /**
10626
- * netCapitalGain is different from grossCapitalGain only when 1 year rule applied
10627
- */
10628
- isOneYearExemptionApplicable() {
10629
- return this.grossCapitalGain !== this.netCapitalGain;
10630
- }
10631
10643
  get concession() {
10632
- return this.isOneYearExemptionApplicable() ? '50% (1 year rule)' : 'None';
10644
+ return this.isHalfExemption ? '50% (1 year rule)' : 'None';
10633
10645
  }
10634
10646
  getCostBase(holding) {
10635
10647
  return this.getPurchasePrice(holding) + holding.fee;
@@ -10644,7 +10656,7 @@ class HoldingSale extends AssetSale {
10644
10656
  * total price of sale
10645
10657
  */
10646
10658
  get netCost() {
10647
- return this.cost - this.fee;
10659
+ return this.marketValue;
10648
10660
  }
10649
10661
  /**
10650
10662
  * total price of sale without fee
@@ -10655,10 +10667,7 @@ class HoldingSale extends AssetSale {
10655
10667
  }
10656
10668
  __decorate([
10657
10669
  Transform(({ value }) => ({ id: value.id }), { toPlainOnly: true })
10658
- ], HoldingSale.prototype, "holding", void 0);
10659
- __decorate([
10660
- Type(() => AppFile)
10661
- ], HoldingSale.prototype, "file", void 0);
10670
+ ], HoldingSale.prototype, "holdingType", void 0);
10662
10671
 
10663
10672
  /**
10664
10673
  * Helper class for holding reinvest functionality.
@@ -24463,6 +24472,7 @@ class DepreciationForm extends TransactionBaseForm {
24463
24472
  class HoldingTradeForm extends AbstractForm {
24464
24473
  constructor(holdingTrade) {
24465
24474
  super({
24475
+ category: new UntypedFormControl(holdingTrade.category),
24466
24476
  isTaxFree: new UntypedFormControl(holdingTrade.isTaxFree, Validators.required),
24467
24477
  type: new UntypedFormControl(holdingTrade.type, Validators.required),
24468
24478
  quantity: new UntypedFormControl(holdingTrade.quantity, [Validators.required, greaterThanValidator(0)]),
@@ -24511,54 +24521,6 @@ class HoldingTradeFilterForm extends AbstractForm {
24511
24521
  }
24512
24522
  }
24513
24523
 
24514
- class HoldingSaleForm extends AbstractForm {
24515
- constructor(sale, holding, type, isResident) {
24516
- super({
24517
- // @TODO Validators.max(holding.currentQuantity + sale.quantity)
24518
- quantity: new UntypedFormControl(sale.quantity, [Validators.required, greaterThanValidator(0)]),
24519
- price: new UntypedFormControl(sale.price || type.price, Validators.required),
24520
- fee: new UntypedFormControl(sale.fee, Validators.required),
24521
- date: new UntypedFormControl(sale.date, Validators.required),
24522
- grossCapitalGain: new UntypedFormControl({ value: sale.grossCapitalGain, disabled: true }),
24523
- netCapitalGain: new UntypedFormControl({ value: sale.netCapitalGain, disabled: true }),
24524
- file: new UntypedFormControl(sale.file)
24525
- }, sale);
24526
- this.holding = holding;
24527
- this.isResident = isResident;
24528
- this.listenEvents();
24529
- this.emitValues();
24530
- }
24531
- listenEvents() {
24532
- combineLatest(['date', 'price', 'quantity', 'fee'].map((field) => this.get(field).valueChanges))
24533
- .subscribe(([date, price, quantity, fee]) => {
24534
- this.updateGainFields(date, price, quantity, fee);
24535
- });
24536
- }
24537
- submit() {
24538
- return super.submit({}, true);
24539
- }
24540
- updateGainFields(date, price, quantity, fee) {
24541
- const grossCapitalGain = this.calculateGrossCapitalGain(price, quantity, fee);
24542
- this.get('grossCapitalGain').setValue(grossCapitalGain);
24543
- this.get('netCapitalGain').setValue(this.calculateNetCapitalGain(grossCapitalGain, date));
24544
- }
24545
- calculateGrossCapitalGain(price, quantity, fee) {
24546
- const fees = quantity * this.holding.fee / this.holding.quantity + fee;
24547
- const totalCapitalGain = (price - this.holding.price) * quantity - fees;
24548
- return totalCapitalGain * this.holding.ownershipPercent / 100;
24549
- }
24550
- calculateNetCapitalGain(grossCapitalGain, date) {
24551
- let netCapitalGain = grossCapitalGain;
24552
- if (this.isOneYearExemptionApplicable(netCapitalGain, date)) {
24553
- netCapitalGain = netCapitalGain / 2;
24554
- }
24555
- return netCapitalGain;
24556
- }
24557
- isOneYearExemptionApplicable(netCapitalGain, date) {
24558
- return this.isResident && netCapitalGain > 0 && moment(date).diff(moment(this.holding.date), 'year') > 0;
24559
- }
24560
- }
24561
-
24562
24524
  class HoldingTypeForm extends AbstractForm {
24563
24525
  constructor(holdingType = plainToClass(HoldingType, {})) {
24564
24526
  super({
@@ -24866,5 +24828,5 @@ var MessagesEnum;
24866
24828
  * Generated bundle index. Do not edit.
24867
24829
  */
24868
24830
 
24869
- export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetForm, BudgetMessagesEnum, BudgetRule, BudgetService, BusinessChartAccountsEnum, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartAccountsValueCollection, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CoreModule, CorelogicMessagesEnum, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleForm, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorTransactionService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentForm, PropertyDocumentMessagesEnum, PropertyDocumentService, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, REPORTS, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, TimezoneEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionTypeEnum, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
24831
+ export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetForm, BudgetMessagesEnum, BudgetRule, BudgetService, BusinessChartAccountsEnum, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartAccountsValueCollection, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CoreModule, CorelogicMessagesEnum, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorTransactionService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentForm, PropertyDocumentMessagesEnum, PropertyDocumentService, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, REPORTS, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, TimezoneEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionTypeEnum, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
24870
24832
  //# sourceMappingURL=taxtank-core.mjs.map