new-front-common-library 18.0.2-REF1 → 18.0.2-REF2

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.
@@ -1,23 +1,18 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../notification/notification.service";
5
4
  export class AuthService {
6
- constructor(notificationService) {
7
- this.notificationService = notificationService;
5
+ constructor() {
8
6
  this.isAuthenticatedSubject = new BehaviorSubject(false);
9
7
  this.isAuthenticated$ = this.isAuthenticatedSubject.asObservable();
10
8
  }
11
9
  setAuthenticated(isAuthenticated) {
12
- if (isAuthenticated) {
13
- this.notificationService.connect();
14
- }
15
10
  this.isAuthenticatedSubject.next(isAuthenticated);
16
11
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
13
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService }); }
19
14
  }
20
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, decorators: [{
21
16
  type: Injectable
22
- }], ctorParameters: () => [{ type: i1.NotificationService }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQUluRCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUE2QixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZwRCwyQkFBc0IsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFLeEcscUJBQWdCLEdBQXdCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUZuRixDQUFDO0lBSU0sZ0JBQWdCLENBQUMsZUFBd0I7UUFDOUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0FkVSxXQUFXO21IQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNBdXRoZW50aWNhdGVkU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHB1YmxpYyBzZXRBdXRoZW50aWNhdGVkKGlzQXV0aGVudGljYXRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5jb25uZWN0KCk7XG4gICAgfVxuICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5uZXh0KGlzQXV0aGVudGljYXRlZCk7XG4gIH1cbn1cbiJdfQ==
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV3LWZyb250LWNvbW1vbi1saWJyYXJ5L3NyYy9saWIvdXRpbC9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBR25ELE1BQU0sT0FBTyxXQUFXO0lBRHhCO1FBR21CLDJCQUFzQixHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV4RyxxQkFBZ0IsR0FBd0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO0tBS3BGO0lBSFEsZ0JBQWdCLENBQUMsZUFBd0I7UUFDOUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQVJVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNBdXRoZW50aWNhdGVkU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgaXNBdXRoZW50aWNhdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBwdWJsaWMgc2V0QXV0aGVudGljYXRlZChpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dChpc0F1dGhlbnRpY2F0ZWQpO1xuICB9XG59XG4iXX0=
@@ -8,14 +8,16 @@ import { WEB_CONFIG } from '../../config';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../api/notification-api.service";
10
10
  import * as i2 from "../storage/local-storage.service";
11
+ import * as i3 from "../auth/auth.service";
11
12
  export const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';
12
13
  export const NOTIFICATION_TOPIC = '/topic/notification';
13
14
  export const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';
14
15
  export class NotificationService {
15
- constructor(config, notificationApiService, localStorage) {
16
+ constructor(config, notificationApiService, localStorage, authService) {
16
17
  this.config = config;
17
18
  this.notificationApiService = notificationApiService;
18
19
  this.localStorage = localStorage;
20
+ this.authService = authService;
19
21
  this.stompClient = null;
20
22
  this.notificationSubject = new BehaviorSubject(null);
21
23
  // Observable for components to subscribe to messages
@@ -23,9 +25,19 @@ export class NotificationService {
23
25
  // Subject to track the connection status (connected/disconnected)
24
26
  this.connectionSubject = new BehaviorSubject(false);
25
27
  this.apiUrl = this.config.api_url + NOTIFICATION_WEBSOCKET_URL;
28
+ authService.isAuthenticated$.subscribe(isAuthenticated => {
29
+ if (isAuthenticated) {
30
+ this.fetchLiveNotifications();
31
+ this.subscribeToNotifications();
32
+ }
33
+ });
34
+ }
35
+ ackNotification(notification) {
36
+ const ackedNotifications = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];
37
+ ackedNotifications.push(notification.id);
38
+ this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);
26
39
  }
27
- connect() {
28
- // Fetch live notifications
40
+ fetchLiveNotifications() {
29
41
  this.notificationApiService.getLiveNotifications().subscribe(notifications => {
30
42
  const liveNotificationIds = notifications.map(notification => notification.id);
31
43
  // Clear up any acked notifications that have expired (no longer live)
@@ -37,6 +49,8 @@ export class NotificationService {
37
49
  .filter(notification => ackedNotifications.indexOf(notification.id) === -1)
38
50
  .forEach(notification => this.handleNotification(notification));
39
51
  });
52
+ }
53
+ subscribeToNotifications() {
40
54
  if (this.stompClient) {
41
55
  return;
42
56
  }
@@ -67,17 +81,6 @@ export class NotificationService {
67
81
  console.log('Activating stomp client');
68
82
  this.stompClient.activate();
69
83
  }
70
- disconnect() {
71
- if (this.stompClient) {
72
- void this.stompClient.deactivate();
73
- this.stompClient = null;
74
- }
75
- }
76
- ackNotification(notification) {
77
- const ackedNotifications = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];
78
- ackedNotifications.push(notification.id);
79
- this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);
80
- }
81
84
  handleNotification(notification) {
82
85
  const targetSectionIds = notification.targetSections.map(section => section.id);
83
86
  const userSectionIds = this.user.permissions.map(permission => permission.sectionId);
@@ -85,7 +88,7 @@ export class NotificationService {
85
88
  this.notificationSubject.next(notification);
86
89
  }
87
90
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, deps: [{ token: WEB_CONFIG }, { token: i1.NotificationApiService }, { token: i2.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, deps: [{ token: WEB_CONFIG }, { token: i1.NotificationApiService }, { token: i2.LocalStorageService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
92
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
90
93
  }
91
94
  __decorate([
@@ -99,5 +102,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
99
102
  }], ctorParameters: () => [{ type: undefined, decorators: [{
100
103
  type: Inject,
101
104
  args: [WEB_CONFIG]
102
- }] }, { type: i1.NotificationApiService }, { type: i2.LocalStorageService }], propDecorators: { user: [] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBS2xELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLHVCQUF1QixDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLG9CQUFvQixDQUFDO0FBSzFFLE1BQU0sT0FBTyxtQkFBbUI7SUFjOUIsWUFBaUQsTUFBYyxFQUNsQyxzQkFBOEMsRUFDOUMsWUFBaUM7UUFGYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2xDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBWnRELGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUV6Qix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUFFcEYscURBQXFEO1FBQzlDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhF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LG1CQUFtQixrQkFjVixVQUFVO21IQWRuQixtQkFBbUIsY0FGbEIsTUFBTTs7QUFHSDtJQUFkLElBQUksRUFBRTtpREFBd0I7NEZBRHBCLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVjLE1BQU07MkJBQUMsVUFBVTtnSEFiZixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGllbnQsIE1lc3NhZ2UgfSBmcm9tICdAc3RvbXAvc3RvbXBqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBTb2NrSlMgZnJvbSAnc29ja2pzLWNsaWVudCc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy91c2VyLmRlY29yYXRvcic7XG5pbXBvcnQgeyBDb25maWcsIFdFQl9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kZWwsIFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL25vdGlmaWNhdGlvbi1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OX1dFQlNPQ0tFVF9VUkwgPSAnL2F1dGhvcml6YXRpb24tYXBpL3dzJztcbmV4cG9ydCBjb25zdCBOT1RJRklDQVRJT05fVE9QSUMgPSAnL3RvcGljL25vdGlmaWNhdGlvbic7XG5leHBvcnQgY29uc3QgQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSA9ICdhY2tlZE5vdGlmaWNhdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIEBVc2VyKCkgcHVibGljIHVzZXI6IFVzZXJNb2RlbDtcblxuICBwdWJsaWMgYXBpVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgc3RvbXBDbGllbnQ6IENsaWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpY2F0aW9uTW9kZWw+KG51bGwpO1xuXG4gIC8vIE9ic2VydmFibGUgZm9yIGNvbXBvbmVudHMgdG8gc3Vic2NyaWJlIHRvIG1lc3NhZ2VzXG4gIHB1YmxpYyBub3RpZmljYXRpb25zJCA9IHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAvLyBTdWJqZWN0IHRvIHRyYWNrIHRoZSBjb25uZWN0aW9uIHN0YXR1cyAoY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZClcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV0VCX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25BcGlTZXJ2aWNlOiBOb3RpZmljYXRpb25BcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSwpIHtcbiAgICB0aGlzLmFwaVVybCA9IHRoaXMuY29uZmlnLmFwaV91cmwgKyBOT1RJRklDQVRJT05fV0VCU09DS0VUX1VSTDtcbiAgfVxuXG4gIHB1YmxpYyBjb25uZWN0KCk6IHZvaWQge1xuICAgIC8vIEZldGNoIGxpdmUgbm90aWZpY2F0aW9uc1xuICAgIHRoaXMubm90aWZpY2F0aW9uQXBpU2VydmljZS5nZXRMaXZlTm90aWZpY2F0aW9ucygpLnN1YnNjcmliZShub3RpZmljYXRpb25zID0+IHtcbiAgICAgIGNvbnN0IGxpdmVOb3RpZmljYXRpb25JZHMgPSBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4gbm90aWZpY2F0aW9uLmlkKTtcblxuICAgICAgLy8gQ2xlYXIgdXAgYW55IGFja2VkIG5vdGlmaWNhdGlvbnMgdGhhdCBoYXZlIGV4cGlyZWQgKG5vIGxvbmdlciBsaXZlKVxuICAgICAgbGV0IGFja2VkTm90aWZpY2F0aW9uczogbnVtYmVyW10gPSB0aGlzLmxvY2FsU3RvcmFnZS5nZXQoQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSkgPz8gW107XG4gICAgICBhY2tlZE5vdGlmaWNhdGlvbnMgPSBhY2tlZE5vdGlmaWNhdGlvbnMuZmlsdGVyKGFja2VkTm90aWZpY2F0aW9uSWQgPT4gbGl2ZU5vdGlmaWNhdGlvbklkcy5pbmRleE9mKGFja2VkTm90aWZpY2F0aW9uSWQpID49IDApXG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZS5wb3N0KEFDS0VEX05PVElGSUNBVElPTlNfTE9DQUxfU1RPUkFHRV9LRVksIGFja2VkTm90aWZpY2F0aW9ucyk7XG5cbiAgICAgIC8vIEhhbmRsZSBuZXcgbm90aWZpY2F0aW9uc1xuICAgICAgbm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvbi5wdWJsaXNoZWQpXG4gICAgICAgIC5maWx0ZXIobm90aWZpY2F0aW9uID0+IGFja2VkTm90aWZpY2F0aW9ucy5pbmRleE9mKG5vdGlmaWNhdGlvbi5pZCkgPT09IC0xKVxuICAgICAgICAuZm9yRWFjaChub3RpZmljYXRpb24gPT4gdGhpcy5oYW5kbGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0YXJ0IGxpc3RlbmluZyBmb3IgbmV3IG5vdGlmaWNhdGlvbnNcbiAgICBjb25zdCBzb2NrZXQgPSBuZXcgU29ja0pTKHRoaXMuYXBpVXJsKTsgLy8gSW5pdGlhbGl6ZSB0aGUgU29ja0pTIFdlYlNvY2tldCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXJcblxuICAgIC8vIENvbmZpZ3VyZSB0aGUgU1RPTVAgY2xpZW50IHdpdGggY29ubmVjdGlvbiBkZXRhaWxzXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IG5ldyBDbGllbnQoe1xuICAgICAgd2ViU29ja2V0RmFjdG9yeTogKCkgPT4gc29ja2V0LCAvLyBVc2UgU29ja0pTIGFzIHRoZSBXZWJTb2NrZXQgZmFjdG9yeVxuICAgICAgcmVjb25uZWN0RGVsYXk6IDUwMDAsIC8vIFJlY29ubmVjdCBkZWxheSBpZiBjb25uZWN0aW9uIGlzIGxvc3RcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgc3RvbXAgY2xpZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT24gc3VjY2Vzc2Z1bCBjb25uZWN0aW9uXG4gICAgdGhpcy5zdG9tcENsaWVudC5vbkNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAvLyBSZWdpc3RlciBub3RpZmljYXRpb24gY2FsbGJhY2tcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKE5PVElGSUNBVElPTl9UT1BJQywgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25Nb2RlbCA9IEpTT04ucGFyc2UobWVzc2FnZS5ib2R5KTtcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLnN0b21wQ2xpZW50Lm9uU3RvbXBFcnJvciA9IChmcmFtZSkgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQnJva2VyIHJlcG9ydGVkIGVycm9yOiAnICsgZnJhbWUuaGVhZGVyc1snbWVzc2FnZSddKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkZGl0aW9uYWwgZGV0YWlsczogJyArIGZyYW1lLmJvZHkpO1xuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZygnQWN0aXZhdGluZyBzdG9tcCBjbGllbnQnKTtcbiAgICB0aGlzLnN0b21wQ2xpZW50LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgIHZvaWQgdGhpcy5zdG9tcENsaWVudC5kZWFjdGl2YXRlKCk7XG4gICAgICAgdGhpcy5zdG9tcENsaWVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFja05vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgYWNrZWROb3RpZmljYXRpb25zOiBudW1iZXJbXSA9IHRoaXMubG9jYWxTdG9yYWdlLmdldChBQ0tFRF9OT1RJRklDQVRJT05TX0xPQ0FMX1NUT1JBR0VfS0VZKSA/PyBbXTtcbiAgICBhY2tlZE5vdGlmaWNhdGlvbnMucHVzaChub3RpZmljYXRpb24uaWQpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnBvc3QoQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSwgYWNrZWROb3RpZmljYXRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRTZWN0aW9uSWRzID0gbm90aWZpY2F0aW9uLnRhcmdldFNlY3Rpb25zLm1hcChzZWN0aW9uID0+IHNlY3Rpb24uaWQpO1xuICAgIGNvbnN0IHVzZXJTZWN0aW9uSWRzID0gdGhpcy51c2VyLnBlcm1pc3Npb25zLm1hcChwZXJtaXNzaW9uID0+IHBlcm1pc3Npb24uc2VjdGlvbklkKTtcblxuICAgIGlmICh0YXJnZXRTZWN0aW9uSWRzLnNvbWUoKHRhcmdldFNlY3Rpb25JZCkgPT4gdXNlclNlY3Rpb25JZHMuaW5jbHVkZXModGFyZ2V0U2VjdGlvbklkKSkpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5uZXh0KG5vdGlmaWNhdGlvbik7XG4gICAgfVxuICB9XG59XG4iXX0=
105
+ }] }, { type: i1.NotificationApiService }, { type: i2.LocalStorageService }, { type: i3.AuthService }], propDecorators: { user: [] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXctZnJvbnQtY29tbW9uLWxpYnJhcnkvc3JjL2xpYi91dGlsL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQU1sRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxvQkFBb0IsQ0FBQztBQUsxRSxNQUFNLE9BQU8sbUJBQW1CO0lBYzlCLFlBQWlELE1BQWMsRUFDbEMsc0JBQThDLEVBQzlDLFlBQWlDLEVBQ3pDLFdBQXdCO1FBSEksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUN6QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWJyQyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFekIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxDQUFDO1FBRXBGLHFEQUFxRDtRQUM5QyxtQkFBYyxHQUFHLElB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QztZQUN6RixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDOytHQTlGVSxtQkFBbUIsa0JBY1YsVUFBVTttSEFkbkIsbUJBQW1CLGNBRmxCLE1BQU07O0FBR0g7SUFBZCxJQUFJLEVBQUU7aURBQXdCOzRGQURwQixtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFlYyxNQUFNOzJCQUFDLFVBQVU7MElBYmYsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpZW50LCBNZXNzYWdlIH0gZnJvbSAnQHN0b21wL3N0b21wanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgU29ja0pTIGZyb20gJ3NvY2tqcy1jbGllbnQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvdXNlci5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ29uZmlnLCBXRUJfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1vZGVsLCBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQXBpU2VydmljZSB9IGZyb20gJy4uL2FwaS9ub3RpZmljYXRpb24tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OX1dFQlNPQ0tFVF9VUkwgPSAnL2F1dGhvcml6YXRpb24tYXBpL3dzJztcbmV4cG9ydCBjb25zdCBOT1RJRklDQVRJT05fVE9QSUMgPSAnL3RvcGljL25vdGlmaWNhdGlvbic7XG5leHBvcnQgY29uc3QgQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSA9ICdhY2tlZE5vdGlmaWNhdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIEBVc2VyKCkgcHVibGljIHVzZXI6IFVzZXJNb2RlbDtcblxuICBwdWJsaWMgYXBpVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgc3RvbXBDbGllbnQ6IENsaWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpY2F0aW9uTW9kZWw+KG51bGwpO1xuXG4gIC8vIE9ic2VydmFibGUgZm9yIGNvbXBvbmVudHMgdG8gc3Vic2NyaWJlIHRvIG1lc3NhZ2VzXG4gIHB1YmxpYyBub3RpZmljYXRpb25zJCA9IHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAvLyBTdWJqZWN0IHRvIHRyYWNrIHRoZSBjb25uZWN0aW9uIHN0YXR1cyAoY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZClcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV0VCX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25BcGlTZXJ2aWNlOiBOb3RpZmljYXRpb25BcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7XG4gICAgdGhpcy5hcGlVcmwgPSB0aGlzLmNvbmZpZy5hcGlfdXJsICsgTk9USUZJQ0FUSU9OX1dFQlNPQ0tFVF9VUkw7XG4gICAgYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJC5zdWJzY3JpYmUoaXNBdXRoZW50aWNhdGVkID0+IHtcbiAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5mZXRjaExpdmVOb3RpZmljYXRpb25zKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9Ob3RpZmljYXRpb25zKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWNrTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICBjb25zdCBhY2tlZE5vdGlmaWNhdGlvbnM6IG51bWJlcltdID0gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0KEFDS0VEX05PVElGSUNBVElPTlNfTE9DQUxfU1RPUkFHRV9LRVkpID8/IFtdO1xuICAgIGFja2VkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbi5pZCk7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucG9zdChBQ0tFRF9OT1RJRklDQVRJT05TX0xPQ0FMX1NUT1JBR0VfS0VZLCBhY2tlZE5vdGlmaWNhdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaExpdmVOb3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uQXBpU2VydmljZS5nZXRMaXZlTm90aWZpY2F0aW9ucygpLnN1YnNjcmliZShub3RpZmljYXRpb25zID0+IHtcbiAgICAgIGNvbnN0IGxpdmVOb3RpZmljYXRpb25JZHMgPSBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4gbm90aWZpY2F0aW9uLmlkKTtcblxuICAgICAgLy8gQ2xlYXIgdXAgYW55IGFja2VkIG5vdGlmaWNhdGlvbnMgdGhhdCBoYXZlIGV4cGlyZWQgKG5vIGxvbmdlciBsaXZlKVxuICAgICAgbGV0IGFja2VkTm90aWZpY2F0aW9uczogbnVtYmVyW10gPSB0aGlzLmxvY2FsU3RvcmFnZS5nZXQoQUNLRURfTk9USUZJQ0FUSU9OU19MT0NBTF9TVE9SQUdFX0tFWSkgPz8gW107XG4gICAgICBhY2tlZE5vdGlmaWNhdGlvbnMgPSBhY2tlZE5vdGlmaWNhdGlvbnMuZmlsdGVyKGFja2VkTm90aWZpY2F0aW9uSWQgPT4gbGl2ZU5vdGlmaWNhdGlvbklkcy5pbmRleE9mKGFja2VkTm90aWZpY2F0aW9uSWQpID49IDApXG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZS5wb3N0KEFDS0VEX05PVElGSUNBVElPTlNfTE9DQUxfU1RPUkFHRV9LRVksIGFja2VkTm90aWZpY2F0aW9ucyk7XG5cbiAgICAgIC8vIEhhbmRsZSBuZXcgbm90aWZpY2F0aW9uc1xuICAgICAgbm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvbi5wdWJsaXNoZWQpXG4gICAgICAgIC5maWx0ZXIobm90aWZpY2F0aW9uID0+IGFja2VkTm90aWZpY2F0aW9ucy5pbmRleE9mKG5vdGlmaWNhdGlvbi5pZCkgPT09IC0xKVxuICAgICAgICAuZm9yRWFjaChub3RpZmljYXRpb24gPT4gdGhpcy5oYW5kbGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN0YXJ0IGxpc3RlbmluZyBmb3IgbmV3IG5vdGlmaWNhdGlvbnNcbiAgICBjb25zdCBzb2NrZXQgPSBuZXcgU29ja0pTKHRoaXMuYXBpVXJsKTsgLy8gSW5pdGlhbGl6ZSB0aGUgU29ja0pTIFdlYlNvY2tldCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXJcblxuICAgIC8vIENvbmZpZ3VyZSB0aGUgU1RPTVAgY2xpZW50IHdpdGggY29ubmVjdGlvbiBkZXRhaWxzXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IG5ldyBDbGllbnQoe1xuICAgICAgd2ViU29ja2V0RmFjdG9yeTogKCkgPT4gc29ja2V0LCAvLyBVc2UgU29ja0pTIGFzIHRoZSBXZWJTb2NrZXQgZmFjdG9yeVxuICAgICAgcmVjb25uZWN0RGVsYXk6IDUwMDAsIC8vIFJlY29ubmVjdCBkZWxheSBpZiBjb25uZWN0aW9uIGlzIGxvc3RcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5zdG9tcENsaWVudCkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgc3RvbXAgY2xpZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT24gc3VjY2Vzc2Z1bCBjb25uZWN0aW9uXG4gICAgdGhpcy5zdG9tcENsaWVudC5vbkNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAvLyBSZWdpc3RlciBub3RpZmljYXRpb24gY2FsbGJhY2tcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKE5PVElGSUNBVElPTl9UT1BJQywgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25Nb2RlbCA9IEpTT04ucGFyc2UobWVzc2FnZS5ib2R5KTtcbiAgICAgICAgdGhpcy5oYW5kbGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLnN0b21wQ2xpZW50Lm9uU3RvbXBFcnJvciA9IChmcmFtZSkgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQnJva2VyIHJlcG9ydGVkIGVycm9yOiAnICsgZnJhbWUuaGVhZGVyc1snbWVzc2FnZSddKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FkZGl0aW9uYWwgZGV0YWlsczogJyArIGZyYW1lLmJvZHkpO1xuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZygnQWN0aXZhdGluZyBzdG9tcCBjbGllbnQnKTtcbiAgICB0aGlzLnN0b21wQ2xpZW50LmFjdGl2YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0U2VjdGlvbklkcyA9IG5vdGlmaWNhdGlvbi50YXJnZXRTZWN0aW9ucy5tYXAoc2VjdGlvbiA9PiBzZWN0aW9uLmlkKTtcbiAgICBjb25zdCB1c2VyU2VjdGlvbklkcyA9IHRoaXMudXNlci5wZXJtaXNzaW9ucy5tYXAocGVybWlzc2lvbiA9PiBwZXJtaXNzaW9uLnNlY3Rpb25JZCk7XG5cbiAgICBpZiAodGFyZ2V0U2VjdGlvbklkcy5zb21lKCh0YXJnZXRTZWN0aW9uSWQpID0+IHVzZXJTZWN0aW9uSWRzLmluY2x1ZGVzKHRhcmdldFNlY3Rpb25JZCkpKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QubmV4dChub3RpZmljYXRpb24pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -2598,14 +2598,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
2598
2598
  args: [WEB_CONFIG]
2599
2599
  }] }, { type: i1$5.HttpClient }] });
2600
2600
 
2601
+ class AuthService {
2602
+ constructor() {
2603
+ this.isAuthenticatedSubject = new BehaviorSubject(false);
2604
+ this.isAuthenticated$ = this.isAuthenticatedSubject.asObservable();
2605
+ }
2606
+ setAuthenticated(isAuthenticated) {
2607
+ this.isAuthenticatedSubject.next(isAuthenticated);
2608
+ }
2609
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2610
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService }); }
2611
+ }
2612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, decorators: [{
2613
+ type: Injectable
2614
+ }] });
2615
+
2601
2616
  const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';
2602
2617
  const NOTIFICATION_TOPIC = '/topic/notification';
2603
2618
  const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';
2604
2619
  class NotificationService {
2605
- constructor(config, notificationApiService, localStorage) {
2620
+ constructor(config, notificationApiService, localStorage, authService) {
2606
2621
  this.config = config;
2607
2622
  this.notificationApiService = notificationApiService;
2608
2623
  this.localStorage = localStorage;
2624
+ this.authService = authService;
2609
2625
  this.stompClient = null;
2610
2626
  this.notificationSubject = new BehaviorSubject(null);
2611
2627
  // Observable for components to subscribe to messages
@@ -2613,9 +2629,19 @@ class NotificationService {
2613
2629
  // Subject to track the connection status (connected/disconnected)
2614
2630
  this.connectionSubject = new BehaviorSubject(false);
2615
2631
  this.apiUrl = this.config.api_url + NOTIFICATION_WEBSOCKET_URL;
2632
+ authService.isAuthenticated$.subscribe(isAuthenticated => {
2633
+ if (isAuthenticated) {
2634
+ this.fetchLiveNotifications();
2635
+ this.subscribeToNotifications();
2636
+ }
2637
+ });
2616
2638
  }
2617
- connect() {
2618
- // Fetch live notifications
2639
+ ackNotification(notification) {
2640
+ const ackedNotifications = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];
2641
+ ackedNotifications.push(notification.id);
2642
+ this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);
2643
+ }
2644
+ fetchLiveNotifications() {
2619
2645
  this.notificationApiService.getLiveNotifications().subscribe(notifications => {
2620
2646
  const liveNotificationIds = notifications.map(notification => notification.id);
2621
2647
  // Clear up any acked notifications that have expired (no longer live)
@@ -2627,6 +2653,8 @@ class NotificationService {
2627
2653
  .filter(notification => ackedNotifications.indexOf(notification.id) === -1)
2628
2654
  .forEach(notification => this.handleNotification(notification));
2629
2655
  });
2656
+ }
2657
+ subscribeToNotifications() {
2630
2658
  if (this.stompClient) {
2631
2659
  return;
2632
2660
  }
@@ -2657,17 +2685,6 @@ class NotificationService {
2657
2685
  console.log('Activating stomp client');
2658
2686
  this.stompClient.activate();
2659
2687
  }
2660
- disconnect() {
2661
- if (this.stompClient) {
2662
- void this.stompClient.deactivate();
2663
- this.stompClient = null;
2664
- }
2665
- }
2666
- ackNotification(notification) {
2667
- const ackedNotifications = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];
2668
- ackedNotifications.push(notification.id);
2669
- this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);
2670
- }
2671
2688
  handleNotification(notification) {
2672
2689
  const targetSectionIds = notification.targetSections.map(section => section.id);
2673
2690
  const userSectionIds = this.user.permissions.map(permission => permission.sectionId);
@@ -2675,7 +2692,7 @@ class NotificationService {
2675
2692
  this.notificationSubject.next(notification);
2676
2693
  }
2677
2694
  }
2678
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, deps: [{ token: WEB_CONFIG }, { token: NotificationApiService }, { token: LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2695
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, deps: [{ token: WEB_CONFIG }, { token: NotificationApiService }, { token: LocalStorageService }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2679
2696
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
2680
2697
  }
2681
2698
  __decorate([
@@ -2689,7 +2706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
2689
2706
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2690
2707
  type: Inject,
2691
2708
  args: [WEB_CONFIG]
2692
- }] }, { type: NotificationApiService }, { type: LocalStorageService }], propDecorators: { user: [] } });
2709
+ }] }, { type: NotificationApiService }, { type: LocalStorageService }, { type: AuthService }], propDecorators: { user: [] } });
2693
2710
 
2694
2711
  class NotificationBarComponent {
2695
2712
  constructor() {
@@ -3147,25 +3164,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
3147
3164
  type: Injectable
3148
3165
  }], ctorParameters: () => [] });
3149
3166
 
3150
- class AuthService {
3151
- constructor(notificationService) {
3152
- this.notificationService = notificationService;
3153
- this.isAuthenticatedSubject = new BehaviorSubject(false);
3154
- this.isAuthenticated$ = this.isAuthenticatedSubject.asObservable();
3155
- }
3156
- setAuthenticated(isAuthenticated) {
3157
- if (isAuthenticated) {
3158
- this.notificationService.connect();
3159
- }
3160
- this.isAuthenticatedSubject.next(isAuthenticated);
3161
- }
3162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, deps: [{ token: NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3163
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService }); }
3164
- }
3165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AuthService, decorators: [{
3166
- type: Injectable
3167
- }], ctorParameters: () => [{ type: NotificationService }] });
3168
-
3169
3167
  class UtilModule {
3170
3168
  constructor() {
3171
3169
  this.langService = inject(LangService);