taxtank-core 0.17.10 → 0.17.13

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.
@@ -50,30 +50,6 @@ export class DepreciationService extends RestService {
50
50
  return response || 0;
51
51
  }));
52
52
  }
53
- /**
54
- * @TODO wrong place, move to collection model
55
- */
56
- calculateSummaryAmount(depreciationList) {
57
- return depreciationList.reduce((sum, depreciation) => {
58
- // depreciation may not have forecast item for current financial year
59
- if (!depreciation.currentYearForecast) {
60
- return sum;
61
- }
62
- return sum + depreciation.currentYearForecast.claimAmount;
63
- }, 0);
64
- }
65
- calculateBorrowingExpenses(depreciationList) {
66
- return this.getByIds(depreciationList)
67
- .pipe(map((depreciations) => {
68
- return this.calculateSummaryAmount(depreciations.filter((depreciation) => depreciation.isBorrowingExpense()));
69
- }));
70
- }
71
- calculateDepreciations(depreciationList) {
72
- return this.getByIds(depreciationList)
73
- .pipe(map((depreciations) => {
74
- return this.calculateSummaryAmount(depreciations.filter((depreciation) => !depreciation.isBorrowingExpense()));
75
- }));
76
- }
77
53
  /**
78
54
  * Upload depreciation receipt
79
55
  * @param depreciation for which will be uploaded receipt
@@ -126,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
126
102
  providedIn: 'root'
127
103
  }]
128
104
  }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBUXhGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUEyQztJQUhwRjs7UUFJRSxlQUFVLEdBQXdCLFlBQVksQ0FBQztRQUMvQyxRQUFHLEdBQVcsZUFBZSxDQUFDO0tBOEgvQjtJQTVIQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsWUFBMEI7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGdCQUFnQyxFQUFnQixFQUFFO1lBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMs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QUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQS9IVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gYXMgRGVwcmVjaWF0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uUmVjZWlwdCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLXJlY2VpcHQnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2lhdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxEZXByZWNpYXRpb25CYXNlLCBEZXByZWNpYXRpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgRGVwcmVjaWF0aW9uID0gRGVwcmVjaWF0aW9uO1xuICB1cmw6IHN0cmluZyA9ICdkZXByZWNpYXRpb25zJztcblxuICAvKipcbiAgICogQWRkIGEgc2luZ2xlIGRlcHJlY2lhdGlvblxuICAgKiBAVE9ETyBhZGQgYXV0by1nZW5lcmF0aW9uIGZvciBldmVudHNcbiAgICovXG4gIGFkZChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW2RlcHJlY2lhdGlvbl0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdEZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSk6IERlcHJlY2lhdGlvbiA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkRFUFJFQ0lBVElPTlNfQ1JFQVRFRCwgbmV3RGVwcmVjaWF0aW9uc1swXSkpO1xuICAgICAgICAgIHJldHVybiBuZXdEZXByZWNpYXRpb25zWzBdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbXVsdGlwbGUgZGVwcmVjaWF0aW9uc1xuICAgKiBAVE9ETyBhZGQgYXV0by1nZW5lcmF0aW9uIGZvciBldmVudHNcbiAgICovXG4gIGFkZEJhdGNoKGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbltdKTogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25bXT4ge1xuICAgIHJldHVybiBzdXBlci5hZGRCYXRjaChkZXByZWNpYXRpb25zKS5waXBlKFxuICAgICAgbWFwKChuZXdEZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSk6IERlcHJlY2lhdGlvbltdID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkRFUFJFQ0lBVElPTlNfQ1JFQVRFRCwgbmV3RGVwcmVjaWF0aW9ucykpO1xuICAgICAgICByZXR1cm4gbmV3RGVwcmVjaWF0aW9ucztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRGVwcmVjaWF0aW9ucyBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvVXBkYXRlZExvYW4oKTtcbiAgICB0aGlzLmxpc3RlblRvVmVoaWNsZUNsYWltKCk7XG4gICAgdGhpcy5saXN0ZW5Ub1VwZGF0ZWRCYW5rQWNjb3VudCgpO1xuICB9XG5cbiAgZ2V0T3BlbkJhbGFuY2UoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS9vcGVuaW5nLWJhbGFuY2U/ZmluYW5jaWFsWWVhcj0ke25ldyBGaW5hbmNpYWxZZWFyKCkueWVhcn1gLCBkZXByZWNpYXRpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlIHx8IDA7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHdyb25nIHBsYWNlLCBtb3ZlIHRvIGNvbGxlY3Rpb24gbW9kZWxcbiAgICovXG4gIGNhbGN1bGF0ZVN1bW1hcnlBbW91bnQoZGVwcmVjaWF0aW9uTGlzdDogRGVwcmVjaWF0aW9uW10pOiBudW1iZXIge1xuICAgIHJldHVybiBkZXByZWNpYXRpb25MaXN0LnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKSA9PiB7XG4gICAgICAvLyBkZXByZWNpYXRpb24gbWF5IG5vdCBoYXZlIGZvcmVjYXN0IGl0ZW0gZm9yIGN1cnJlbnQgZmluYW5jaWFsIHllYXJcbiAgICAgIGlmICghZGVwcmVjaWF0aW9uLmN1cnJlbnRZZWFyRm9yZWNhc3QpIHtcbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5jdXJyZW50WWVhckZvcmVjYXN0LmNsYWltQW1vdW50O1xuICAgIH0sIDApO1xuICB9XG5cbiAgY2FsY3VsYXRlQm9ycm93aW5nRXhwZW5zZXMoZGVwcmVjaWF0aW9uTGlzdDogRGVwcmVjaWF0aW9uW10pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmdldEJ5SWRzKGRlcHJlY2lhdGlvbkxpc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVN1bW1hcnlBbW91bnQoZGVwcmVjaWF0aW9ucy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKSA9PiBkZXByZWNpYXRpb24uaXNCb3Jyb3dpbmdFeHBlbnNlKCkpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBjYWxjdWxhdGVEZXByZWNpYXRpb25zKGRlcHJlY2lhdGlvbkxpc3Q6IERlcHJlY2lhdGlvbltdKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeUlkcyhkZXByZWNpYXRpb25MaXN0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uW10pID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVTdW1tYXJ5QW1vdW50KGRlcHJlY2lhdGlvbnMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbikgPT4gIWRlcHJlY2lhdGlvbi5pc0JvcnJvd2luZ0V4cGVuc2UoKSkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgZGVwcmVjaWF0aW9uIHJlY2VpcHRcbiAgICogQHBhcmFtIGRlcHJlY2lhdGlvbiBmb3Igd2hpY2ggd2lsbCBiZSB1cGxvYWRlZCByZWNlaXB0XG4gICAqL1xuICB1cGxvYWRSZWNlaXB0KGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZGVwcmVjaWF0aW9uLmZpbGUpO1xuICAgIGRlcHJlY2lhdGlvbi5yZWNlaXB0ID0gbnVsbDtcblxuICAgIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7ZGVwcmVjaWF0aW9uLmlkfS9yZWNlaXB0c2AsIGZvcm1EYXRhKVxuICAgICAgLnN1YnNjcmliZSgocmVjZWlwdFJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBrZWVwIGZpbGUgYWZ0ZXIgc2F2ZVxuICAgICAgICBkZXByZWNpYXRpb24uZmlsZSA9IG51bGw7XG4gICAgICAgIGRlcHJlY2lhdGlvbi5yZWNlaXB0ID0gcGxhaW5Ub0NsYXNzKERlcHJlY2lhdGlvblJlY2VpcHQsIHJlY2VpcHRSZXNwb25zZSk7XG4gICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgZGVwcmVjaWF0aW9uKTtcbiAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlLnNsaWNlKCkpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byB1cGRhdGVkIGJhbmsgbG9hblxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub1VwZGF0ZWRMb2FuKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5MT0FOX1VQREFURUQsIEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfU0hBUkVfVVBEQVRFRF0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byB1cGRhdGVkIGJhbmsgYWNjb3VudFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub1VwZGF0ZWRCYW5rQWNjb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW0FwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX1VQREFURURdKS5zdWJzY3JpYmUoKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4ge1xuICAgICAgaWYgKGJhbmtBY2NvdW50LmlzUHJvcGVydHlUYW5rKCkpIHtcbiAgICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gdXBkYXRlZCB2ZWhpY2xlIGNsYWltXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvVmVoaWNsZUNsYWltKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0NSRUFURUQsIEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBT3hGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUEyQztJQUhwRjs7UUFJRSxlQUFVLEdBQXdCLFlBQVksQ0FBQztRQUMvQyxRQUFHLEdBQVcsZUFBZSxDQUFDO0tBOEYvQjtJQTVGQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsWUFBMEI7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGdCQUFnQyxFQUFnQixFQUFFO1lBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMs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QUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQS9GVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gYXMgRGVwcmVjaWF0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uUmVjZWlwdCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLXJlY2VpcHQnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2lhdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxEZXByZWNpYXRpb25CYXNlLCBEZXByZWNpYXRpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgRGVwcmVjaWF0aW9uID0gRGVwcmVjaWF0aW9uO1xuICB1cmw6IHN0cmluZyA9ICdkZXByZWNpYXRpb25zJztcblxuICAvKipcbiAgICogQWRkIGEgc2luZ2xlIGRlcHJlY2lhdGlvblxuICAgKiBAVE9ETyBhZGQgYXV0by1nZW5lcmF0aW9uIGZvciBldmVudHNcbiAgICovXG4gIGFkZChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW2RlcHJlY2lhdGlvbl0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdEZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSk6IERlcHJlY2lhdGlvbiA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkRFUFJFQ0lBVElPTlNfQ1JFQVRFRCwgbmV3RGVwcmVjaWF0aW9uc1swXSkpO1xuICAgICAgICAgIHJldHVybiBuZXdEZXByZWNpYXRpb25zWzBdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbXVsdGlwbGUgZGVwcmVjaWF0aW9uc1xuICAgKiBAVE9ETyBhZGQgYXV0by1nZW5lcmF0aW9uIGZvciBldmVudHNcbiAgICovXG4gIGFkZEJhdGNoKGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbltdKTogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25bXT4ge1xuICAgIHJldHVybiBzdXBlci5hZGRCYXRjaChkZXByZWNpYXRpb25zKS5waXBlKFxuICAgICAgbWFwKChuZXdEZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSk6IERlcHJlY2lhdGlvbltdID0+IHtcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkRFUFJFQ0lBVElPTlNfQ1JFQVRFRCwgbmV3RGVwcmVjaWF0aW9ucykpO1xuICAgICAgICByZXR1cm4gbmV3RGVwcmVjaWF0aW9ucztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRGVwcmVjaWF0aW9ucyBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvVXBkYXRlZExvYW4oKTtcbiAgICB0aGlzLmxpc3RlblRvVmVoaWNsZUNsYWltKCk7XG4gICAgdGhpcy5saXN0ZW5Ub1VwZGF0ZWRCYW5rQWNjb3VudCgpO1xuICB9XG5cbiAgZ2V0T3BlbkJhbGFuY2UoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS9vcGVuaW5nLWJhbGFuY2U/ZmluYW5jaWFsWWVhcj0ke25ldyBGaW5hbmNpYWxZZWFyKCkueWVhcn1gLCBkZXByZWNpYXRpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlIHx8IDA7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBkZXByZWNpYXRpb24gcmVjZWlwdFxuICAgKiBAcGFyYW0gZGVwcmVjaWF0aW9uIGZvciB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIHJlY2VpcHRcbiAgICovXG4gIHVwbG9hZFJlY2VpcHQoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBkZXByZWNpYXRpb24uZmlsZSk7XG4gICAgZGVwcmVjaWF0aW9uLnJlY2VpcHQgPSBudWxsO1xuXG4gICAgdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtkZXByZWNpYXRpb24uaWR9L3JlY2VpcHRzYCwgZm9ybURhdGEpXG4gICAgICAuc3Vic2NyaWJlKChyZWNlaXB0UmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIGtlZXAgZmlsZSBhZnRlciBzYXZlXG4gICAgICAgIGRlcHJlY2lhdGlvbi5maWxlID0gbnVsbDtcbiAgICAgICAgZGVwcmVjaWF0aW9uLnJlY2VpcHQgPSBwbGFpblRvQ2xhc3MoRGVwcmVjaWF0aW9uUmVjZWlwdCwgcmVjZWlwdFJlc3BvbnNlKTtcbiAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBkZXByZWNpYXRpb24pO1xuICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUuc2xpY2UoKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIHVwZGF0ZWQgYmFuayBsb2FuXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvVXBkYXRlZExvYW4oKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKFtBcHBFdmVudFR5cGVFbnVtLkxPQU5fVVBEQVRFRCwgQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIHVwZGF0ZWQgYmFuayBhY2NvdW50XG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvVXBkYXRlZEJhbmtBY2NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5CQU5LX0FDQ09VTlRfVVBEQVRFRF0pLnN1YnNjcmliZSgoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB7XG4gICAgICBpZiAoYmFua0FjY291bnQuaXNQcm9wZXJ0eVRhbmsoKSkge1xuICAgICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byB1cGRhdGVkIHZlaGljbGUgY2xhaW1cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9WZWhpY2xlQ2xhaW0oKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKFtBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fQ1JFQVRFRCwgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX1VQREFURURdKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -54,7 +54,7 @@ export class PropertyService extends RestService {
54
54
  * Activate deactivated property
55
55
  */
56
56
  activate(property) {
57
- return this.http.post(`${this.environment.apiV2}/property-subscriptions`, { user: property.user, property })
57
+ return this.http.post(`${this.environment.apiV2}/property-subscriptions`, { property })
58
58
  .pipe(map((propertySubscriptionBase) => {
59
59
  const newPropertySubscription = plainToClass(PropertySubscription, propertySubscriptionBase);
60
60
  const activatedProperty = plainToClass(Property, Object.assign({}, property, { subscriptions: [newPropertySubscription] }));
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
107
107
  providedIn: 'root'
108
108
  }]
109
109
  }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFHdEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFtQztJQUh4RTs7UUFJRSxlQUFVLEdBQW9CLFFBQVEsQ0FBQztRQUN2QyxRQUFHLEdBQVcsWUFBWSxDQUFDO0tBMkc1QjtJQXpHQyxZQUFZO1FBQ1YsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNLLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElB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LENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ25ILENBQUM7SUFDSixDQUFDOzs2R0E1R1UsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5IGFzIFByb3BlcnR5QmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIGFzIFByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB3b3JrIHdpdGggUHJvcGVydHlcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8UHJvcGVydHlCYXNlLCBQcm9wZXJ0eT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eSA9IFByb3BlcnR5O1xuICB1cmw6IHN0cmluZyA9ICdwcm9wZXJ0aWVzJztcblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TaGFyZUludml0ZUFjY2VwdGVkKCk7XG4gICAgLy8gQFRPRE8gQWxleDogY29uc2lkZXIgdG8gcmVmYWN0b3IgcHJvcGVydHkgbW92ZW1lbnRzIGxvZ2ljIHNpbWlsYXIgdG8gY2xpZW50LW1vdmVtZW50c1xuICAgIHRoaXMubGlzdGVuTW92ZW1lbnRzQ2hhbmdlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHNoYXJlIGludml0YXRpb24gYWNjZXB0ZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuU2hhcmVJbnZpdGVBY2NlcHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHByb3BlcnR5IGNhdGVnb3J5IGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTW92ZW1lbnRzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAvLyBAVE9ETyBjaGFuZ2UgZGlzcGF0Y2hlciBsb2dpYyB0byB3b3JrIHdpdGggbXVsdGlwbGUgZXZlbnRzXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfTU9WRU1FTlRfQ1JFQVRFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRDYWNoZSgpKTtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9NT1ZFTUVOVF9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX01PVkVNRU5UX0RFTEVURUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0Q2FjaGUoKSk7XG4gIH1cblxuICB1cGRhdGUocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci51cGRhdGUocHJvcGVydHkpLnBpcGUoXG4gICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICAgIGlmIChwcm9wZXJ0eS5kb2N1bWVudEZpbGUpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRF9XSVRIX0RPQ1VNRU5ULCBwcm9wZXJ0eSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cGRhdGVkUHJvcGVydHk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJvcGVydHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKHByb3BlcnRpZXM6IFByb3BlcnR5W10pOiBQcm9wZXJ0eVtdID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlkID09PSBpZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgZGVhY3RpdmF0ZWQgcHJvcGVydHlcbiAgICovXG4gIGFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zYCwge3VzZXI6IHByb3BlcnR5LnVzZXIsIHByb3BlcnR5fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZTogUHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3UHJvcGVydHlTdWJzY3JpcHRpb246IFByb3BlcnR5U3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5U3Vic2NyaXB0aW9uLCBwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpO1xuICAgICAgICAgIGNvbnN0IGFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHtzdWJzY3JpcHRpb25zOiBbbmV3UHJvcGVydHlTdWJzY3JpcHRpb25dfSkpO1xuXG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBhY3RpdmF0ZWRQcm9wZXJ0eSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIGFjdGl2YXRlZCBwcm9wZXJ0eVxuICAgKi9cbiAgZGVhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zLyR7cHJvcGVydHkuZ2V0Q3VycmVudFN1YnNjcmlwdGlvbigpLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHtzdWJzY3JpcHRpb25zOiBbXX0pKTtcbiAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIGRlYWN0aXZhdGVkUHJvcGVydHkpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHByb3BlcnR5IHBob3RvXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBpbnN0YW5jZSBmb3IgcGhvdG8gdXBkYXRlXG4gICAqIEBwYXJhbSBwaG90b0Zvcm1EYXRhIEZvcm1EYXRhIHdpdGggcHJvcGVydHkgcGhvdG8gaW1hZ2VcbiAgICovXG4gIHVwZGF0ZVBob3RvKHByb3BlcnR5OiBQcm9wZXJ0eSwgcGhvdG9Gb3JtRGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydGllcy8ke3Byb3BlcnR5LmlkfS9waG90bz9fbWV0aG9kPVBVVGAsIHBob3RvRm9ybURhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChwaG90b0xpbms6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICAgIHByb3BlcnR5LnBob3RvID0gcGhvdG9MaW5rO1xuICAgICAgICAgIC8vIHVwZGF0ZSBwcm9wZXJ0aWVzIGNhY2hlXG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldEJ5U2hhcmVJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgocHJvcGVydGllczogUHJvcGVydHlbXSk6IFByb3BlcnR5W10gPT4ge1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkudXNlci5pZCA9PT0gaWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGFjdGl2ZSB1c2VyJ3MgcHJvcGVydGllc1xuICAgKi9cbiAgZ2V0QWN0aXZlKCk6IE9ic2VydmFibGU8UHJvcGVydHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKHByb3BlcnRpZXM6IFByb3BlcnR5W10pOiBQcm9wZXJ0eVtdID0+IHByb3BlcnRpZXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmlzQWN0aXZlKSlcbiAgICApO1xuICB9XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFHdEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFtQztJQUh4RTs7UUFJRSxlQUFVLEdBQW9CLFFBQVEsQ0FBQztRQUN2QyxRQUFHLEdBQVcsWUFBWSxDQUFDO0tBNEc1QjtJQTFHQyxZQUFZO1FBQ1YsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNLLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElB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LENBQ25ILENBQUM7SUFDSixDQUFDOzs2R0E3R1UsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5IGFzIFByb3BlcnR5QmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIGFzIFByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB3b3JrIHdpdGggUHJvcGVydHlcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8UHJvcGVydHlCYXNlLCBQcm9wZXJ0eT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eSA9IFByb3BlcnR5O1xuICB1cmw6IHN0cmluZyA9ICdwcm9wZXJ0aWVzJztcblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TaGFyZUludml0ZUFjY2VwdGVkKCk7XG4gICAgLy8gQFRPRE8gQWxleDogY29uc2lkZXIgdG8gcmVmYWN0b3IgcHJvcGVydHkgbW92ZW1lbnRzIGxvZ2ljIHNpbWlsYXIgdG8gY2xpZW50LW1vdmVtZW50c1xuICAgIHRoaXMubGlzdGVuTW92ZW1lbnRzQ2hhbmdlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHNoYXJlIGludml0YXRpb24gYWNjZXB0ZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuU2hhcmVJbnZpdGVBY2NlcHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHByb3BlcnR5IGNhdGVnb3J5IGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTW92ZW1lbnRzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAvLyBAVE9ETyBjaGFuZ2UgZGlzcGF0Y2hlciBsb2dpYyB0byB3b3JrIHdpdGggbXVsdGlwbGUgZXZlbnRzXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfTU9WRU1FTlRfQ1JFQVRFRCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXRDYWNoZSgpKTtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9NT1ZFTUVOVF9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX01PVkVNRU5UX0RFTEVURUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0Q2FjaGUoKSk7XG4gIH1cblxuICB1cGRhdGUocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci51cGRhdGUocHJvcGVydHkpLnBpcGUoXG4gICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICAgIGlmIChwcm9wZXJ0eS5kb2N1bWVudEZpbGUpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRF9XSVRIX0RPQ1VNRU5ULCBwcm9wZXJ0eSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cGRhdGVkUHJvcGVydHk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJvcGVydHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKHByb3BlcnRpZXM6IFByb3BlcnR5W10pOiBQcm9wZXJ0eVtdID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlkID09PSBpZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgZGVhY3RpdmF0ZWQgcHJvcGVydHlcbiAgICovXG4gIGFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zYCwge3Byb3BlcnR5fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZTogUHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3UHJvcGVydHlTdWJzY3JpcHRpb246IFByb3BlcnR5U3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5U3Vic2NyaXB0aW9uLCBwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpO1xuICAgICAgICAgIGNvbnN0IGFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHtzdWJzY3JpcHRpb25zOiBbbmV3UHJvcGVydHlTdWJzY3JpcHRpb25dfSkpO1xuXG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBhY3RpdmF0ZWRQcm9wZXJ0eSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIGFjdGl2YXRlZCBwcm9wZXJ0eVxuICAgKi9cbiAgZGVhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zLyR7cHJvcGVydHkuZ2V0Q3VycmVudFN1YnNjcmlwdGlvbigpLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHtzdWJzY3JpcHRpb25zOiBbXX0pKTtcblxuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgZGVhY3RpdmF0ZWRQcm9wZXJ0eSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcHJvcGVydHkgcGhvdG9cbiAgICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IGluc3RhbmNlIGZvciBwaG90byB1cGRhdGVcbiAgICogQHBhcmFtIHBob3RvRm9ybURhdGEgRm9ybURhdGEgd2l0aCBwcm9wZXJ0eSBwaG90byBpbWFnZVxuICAgKi9cbiAgdXBkYXRlUGhvdG8ocHJvcGVydHk6IFByb3BlcnR5LCBwaG90b0Zvcm1EYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0aWVzLyR7cHJvcGVydHkuaWR9L3Bob3RvP19tZXRob2Q9UFVUYCwgcGhvdG9Gb3JtRGF0YSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBob3RvTGluazogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgICAgcHJvcGVydHkucGhvdG8gPSBwaG90b0xpbms7XG4gICAgICAgICAgLy8gdXBkYXRlIHByb3BlcnRpZXMgY2FjaGVcbiAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHByb3BlcnR5KTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0QnlTaGFyZUlkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb3BlcnR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdKTogUHJvcGVydHlbXSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS51c2VyLmlkID09PSBpZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgYWN0aXZlIHVzZXIncyBwcm9wZXJ0aWVzXG4gICAqL1xuICBnZXRBY3RpdmUoKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgocHJvcGVydGllczogUHJvcGVydHlbXSk6IFByb3BlcnR5W10gPT4gcHJvcGVydGllcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNBY3RpdmUpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -30,7 +30,12 @@ export class UserService {
30
30
  }
31
31
  get() {
32
32
  if (!this.cache) {
33
- this.fetch().subscribe();
33
+ this.fetch().subscribe(() => { }, (error) => {
34
+ // force logout user (clear localStorage) when get current user return error
35
+ if (error.status === 500) {
36
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.CURRENT_USER_GET_FAILED, null));
37
+ }
38
+ });
34
39
  }
35
40
  return this.cacheSubject.asObservable();
36
41
  }
@@ -160,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
160
165
  type: Inject,
161
166
  args: ['environment']
162
167
  }] }]; } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFLakM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLElBQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLHNCQUE4QyxFQUM5QyxVQUFzQixFQUNDLFdBQWdCO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDQyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVBqRCxpQkFBWSxHQUF3QixJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztRQVM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMseUJB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TCxDQUFDOzt5R0F2S1UsV0FBVyxzSUFTWixhQUFhOzZHQVRaLFdBQVcsY0FGVixNQUFNOzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyIGFzIFVzZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3VzZXIvdXNlcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3VzZXIvdXNlcic7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSnd0U2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvand0LnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IGNsb25lIGZyb20gJ2xvZGFzaC9jbG9uZSc7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb259IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQge1NzZVNlcnZpY2V9IGZyb20gJy4uLy4uL2V2ZW50L3NzZS5zZXJ2aWNlJztcbmltcG9ydCB7SUV2ZW50TGlzdGVuZXJ9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHdvcmsgd2l0aCB1c2VyXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBjYWNoZTogVXNlcjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFVzZXI+ID0gbmV3IFJlcGxheVN1YmplY3Q8VXNlcj4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgand0U2VydmljZTogSnd0U2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TZXJ2aWNlU3Vic2NyaXB0aW9uVXBkYXRlZCgpO1xuICAgIHRoaXMubGlzdGVuQmFzaXFDb25jZW50VXBkYXRlZCgpO1xuICB9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCB1c2VyXG4gICAqL1xuICBmZXRjaCgpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9jdXJyZW50YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVzZXJCYXNlOiBVc2VyQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVzZXI6IFVzZXIgPSBwbGFpblRvQ2xhc3MoVXNlciwgdXNlckJhc2UpO1xuXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIHVzZXIuaWQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgLy8gQFRPRE8gcmVtb3ZlXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpbmFuY2lhbFllYXInLCB1c2VyLmZpbmFuY2lhbFllYXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHVzZXI7XG4gICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcblxuICAgICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBuZXcgdXNlclxuICAgKi9cbiAgcmVnaXN0ZXIoZGF0YTogb2JqZWN0KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcmVnaXN0cmF0aW9uYCwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXJcbiAgICovXG4gIHVwZGF0ZSh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvJHt1c2VyLmlkfWAsIHVzZXIpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1c2VyQmFzZTogVXNlckJhc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gcGxhaW5Ub0NsYXNzKFVzZXIsIHVzZXJCYXNlKTtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVVNFUl9VUERBVEVELCBudWxsKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHVzZXIgcGFzc3dvcmRcbiAgICovXG4gIGNoYW5nZVBhc3N3b3JkKGN1cnJlbnRQYXNzd29yZDogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9wYXNzd29yZC9jaGFuZ2VgLCB7Y3VycmVudFBhc3N3b3JkLCBuZXdQYXNzd29yZH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY292ZXJ5IHVzZXIgcGFzc3dvcmRcbiAgICovXG4gIHJlY292ZXJ5UGFzc3dvcmQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGFzc3dvcmQvcmVjb3ZlcnlgLCB7ZW1haWx9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB1c2VyIHBhc3N3b3JkXG4gICAqL1xuICByZXNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkOiBzdHJpbmcsIHJlc2V0VG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGFzc3dvcmQvcmVzZXRgLCB7bmV3UGFzc3dvcmQsIHJlc2V0VG9rZW59KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maXJtIHJlZ2lzdGVyZWQgdXNlclxuICAgKi9cbiAgY29uZmlybSh2ZXJpZmljYXRpb25Db2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9jb25maXJtYXRpb25gLCB7dmVyaWZpY2F0aW9uQ29kZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBleGlzdGluZyB1c2VyXG4gICAqL1xuICBzZWFyY2goZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL3NlYXJjaD9lbWFpbD0ke2VtYWlsfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1c2VyQmFzZTogVXNlckJhc2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFVzZXIsIHVzZXJCYXNlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmluaXNoIG9uYm9hcmRpbmcgcHJvY2Vzc1xuICAgKi9cbiAgZmluaXNoT25ib2FyZGluZyh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvc3RhdHVzYCwgdXNlcilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB1c2VyO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB1c2VyIHBob3RvXG4gICAqL1xuICB1cGRhdGVQaG90byhwaG90bzogRm9ybURhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGhvdG8/X21ldGhvZD1QVVRgLCBwaG90bylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBob3RvVXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gcGxhaW5Ub0NsYXNzKFVzZXIsIE9iamVjdC5hc3NpZ24odGhpcy5jYWNoZSwge3Bob3RvOiBwaG90b1VybH0pKTtcbiAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gZm9yZWNhc3QgdXBkYXRlIHNjcmlwdCBvbiBiYWNrZW5kIHdoZW4gdXNlciBzd2l0Y2hlZCBmaW5hbmNpYWwgeWVhclxuICAgKi9cbiAgc3dpdGNoRmluYW5jaWFsWWVhcigpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2ZpbmFuY2lhbC15ZWFyL3N3aXRjaGApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHJlc2V0Q2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHVzZXIncyBzZXJ2aWNlIHN1YnNjcmlwdGlvbiBpcyB1cGRhdGVkXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblNlcnZpY2VTdWJzY3JpcHRpb25VcGRhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlNFUlZJQ0VfU1VCU0NSSVBUSU9OX1VQREFURUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0Q2FjaGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkJhc2lxQ29uY2VudFVwZGF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfQ09OU0VOVF9VUERBVEVEKS5zdWJzY3JpYmUoKGlzQ29uZmlybWVkOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoIWlzQ29uZmlybWVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXNlciA9IGNsb25lKHRoaXMuY2FjaGUpO1xuICAgICAgdXNlci5jbGllbnREZXRhaWxzLmJhc2lxQ29uc2VudEV4aXN0ID0gdHJ1ZTtcblxuICAgICAgdGhpcy5jYWNoZSA9IHVzZXI7XG4gICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFNakM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLElBQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLHNCQUE4QyxFQUM5QyxVQUFzQixFQUNDLFdBQWdCO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDQyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVBqRCxpQkFBWSxHQUF3QixJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztRQVM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMseUJB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RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBRTVDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3lHQTVLVSxXQUFXLHNJQVNaLGFBQWE7NkdBVFosV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXIgYXMgVXNlckJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvdXNlci91c2VyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdXNlci91c2VyJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBKd3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9qd3Quc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoL2Nsb25lJztcbmltcG9ydCB7U2VydmljZVN1YnNjcmlwdGlvbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7U3NlU2VydmljZX0gZnJvbSAnLi4vLi4vZXZlbnQvc3NlLnNlcnZpY2UnO1xuaW1wb3J0IHtJRXZlbnRMaXN0ZW5lcn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggdXNlclxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY2FjaGU6IFVzZXI7XG4gIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxVc2VyPiA9IG5ldyBSZXBsYXlTdWJqZWN0PFVzZXI+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGp3dFNlcnZpY2U6IEp3dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3NlU2VydmljZTogU3NlU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuU2VydmljZVN1YnNjcmlwdGlvblVwZGF0ZWQoKTtcbiAgICB0aGlzLmxpc3RlbkJhc2lxQ29uY2VudFVwZGF0ZWQoKTtcbiAgfVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKCkgPT4ge30sIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgLy8gZm9yY2UgbG9nb3V0IHVzZXIgKGNsZWFyIGxvY2FsU3RvcmFnZSkgd2hlbiBnZXQgY3VycmVudCB1c2VyIHJldHVybiBlcnJvclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQ1VSUkVOVF9VU0VSX0dFVF9GQUlMRUQsIG51bGwpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCB1c2VyXG4gICAqL1xuICBmZXRjaCgpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9jdXJyZW50YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVzZXJCYXNlOiBVc2VyQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVzZXI6IFVzZXIgPSBwbGFpblRvQ2xhc3MoVXNlciwgdXNlckJhc2UpO1xuXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIHVzZXIuaWQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgLy8gQFRPRE8gcmVtb3ZlXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpbmFuY2lhbFllYXInLCB1c2VyLmZpbmFuY2lhbFllYXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHVzZXI7XG4gICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcblxuICAgICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBuZXcgdXNlclxuICAgKi9cbiAgcmVnaXN0ZXIoZGF0YTogb2JqZWN0KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcmVnaXN0cmF0aW9uYCwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXJcbiAgICovXG4gIHVwZGF0ZSh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvJHt1c2VyLmlkfWAsIHVzZXIpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1c2VyQmFzZTogVXNlckJhc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gcGxhaW5Ub0NsYXNzKFVzZXIsIHVzZXJCYXNlKTtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVVNFUl9VUERBVEVELCBudWxsKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHVzZXIgcGFzc3dvcmRcbiAgICovXG4gIGNoYW5nZVBhc3N3b3JkKGN1cnJlbnRQYXNzd29yZDogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9wYXNzd29yZC9jaGFuZ2VgLCB7Y3VycmVudFBhc3N3b3JkLCBuZXdQYXNzd29yZH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY292ZXJ5IHVzZXIgcGFzc3dvcmRcbiAgICovXG4gIHJlY292ZXJ5UGFzc3dvcmQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGFzc3dvcmQvcmVjb3ZlcnlgLCB7ZW1haWx9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB1c2VyIHBhc3N3b3JkXG4gICAqL1xuICByZXNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkOiBzdHJpbmcsIHJlc2V0VG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGFzc3dvcmQvcmVzZXRgLCB7bmV3UGFzc3dvcmQsIHJlc2V0VG9rZW59KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maXJtIHJlZ2lzdGVyZWQgdXNlclxuICAgKi9cbiAgY29uZmlybSh2ZXJpZmljYXRpb25Db2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy9jb25maXJtYXRpb25gLCB7dmVyaWZpY2F0aW9uQ29kZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBleGlzdGluZyB1c2VyXG4gICAqL1xuICBzZWFyY2goZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3VzZXJzL3NlYXJjaD9lbWFpbD0ke2VtYWlsfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1c2VyQmFzZTogVXNlckJhc2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFVzZXIsIHVzZXJCYXNlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmluaXNoIG9uYm9hcmRpbmcgcHJvY2Vzc1xuICAgKi9cbiAgZmluaXNoT25ib2FyZGluZyh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvc3RhdHVzYCwgdXNlcilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB1c2VyO1xuICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB1c2VyIHBob3RvXG4gICAqL1xuICB1cGRhdGVQaG90byhwaG90bzogRm9ybURhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vdXNlcnMvcGhvdG8/X21ldGhvZD1QVVRgLCBwaG90bylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHBob3RvVXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gcGxhaW5Ub0NsYXNzKFVzZXIsIE9iamVjdC5hc3NpZ24odGhpcy5jYWNoZSwge3Bob3RvOiBwaG90b1VybH0pKTtcbiAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gZm9yZWNhc3QgdXBkYXRlIHNjcmlwdCBvbiBiYWNrZW5kIHdoZW4gdXNlciBzd2l0Y2hlZCBmaW5hbmNpYWwgeWVhclxuICAgKi9cbiAgc3dpdGNoRmluYW5jaWFsWWVhcigpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2ZpbmFuY2lhbC15ZWFyL3N3aXRjaGApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHJlc2V0Q2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHVzZXIncyBzZXJ2aWNlIHN1YnNjcmlwdGlvbiBpcyB1cGRhdGVkXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblNlcnZpY2VTdWJzY3JpcHRpb25VcGRhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlNFUlZJQ0VfU1VCU0NSSVBUSU9OX1VQREFURUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0Q2FjaGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkJhc2lxQ29uY2VudFVwZGF0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfQ09OU0VOVF9VUERBVEVEKS5zdWJzY3JpYmUoKGlzQ29uZmlybWVkOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoIWlzQ29uZmlybWVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXNlciA9IGNsb25lKHRoaXMuY2FjaGUpO1xuICAgICAgdXNlci5jbGllbnREZXRhaWxzLmJhc2lxQ29uc2VudEV4aXN0ID0gdHJ1ZTtcblxuICAgICAgdGhpcy5jYWNoZSA9IHVzZXI7XG4gICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -4,8 +4,8 @@ import * as i1$1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/common/http';
6
6
  import { HttpParams, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
7
- import { ReplaySubject, BehaviorSubject, throwError, Subject, combineLatest, of, Observable, forkJoin } from 'rxjs';
8
- import { map, catchError, filter, take, switchMap, finalize, mergeMap } from 'rxjs/operators';
7
+ import { ReplaySubject, Subject, BehaviorSubject, throwError, combineLatest, of, Observable, forkJoin } from 'rxjs';
8
+ import { map, filter, catchError, take, switchMap, finalize, mergeMap } from 'rxjs/operators';
9
9
  import { plainToClass, Exclude, Type, Transform, Expose, classToPlain } from 'class-transformer';
10
10
  import { JwtHelperService } from '@auth0/angular-jwt';
11
11
  import get from 'lodash/get';
@@ -180,13 +180,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
180
180
  }]
181
181
  }] });
182
182
 
183
+ var AppEventTypeEnum;
184
+ (function (AppEventTypeEnum) {
185
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_MOVEMENT_CLOSED"] = 0] = "CLIENT_MOVEMENT_CLOSED";
186
+ AppEventTypeEnum[AppEventTypeEnum["BANK_CONNECTION_ADDED"] = 1] = "BANK_CONNECTION_ADDED";
187
+ AppEventTypeEnum[AppEventTypeEnum["BANK_ACCOUNT_CREATED"] = 2] = "BANK_ACCOUNT_CREATED";
188
+ AppEventTypeEnum[AppEventTypeEnum["BANK_ACCOUNT_UPDATED"] = 3] = "BANK_ACCOUNT_UPDATED";
189
+ AppEventTypeEnum[AppEventTypeEnum["BANK_TRANSACTION_ALLOCATED"] = 4] = "BANK_TRANSACTION_ALLOCATED";
190
+ AppEventTypeEnum[AppEventTypeEnum["BASIQ_CONSENT_UPDATED"] = 5] = "BASIQ_CONSENT_UPDATED";
191
+ AppEventTypeEnum[AppEventTypeEnum["BASIQ_CONNECTION_UPDATED"] = 6] = "BASIQ_CONNECTION_UPDATED";
192
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_INVITE_ACCEPTED"] = 7] = "CLIENT_INVITE_ACCEPTED";
193
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_OPEN_CHAT"] = 8] = "CLIENT_OPEN_CHAT";
194
+ AppEventTypeEnum[AppEventTypeEnum["CLIENT_TRANSFER_TO_OTHER_EMPLOYEE"] = 9] = "CLIENT_TRANSFER_TO_OTHER_EMPLOYEE";
195
+ AppEventTypeEnum[AppEventTypeEnum["CURRENT_USER_GET_FAILED"] = 10] = "CURRENT_USER_GET_FAILED";
196
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_DELETED"] = 11] = "DEPRECIATION_DELETED";
197
+ AppEventTypeEnum[AppEventTypeEnum["DEPRECIATIONS_CREATED"] = 12] = "DEPRECIATIONS_CREATED";
198
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_CREATED"] = 13] = "INCOME_SOURCES_CREATED";
199
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_UPDATED"] = 14] = "INCOME_SOURCES_UPDATED";
200
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_CREATED"] = 15] = "INCOME_SOURCES_FORECASTS_CREATED";
201
+ AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_UPDATED"] = 16] = "INCOME_SOURCES_FORECASTS_UPDATED";
202
+ AppEventTypeEnum[AppEventTypeEnum["LOAN_UPDATED"] = 17] = "LOAN_UPDATED";
203
+ AppEventTypeEnum[AppEventTypeEnum["LOAN_PAYOUT_UPDATED"] = 18] = "LOAN_PAYOUT_UPDATED";
204
+ AppEventTypeEnum[AppEventTypeEnum["MESSAGE_CREATED"] = 19] = "MESSAGE_CREATED";
205
+ AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_CREATED"] = 20] = "MESSAGE_FILE_CREATED";
206
+ AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_DELETED"] = 21] = "MESSAGE_FILE_DELETED";
207
+ AppEventTypeEnum[AppEventTypeEnum["NOTIFICATION_ADDED"] = 22] = "NOTIFICATION_ADDED";
208
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_UPDATED_WITH_DOCUMENT"] = 23] = "PROPERTY_UPDATED_WITH_DOCUMENT";
209
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_DOCUMENT_ADDED"] = 24] = "PROPERTY_DOCUMENT_ADDED";
210
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_CREATED"] = 25] = "PROPERTY_MOVEMENT_CREATED";
211
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_UPDATED"] = 26] = "PROPERTY_MOVEMENT_UPDATED";
212
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_DELETED"] = 27] = "PROPERTY_MOVEMENT_DELETED";
213
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SHARE_UPDATED"] = 28] = "PROPERTY_SHARE_UPDATED";
214
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_ADDED"] = 29] = "PROPERTY_SUBSCRIPTION_ADDED";
215
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_DELETED"] = 30] = "PROPERTY_SUBSCRIPTION_DELETED";
216
+ AppEventTypeEnum[AppEventTypeEnum["PROPERTY_VALUATION_DOCUMENT_CREATED"] = 31] = "PROPERTY_VALUATION_DOCUMENT_CREATED";
217
+ AppEventTypeEnum[AppEventTypeEnum["SERVICE_SUBSCRIPTION_UPDATED"] = 32] = "SERVICE_SUBSCRIPTION_UPDATED";
218
+ AppEventTypeEnum[AppEventTypeEnum["TAX_REVIEW_UPDATED"] = 33] = "TAX_REVIEW_UPDATED";
219
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_CREATED"] = 34] = "TRANSACTION_CREATED";
220
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_DELETED"] = 35] = "TRANSACTION_DELETED";
221
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED"] = 36] = "TRANSACTION_UPDATED";
222
+ AppEventTypeEnum[AppEventTypeEnum["TRANSACTIONS_CREATED"] = 37] = "TRANSACTIONS_CREATED";
223
+ AppEventTypeEnum[AppEventTypeEnum["USER_UPDATED"] = 38] = "USER_UPDATED";
224
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_UPDATED"] = 39] = "VEHICLE_CLAIM_UPDATED";
225
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_CREATED"] = 40] = "VEHICLE_CLAIM_CREATED";
226
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_CREATED"] = 41] = "VEHICLE_LOGBOOK_CREATED";
227
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_UPDATED"] = 42] = "VEHICLE_LOGBOOK_UPDATED";
228
+ AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_DELETED"] = 43] = "VEHICLE_LOGBOOK_DELETED";
229
+ })(AppEventTypeEnum || (AppEventTypeEnum = {}));
230
+
231
+ class EventDispatcherService {
232
+ constructor() {
233
+ this.eventSubject = new Subject();
234
+ }
235
+ /**
236
+ * subscription to specific event type
237
+ */
238
+ on(eventType) {
239
+ return this.eventSubject.pipe(filter((event) => [].concat(eventType).includes(event.type)), map((event) => event.payload));
240
+ }
241
+ /**
242
+ * deliver new event
243
+ */
244
+ dispatch(event) {
245
+ this.eventSubject.next(event);
246
+ }
247
+ }
248
+ EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
249
+ EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EventDispatcherService, decorators: [{
251
+ type: Injectable,
252
+ args: [{
253
+ providedIn: 'root'
254
+ }]
255
+ }] });
256
+
183
257
  class AuthService {
184
- constructor(http, jwtService, environment) {
258
+ constructor(http, jwtService, eventDispatcherService, environment) {
185
259
  this.http = http;
186
260
  this.jwtService = jwtService;
261
+ this.eventDispatcherService = eventDispatcherService;
187
262
  this.environment = environment;
263
+ this.listenEvents();
188
264
  this.isLoggedInSubject = new BehaviorSubject(!this.jwtService.isTokenExpired());
189
265
  }
266
+ /**
267
+ * Listen to Event Dispatcher events
268
+ */
269
+ listenEvents() {
270
+ this.listenUserGetFailed();
271
+ }
272
+ /**
273
+ * User logout if failed current user get
274
+ */
275
+ listenUserGetFailed() {
276
+ this.eventDispatcherService.on(AppEventTypeEnum.CURRENT_USER_GET_FAILED).subscribe(() => this.logoutFront());
277
+ }
190
278
  setAuth(response) {
191
279
  this.jwtService.saveTokens(response);
192
280
  this.isLoggedInSubject.next(true);
@@ -208,14 +296,14 @@ class AuthService {
208
296
  location.replace(url);
209
297
  }
210
298
  }
211
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
299
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: JwtService }, { token: EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
212
300
  AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthService, providedIn: 'root' });
213
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AuthService, decorators: [{
214
302
  type: Injectable,
215
303
  args: [{
216
304
  providedIn: 'root'
217
305
  }]
218
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: JwtService }, { type: undefined, decorators: [{
306
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: JwtService }, { type: EventDispatcherService }, { type: undefined, decorators: [{
219
307
  type: Inject,
220
308
  args: ['environment']
221
309
  }] }]; } });
@@ -1885,6 +1973,25 @@ class PropertyCollection extends Collection {
1885
1973
  getCategories() {
1886
1974
  return uniqBy(this.items.map((property) => property.category), 'id');
1887
1975
  }
1976
+ /**
1977
+ * Get property with the highest growth percent
1978
+ */
1979
+ getBestPerformanceGrowthProperty() {
1980
+ return this.items.reduce((max, current) => {
1981
+ return max.growthPercent < current.growthPercent ? current : max;
1982
+ }, this.first);
1983
+ }
1984
+ /**
1985
+ * Get property with the lowest tax position
1986
+ */
1987
+ getBestPerformanceTaxProperty(transactions, depreciations) {
1988
+ return this.items.reduce((min, current) => {
1989
+ return min.getTaxPosition(transactions.getBy('property.id', min.id), depreciations.getBy('property.id', min.id))
1990
+ > current.getTaxPosition(transactions.getBy('property.id', current.id), depreciations.getBy('property.id', current.id))
1991
+ ? current
1992
+ : min;
1993
+ }, this.first);
1994
+ }
1888
1995
  }
1889
1996
 
1890
1997
  /**
@@ -3237,6 +3344,9 @@ class Property extends Property$1 {
3237
3344
  getOwnershipDuration(sale, unitOfTime = 'days') {
3238
3345
  return moment(sale.contractDate).diff(moment(this.contractDate), unitOfTime);
3239
3346
  }
3347
+ getTaxPosition(transactions, depreciations) {
3348
+ return transactions.cashPosition - Math.abs(depreciations.claimAmount);
3349
+ }
3240
3350
  }
3241
3351
  __decorate([
3242
3352
  Type(() => Date)
@@ -3890,11 +4000,17 @@ class Depreciation extends Depreciation$1 {
3890
4000
  return this.date;
3891
4001
  }
3892
4002
  /**
3893
- * @TODO wrong year, use current financial year, check everywhere
4003
+ * @TODO Vik: Research a problem with depreciations without current year forecast
3894
4004
  */
3895
4005
  get currentYearForecast() {
3896
4006
  return this.forecasts.find((forecast) => {
3897
4007
  return forecast.financialYear === new FinancialYear().year;
4008
+ }) || plainToClass(DepreciationForecast, {
4009
+ financialYear: new FinancialYear().year,
4010
+ openBalance: 0,
4011
+ closeBalance: 0,
4012
+ amount: 0,
4013
+ claimPercent: 0
3898
4014
  });
3899
4015
  }
3900
4016
  getForecastByYear(year) {
@@ -3919,6 +4035,9 @@ class Depreciation extends Depreciation$1 {
3919
4035
  toTransaction(params = {}) {
3920
4036
  return plainToClass(Transaction, Object.assign(params, this, { amount: this.currentYearForecast.amount }));
3921
4037
  }
4038
+ /**
4039
+ * @TODO Michael: remove and check everywhere in reports
4040
+ */
3922
4041
  get claimAmount() {
3923
4042
  var _a;
3924
4043
  return ((_a = this.currentYearForecast) === null || _a === void 0 ? void 0 : _a.claimAmount) || 0;
@@ -5914,53 +6033,6 @@ class AppEvent {
5914
6033
  }
5915
6034
  }
5916
6035
 
5917
- var AppEventTypeEnum;
5918
- (function (AppEventTypeEnum) {
5919
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_MOVEMENT_CLOSED"] = 0] = "CLIENT_MOVEMENT_CLOSED";
5920
- AppEventTypeEnum[AppEventTypeEnum["BANK_CONNECTION_ADDED"] = 1] = "BANK_CONNECTION_ADDED";
5921
- AppEventTypeEnum[AppEventTypeEnum["BANK_ACCOUNT_CREATED"] = 2] = "BANK_ACCOUNT_CREATED";
5922
- AppEventTypeEnum[AppEventTypeEnum["BANK_ACCOUNT_UPDATED"] = 3] = "BANK_ACCOUNT_UPDATED";
5923
- AppEventTypeEnum[AppEventTypeEnum["BANK_TRANSACTION_ALLOCATED"] = 4] = "BANK_TRANSACTION_ALLOCATED";
5924
- AppEventTypeEnum[AppEventTypeEnum["BASIQ_CONSENT_UPDATED"] = 5] = "BASIQ_CONSENT_UPDATED";
5925
- AppEventTypeEnum[AppEventTypeEnum["BASIQ_CONNECTION_UPDATED"] = 6] = "BASIQ_CONNECTION_UPDATED";
5926
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_INVITE_ACCEPTED"] = 7] = "CLIENT_INVITE_ACCEPTED";
5927
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_OPEN_CHAT"] = 8] = "CLIENT_OPEN_CHAT";
5928
- AppEventTypeEnum[AppEventTypeEnum["CLIENT_TRANSFER_TO_OTHER_EMPLOYEE"] = 9] = "CLIENT_TRANSFER_TO_OTHER_EMPLOYEE";
5929
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATION_DELETED"] = 10] = "DEPRECIATION_DELETED";
5930
- AppEventTypeEnum[AppEventTypeEnum["DEPRECIATIONS_CREATED"] = 11] = "DEPRECIATIONS_CREATED";
5931
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_CREATED"] = 12] = "INCOME_SOURCES_CREATED";
5932
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_UPDATED"] = 13] = "INCOME_SOURCES_UPDATED";
5933
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_CREATED"] = 14] = "INCOME_SOURCES_FORECASTS_CREATED";
5934
- AppEventTypeEnum[AppEventTypeEnum["INCOME_SOURCES_FORECASTS_UPDATED"] = 15] = "INCOME_SOURCES_FORECASTS_UPDATED";
5935
- AppEventTypeEnum[AppEventTypeEnum["LOAN_UPDATED"] = 16] = "LOAN_UPDATED";
5936
- AppEventTypeEnum[AppEventTypeEnum["LOAN_PAYOUT_UPDATED"] = 17] = "LOAN_PAYOUT_UPDATED";
5937
- AppEventTypeEnum[AppEventTypeEnum["MESSAGE_CREATED"] = 18] = "MESSAGE_CREATED";
5938
- AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_CREATED"] = 19] = "MESSAGE_FILE_CREATED";
5939
- AppEventTypeEnum[AppEventTypeEnum["MESSAGE_FILE_DELETED"] = 20] = "MESSAGE_FILE_DELETED";
5940
- AppEventTypeEnum[AppEventTypeEnum["NOTIFICATION_ADDED"] = 21] = "NOTIFICATION_ADDED";
5941
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_UPDATED_WITH_DOCUMENT"] = 22] = "PROPERTY_UPDATED_WITH_DOCUMENT";
5942
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_DOCUMENT_ADDED"] = 23] = "PROPERTY_DOCUMENT_ADDED";
5943
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_CREATED"] = 24] = "PROPERTY_MOVEMENT_CREATED";
5944
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_UPDATED"] = 25] = "PROPERTY_MOVEMENT_UPDATED";
5945
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_MOVEMENT_DELETED"] = 26] = "PROPERTY_MOVEMENT_DELETED";
5946
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SHARE_UPDATED"] = 27] = "PROPERTY_SHARE_UPDATED";
5947
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_ADDED"] = 28] = "PROPERTY_SUBSCRIPTION_ADDED";
5948
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_DELETED"] = 29] = "PROPERTY_SUBSCRIPTION_DELETED";
5949
- AppEventTypeEnum[AppEventTypeEnum["PROPERTY_VALUATION_DOCUMENT_CREATED"] = 30] = "PROPERTY_VALUATION_DOCUMENT_CREATED";
5950
- AppEventTypeEnum[AppEventTypeEnum["SERVICE_SUBSCRIPTION_UPDATED"] = 31] = "SERVICE_SUBSCRIPTION_UPDATED";
5951
- AppEventTypeEnum[AppEventTypeEnum["TAX_REVIEW_UPDATED"] = 32] = "TAX_REVIEW_UPDATED";
5952
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_CREATED"] = 33] = "TRANSACTION_CREATED";
5953
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_DELETED"] = 34] = "TRANSACTION_DELETED";
5954
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED"] = 35] = "TRANSACTION_UPDATED";
5955
- AppEventTypeEnum[AppEventTypeEnum["TRANSACTIONS_CREATED"] = 36] = "TRANSACTIONS_CREATED";
5956
- AppEventTypeEnum[AppEventTypeEnum["USER_UPDATED"] = 37] = "USER_UPDATED";
5957
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_UPDATED"] = 38] = "VEHICLE_CLAIM_UPDATED";
5958
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_CREATED"] = 39] = "VEHICLE_CLAIM_CREATED";
5959
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_CREATED"] = 40] = "VEHICLE_LOGBOOK_CREATED";
5960
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_UPDATED"] = 41] = "VEHICLE_LOGBOOK_UPDATED";
5961
- AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_DELETED"] = 42] = "VEHICLE_LOGBOOK_DELETED";
5962
- })(AppEventTypeEnum || (AppEventTypeEnum = {}));
5963
-
5964
6036
  var ExportFormatEnum;
5965
6037
  (function (ExportFormatEnum) {
5966
6038
  ExportFormatEnum["PDF"] = "PDF";
@@ -6366,6 +6438,7 @@ class PropertyEquityChartData {
6366
6438
  this.buildActualItem();
6367
6439
  this.buildForecastedItems();
6368
6440
  this.checkZeroLoanBalance();
6441
+ this.checkZeroMarketValue();
6369
6442
  }
6370
6443
  /**
6371
6444
  * get items list in chart series format
@@ -6495,6 +6568,16 @@ class PropertyEquityChartData {
6495
6568
  }
6496
6569
  });
6497
6570
  }
6571
+ /**
6572
+ * Check if market value is 0 and set it as null (to not to draw point on the chart)
6573
+ */
6574
+ checkZeroMarketValue() {
6575
+ this.list.forEach((item) => {
6576
+ if (item.marketValue === 0) {
6577
+ item.marketValue = null;
6578
+ }
6579
+ });
6580
+ }
6498
6581
  }
6499
6582
 
6500
6583
  class PropertyShare$1 extends AbstractModel {
@@ -7071,32 +7154,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
7071
7154
  args: ['environment']
7072
7155
  }] }]; } });
7073
7156
 
7074
- class EventDispatcherService {
7075
- constructor() {
7076
- this.eventSubject = new Subject();
7077
- }
7078
- /**
7079
- * subscription to specific event type
7080
- */
7081
- on(eventType) {
7082
- return this.eventSubject.pipe(filter((event) => [].concat(eventType).includes(event.type)), map((event) => event.payload));
7083
- }
7084
- /**
7085
- * deliver new event
7086
- */
7087
- dispatch(event) {
7088
- this.eventSubject.next(event);
7089
- }
7090
- }
7091
- EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7092
- EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
7093
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EventDispatcherService, decorators: [{
7094
- type: Injectable,
7095
- args: [{
7096
- providedIn: 'root'
7097
- }]
7098
- }] });
7099
-
7100
7157
  /**
7101
7158
  * popup notifications service (toast, snackbar).
7102
7159
  */
@@ -7403,7 +7460,7 @@ class PropertyService extends RestService {
7403
7460
  * Activate deactivated property
7404
7461
  */
7405
7462
  activate(property) {
7406
- return this.http.post(`${this.environment.apiV2}/property-subscriptions`, { user: property.user, property })
7463
+ return this.http.post(`${this.environment.apiV2}/property-subscriptions`, { property })
7407
7464
  .pipe(map((propertySubscriptionBase) => {
7408
7465
  const newPropertySubscription = plainToClass(PropertySubscription, propertySubscriptionBase);
7409
7466
  const activatedProperty = plainToClass(Property, Object.assign({}, property, { subscriptions: [newPropertySubscription] }));
@@ -9313,30 +9370,6 @@ class DepreciationService extends RestService {
9313
9370
  return response || 0;
9314
9371
  }));
9315
9372
  }
9316
- /**
9317
- * @TODO wrong place, move to collection model
9318
- */
9319
- calculateSummaryAmount(depreciationList) {
9320
- return depreciationList.reduce((sum, depreciation) => {
9321
- // depreciation may not have forecast item for current financial year
9322
- if (!depreciation.currentYearForecast) {
9323
- return sum;
9324
- }
9325
- return sum + depreciation.currentYearForecast.claimAmount;
9326
- }, 0);
9327
- }
9328
- calculateBorrowingExpenses(depreciationList) {
9329
- return this.getByIds(depreciationList)
9330
- .pipe(map((depreciations) => {
9331
- return this.calculateSummaryAmount(depreciations.filter((depreciation) => depreciation.isBorrowingExpense()));
9332
- }));
9333
- }
9334
- calculateDepreciations(depreciationList) {
9335
- return this.getByIds(depreciationList)
9336
- .pipe(map((depreciations) => {
9337
- return this.calculateSummaryAmount(depreciations.filter((depreciation) => !depreciation.isBorrowingExpense()));
9338
- }));
9339
- }
9340
9373
  /**
9341
9374
  * Upload depreciation receipt
9342
9375
  * @param depreciation for which will be uploaded receipt
@@ -11083,7 +11116,12 @@ class UserService {
11083
11116
  }
11084
11117
  get() {
11085
11118
  if (!this.cache) {
11086
- this.fetch().subscribe();
11119
+ this.fetch().subscribe(() => { }, (error) => {
11120
+ // force logout user (clear localStorage) when get current user return error
11121
+ if (error.status === 500) {
11122
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.CURRENT_USER_GET_FAILED, null));
11123
+ }
11124
+ });
11087
11125
  }
11088
11126
  return this.cacheSubject.asObservable();
11089
11127
  }