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.
- package/esm2022/lib/util/services/auth/auth.service.mjs +4 -9
- package/esm2022/lib/util/services/notification/notification.service.mjs +20 -17
- package/fesm2022/new-front-common-library.mjs +33 -35
- package/fesm2022/new-front-common-library.mjs.map +1 -1
- package/lib/util/services/auth/auth.service.d.ts +0 -3
- package/lib/util/services/notification/notification.service.d.ts +5 -3
- package/package.json +1 -1
|
@@ -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(
|
|
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: [
|
|
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
|
-
}]
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
-
|
|
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
|
-
|
|
2618
|
-
|
|
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);
|