@tuki-io/tuki-widgets 0.0.30 → 0.0.32
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/README.md +24 -24
- package/esm2020/lib/widgets.component.mjs +22 -22
- package/esm2020/lib/widgets.module.mjs +21 -21
- package/esm2020/lib/widgets.service.mjs +14 -14
- package/esm2020/public-api.mjs +7 -7
- package/esm2020/tuki-io-tuki-widgets.mjs +4 -4
- package/esm2020/user-device-manage/public-api.mjs +9 -9
- package/esm2020/user-device-manage/src/app.constants.mjs +95 -95
- package/esm2020/user-device-manage/src/classes/device.mjs +85 -85
- package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -2
- package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -121
- package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -10
- package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -27
- package/esm2020/user-device-manage/src/classes/line.mjs +18 -18
- package/esm2020/user-device-manage/src/classes/notification.mjs +32 -32
- package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -7
- package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -111
- package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -21
- package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -32
- package/esm2020/user-device-manage/src/classes/types.mjs +24 -24
- package/esm2020/user-device-manage/src/common-functions.mjs +19 -19
- package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -34
- package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -31
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -16
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +64 -64
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -179
- package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -24
- package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +335 -335
- package/esm2020/user-device-manage/src/environments/environment.mjs +11 -11
- package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -36
- package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -74
- package/esm2020/user-device-manage/src/material.module.mjs +192 -192
- package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -35
- package/esm2020/user-device-manage/src/services/api.service.mjs +79 -79
- package/esm2020/user-device-manage/src/services/device.service.mjs +83 -83
- package/esm2020/user-device-manage/src/services/dns.service.mjs +104 -104
- package/esm2020/user-device-manage/src/services/line.service.mjs +76 -76
- package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -62
- package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -25
- package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -70
- package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -197
- package/esm2020/user-device-manage/src/services/user.service.mjs +243 -243
- package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -87
- package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -760
- package/esm2020/user-device-manage/src/user-device-manage.module.mjs +107 -107
- package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -14
- package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +4 -4
- package/esm2020/user-manage/public-api.mjs +7 -7
- package/esm2020/user-manage/src/app.constants.mjs +50 -50
- package/esm2020/user-manage/src/classes/device.mjs +37 -37
- package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -2
- package/esm2020/user-manage/src/classes/line-association.mjs +110 -110
- package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -10
- package/esm2020/user-manage/src/classes/line-directory.mjs +27 -27
- package/esm2020/user-manage/src/classes/line.mjs +18 -18
- package/esm2020/user-manage/src/classes/notification.mjs +32 -32
- package/esm2020/user-manage/src/classes/pagination.mjs +8 -8
- package/esm2020/user-manage/src/classes/recording-options.mjs +7 -7
- package/esm2020/user-manage/src/classes/simplified-user.mjs +109 -109
- package/esm2020/user-manage/src/classes/table-data.mjs +2 -2
- package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -32
- package/esm2020/user-manage/src/classes/user-list.mjs +10 -10
- package/esm2020/user-manage/src/common-functions.mjs +19 -19
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +24 -24
- package/esm2020/user-manage/src/environments/environment.mjs +11 -11
- package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -36
- package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -74
- package/esm2020/user-manage/src/material.module.mjs +188 -188
- package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -35
- package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -25
- package/esm2020/user-manage/src/services/api.service.mjs +79 -79
- package/esm2020/user-manage/src/services/dns.service.mjs +110 -110
- package/esm2020/user-manage/src/services/line.service.mjs +34 -34
- package/esm2020/user-manage/src/services/notification.service.mjs +62 -62
- package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -25
- package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -36
- package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -197
- package/esm2020/user-manage/src/services/user.service.mjs +207 -207
- package/esm2020/user-manage/src/services/users-search.service.mjs +49 -49
- package/esm2020/user-manage/src/services/utils.service.mjs +73 -73
- package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -65
- package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +78 -78
- package/esm2020/user-manage/src/user-info/user-info.component.mjs +20 -20
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +208 -208
- package/esm2020/user-manage/src/user-manage.module.mjs +99 -99
- package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -14
- package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -43
- package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +4 -4
- package/esm2020/users-list/public-api.mjs +9 -9
- package/esm2020/users-list/src/app.constants.mjs +50 -50
- package/esm2020/users-list/src/classes/device.mjs +7 -7
- package/esm2020/users-list/src/classes/line.mjs +18 -18
- package/esm2020/users-list/src/classes/notification.mjs +31 -31
- package/esm2020/users-list/src/classes/pagination.mjs +8 -8
- package/esm2020/users-list/src/classes/simlified-user.mjs +50 -50
- package/esm2020/users-list/src/classes/table-data.mjs +2 -2
- package/esm2020/users-list/src/classes/user-list.mjs +13 -13
- package/esm2020/users-list/src/material.module.mjs +209 -209
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +95 -95
- package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +35 -35
- package/esm2020/users-list/src/services/api-webex.service.mjs +17 -17
- package/esm2020/users-list/src/services/api.service.mjs +78 -78
- package/esm2020/users-list/src/services/dns.service.mjs +120 -120
- package/esm2020/users-list/src/services/events-communication.service.mjs +14 -14
- package/esm2020/users-list/src/services/notification.service.mjs +62 -62
- package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -25
- package/esm2020/users-list/src/services/user.service.mjs +150 -150
- package/esm2020/users-list/src/services/users-search.service.mjs +120 -120
- package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -34
- package/esm2020/users-list/src/users-list.component.mjs +259 -259
- package/esm2020/users-list/src/users-list.module.mjs +80 -80
- package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -14
- package/esm2020/users-list/src/utils/common-functions.mjs +19 -19
- package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -43
- package/esm2020/users-list/src/utils/utils.service.mjs +73 -73
- package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +4 -4
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3277 -3277
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2004 -2004
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +1424 -1424
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets.mjs +48 -48
- package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3239 -3239
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +1987 -1987
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +1413 -1413
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets.mjs +48 -48
- package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/widgets.component.d.ts +8 -8
- package/lib/widgets.module.d.ts +7 -7
- package/lib/widgets.service.d.ts +6 -6
- package/package.json +1 -1
- package/public-api.d.ts +3 -3
- package/user-device-manage/index.d.ts +5 -5
- package/user-device-manage/public-api.d.ts +8 -8
- package/user-device-manage/src/app.constants.d.ts +74 -74
- package/user-device-manage/src/classes/device.d.ts +233 -233
- package/user-device-manage/src/classes/line-association-interface.d.ts +45 -45
- package/user-device-manage/src/classes/line-association.d.ts +62 -62
- package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -11
- package/user-device-manage/src/classes/line-directory.d.ts +15 -15
- package/user-device-manage/src/classes/line.d.ts +140 -140
- package/user-device-manage/src/classes/notification.d.ts +18 -18
- package/user-device-manage/src/classes/recording-options.d.ts +5 -5
- package/user-device-manage/src/classes/simplified-user.d.ts +52 -52
- package/user-device-manage/src/classes/site-defaults.d.ts +146 -146
- package/user-device-manage/src/classes/translation-pattern.d.ts +19 -19
- package/user-device-manage/src/classes/types.d.ts +19 -19
- package/user-device-manage/src/common-functions.d.ts +1 -1
- package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -20
- package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -15
- package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -7
- package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +24 -24
- package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -89
- package/user-device-manage/src/device-list/device-list.component.d.ts +11 -11
- package/user-device-manage/src/device-manage-widget.component.d.ts +71 -71
- package/user-device-manage/src/environments/environment.d.ts +9 -9
- package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -9
- package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -35
- package/user-device-manage/src/material.module.d.ts +29 -29
- package/user-device-manage/src/notifications/notification.component.d.ts +19 -19
- package/user-device-manage/src/services/api.service.d.ts +20 -20
- package/user-device-manage/src/services/device.service.d.ts +21 -21
- package/user-device-manage/src/services/dns.service.d.ts +14 -14
- package/user-device-manage/src/services/line.service.d.ts +33 -33
- package/user-device-manage/src/services/notification.service.d.ts +18 -18
- package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -8
- package/user-device-manage/src/services/site-settings.service.d.ts +25 -25
- package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -26
- package/user-device-manage/src/services/user.service.d.ts +51 -51
- package/user-device-manage/src/services/utils.service.d.ts +10 -10
- package/user-device-manage/src/services/validation.service.d.ts +165 -165
- package/user-device-manage/src/user-device-manage.module.d.ts +22 -22
- package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -6
- package/user-manage/index.d.ts +5 -5
- package/user-manage/public-api.d.ts +6 -6
- package/user-manage/src/app.constants.d.ts +29 -29
- package/user-manage/src/classes/device.d.ts +203 -203
- package/user-manage/src/classes/line-association-interface.d.ts +40 -40
- package/user-manage/src/classes/line-association.d.ts +55 -55
- package/user-manage/src/classes/line-call-info-display.d.ts +11 -11
- package/user-manage/src/classes/line-directory.d.ts +16 -16
- package/user-manage/src/classes/line.d.ts +140 -140
- package/user-manage/src/classes/notification.d.ts +18 -18
- package/user-manage/src/classes/pagination.d.ts +13 -13
- package/user-manage/src/classes/recording-options.d.ts +5 -5
- package/user-manage/src/classes/simplified-user.d.ts +50 -50
- package/user-manage/src/classes/table-data.d.ts +5 -5
- package/user-manage/src/classes/translation-pattern.d.ts +18 -18
- package/user-manage/src/classes/user-list.d.ts +34 -34
- package/user-manage/src/common-functions.d.ts +1 -1
- package/user-manage/src/device-list/device-list.component.d.ts +11 -11
- package/user-manage/src/environments/environment.d.ts +9 -9
- package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -9
- package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -35
- package/user-manage/src/material.module.d.ts +28 -28
- package/user-manage/src/notifications/notification.component.d.ts +19 -19
- package/user-manage/src/removeKynFromIBM.service.d.ts +8 -8
- package/user-manage/src/services/api.service.d.ts +21 -21
- package/user-manage/src/services/dns.service.d.ts +14 -14
- package/user-manage/src/services/line.service.d.ts +17 -17
- package/user-manage/src/services/notification.service.d.ts +18 -18
- package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -8
- package/user-manage/src/services/site-settings.service.d.ts +9 -9
- package/user-manage/src/services/sorting-utils.service.d.ts +26 -26
- package/user-manage/src/services/user.service.d.ts +43 -43
- package/user-manage/src/services/users-search.service.d.ts +25 -25
- package/user-manage/src/services/utils.service.d.ts +9 -9
- package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -24
- package/user-manage/src/user-calling/user-calling.component.d.ts +30 -30
- package/user-manage/src/user-info/user-info.component.d.ts +9 -9
- package/user-manage/src/user-manage-widget.component.d.ts +45 -45
- package/user-manage/src/user-manage.module.d.ts +21 -21
- package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -6
- package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -18
- package/users-list/index.d.ts +5 -5
- package/users-list/public-api.d.ts +8 -8
- package/users-list/src/app.constants.d.ts +32 -32
- package/users-list/src/classes/device.d.ts +224 -224
- package/users-list/src/classes/line.d.ts +140 -140
- package/users-list/src/classes/notification.d.ts +18 -18
- package/users-list/src/classes/pagination.d.ts +13 -13
- package/users-list/src/classes/simlified-user.d.ts +25 -25
- package/users-list/src/classes/table-data.d.ts +5 -5
- package/users-list/src/classes/user-list.d.ts +36 -36
- package/users-list/src/material.module.d.ts +31 -31
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +25 -25
- package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +16 -16
- package/users-list/src/services/api-webex.service.d.ts +8 -8
- package/users-list/src/services/api.service.d.ts +21 -21
- package/users-list/src/services/dns.service.d.ts +18 -18
- package/users-list/src/services/events-communication.service.d.ts +8 -8
- package/users-list/src/services/notification.service.d.ts +18 -18
- package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -8
- package/users-list/src/services/user.service.d.ts +34 -34
- package/users-list/src/services/users-search.service.d.ts +34 -34
- package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -20
- package/users-list/src/users-list.component.d.ts +59 -59
- package/users-list/src/users-list.module.d.ts +16 -16
- package/users-list/src/utils/app-loader/app-loader.d.ts +6 -6
- package/users-list/src/utils/common-functions.d.ts +1 -1
- package/users-list/src/utils/pagination/pagination.component.d.ts +18 -18
- package/users-list/src/utils/utils.service.d.ts +9 -9
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Notification } from '../classes/notification';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
const SUCCESS_TIME = 5000;
|
|
6
|
-
const INACTIVE_SESSION_MESSAGE = 'Your session was lost due to inactivity. Please login again';
|
|
7
|
-
const INACTIVE_SESSION = 'SESSION_INACTIVE';
|
|
8
|
-
export class NotificationService {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.listChange = new Subject();
|
|
11
|
-
this.max = 0;
|
|
12
|
-
this.list = [];
|
|
13
|
-
}
|
|
14
|
-
error(message, ttl) {
|
|
15
|
-
this.notify('error', message, ttl);
|
|
16
|
-
}
|
|
17
|
-
success(message, ttl) {
|
|
18
|
-
this.notify('success', message, (!ttl) ? SUCCESS_TIME : ttl);
|
|
19
|
-
}
|
|
20
|
-
warning(message, ttl) {
|
|
21
|
-
this.notify('warning', message, ttl);
|
|
22
|
-
}
|
|
23
|
-
info(message, ttl) {
|
|
24
|
-
this.notify('info', message, ttl);
|
|
25
|
-
}
|
|
26
|
-
notify(type, message, ttl) {
|
|
27
|
-
const found = this.list.find((n) => n.message === message);
|
|
28
|
-
if (found) {
|
|
29
|
-
this.remove(found);
|
|
30
|
-
}
|
|
31
|
-
const notification = new Notification({
|
|
32
|
-
id: ++this.max,
|
|
33
|
-
type, message, ttl
|
|
34
|
-
});
|
|
35
|
-
if (notification.ttl > 0) {
|
|
36
|
-
notification.timerId = setTimeout(() => this.remove(notification, true), notification.ttl);
|
|
37
|
-
}
|
|
38
|
-
this.list.push(notification);
|
|
39
|
-
this.listChange.next(this.list);
|
|
40
|
-
}
|
|
41
|
-
remove(notification, auto) {
|
|
42
|
-
if (!auto && notification.timerId) {
|
|
43
|
-
// clear timeout in case of manual remove
|
|
44
|
-
clearInterval(notification.timerId);
|
|
45
|
-
}
|
|
46
|
-
this.list = this.list.filter(n => n.id !== notification.id);
|
|
47
|
-
this.listChange.next(this.list);
|
|
48
|
-
}
|
|
49
|
-
removeInactiveSessionError() {
|
|
50
|
-
if (!this.list || !this.list.length) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this.list = this.list.filter(n => n.message !== INACTIVE_SESSION_MESSAGE && n.message !== INACTIVE_SESSION);
|
|
54
|
-
this.listChange.next(this.list);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
-
NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService });
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, decorators: [{
|
|
60
|
-
type: Injectable
|
|
61
|
-
}], ctorParameters: function () { return []; } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Notification } from '../classes/notification';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const SUCCESS_TIME = 5000;
|
|
6
|
+
const INACTIVE_SESSION_MESSAGE = 'Your session was lost due to inactivity. Please login again';
|
|
7
|
+
const INACTIVE_SESSION = 'SESSION_INACTIVE';
|
|
8
|
+
export class NotificationService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.listChange = new Subject();
|
|
11
|
+
this.max = 0;
|
|
12
|
+
this.list = [];
|
|
13
|
+
}
|
|
14
|
+
error(message, ttl) {
|
|
15
|
+
this.notify('error', message, ttl);
|
|
16
|
+
}
|
|
17
|
+
success(message, ttl) {
|
|
18
|
+
this.notify('success', message, (!ttl) ? SUCCESS_TIME : ttl);
|
|
19
|
+
}
|
|
20
|
+
warning(message, ttl) {
|
|
21
|
+
this.notify('warning', message, ttl);
|
|
22
|
+
}
|
|
23
|
+
info(message, ttl) {
|
|
24
|
+
this.notify('info', message, ttl);
|
|
25
|
+
}
|
|
26
|
+
notify(type, message, ttl) {
|
|
27
|
+
const found = this.list.find((n) => n.message === message);
|
|
28
|
+
if (found) {
|
|
29
|
+
this.remove(found);
|
|
30
|
+
}
|
|
31
|
+
const notification = new Notification({
|
|
32
|
+
id: ++this.max,
|
|
33
|
+
type, message, ttl
|
|
34
|
+
});
|
|
35
|
+
if (notification.ttl > 0) {
|
|
36
|
+
notification.timerId = setTimeout(() => this.remove(notification, true), notification.ttl);
|
|
37
|
+
}
|
|
38
|
+
this.list.push(notification);
|
|
39
|
+
this.listChange.next(this.list);
|
|
40
|
+
}
|
|
41
|
+
remove(notification, auto) {
|
|
42
|
+
if (!auto && notification.timerId) {
|
|
43
|
+
// clear timeout in case of manual remove
|
|
44
|
+
clearInterval(notification.timerId);
|
|
45
|
+
}
|
|
46
|
+
this.list = this.list.filter(n => n.id !== notification.id);
|
|
47
|
+
this.listChange.next(this.list);
|
|
48
|
+
}
|
|
49
|
+
removeInactiveSessionError() {
|
|
50
|
+
if (!this.list || !this.list.length) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.list = this.list.filter(n => n.message !== INACTIVE_SESSION_MESSAGE && n.message !== INACTIVE_SESSION);
|
|
54
|
+
this.listChange.next(this.list);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
+
NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, decorators: [{
|
|
60
|
+
type: Injectable
|
|
61
|
+
}], ctorParameters: function () { return []; } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBQzFCLE1BQU0sd0JBQXdCLEdBQUcsNkRBQTZELENBQUM7QUFDL0YsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUc1QyxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCO1FBTE8sZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFMUIsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLFNBQUksR0FBbUIsRUFBRSxDQUFDO0lBSWxDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLEdBQVk7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFLEdBQVk7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxHQUFZO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxHQUFZO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ08sTUFBTSxDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsR0FBWTtRQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUN6RSxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEI7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQztZQUNwQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNkLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRztTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLFlBQVksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1RjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQTBCLEVBQUUsSUFBYztRQUMvQyxJQUFJLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDakMseUNBQXlDO1lBQ3pDLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTywwQkFBMEI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyx3QkFBd0IsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2lIQXpEVSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vY2xhc3Nlcy9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuY29uc3QgU1VDQ0VTU19USU1FID0gNTAwMDtcbmNvbnN0IElOQUNUSVZFX1NFU1NJT05fTUVTU0FHRSA9ICdZb3VyIHNlc3Npb24gd2FzIGxvc3QgZHVlIHRvIGluYWN0aXZpdHkuIFBsZWFzZSBsb2dpbiBhZ2Fpbic7XG5jb25zdCBJTkFDVElWRV9TRVNTSU9OID0gJ1NFU1NJT05fSU5BQ1RJVkUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG5cbiAgcHVibGljIGxpc3RDaGFuZ2UgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgbWF4ID0gMDtcbiAgcHJpdmF0ZSBsaXN0OiBOb3RpZmljYXRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICApIHtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgdHRsPzogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZnkoJ2Vycm9yJywgbWVzc2FnZSwgdHRsKTtcbiAgfVxuXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCB0dGw/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmeSgnc3VjY2VzcycsIG1lc3NhZ2UsICghdHRsKSA/IFNVQ0NFU1NfVElNRSA6IHR0bCk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgdHRsPzogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZnkoJ3dhcm5pbmcnLCBtZXNzYWdlLCB0dGwpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIHR0bD86IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubm90aWZ5KCdpbmZvJywgbWVzc2FnZSwgdHRsKTtcbiAgfVxuICBwcml2YXRlIG5vdGlmeSh0eXBlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgdHRsPzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmxpc3QuZmluZCgobjogTm90aWZpY2F0aW9uKSA9PiBuLm1lc3NhZ2UgPT09IG1lc3NhZ2UpO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgdGhpcy5yZW1vdmUoZm91bmQpO1xuICAgIH1cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKHtcbiAgICAgIGlkOiArK3RoaXMubWF4LFxuICAgICAgdHlwZSwgbWVzc2FnZSwgdHRsXG4gICAgfSk7XG4gICAgaWYgKG5vdGlmaWNhdGlvbi50dGwgPiAwKSB7XG4gICAgICBub3RpZmljYXRpb24udGltZXJJZCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZW1vdmUobm90aWZpY2F0aW9uLCB0cnVlKSwgbm90aWZpY2F0aW9uLnR0bCk7XG4gICAgfVxuICAgIHRoaXMubGlzdC5wdXNoKG5vdGlmaWNhdGlvbik7XG4gICAgdGhpcy5saXN0Q2hhbmdlLm5leHQodGhpcy5saXN0KTtcbiAgfVxuXG4gIHJlbW92ZShub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbiwgYXV0bz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIWF1dG8gJiYgbm90aWZpY2F0aW9uLnRpbWVySWQpIHtcbiAgICAgIC8vIGNsZWFyIHRpbWVvdXQgaW4gY2FzZSBvZiBtYW51YWwgcmVtb3ZlXG4gICAgICBjbGVhckludGVydmFsKG5vdGlmaWNhdGlvbi50aW1lcklkKTtcbiAgICB9XG4gICAgdGhpcy5saXN0ID0gdGhpcy5saXN0LmZpbHRlcihuID0+IG4uaWQgIT09IG5vdGlmaWNhdGlvbi5pZCk7XG4gICAgdGhpcy5saXN0Q2hhbmdlLm5leHQodGhpcy5saXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSW5hY3RpdmVTZXNzaW9uRXJyb3IoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxpc3QgfHwgIXRoaXMubGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5saXN0ID0gdGhpcy5saXN0LmZpbHRlcihuID0+IG4ubWVzc2FnZSAhPT0gSU5BQ1RJVkVfU0VTU0lPTl9NRVNTQUdFICYmIG4ubWVzc2FnZSAhPT0gSU5BQ1RJVkVfU0VTU0lPTik7XG4gICAgdGhpcy5saXN0Q2hhbmdlLm5leHQodGhpcy5saXN0KTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { CUCMS_TO_IGNORE, CUCS_TO_IGNORE } from '../app.constants';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class RemoveKynFromIBMService {
|
|
5
|
-
constructor() {
|
|
6
|
-
}
|
|
7
|
-
removeCUCMS(date, customerId) {
|
|
8
|
-
if (customerId === 8) {
|
|
9
|
-
return date.filter((val) => !CUCMS_TO_IGNORE.includes(Math.round(val.cucmId)));
|
|
10
|
-
}
|
|
11
|
-
return date;
|
|
12
|
-
}
|
|
13
|
-
removeCUCS(date, customerId) {
|
|
14
|
-
if (customerId === 8) {
|
|
15
|
-
return date.filter((val) => !CUCS_TO_IGNORE.includes(Math.round(val.cucId)));
|
|
16
|
-
}
|
|
17
|
-
return date;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
RemoveKynFromIBMService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
|
-
RemoveKynFromIBMService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService });
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, decorators: [{
|
|
23
|
-
type: Injectable
|
|
24
|
-
}], ctorParameters: function () { return []; } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { CUCMS_TO_IGNORE, CUCS_TO_IGNORE } from '../app.constants';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class RemoveKynFromIBMService {
|
|
5
|
+
constructor() {
|
|
6
|
+
}
|
|
7
|
+
removeCUCMS(date, customerId) {
|
|
8
|
+
if (customerId === 8) {
|
|
9
|
+
return date.filter((val) => !CUCMS_TO_IGNORE.includes(Math.round(val.cucmId)));
|
|
10
|
+
}
|
|
11
|
+
return date;
|
|
12
|
+
}
|
|
13
|
+
removeCUCS(date, customerId) {
|
|
14
|
+
if (customerId === 8) {
|
|
15
|
+
return date.filter((val) => !CUCS_TO_IGNORE.includes(Math.round(val.cucId)));
|
|
16
|
+
}
|
|
17
|
+
return date;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
RemoveKynFromIBMService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
|
+
RemoveKynFromIBMService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, decorators: [{
|
|
23
|
+
type: Injectable
|
|
24
|
+
}], ctorParameters: function () { return []; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlS3luRnJvbUlCTS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3JlbW92ZUt5bkZyb21JQk0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBR25FLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEM7SUFDQSxDQUFDO0lBR0QsV0FBVyxDQUFDLElBQVMsRUFBRSxVQUFrQjtRQUN2QyxJQUFJLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVMsRUFBRSxVQUFrQjtRQUN0QyxJQUFJLFVBQVUsS0FBSyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztxSEFqQlUsdUJBQXVCO3lIQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENVQ01TX1RPX0lHTk9SRSwgQ1VDU19UT19JR05PUkUgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlbW92ZUt5bkZyb21JQk1TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuXG4gIHJlbW92ZUNVQ01TKGRhdGU6IGFueSwgY3VzdG9tZXJJZDogbnVtYmVyKSB7XG4gICAgaWYgKGN1c3RvbWVySWQgPT09IDgpIHtcbiAgICAgIHJldHVybiBkYXRlLmZpbHRlcigodmFsOiBhbnkpID0+ICFDVUNNU19UT19JR05PUkUuaW5jbHVkZXMoTWF0aC5yb3VuZCh2YWwuY3VjbUlkKSkpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIHJlbW92ZUNVQ1MoZGF0ZTogYW55LCBjdXN0b21lcklkOiBudW1iZXIpIHtcbiAgICBpZiAoY3VzdG9tZXJJZCA9PT0gOCkge1xuICAgICAgcmV0dXJuIGRhdGUuZmlsdGVyKCh2YWw6IGFueSkgPT4gIUNVQ1NfVE9fSUdOT1JFLmluY2x1ZGVzKE1hdGgucm91bmQodmFsLmN1Y0lkKSkpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { of, forkJoin } from 'rxjs';
|
|
3
|
-
import { SimplifiedUser } from '../classes/simlified-user';
|
|
4
|
-
import { API } from '../app.constants';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import { UtilsService } from '../utils/utils.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./api.service";
|
|
9
|
-
import * as i2 from "./api-webex.service";
|
|
10
|
-
export class UserService {
|
|
11
|
-
constructor(apiService, apiWebexService) {
|
|
12
|
-
this.apiService = apiService;
|
|
13
|
-
this.apiWebexService = apiWebexService;
|
|
14
|
-
this.siteId = -1;
|
|
15
|
-
this.userId = '';
|
|
16
|
-
this.userIdExistPending = false;
|
|
17
|
-
this.hasExistedUserId = false;
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
console.log(this.siteId);
|
|
21
|
-
}
|
|
22
|
-
fetchUserToken(siteId, userId) {
|
|
23
|
-
this.siteId = siteId;
|
|
24
|
-
this.userId = userId;
|
|
25
|
-
return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
|
|
26
|
-
.pipe(map((result) => {
|
|
27
|
-
const token = Object.keys(result)[0];
|
|
28
|
-
this.setSimplifiedUser(Object.values(result)[0], token);
|
|
29
|
-
}));
|
|
30
|
-
// .pipe(this.handleError(false, true));
|
|
31
|
-
}
|
|
32
|
-
updateUserFields(body) {
|
|
33
|
-
if (!this.userId || !this.siteId || !this.user?.token) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
|
|
37
|
-
// .pipe(this.handleError(false, true));
|
|
38
|
-
}
|
|
39
|
-
moveUser(customerId, user) {
|
|
40
|
-
// return new Observable<boolean>(observer => {
|
|
41
|
-
// setTimeout(() => {
|
|
42
|
-
// observer.next(true);
|
|
43
|
-
//
|
|
44
|
-
// }, 80000);
|
|
45
|
-
// });
|
|
46
|
-
return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
|
|
47
|
-
// .pipe(this.handleError(true, true));
|
|
48
|
-
}
|
|
49
|
-
moveUserToMT(customerId, user) {
|
|
50
|
-
// return new Observable<boolean>(observer => {
|
|
51
|
-
// setTimeout(() => {
|
|
52
|
-
// observer.next(true);
|
|
53
|
-
//
|
|
54
|
-
// }, 80000);
|
|
55
|
-
// });
|
|
56
|
-
return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
|
|
57
|
-
// .pipe(this.handleError(true, true));
|
|
58
|
-
}
|
|
59
|
-
moveUserToDI(customerId, user) {
|
|
60
|
-
// return new Observable<boolean>(observer => {
|
|
61
|
-
// setTimeout(() => {
|
|
62
|
-
// observer.next(true);
|
|
63
|
-
//
|
|
64
|
-
// }, 80000);
|
|
65
|
-
// });
|
|
66
|
-
const URL = API.REVERT_WEBEX_USER.replace(':customerId', customerId).replace(':webexUUID', String(user.webexUUID));
|
|
67
|
-
return this.apiWebexService.post(URL, this.getMoveUserBody(customerId, user));
|
|
68
|
-
// .pipe(this.handleError(true, true));
|
|
69
|
-
}
|
|
70
|
-
getMoveUserBody(customerId, user) {
|
|
71
|
-
return {
|
|
72
|
-
customerId: customerId,
|
|
73
|
-
entities: {
|
|
74
|
-
PERSON: [{ cucmId: user.cucmId, entityId: user.userid }]
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
deleteUser(siteId, userId) {
|
|
79
|
-
return this.apiService.delete(API.DELETE_USER.replace(':siteId', String(siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))));
|
|
80
|
-
// .pipe(this.handleError(true, true));
|
|
81
|
-
}
|
|
82
|
-
fetchUserById(id) {
|
|
83
|
-
this.userIdExistPending = true;
|
|
84
|
-
return this.apiService.fetch(API.USER_BY_ID.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))))
|
|
85
|
-
.pipe(map(result => {
|
|
86
|
-
this.userIdExistPending = false;
|
|
87
|
-
return result;
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
persistCacheChanges() {
|
|
91
|
-
const params = {
|
|
92
|
-
excludeDeviceExtraOptions: true
|
|
93
|
-
};
|
|
94
|
-
return this.processUserChangesToCache()
|
|
95
|
-
.pipe(map((result) => {
|
|
96
|
-
return this.apiService.post(API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), {}, params)
|
|
97
|
-
.subscribe(() => {
|
|
98
|
-
});
|
|
99
|
-
// .pipe(map((user) => {
|
|
100
|
-
// // this.setUser(user, false, this.user.token);
|
|
101
|
-
// this.user.hasModifiedCache = false;
|
|
102
|
-
// }))
|
|
103
|
-
// .pipe(this.handleError(true, true));
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
processUserChangesToCache() {
|
|
107
|
-
const calls = [];
|
|
108
|
-
const body = UtilsService.diff(this.originUser.getSavableData(), this.user.getSavableData(), 'user');
|
|
109
|
-
if (body) {
|
|
110
|
-
calls.push(this.updateUserFields(body));
|
|
111
|
-
}
|
|
112
|
-
if (!calls?.length) {
|
|
113
|
-
return of(this.user);
|
|
114
|
-
}
|
|
115
|
-
return forkJoin(calls)
|
|
116
|
-
.pipe(map((responses) => {
|
|
117
|
-
// ApiUserResponse
|
|
118
|
-
this.handleSaveUserResponse(responses);
|
|
119
|
-
}));
|
|
120
|
-
// .pipe(this.handleError(false, true));
|
|
121
|
-
}
|
|
122
|
-
hasUnsavedChanges() {
|
|
123
|
-
return !this.user.equal(this.originUser);
|
|
124
|
-
}
|
|
125
|
-
setSimplifiedUser(user, token) {
|
|
126
|
-
this.user = new SimplifiedUser(user);
|
|
127
|
-
const copiedUser = JSON.parse(JSON.stringify(user));
|
|
128
|
-
this.originUser = new SimplifiedUser(copiedUser);
|
|
129
|
-
this.user.token = this.user.token || token;
|
|
130
|
-
this.originUser.token = this.originUser.token || token;
|
|
131
|
-
}
|
|
132
|
-
handleSaveUserResponse(responses) {
|
|
133
|
-
if (!responses?.length) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
for (let len = responses.length, i = len - 1; i >= 0; i--) {
|
|
137
|
-
if (responses[i] && responses[i].currentUpdatedUser) {
|
|
138
|
-
// this.setUser(responses[i].currentUpdatedUser, false, this.user.token);
|
|
139
|
-
this.user.hasModifiedCache = true;
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, deps: [{ token: i1.APIService }, { token: i2.ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
146
|
-
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService });
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
|
|
148
|
-
type: Injectable
|
|
149
|
-
}], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUt0RCxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVDFDLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFTekIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FB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QVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQWM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO2dCQUNuRCx5RUFBeUU7Z0JBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7O3lHQTNKVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNpbXBsaWZpZWRVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9zaW1saWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IExpc3RVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy91c2VyLWxpc3QnO1xyXG5pbXBvcnQgeyBBcGlXZWJleFNlcnZpY2UgfSBmcm9tICcuL2FwaS13ZWJleC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHNpdGVJZDogbnVtYmVyID0gLTE7XHJcbiAgdXNlcklkOiBzdHJpbmcgPSAnJztcclxuICB1c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcclxuICBoYXNFeGlzdGVkVXNlcklkID0gZmFsc2U7XHJcbiAgdXNlciE6IFNpbXBsaWZpZWRVc2VyO1xyXG4gIG9yaWdpblVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNpdGVJZClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaFVzZXJUb2tlbihzaXRlSWQ6IG51bWJlciwgdXNlcklkOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgdGhpcy5zaXRlSWQgPSBzaXRlSWQ7XHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gT2JqZWN0LmtleXMocmVzdWx0KVswXTtcclxuICAgICAgICB0aGlzLnNldFNpbXBsaWZpZWRVc2VyKE9iamVjdC52YWx1ZXMocmVzdWx0KVswXSwgdG9rZW4pO1xyXG4gICAgICB9KSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVVc2VyRmllbGRzKGJvZHk6IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIXRoaXMudXNlcklkIHx8ICF0aGlzLnNpdGVJZCB8fCAhdGhpcy51c2VyPy50b2tlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9VU0VSX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVc2VyKGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xyXG4gICAgLy8gcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcclxuICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcclxuICAgIC8vXHJcbiAgICAvLyAgIH0sIDgwMDAwKTtcclxuICAgIC8vIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoQVBJLk1PVkVfVVNFUiwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3ZlVXNlclRvTVQoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XHJcbiAgICAvLyByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4ob2JzZXJ2ZXIgPT4ge1xyXG4gICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xyXG4gICAgLy9cclxuICAgIC8vICAgfSwgODAwMDApO1xyXG4gICAgLy8gfSk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTU9WRV9VU0VSLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVc2VyVG9ESShjdXN0b21lcklkOiBhbnksIHVzZXI6IExpc3RVc2VyKTogYW55IHtcclxuICAgIC8vIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPihvYnNlcnZlciA9PiB7XHJcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XHJcbiAgICAvL1xyXG4gICAgLy8gICB9LCA4MDAwMCk7XHJcbiAgICAvLyB9KTtcclxuICAgIGNvbnN0IFVSTCA9IEFQSS5SRVZFUlRfV0VCRVhfVVNFUi5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp3ZWJleFVVSUQnLCBTdHJpbmcodXNlci53ZWJleFVVSUQpKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5wb3N0KFVSTCwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TW92ZVVzZXJCb2R5KGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3VzdG9tZXJJZDogY3VzdG9tZXJJZCxcclxuICAgICAgZW50aXRpZXM6IHtcclxuICAgICAgICBQRVJTT046IFt7Y3VjbUlkOiB1c2VyLmN1Y21JZCwgZW50aXR5SWQ6IHVzZXIudXNlcmlkfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVVc2VyKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShBUEkuREVMRVRFX1VTRVIucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoVXNlckJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9CWV9JRC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpXHJcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBlcnNpc3RDYWNoZUNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGV4Y2x1ZGVEZXZpY2VFeHRyYU9wdGlvbnM6IHRydWVcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKClcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuUEVSU0lTVF9VU0VSX0NBQ0hFLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXIudG9rZW4pLCB7fSwgcGFyYW1zKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIC5waXBlKG1hcCgodXNlcikgPT4ge1xyXG4gICAgICAgICAgLy8gICAvLyB0aGlzLnNldFVzZXIodXNlciwgZmFsc2UsIHRoaXMudXNlci50b2tlbik7XHJcbiAgICAgICAgICAvLyAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9KSlcclxuICAgICAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJvY2Vzc1VzZXJDaGFuZ2VzVG9DYWNoZSgpOiBhbnkge1xyXG4gICAgY29uc3QgY2FsbHMgPSBbXTtcclxuICAgIGNvbnN0IGJvZHkgPSBVdGlsc1NlcnZpY2UuZGlmZih0aGlzLm9yaWdpblVzZXIuZ2V0U2F2YWJsZURhdGEoKSwgdGhpcy51c2VyLmdldFNhdmFibGVEYXRhKCksICd1c2VyJyk7XHJcbiAgICBpZiAoYm9keSkge1xyXG4gICAgICBjYWxscy5wdXNoKHRoaXMudXBkYXRlVXNlckZpZWxkcyhib2R5KSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNhbGxzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMudXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKGNhbGxzKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlczogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gQXBpVXNlclJlc3BvbnNlXHJcbiAgICAgICAgdGhpcy5oYW5kbGVTYXZlVXNlclJlc3BvbnNlKHJlc3BvbnNlcyk7XHJcbiAgICAgIH0pKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnVzZXIuZXF1YWwodGhpcy5vcmlnaW5Vc2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTaW1wbGlmaWVkVXNlcih1c2VyOiBhbnksIHRva2VuPzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIodXNlcik7XHJcbiAgICBjb25zdCBjb3BpZWRVc2VyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICB0aGlzLm9yaWdpblVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIoY29waWVkVXNlcik7XHJcbiAgICB0aGlzLnVzZXIudG9rZW4gPSB0aGlzLnVzZXIudG9rZW4gfHwgdG9rZW47XHJcbiAgICB0aGlzLm9yaWdpblVzZXIudG9rZW4gPSB0aGlzLm9yaWdpblVzZXIudG9rZW4gfHwgdG9rZW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzOiBhbnkpIHtcclxuICAgIGlmICghcmVzcG9uc2VzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgbGVuID0gcmVzcG9uc2VzLmxlbmd0aCwgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGlmIChyZXNwb25zZXNbaV0gJiYgcmVzcG9uc2VzW2ldLmN1cnJlbnRVcGRhdGVkVXNlcikge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0VXNlcihyZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcclxuICAgICAgICB0aGlzLnVzZXIuaGFzTW9kaWZpZWRDYWNoZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { of, forkJoin } from 'rxjs';
|
|
3
|
+
import { SimplifiedUser } from '../classes/simlified-user';
|
|
4
|
+
import { API } from '../app.constants';
|
|
5
|
+
import { map } from 'rxjs/operators';
|
|
6
|
+
import { UtilsService } from '../utils/utils.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./api.service";
|
|
9
|
+
import * as i2 from "./api-webex.service";
|
|
10
|
+
export class UserService {
|
|
11
|
+
constructor(apiService, apiWebexService) {
|
|
12
|
+
this.apiService = apiService;
|
|
13
|
+
this.apiWebexService = apiWebexService;
|
|
14
|
+
this.siteId = -1;
|
|
15
|
+
this.userId = '';
|
|
16
|
+
this.userIdExistPending = false;
|
|
17
|
+
this.hasExistedUserId = false;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
console.log(this.siteId);
|
|
21
|
+
}
|
|
22
|
+
fetchUserToken(siteId, userId) {
|
|
23
|
+
this.siteId = siteId;
|
|
24
|
+
this.userId = userId;
|
|
25
|
+
return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
|
|
26
|
+
.pipe(map((result) => {
|
|
27
|
+
const token = Object.keys(result)[0];
|
|
28
|
+
this.setSimplifiedUser(Object.values(result)[0], token);
|
|
29
|
+
}));
|
|
30
|
+
// .pipe(this.handleError(false, true));
|
|
31
|
+
}
|
|
32
|
+
updateUserFields(body) {
|
|
33
|
+
if (!this.userId || !this.siteId || !this.user?.token) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
|
|
37
|
+
// .pipe(this.handleError(false, true));
|
|
38
|
+
}
|
|
39
|
+
moveUser(customerId, user) {
|
|
40
|
+
// return new Observable<boolean>(observer => {
|
|
41
|
+
// setTimeout(() => {
|
|
42
|
+
// observer.next(true);
|
|
43
|
+
//
|
|
44
|
+
// }, 80000);
|
|
45
|
+
// });
|
|
46
|
+
return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
|
|
47
|
+
// .pipe(this.handleError(true, true));
|
|
48
|
+
}
|
|
49
|
+
moveUserToMT(customerId, user) {
|
|
50
|
+
// return new Observable<boolean>(observer => {
|
|
51
|
+
// setTimeout(() => {
|
|
52
|
+
// observer.next(true);
|
|
53
|
+
//
|
|
54
|
+
// }, 80000);
|
|
55
|
+
// });
|
|
56
|
+
return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
|
|
57
|
+
// .pipe(this.handleError(true, true));
|
|
58
|
+
}
|
|
59
|
+
moveUserToDI(customerId, user) {
|
|
60
|
+
// return new Observable<boolean>(observer => {
|
|
61
|
+
// setTimeout(() => {
|
|
62
|
+
// observer.next(true);
|
|
63
|
+
//
|
|
64
|
+
// }, 80000);
|
|
65
|
+
// });
|
|
66
|
+
const URL = API.REVERT_WEBEX_USER.replace(':customerId', customerId).replace(':webexUUID', String(user.webexUUID));
|
|
67
|
+
return this.apiWebexService.post(URL, this.getMoveUserBody(customerId, user));
|
|
68
|
+
// .pipe(this.handleError(true, true));
|
|
69
|
+
}
|
|
70
|
+
getMoveUserBody(customerId, user) {
|
|
71
|
+
return {
|
|
72
|
+
customerId: customerId,
|
|
73
|
+
entities: {
|
|
74
|
+
PERSON: [{ cucmId: user.cucmId, entityId: user.userid }]
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
deleteUser(siteId, userId) {
|
|
79
|
+
return this.apiService.delete(API.DELETE_USER.replace(':siteId', String(siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))));
|
|
80
|
+
// .pipe(this.handleError(true, true));
|
|
81
|
+
}
|
|
82
|
+
fetchUserById(id) {
|
|
83
|
+
this.userIdExistPending = true;
|
|
84
|
+
return this.apiService.fetch(API.USER_BY_ID.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))))
|
|
85
|
+
.pipe(map(result => {
|
|
86
|
+
this.userIdExistPending = false;
|
|
87
|
+
return result;
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
persistCacheChanges() {
|
|
91
|
+
const params = {
|
|
92
|
+
excludeDeviceExtraOptions: true
|
|
93
|
+
};
|
|
94
|
+
return this.processUserChangesToCache()
|
|
95
|
+
.pipe(map((result) => {
|
|
96
|
+
return this.apiService.post(API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), {}, params)
|
|
97
|
+
.subscribe(() => {
|
|
98
|
+
});
|
|
99
|
+
// .pipe(map((user) => {
|
|
100
|
+
// // this.setUser(user, false, this.user.token);
|
|
101
|
+
// this.user.hasModifiedCache = false;
|
|
102
|
+
// }))
|
|
103
|
+
// .pipe(this.handleError(true, true));
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
processUserChangesToCache() {
|
|
107
|
+
const calls = [];
|
|
108
|
+
const body = UtilsService.diff(this.originUser.getSavableData(), this.user.getSavableData(), 'user');
|
|
109
|
+
if (body) {
|
|
110
|
+
calls.push(this.updateUserFields(body));
|
|
111
|
+
}
|
|
112
|
+
if (!calls?.length) {
|
|
113
|
+
return of(this.user);
|
|
114
|
+
}
|
|
115
|
+
return forkJoin(calls)
|
|
116
|
+
.pipe(map((responses) => {
|
|
117
|
+
// ApiUserResponse
|
|
118
|
+
this.handleSaveUserResponse(responses);
|
|
119
|
+
}));
|
|
120
|
+
// .pipe(this.handleError(false, true));
|
|
121
|
+
}
|
|
122
|
+
hasUnsavedChanges() {
|
|
123
|
+
return !this.user.equal(this.originUser);
|
|
124
|
+
}
|
|
125
|
+
setSimplifiedUser(user, token) {
|
|
126
|
+
this.user = new SimplifiedUser(user);
|
|
127
|
+
const copiedUser = JSON.parse(JSON.stringify(user));
|
|
128
|
+
this.originUser = new SimplifiedUser(copiedUser);
|
|
129
|
+
this.user.token = this.user.token || token;
|
|
130
|
+
this.originUser.token = this.originUser.token || token;
|
|
131
|
+
}
|
|
132
|
+
handleSaveUserResponse(responses) {
|
|
133
|
+
if (!responses?.length) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
for (let len = responses.length, i = len - 1; i >= 0; i--) {
|
|
137
|
+
if (responses[i] && responses[i].currentUpdatedUser) {
|
|
138
|
+
// this.setUser(responses[i].currentUpdatedUser, false, this.user.token);
|
|
139
|
+
this.user.hasModifiedCache = true;
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, deps: [{ token: i1.APIService }, { token: i2.ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
146
|
+
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService });
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
|
|
148
|
+
type: Injectable
|
|
149
|
+
}], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUt0RCxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVDFDLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFTekIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FB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QVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQWM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO2dCQUNuRCx5RUFBeUU7Z0JBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7O3lHQTNKVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2ltcGxpZmllZFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzL3NpbWxpZmllZC11c2VyJztcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2FwcC5jb25zdGFudHMnO1xuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBMaXN0VXNlciB9IGZyb20gJy4uL2NsYXNzZXMvdXNlci1saXN0JztcbmltcG9ydCB7IEFwaVdlYmV4U2VydmljZSB9IGZyb20gJy4vYXBpLXdlYmV4LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgaW1wbGVtZW50cyBPbkluaXR7XG4gIHNpdGVJZDogbnVtYmVyID0gLTE7XG4gIHVzZXJJZDogc3RyaW5nID0gJyc7XG4gIHVzZXJJZEV4aXN0UGVuZGluZyA9IGZhbHNlO1xuICBoYXNFeGlzdGVkVXNlcklkID0gZmFsc2U7XG4gIHVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcbiAgb3JpZ2luVXNlciE6IFNpbXBsaWZpZWRVc2VyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQVBJU2VydmljZSxcbiAgICBwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlXG4gICkge1xuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNpdGVJZClcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFVzZXJUb2tlbihzaXRlSWQ6IG51bWJlciwgdXNlcklkOiBzdHJpbmcpOiBhbnkge1xuICAgIHRoaXMuc2l0ZUlkID0gc2l0ZUlkO1xuICAgIHRoaXMudXNlcklkID0gdXNlcklkO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcbiAgICAgIC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBPYmplY3Qua2V5cyhyZXN1bHQpWzBdO1xuICAgICAgICB0aGlzLnNldFNpbXBsaWZpZWRVc2VyKE9iamVjdC52YWx1ZXMocmVzdWx0KVswXSwgdG9rZW4pO1xuICAgICAgfSkpXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVVzZXJGaWVsZHMoYm9keTogYW55KTogYW55IHtcbiAgICBpZiAoIXRoaXMudXNlcklkIHx8ICF0aGlzLnNpdGVJZCB8fCAhdGhpcy51c2VyPy50b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9VU0VSX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwgYm9keSlcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVXNlcihjdXN0b21lcklkOiBhbnksIHVzZXI6IExpc3RVc2VyKTogYW55IHtcbiAgICAvLyByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4ob2JzZXJ2ZXIgPT4ge1xuICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgLy8gICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgLy9cbiAgICAvLyAgIH0sIDgwMDAwKTtcbiAgICAvLyB9KTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTU9WRV9VU0VSLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVXNlclRvTVQoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XG4gICAgLy8gcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgIC8vXG4gICAgLy8gICB9LCA4MDAwMCk7XG4gICAgLy8gfSk7XG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoQVBJLk1PVkVfVVNFUiwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXG4gICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcih0cnVlLCB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgbW92ZVVzZXJUb0RJKGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xuICAgIC8vIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPihvYnNlcnZlciA9PiB7XG4gICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAvL1xuICAgIC8vICAgfSwgODAwMDApO1xuICAgIC8vIH0pO1xuICAgIGNvbnN0IFVSTCA9IEFQSS5SRVZFUlRfV0VCRVhfVVNFUi5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp3ZWJleFVVSUQnLCBTdHJpbmcodXNlci53ZWJleFVVSUQpKTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChVUkwsIHRoaXMuZ2V0TW92ZVVzZXJCb2R5KGN1c3RvbWVySWQsIHVzZXIpKVxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbWVySWQ6IGN1c3RvbWVySWQsXG4gICAgICBlbnRpdGllczoge1xuICAgICAgICBQRVJTT046IFt7Y3VjbUlkOiB1c2VyLmN1Y21JZCwgZW50aXR5SWQ6IHVzZXIudXNlcmlkfV1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZVVzZXIoc2l0ZUlkOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShBUEkuREVMRVRFX1VTRVIucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFVzZXJCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXJJZEV4aXN0UGVuZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9CWV9JRC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJzaXN0Q2FjaGVDaGFuZ2VzKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGV4Y2x1ZGVEZXZpY2VFeHRyYU9wdGlvbnM6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NVc2VyQ2hhbmdlc1RvQ2FjaGUoKVxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlBFUlNJU1RfVVNFUl9DQUNIRS5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwge30sIHBhcmFtcylcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gLnBpcGUobWFwKCh1c2VyKSA9PiB7XG4gICAgICAgICAgLy8gICAvLyB0aGlzLnNldFVzZXIodXNlciwgZmFsc2UsIHRoaXMudXNlci50b2tlbik7XG4gICAgICAgICAgLy8gICB0aGlzLnVzZXIuaGFzTW9kaWZpZWRDYWNoZSA9IGZhbHNlO1xuICAgICAgICAgIC8vIH0pKVxuICAgICAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NVc2VyQ2hhbmdlc1RvQ2FjaGUoKTogYW55IHtcbiAgICBjb25zdCBjYWxscyA9IFtdO1xuICAgIGNvbnN0IGJvZHkgPSBVdGlsc1NlcnZpY2UuZGlmZih0aGlzLm9yaWdpblVzZXIuZ2V0U2F2YWJsZURhdGEoKSwgdGhpcy51c2VyLmdldFNhdmFibGVEYXRhKCksICd1c2VyJyk7XG4gICAgaWYgKGJvZHkpIHtcbiAgICAgIGNhbGxzLnB1c2godGhpcy51cGRhdGVVc2VyRmllbGRzKGJvZHkpKTtcbiAgICB9XG4gICAgaWYgKCFjYWxscz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy51c2VyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oY2FsbHMpXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlczogYW55KSA9PiB7XG4gICAgICAgIC8vIEFwaVVzZXJSZXNwb25zZVxuICAgICAgICB0aGlzLmhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzKTtcbiAgICAgIH0pKVxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMoKSB7XG4gICAgcmV0dXJuICF0aGlzLnVzZXIuZXF1YWwodGhpcy5vcmlnaW5Vc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaW1wbGlmaWVkVXNlcih1c2VyOiBhbnksIHRva2VuPzogYW55KTogdm9pZCB7XG4gICAgdGhpcy51c2VyID0gbmV3IFNpbXBsaWZpZWRVc2VyKHVzZXIpO1xuICAgIGNvbnN0IGNvcGllZFVzZXIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcbiAgICB0aGlzLm9yaWdpblVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIoY29waWVkVXNlcik7XG4gICAgdGhpcy51c2VyLnRva2VuID0gdGhpcy51c2VyLnRva2VuIHx8IHRva2VuO1xuICAgIHRoaXMub3JpZ2luVXNlci50b2tlbiA9IHRoaXMub3JpZ2luVXNlci50b2tlbiB8fCB0b2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2F2ZVVzZXJSZXNwb25zZShyZXNwb25zZXM6IGFueSkge1xuICAgIGlmICghcmVzcG9uc2VzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChsZXQgbGVuID0gcmVzcG9uc2VzLmxlbmd0aCwgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAocmVzcG9uc2VzW2ldICYmIHJlc3BvbnNlc1tpXS5jdXJyZW50VXBkYXRlZFVzZXIpIHtcbiAgICAgICAgLy8gdGhpcy5zZXRVc2VyKHJlc3BvbnNlc1tpXS5jdXJyZW50VXBkYXRlZFVzZXIsIGZhbHNlLCB0aGlzLnVzZXIudG9rZW4pO1xuICAgICAgICB0aGlzLnVzZXIuaGFzTW9kaWZpZWRDYWNoZSA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|