nuxeo-development-framework 3.8.2 → 3.8.4

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.
Files changed (131) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +31221 -30524
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +156 -0
  4. package/esm2015/lib/components/notifications/components/base-notifications.component.js +31 -0
  5. package/esm2015/lib/components/notifications/components/index.js +7 -0
  6. package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +44 -0
  7. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +41 -129
  8. package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +38 -0
  9. package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +26 -0
  10. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +77 -165
  11. package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +63 -0
  12. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +53 -175
  13. package/esm2015/lib/components/notifications/components/notifications-list/options.js +24 -0
  14. package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +43 -0
  15. package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +28 -0
  16. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +30 -0
  17. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +163 -0
  18. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +28 -0
  19. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +158 -0
  20. package/esm2015/lib/components/notifications/constants/date.js +8 -0
  21. package/esm2015/lib/components/notifications/constants/index.js +5 -0
  22. package/esm2015/lib/components/notifications/constants/pagination.js +5 -0
  23. package/esm2015/lib/components/notifications/constants/panel.js +5 -0
  24. package/esm2015/lib/components/notifications/constants/status.js +10 -0
  25. package/esm2015/lib/components/notifications/containers/index.js +3 -0
  26. package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +98 -0
  27. package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +18 -0
  28. package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +67 -0
  29. package/esm2015/lib/components/notifications/directives/button.directive.js +28 -0
  30. package/esm2015/lib/components/notifications/directives/index.js +3 -0
  31. package/esm2015/lib/components/notifications/directives/notification.directive.js +28 -0
  32. package/esm2015/lib/components/notifications/index.js +2 -0
  33. package/esm2015/lib/components/notifications/models/common.js +2 -0
  34. package/esm2015/lib/components/notifications/models/index.js +11 -0
  35. package/esm2015/lib/components/notifications/models/notification-definition.model.js +2 -0
  36. package/esm2015/lib/components/notifications/models/notification-options.js +2 -0
  37. package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +2 -0
  38. package/esm2015/lib/components/notifications/models/notification-subscription.model.js +2 -0
  39. package/esm2015/lib/components/notifications/models/notification.model.js +2 -0
  40. package/esm2015/lib/components/notifications/models/notifications-list-options.js +3 -0
  41. package/esm2015/lib/components/notifications/models/paging-response.model.js +2 -0
  42. package/esm2015/lib/components/notifications/models/params.model.js +2 -0
  43. package/esm2015/lib/components/notifications/models/vocabularies.js +2 -0
  44. package/esm2015/lib/components/notifications/notifications.module.js +80 -46
  45. package/esm2015/lib/components/notifications/public-api.js +9 -0
  46. package/esm2015/lib/components/notifications/services/index.js +2 -0
  47. package/esm2015/lib/components/notifications/services/listener.service.js +19 -0
  48. package/esm2015/lib/components/notifications/services/notifications.service.js +156 -0
  49. package/esm2015/lib/components/notifications/services/params.service.js +31 -0
  50. package/esm2015/lib/components/notifications/services/response.service.js +65 -0
  51. package/esm2015/lib/components/notifications/utilities/index.js +2 -0
  52. package/esm2015/lib/components/notifications/utilities/response.adapter.js +12 -0
  53. package/esm2015/lib/components/{notifications → toasts}/components/notification-toast/notification-toast.component.js +7 -11
  54. package/esm2015/lib/components/toasts/index.js +2 -0
  55. package/esm2015/lib/components/toasts/public-api.js +3 -0
  56. package/esm2015/lib/components/toasts/toasts.module.js +19 -0
  57. package/esm2015/lib/core/models/api-response.model.js +2 -0
  58. package/esm2015/lib/core/models/automation-response.model.js +2 -0
  59. package/esm2015/lib/core/models/base-response.models.js +2 -0
  60. package/esm2015/lib/core/models/index.js +5 -0
  61. package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +3 -3
  62. package/esm2015/lib/core/services/translation/translation.service.js +3 -3
  63. package/esm2015/public-api.js +136 -142
  64. package/fesm2015/nuxeo-development-framework.js +23227 -22604
  65. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  66. package/lib/components/notifications/components/base-list-notfications.component.d.ts +42 -0
  67. package/lib/components/notifications/components/base-notifications.component.d.ts +17 -0
  68. package/lib/components/notifications/components/index.d.ts +6 -0
  69. package/lib/components/notifications/components/notification-item/get-icon.pipe.d.ts +8 -0
  70. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +21 -22
  71. package/lib/components/notifications/components/notification-source-select/notification-source-select.component.d.ts +15 -0
  72. package/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.d.ts +8 -0
  73. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +31 -30
  74. package/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.d.ts +22 -0
  75. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +15 -54
  76. package/lib/components/notifications/components/notifications-list/options.d.ts +2 -0
  77. package/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.d.ts +15 -0
  78. package/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.d.ts +8 -0
  79. package/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.d.ts +3 -0
  80. package/lib/components/notifications/components/notifications-settings/notifications-settings.component.d.ts +40 -0
  81. package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.d.ts +9 -0
  82. package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.d.ts +43 -0
  83. package/lib/components/notifications/constants/date.d.ts +7 -0
  84. package/lib/components/notifications/constants/index.d.ts +4 -0
  85. package/lib/components/notifications/constants/pagination.d.ts +4 -0
  86. package/lib/components/notifications/constants/panel.d.ts +4 -0
  87. package/lib/components/notifications/constants/status.d.ts +9 -0
  88. package/lib/components/notifications/containers/index.d.ts +2 -0
  89. package/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.d.ts +27 -0
  90. package/lib/components/notifications/containers/notifications-list-container/options.d.ts +2 -0
  91. package/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.d.ts +22 -0
  92. package/lib/components/notifications/directives/button.directive.d.ts +9 -0
  93. package/lib/components/notifications/directives/index.d.ts +2 -0
  94. package/lib/components/notifications/directives/notification.directive.d.ts +9 -0
  95. package/lib/components/notifications/index.d.ts +1 -0
  96. package/lib/components/notifications/models/common.d.ts +64 -0
  97. package/lib/components/notifications/models/index.d.ts +10 -0
  98. package/lib/components/notifications/models/notification-definition.model.d.ts +17 -0
  99. package/lib/components/notifications/models/notification-options.d.ts +7 -0
  100. package/lib/components/notifications/models/notification-setting.presenter.d.ts +24 -0
  101. package/lib/components/notifications/models/notification-subscription.model.d.ts +13 -0
  102. package/lib/components/notifications/models/notification.model.d.ts +16 -0
  103. package/lib/components/notifications/models/notifications-list-options.d.ts +34 -0
  104. package/lib/components/notifications/models/paging-response.model.d.ts +12 -0
  105. package/lib/components/notifications/models/params.model.d.ts +6 -0
  106. package/lib/components/notifications/models/vocabularies.d.ts +12 -0
  107. package/lib/components/notifications/notifications.module.d.ts +32 -16
  108. package/lib/components/notifications/public-api.d.ts +8 -0
  109. package/lib/components/notifications/services/index.d.ts +1 -0
  110. package/lib/components/notifications/services/listener.service.d.ts +8 -0
  111. package/lib/components/notifications/services/notifications.service.d.ts +56 -0
  112. package/lib/components/notifications/services/params.service.d.ts +19 -0
  113. package/lib/components/notifications/services/response.service.d.ts +19 -0
  114. package/lib/components/notifications/utilities/index.d.ts +1 -0
  115. package/lib/components/notifications/utilities/response.adapter.d.ts +3 -0
  116. package/lib/components/{notifications → toasts}/components/notification-toast/notification-toast.component.d.ts +1 -3
  117. package/lib/components/toasts/index.d.ts +1 -0
  118. package/lib/components/toasts/public-api.d.ts +2 -0
  119. package/lib/components/toasts/toasts.module.d.ts +8 -0
  120. package/lib/core/models/api-response.model.d.ts +24 -0
  121. package/lib/core/models/automation-response.model.d.ts +24 -0
  122. package/lib/core/models/base-response.models.d.ts +12 -0
  123. package/lib/core/models/index.d.ts +4 -0
  124. package/lib/core/services/nuxeo/nuxeo.service.d.ts +1 -1
  125. package/lib/core/services/translation/translation.service.d.ts +3 -3
  126. package/package.json +1 -1
  127. package/public-api.d.ts +130 -136
  128. package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +0 -22
  129. package/esm2015/lib/components/notifications/notifications.service.js +0 -358
  130. package/lib/components/notifications/components/notification-options/notification-options.component.d.ts +0 -10
  131. package/lib/components/notifications/notifications.service.d.ts +0 -87
@@ -1,358 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { EventEmitter, Inject, Injectable } from "@angular/core";
3
- import { from, of, ReplaySubject } from "rxjs";
4
- import { catchError, map, publishReplay, refCount } from "rxjs/operators";
5
- import * as SockJS from "sockjs-client";
6
- import * as Stomp from "webstomp-client";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "@angular/router";
10
- import * as i3 from "../../core/services/nuxeo/nuxeo.service";
11
- import * as i4 from "keycloak-angular";
12
- import * as i5 from "ngx-cookie-service";
13
- import * as i6 from "../../core/services/localStorag/local-storag.service";
14
- import * as i7 from "../../core/services/initialization/initialization.service";
15
- import * as i8 from "../../core/services/translation/translation.service";
16
- export class NotificationsService {
17
- constructor(http, router, nuxeoService, keycloak, cookieService, localStorag, intializationService, translationService, environment) {
18
- this.http = http;
19
- this.router = router;
20
- this.nuxeoService = nuxeoService;
21
- this.keycloak = keycloak;
22
- this.cookieService = cookieService;
23
- this.localStorag = localStorag;
24
- this.intializationService = intializationService;
25
- this.translationService = translationService;
26
- this.environment = environment;
27
- this.stompClient = null;
28
- this.subscriber = null;
29
- this.connectedPromise = null;
30
- this.listenerObserver = new EventEmitter();
31
- this.update = new ReplaySubject(1);
32
- this.alreadyConnectedOnce = false;
33
- this.pageSize = 15;
34
- this._notifications = [];
35
- this._notificationsCount = 0;
36
- this.base = "";
37
- this.profile = { id: this.nuxeoService.nuxeoClient.user.id };
38
- this.systemLang = "";
39
- this.loading = false;
40
- this.selectedFilterType = {
41
- name: 'all',
42
- id: 'all'
43
- };
44
- this.isReaded = false;
45
- this.showFilters = false;
46
- this.types = [
47
- { name: 'all', id: 'all' },
48
- { name: 'correspondence', id: 'correspondence' },
49
- { name: 'assignment', id: 'assignment' },
50
- { name: 'workspace', id: 'corrWorkspace' },
51
- { name: 'approvals', id: 'approval' }
52
- ];
53
- this.storedNotifications = []; // to store all notification in it so when filtering not losing all data
54
- if (this.profile.id) {
55
- this.getCount().subscribe(() => {
56
- this.connect();
57
- this.subscribe();
58
- });
59
- }
60
- this.translationService.isArabic.subscribe((res) => {
61
- this.resetNotifications();
62
- });
63
- }
64
- get notifications() {
65
- return this._notifications;
66
- }
67
- get notificationsCount() {
68
- return this._notificationsCount;
69
- }
70
- getCount() {
71
- return this.doCountNew(this.profile.id).pipe(map((data) => {
72
- this._notificationsCount = data;
73
- this.update.next();
74
- return data;
75
- }));
76
- }
77
- reset() {
78
- this._notifications = [];
79
- this.storedNotifications = [];
80
- this._notificationsCount = 0;
81
- }
82
- resetNotifications() {
83
- this._notifications = [];
84
- this.storedNotifications = [];
85
- }
86
- resetFilterParams() {
87
- this.selectedFilterType = { name: 'all', id: 'all' };
88
- this.isReaded = false;
89
- }
90
- fetchNotifications() {
91
- this.loading = true;
92
- return this.getNotifications(this.profile.id, {
93
- page: this._notifications.length > 0
94
- ? Math.ceil(this._notifications.length / this.pageSize)
95
- : 0,
96
- size: this.pageSize,
97
- paged: true,
98
- sort: "sendDate,desc",
99
- sorted: true,
100
- lang: this.translationService.userLang.toUpperCase(),
101
- }).pipe(map((notifications) => {
102
- this.loading = false;
103
- if (notifications.items) {
104
- if (this.showFilters) {
105
- this.storedNotifications = this.storedNotifications.concat(notifications.items);
106
- this._notifications = this._notifications.concat(this.filterNotifications(notifications.items));
107
- }
108
- else {
109
- this._notifications = this._notifications.concat(notifications.items);
110
- }
111
- return notifications;
112
- }
113
- else {
114
- this._notifications = [];
115
- return [];
116
- }
117
- }), catchError(() => {
118
- this._notifications = [];
119
- this.storedNotifications = [];
120
- this.loading = false;
121
- return [];
122
- }));
123
- }
124
- // filter notifcations in front end according to the selected filters
125
- filterNotifications(notifications) {
126
- let filteredNotifications = [];
127
- if (this.selectedFilterType.name === 'all') {
128
- if (this.isReaded) {
129
- // find readed notifications on all types of notifications
130
- return this.findReadOrUnReadedNotification('READ', notifications);
131
- }
132
- else {
133
- // find un readed notifications on all types of notifications
134
- return this.findReadOrUnReadedNotification('UN_READ', notifications);
135
- }
136
- }
137
- else {
138
- let requiredState = this.isReaded ? 'READ' : 'UN_READ';
139
- notifications.map(notification => {
140
- if (notification.sourceType === this.selectedFilterType.id && notification.status === requiredState) {
141
- filteredNotifications.push(notification);
142
- }
143
- });
144
- return filteredNotifications;
145
- }
146
- }
147
- // find a notification according to its state READ or UN_READ
148
- findReadOrUnReadedNotification(state, notifications) {
149
- let statedNotifications = [];
150
- notifications.map(notification => {
151
- if (notification.status === state) {
152
- statedNotifications.push(notification);
153
- }
154
- });
155
- return statedNotifications;
156
- }
157
- resetCount() {
158
- this._notificationsCount = 0;
159
- }
160
- markAllAsRead() {
161
- this.doMarkAllAsRead(this.profile.id).subscribe(() => {
162
- this._notifications.forEach((item) => (item.status = "READ"));
163
- });
164
- }
165
- updateStatus(notification, onOpen = false) {
166
- const bool = notification.status === "UN_READ" ||
167
- notification.status === "NEW" ||
168
- onOpen;
169
- if (bool) {
170
- this.doMarkAsRead(notification.id).subscribe(() => {
171
- notification.status = "READ";
172
- this.getCount().subscribe(() => { });
173
- });
174
- }
175
- else {
176
- this.doMarkAsUnread(notification.id).subscribe(() => {
177
- notification.status = "UN_READ";
178
- this.getCount().subscribe(() => { });
179
- });
180
- }
181
- }
182
- deleteNotification(notification) {
183
- this.doDeleteNotification(notification.id).subscribe(() => {
184
- this._notifications.filter((item, index) => {
185
- if (item.id === notification.id) {
186
- this._notifications.splice(index, 1);
187
- return;
188
- }
189
- });
190
- this.update.next();
191
- });
192
- }
193
- getNotifications(userId, queryParams = {}) {
194
- const endpoint = `${this.environment.notifications}/api/system-notifications/all/${userId}`;
195
- return this.http
196
- .get(endpoint, { observe: "response", params: queryParams })
197
- .pipe(map((resp) => ({
198
- totalCount: resp.headers.get("x-total-count"),
199
- items: resp.body.map((item) => item),
200
- })), catchError(this.handleError("getNotifications", [])), publishReplay(1), refCount());
201
- }
202
- doCountNew(userId, queryParams = {}) {
203
- const endpoint = `${this.environment.notifications}/api/system-notifications/countNew/${userId}`;
204
- return this.http
205
- .get(endpoint, { params: queryParams })
206
- .pipe(catchError(this.handleError("countNew", [])));
207
- }
208
- doResetCountNew(userId, queryParams = {}) {
209
- const endpoint = `${this.environment.notifications}/api/system-notifications/resetCount/${userId}`;
210
- return this.http
211
- .put(endpoint, { params: queryParams })
212
- .pipe(catchError(this.handleError("resetCountNew", [])));
213
- }
214
- doCountUnread(userId, queryParams = {}) {
215
- const endpoint = `${this.environment.notifications}/api/system-notifications/countUnRead/${userId}`;
216
- return this.http
217
- .get(endpoint, { params: queryParams })
218
- .pipe(catchError(this.handleError("countUnread", [])));
219
- }
220
- doMarkAllAsRead(userId, queryParams = {}) {
221
- const endpoint = `${this.environment.notifications}/api/system-notifications/markAllAsRead/${userId}`;
222
- return this.http
223
- .put(endpoint, { params: queryParams })
224
- .pipe(catchError(this.handleError("markAllAsRead", [])));
225
- }
226
- doMarkAsRead(notificationId, queryParams = {}) {
227
- const endpoint = `${this.environment.notifications}/api/system-notifications/markAsRead/${notificationId}`;
228
- return this.http
229
- .put(endpoint, { params: queryParams })
230
- .pipe(catchError(this.handleError("markAsRead", [])));
231
- }
232
- doMarkAsUnread(notificationId, queryParams = {}) {
233
- const endpoint = `${this.environment.notifications}/api/system-notifications/markAsUnRead/${notificationId}`;
234
- return this.http
235
- .put(endpoint, { params: queryParams })
236
- .pipe(catchError(this.handleError("markAsUnread", [])));
237
- }
238
- doDeleteNotification(notificationId, queryParams = {}) {
239
- const endpoint = `${this.environment.notifications}/api/system-notifications/${notificationId}`;
240
- return this.http
241
- .delete(endpoint, { params: queryParams })
242
- .pipe(catchError(this.handleError("deleteNotification", [])));
243
- }
244
- handleError(operation = "operation", result) {
245
- return (error) => {
246
- // TODO: send the error to remote logging infrastructure
247
- console.error(error); // log to console instead
248
- // TODO: better job of transforming error for user consumption
249
- console.log(`${operation} failed: ${error.message}`);
250
- // Let the app keep running by returning an empty result.
251
- result["status"] = error.status;
252
- if (error.error.hasOwnProperty("message")) {
253
- result["message"] = error.error.message;
254
- result["type"] = error.error.type;
255
- }
256
- return of(result);
257
- };
258
- }
259
- connect() {
260
- return __awaiter(this, void 0, void 0, function* () {
261
- if (this.connectedPromise === null) {
262
- this.connection = this.createConnection();
263
- }
264
- // building absolute path so that websocket doesn't fail when deploying with a context path
265
- let url;
266
- url = `${this.environment.notifications}/websocket/ekhaa`; //url
267
- const socket = new SockJS(url);
268
- this.stompClient = Stomp.over(socket);
269
- const headers = {
270
- // Upgrade: 'websocket',
271
- // Connection: 'Upgrade',
272
- token: this.environment.loginMethod === 'nuxeo' ? this.getCachable() : `${yield this.keycloak.getToken()}`,
273
- };
274
- if (!this.alreadyConnectedOnce) {
275
- this.stompClient.connect(headers, () => {
276
- this.alreadyConnectedOnce = true;
277
- this.connectedPromise("success");
278
- this.connectedPromise = null;
279
- });
280
- }
281
- });
282
- }
283
- disconnect() {
284
- if (this.stompClient !== null && this.alreadyConnectedOnce) {
285
- this.stompClient.disconnect();
286
- this.stompClient = null;
287
- if (this.subscription) {
288
- this.subscription.unsubscribe();
289
- this.subscription = null;
290
- }
291
- this.alreadyConnectedOnce = false;
292
- }
293
- else if (this.connectedPromise) {
294
- this.connection.then(() => {
295
- this.disconnect();
296
- });
297
- }
298
- }
299
- subscribe() {
300
- if (this.connection) {
301
- this.connection.then(() => {
302
- if (this.stompClient) {
303
- this.subscriber = this.stompClient.subscribe("/user/topic/notification", (data) => {
304
- const notification = JSON.parse(data.body);
305
- this._notifications.unshift(notification);
306
- this.getCount().subscribe(() => { });
307
- this.listenerObserver.emit(notification);
308
- });
309
- }
310
- });
311
- }
312
- }
313
- unsubscribe() {
314
- if (this.subscriber !== null) {
315
- this.subscriber.unsubscribe();
316
- }
317
- this.disconnect();
318
- }
319
- createConnection() {
320
- return new Promise((resolve, reject) => (this.connectedPromise = resolve));
321
- }
322
- testNotification() {
323
- return from(this.nuxeoService.nuxeoClient
324
- .operation("System.Notification", {
325
- url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
326
- })
327
- .params({
328
- applicationKey: "ctsn",
329
- notificationKey: "NotificationWhenOutgoingCorrespondneceApprove",
330
- apiData: '{"id": "a7ed629e-c8ea-4e84-8b83-329009515878","schema": "Correspondence"}',
331
- data: "{}",
332
- groupsId: [],
333
- usersId: ["cts_sec"],
334
- })
335
- .input("a7ed629e-c8ea-4e84-8b83-329009515878")
336
- .execute()).pipe(catchError((err) => {
337
- console.log(err);
338
- throw err;
339
- }));
340
- }
341
- getCachable() {
342
- let myCachable = this.cookieService.get('CMS_CACHABLE');
343
- myCachable = this.intializationService.decriptFormating(myCachable);
344
- return myCachable['access_token'];
345
- }
346
- setNotifications(notifications) {
347
- this._notifications = notifications;
348
- }
349
- }
350
- NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsService, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.NuxeoService }, { token: i4.KeycloakService }, { token: i5.CookieService }, { token: i6.LocalStoragService }, { token: i7.InitializationService }, { token: i8.TranslationService }, { token: "environment" }], target: i0.ɵɵFactoryTarget.Injectable });
351
- NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsService });
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsService, decorators: [{
353
- type: Injectable
354
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }, { type: i3.NuxeoService }, { type: i4.KeycloakService }, { type: i5.CookieService }, { type: i6.LocalStoragService }, { type: i7.InitializationService }, { type: i8.TranslationService }, { type: undefined, decorators: [{
355
- type: Inject,
356
- args: ["environment"]
357
- }] }]; } });
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixhQUE2QixFQUM3QixXQUFnQyxFQUNoQyxvQkFBNEMsRUFDNUMsa0JBQXNDLEVBQ2YsV0FBVztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBL0M1QyxnQkFBVyxHQUFHLElBQUks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QUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELFVBQVUsR0FBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQzs7a0hBM1dVLG9CQUFvQixtUUFnRHJCLGFBQWE7c0hBaERaLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFpRE4sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSBcImtleWNsb2FrLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHB1Ymxpc2hSZXBsYXksIHJlZkNvdW50IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tIFwic29ja2pzLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIFN0b21wIGZyb20gXCJ3ZWJzdG9tcC1jbGllbnRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbFN0b3JhZy9sb2NhbC1zdG9yYWcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlcy9pbml0aWFsaXphdGlvbi9pbml0aWFsaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XHJcbiAgc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gIHN1YnNjcmliZXIgPSBudWxsO1xyXG4gIGNvbm5lY3Rpb246IFByb21pc2U8YW55PjtcclxuICBjb25uZWN0ZWRQcm9taXNlOiBhbnkgPSBudWxsO1xyXG4gIGxpc3RlbmVyT2JzZXJ2ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwZGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICBwYWdlU2l6ZSA9IDE1O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3RvbXAuU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gW107XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIGdldCBub3RpZmljYXRpb25zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQ7XHJcbiAgfVxyXG4gIGJhc2UgPSBcIlwiO1xyXG4gIHByb2ZpbGUgPSB7IGlkOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLmlkIH07XHJcbiAgc3lzdGVtTGFuZyA9IFwiXCI7XHJcbiAgbGFuZ0NoYW5nZWQ6IGJvb2xlYW47XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRmlsdGVyVHlwZSA9IHtcclxuICAgIG5hbWU6ICdhbGwnLFxyXG4gICAgaWQgOiAnYWxsJ1xyXG4gIH07XHJcbiAgaXNSZWFkZWQgPSBmYWxzZTtcclxuICBzaG93RmlsdGVycyA9IGZhbHNlO1xyXG4gIHR5cGVzID0gW1xyXG4gICAgeyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9LFxyXG4gICAgeyBuYW1lOiAnY29ycmVzcG9uZGVuY2UnLCBpZCA6ICdjb3JyZXNwb25kZW5jZScgfSxcclxuICAgIHsgbmFtZTogJ2Fzc2lnbm1lbnQnLCBpZCA6ICdhc3NpZ25tZW50JyB9LFxyXG4gICAgeyBuYW1lOiAnd29ya3NwYWNlJywgaWQgOiAnY29ycldvcmtzcGFjZScgfSxcclxuICAgIHsgbmFtZTogJ2FwcHJvdmFscycsIGlkIDogJ2FwcHJvdmFsJyB9XHJcbiAgXVxyXG4gIHN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXSA7IC8vIHRvIHN0b3JlIGFsbCBub3RpZmljYXRpb24gaW4gaXQgc28gd2hlbiBmaWx0ZXJpbmcgbm90IGxvc2luZyBhbGwgZGF0YVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlIDogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWcgOiBMb2NhbFN0b3JhZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGludGlhbGl6YXRpb25TZXJ2aWNlIDogSW5pdGlhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIEBJbmplY3QoXCJlbnZpcm9ubWVudFwiKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5wcm9maWxlLmlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5yZXNldE5vdGlmaWNhdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRDb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRvQ291bnROZXcodGhpcy5wcm9maWxlLmlkKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMudXBkYXRlLm5leHQoKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLnN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgcmVzZXRGaWx0ZXJQYXJhbXMoKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlID0geyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9O1xyXG4gICAgdGhpcy5pc1JlYWRlZCA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBmZXRjaE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucyh0aGlzLnByb2ZpbGUuaWQsIHtcclxuICAgICAgcGFnZTpcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gTWF0aC5jZWlsKHRoaXMuX25vdGlmaWNhdGlvbnMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSlcclxuICAgICAgICAgIDogMCxcclxuICAgICAgc2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgcGFnZWQ6IHRydWUsXHJcbiAgICAgIHNvcnQ6IFwic2VuZERhdGUsZGVzY1wiLFxyXG4gICAgICBzb3J0ZWQ6IHRydWUsXHJcbiAgICAgIGxhbmc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnVzZXJMYW5nLnRvVXBwZXJDYXNlKCksXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKG5vdGlmaWNhdGlvbnM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChub3RpZmljYXRpb25zLml0ZW1zKSB7XHJcbiAgICAgICAgICBpZih0aGlzLnNob3dGaWx0ZXJzKXtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gdGhpcy5zdG9yZWROb3RpZmljYXRpb25zLmNvbmNhdChub3RpZmljYXRpb25zLml0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KHRoaXMuZmlsdGVyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zLml0ZW1zKSk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KG5vdGlmaWNhdGlvbnMuaXRlbXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIGZpbHRlciBub3RpZmNhdGlvbnMgaW4gZnJvbnQgZW5kIGFjY29yZGluZyB0byB0aGUgc2VsZWN0ZWQgZmlsdGVyc1xyXG4gIGZpbHRlck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICBsZXQgZmlsdGVyZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5uYW1lID09PSAnYWxsJyl7XHJcbiAgICAgIGlmKHRoaXMuaXNSZWFkZWQpe1xyXG4gICAgICAgIC8vIGZpbmQgcmVhZGVkIG5vdGlmaWNhdGlvbnMgb24gYWxsIHR5cGVzIG9mIG5vdGlmaWNhdGlvbnNcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oJ1JFQUQnICwgbm90aWZpY2F0aW9ucylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgLy8gZmluZCB1biByZWFkZWQgbm90aWZpY2F0aW9ucyBvbiBhbGwgdHlwZXMgb2Ygbm90aWZpY2F0aW9uc1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRSZWFkT3JVblJlYWRlZE5vdGlmaWNhdGlvbignVU5fUkVBRCcgLCBub3RpZmljYXRpb25zKVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGV0IHJlcXVpcmVkU3RhdGUgPSB0aGlzLmlzUmVhZGVkID8gJ1JFQUQnIDogJ1VOX1JFQUQnO1xyXG4gICAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICAgIGlmKG5vdGlmaWNhdGlvbi5zb3VyY2VUeXBlID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5pZCAmJiBub3RpZmljYXRpb24uc3RhdHVzID09PSByZXF1aXJlZFN0YXRlKXtcclxuICAgICAgICAgIGZpbHRlcmVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZE5vdGlmaWNhdGlvbnNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGZpbmQgYSBub3RpZmljYXRpb24gYWNjb3JkaW5nIHRvIGl0cyBzdGF0ZSBSRUFEIG9yIFVOX1JFQURcclxuICBmaW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oc3RhdGUgLCBub3RpZmljYXRpb25zKXtcclxuICAgIGxldCBzdGF0ZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICBpZihub3RpZmljYXRpb24uc3RhdHVzID09PSBzdGF0ZSl7XHJcbiAgICAgICAgc3RhdGVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBzdGF0ZWROb3RpZmljYXRpb25zO1xyXG4gIH1cclxuICByZXNldENvdW50KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uc0NvdW50ID0gMDtcclxuICB9XHJcbiAgbWFya0FsbEFzUmVhZCgpIHtcclxuICAgIHRoaXMuZG9NYXJrQWxsQXNSZWFkKHRoaXMucHJvZmlsZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zdGF0dXMgPSBcIlJFQURcIikpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZVN0YXR1cyhub3RpZmljYXRpb24sIG9uT3BlbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBib29sID1cclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJVTl9SRUFEXCIgfHxcclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJORVdcIiB8fFxyXG4gICAgICBvbk9wZW47XHJcbiAgICBpZiAoYm9vbCkge1xyXG4gICAgICB0aGlzLmRvTWFya0FzUmVhZChub3RpZmljYXRpb24uaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9IFwiUkVBRFwiO1xyXG4gICAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge30pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9NYXJrQXNVbnJlYWQobm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPSBcIlVOX1JFQURcIjtcclxuICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlbGV0ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PT0gbm90aWZpY2F0aW9uLmlkKSB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldE5vdGlmaWNhdGlvbnModXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2FsbC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLCBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcCkgPT4gKHtcclxuICAgICAgICAgIHRvdGFsQ291bnQ6IHJlc3AuaGVhZGVycy5nZXQoXCJ4LXRvdGFsLWNvdW50XCIpLFxyXG4gICAgICAgICAgaXRlbXM6IHJlc3AuYm9keS5tYXAoKGl0ZW0pID0+IGl0ZW0pLFxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJnZXROb3RpZmljYXRpb25zXCIsIFtdKSksXHJcbiAgICAgICAgcHVibGlzaFJlcGxheSgxKSxcclxuICAgICAgICByZWZDb3VudCgpXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIGRvQ291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2NvdW50TmV3LyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImNvdW50TmV3XCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb1Jlc2V0Q291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL3Jlc2V0Q291bnQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwicmVzZXRDb3VudE5ld1wiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9Db3VudFVucmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvY291bnRVblJlYWQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiY291bnRVbnJlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FsbEFzUmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FsbEFzUmVhZC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQWxsQXNSZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBc1JlYWQobm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FzUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1JlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBc1VuUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1VucmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZGVsZXRlPGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJkZWxldGVOb3RpZmljYXRpb25cIiwgW10pKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3I8VD4ob3BlcmF0aW9uID0gXCJvcGVyYXRpb25cIiwgcmVzdWx0PzogVCkge1xyXG4gICAgcmV0dXJuIChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICAgIC8vIFRPRE86IHNlbmQgdGhlIGVycm9yIHRvIHJlbW90ZSBsb2dnaW5nIGluZnJhc3RydWN0dXJlXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOyAvLyBsb2cgdG8gY29uc29sZSBpbnN0ZWFkXHJcblxyXG4gICAgICAvLyBUT0RPOiBiZXR0ZXIgam9iIG9mIHRyYW5zZm9ybWluZyBlcnJvciBmb3IgdXNlciBjb25zdW1wdGlvblxyXG4gICAgICBjb25zb2xlLmxvZyhgJHtvcGVyYXRpb259IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG5cclxuICAgICAgLy8gTGV0IHRoZSBhcHAga2VlcCBydW5uaW5nIGJ5IHJldHVybmluZyBhbiBlbXB0eSByZXN1bHQuXHJcbiAgICAgIHJlc3VsdFtcInN0YXR1c1wiXSA9IGVycm9yLnN0YXR1cztcclxuICAgICAgaWYgKGVycm9yLmVycm9yLmhhc093blByb3BlcnR5KFwibWVzc2FnZVwiKSkge1xyXG4gICAgICAgIHJlc3VsdFtcIm1lc3NhZ2VcIl0gPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIHJlc3VsdFtcInR5cGVcIl0gPSBlcnJvci5lcnJvci50eXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gb2YocmVzdWx0IGFzIFQpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAvLyBidWlsZGluZyBhYnNvbHV0ZSBwYXRoIHNvIHRoYXQgd2Vic29ja2V0IGRvZXNuJ3QgZmFpbCB3aGVuIGRlcGxveWluZyB3aXRoIGEgY29udGV4dCBwYXRoXHJcbiAgICBsZXQgdXJsO1xyXG4gICAgdXJsID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS93ZWJzb2NrZXQvZWtoYWFgOyAvL3VybFxyXG4gICAgY29uc3Qgc29ja2V0ID0gbmV3IFNvY2tKUyh1cmwpO1xyXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IFN0b21wLm92ZXIoc29ja2V0KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgIC8vIFVwZ3JhZGU6ICd3ZWJzb2NrZXQnLFxyXG4gICAgICAvLyBDb25uZWN0aW9uOiAnVXBncmFkZScsXHJcbiAgICAgIHRva2VuOiB0aGlzLmVudmlyb25tZW50LmxvZ2luTWV0aG9kID09PSAnbnV4ZW8nID8gdGhpcy5nZXRDYWNoYWJsZSgpOiBgJHthd2FpdCB0aGlzLmtleWNsb2FrLmdldFRva2VuKCl9YCxcclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5jb25uZWN0KGhlYWRlcnMsICgpID0+IHtcclxuICAgICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZFByb21pc2UoXCJzdWNjZXNzXCIpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLnN0b21wQ2xpZW50ICE9PSBudWxsICYmIHRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29ubmVjdGVkUHJvbWlzZSkge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlKCkge1xyXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvbXBDbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlciA9IHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICBcIi91c2VyL3RvcGljL25vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IEpTT04ucGFyc2UoZGF0YS5ib2R5KTtcclxuICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnVuc2hpZnQobm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVyT2JzZXJ2ZXIuZW1pdChub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmliZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbigpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+ICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPSByZXNvbHZlKSk7XHJcbiAgfVxyXG5cclxuICB0ZXN0Tm90aWZpY2F0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKFwiU3lzdGVtLk5vdGlmaWNhdGlvblwiLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgYXBwbGljYXRpb25LZXk6IFwiY3RzblwiLFxyXG4gICAgICAgICAgbm90aWZpY2F0aW9uS2V5OiBcIk5vdGlmaWNhdGlvbldoZW5PdXRnb2luZ0NvcnJlc3BvbmRuZWNlQXBwcm92ZVwiLFxyXG4gICAgICAgICAgYXBpRGF0YTpcclxuICAgICAgICAgICAgJ3tcImlkXCI6IFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIsXCJzY2hlbWFcIjogXCJDb3JyZXNwb25kZW5jZVwifScsXHJcbiAgICAgICAgICBkYXRhOiBcInt9XCIsXHJcbiAgICAgICAgICBncm91cHNJZDogW10sXHJcbiAgICAgICAgICB1c2Vyc0lkOiBbXCJjdHNfc2VjXCJdLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIpXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoYWJsZSgpe1xyXG4gICAgbGV0IG15Q2FjaGFibGUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCdDTVNfQ0FDSEFCTEUnKTtcclxuICAgIG15Q2FjaGFibGUgPSAgdGhpcy5pbnRpYWxpemF0aW9uU2VydmljZS5kZWNyaXB0Rm9ybWF0aW5nKG15Q2FjaGFibGUpO1xyXG4gIHJldHVybiBteUNhY2hhYmxlWydhY2Nlc3NfdG9rZW4nXTtcclxuICB9XHJcblxyXG4gIHNldE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9ucztcclxuICB9XHJcbn1cclxuIl19
@@ -1,10 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- /**
3
- * Sorting Options Popovermenu
4
- */
5
- export declare class NotificationOptionsComponent {
6
- constructor();
7
- delete(): void;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationOptionsComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<NotificationOptionsComponent, "app-notification-options", never, {}, {}, never, never>;
10
- }
@@ -1,87 +0,0 @@
1
- import { HttpClient } from "@angular/common/http";
2
- import { EventEmitter } from "@angular/core";
3
- import { Router } from "@angular/router";
4
- import { KeycloakService } from "keycloak-angular";
5
- import { Observable, ReplaySubject } from "rxjs";
6
- import { NuxeoService } from "../../core/services/nuxeo/nuxeo.service";
7
- import { TranslationService } from "../../core/services/translation/translation.service";
8
- import { LocalStoragService } from "../../core/services/localStorag/local-storag.service";
9
- import { InitializationService } from "../../core/services/initialization/initialization.service";
10
- import { CookieService } from 'ngx-cookie-service';
11
- import * as i0 from "@angular/core";
12
- export declare class NotificationsService {
13
- private http;
14
- router: Router;
15
- nuxeoService: NuxeoService;
16
- private keycloak;
17
- private cookieService;
18
- private localStorag;
19
- private intializationService;
20
- private translationService;
21
- private environment;
22
- stompClient: any;
23
- subscriber: any;
24
- connection: Promise<any>;
25
- connectedPromise: any;
26
- listenerObserver: EventEmitter<any>;
27
- update: ReplaySubject<any>;
28
- alreadyConnectedOnce: boolean;
29
- pageSize: number;
30
- private subscription;
31
- private _notifications;
32
- get notifications(): any;
33
- private _notificationsCount;
34
- get notificationsCount(): number;
35
- base: string;
36
- profile: {
37
- id: any;
38
- };
39
- systemLang: string;
40
- langChanged: boolean;
41
- loading: boolean;
42
- selectedFilterType: {
43
- name: string;
44
- id: string;
45
- };
46
- isReaded: boolean;
47
- showFilters: boolean;
48
- types: {
49
- name: string;
50
- id: string;
51
- }[];
52
- storedNotifications: any[];
53
- constructor(http: HttpClient, router: Router, nuxeoService: NuxeoService, keycloak: KeycloakService, cookieService: CookieService, localStorag: LocalStoragService, intializationService: InitializationService, translationService: TranslationService, environment: any);
54
- getCount(): Observable<any>;
55
- reset(): void;
56
- resetNotifications(): void;
57
- resetFilterParams(): void;
58
- fetchNotifications(): Observable<any>;
59
- filterNotifications(notifications: any): any[];
60
- findReadOrUnReadedNotification(state: any, notifications: any): any[];
61
- resetCount(): void;
62
- markAllAsRead(): void;
63
- updateStatus(notification: any, onOpen?: boolean): void;
64
- deleteNotification(notification: any): void;
65
- getNotifications(userId: any, queryParams?: {}): Observable<any[] | {
66
- totalCount: string;
67
- items: any;
68
- }>;
69
- doCountNew(userId: any, queryParams?: {}): Observable<any>;
70
- doResetCountNew(userId: any, queryParams?: {}): Observable<any>;
71
- doCountUnread(userId: any, queryParams?: {}): Observable<any>;
72
- doMarkAllAsRead(userId: any, queryParams?: {}): Observable<any>;
73
- doMarkAsRead(notificationId: any, queryParams?: {}): Observable<any>;
74
- doMarkAsUnread(notificationId: any, queryParams?: {}): Observable<any>;
75
- doDeleteNotification(notificationId: any, queryParams?: {}): Observable<any>;
76
- private handleError;
77
- connect(): Promise<void>;
78
- disconnect(): void;
79
- subscribe(): void;
80
- unsubscribe(): void;
81
- private createConnection;
82
- testNotification(): Observable<any>;
83
- getCachable(): any;
84
- setNotifications(notifications: any): void;
85
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationsService, never>;
86
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationsService>;
87
- }