@osovitny/anatoly 2.0.23 → 2.0.26
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/bundles/osovitny-anatoly.umd.js +2039 -1292
- package/bundles/osovitny-anatoly.umd.js.map +1 -1
- package/bundles/osovitny-anatoly.umd.min.js +2 -3
- package/bundles/osovitny-anatoly.umd.min.js.map +1 -1
- package/esm2015/lib/core/consts/urls.js +22 -0
- package/esm2015/lib/core/convert.js +27 -0
- package/esm2015/lib/core/core.module.js +12 -9
- package/esm2015/lib/core/go/base-go.service.js +4 -4
- package/esm2015/lib/core/interceptors/httpInterceptor.js +2 -2
- package/esm2015/lib/core/localization/localization.module.js +41 -0
- package/esm2015/lib/core/localization/localization.service.js +5 -5
- package/esm2015/lib/core/localization/localizationSettings.module.js +70 -0
- package/esm2015/lib/core/localization/localize.pipe.js +65 -0
- package/esm2015/lib/core/notifications/alerts.js +107 -0
- package/esm2015/lib/core/notifications/interfaces/notification.js +19 -0
- package/esm2015/lib/core/notifications/services/notification-service.js +230 -0
- package/esm2015/lib/core/services/appcontext.service.js +12 -12
- package/esm2015/lib/core/services/idle.service.js +65 -0
- package/esm2015/lib/core/services/web-storage.service.js +65 -0
- package/esm2015/lib/core/subs.js +1 -1
- package/esm2015/lib/core/utils.js +3 -14
- package/esm2015/lib/data/base/base-api.service.js +26 -30
- package/esm2015/lib/data/consts.js +24 -0
- package/esm2015/lib/data/data.module.js +19 -8
- package/esm2015/lib/data/services/billing-api.service.js +4 -5
- package/esm2015/lib/data/services/notifications/notifications-api-service.js +45 -0
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +9 -9
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +7 -7
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +19 -19
- package/esm2015/lib/ui/components/loading/loading.component.js +49 -0
- package/esm2015/lib/ui/components/spinner/spinner.component.js +73 -0
- package/esm2015/lib/ui/pipes/filesize.pipe.js +41 -0
- package/esm2015/lib/ui/pipes/replace-text.pipe.js +36 -0
- package/esm2015/lib/ui/pipes/safeHtml.pipe.js +36 -0
- package/esm2015/lib/ui/ui.module.js +19 -13
- package/esm2015/public-api.js +57 -4
- package/fesm2015/osovitny-anatoly.js +1449 -709
- package/fesm2015/osovitny-anatoly.js.map +1 -1
- package/lib/core/consts/urls.d.ts +3 -0
- package/lib/core/convert.d.ts +3 -0
- package/lib/core/go/base-go.service.d.ts +1 -1
- package/lib/core/localization/localization.module.d.ts +2 -0
- package/lib/core/localization/localizationSettings.module.d.ts +10 -0
- package/lib/core/localization/localize.pipe.d.ts +7 -0
- package/lib/core/notifications/alerts.d.ts +9 -0
- package/lib/core/notifications/interfaces/notification.d.ts +10 -0
- package/lib/core/notifications/services/notification-service.d.ts +22 -0
- package/lib/core/services/appcontext.service.d.ts +2 -2
- package/lib/core/services/idle.service.d.ts +13 -0
- package/lib/core/services/web-storage.service.d.ts +17 -0
- package/lib/core/subs.d.ts +1 -1
- package/lib/core/utils.d.ts +0 -5
- package/lib/data/base/base-api.service.d.ts +2 -3
- package/lib/data/consts.d.ts +4 -0
- package/lib/data/data.module.d.ts +1 -0
- package/lib/data/services/notifications/notifications-api-service.d.ts +9 -0
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -3
- package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +1 -1
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +2 -2
- package/lib/ui/components/loading/loading.component.d.ts +10 -0
- package/lib/ui/components/spinner/spinner.component.d.ts +22 -0
- package/lib/ui/pipes/filesize.pipe.d.ts +5 -0
- package/lib/ui/pipes/replace-text.pipe.d.ts +4 -0
- package/lib/ui/pipes/safeHtml.pipe.d.ts +7 -0
- package/lib/ui/ui.module.d.ts +2 -3
- package/osovitny-anatoly.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +53 -3
- package/esm2015/lib/core/alerts.js +0 -145
- package/esm2015/lib/core/consts/index.js +0 -20
- package/esm2015/lib/core/index.js +0 -37
- package/esm2015/lib/data/index.js +0 -26
- package/esm2015/lib/ui/index.js +0 -43
- package/lib/core/alerts.d.ts +0 -12
- package/lib/core/consts/index.d.ts +0 -1
- package/lib/core/index.d.ts +0 -13
- package/lib/data/index.d.ts +0 -5
- package/lib/ui/index.d.ts +0 -16
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
2 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Injectable } from '@angular/core';
|
|
21
|
+
import { ToastrService } from 'ngx-toastr';
|
|
22
|
+
// RxJs
|
|
23
|
+
import { BehaviorSubject } from 'rxjs';
|
|
24
|
+
// App
|
|
25
|
+
import { Utils } from '../../utils';
|
|
26
|
+
import { Guid } from '../../guid';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
import * as i1 from "ngx-toastr";
|
|
29
|
+
// SignalR
|
|
30
|
+
// import * as signalR from '@microsoft/signalr';
|
|
31
|
+
// import { NotificationsApiService } from '../../../data/services/notifications/notifications-api-service';
|
|
32
|
+
export class NotificationService {
|
|
33
|
+
constructor(toastrService) {
|
|
34
|
+
this.toastrService = toastrService;
|
|
35
|
+
// SignalR
|
|
36
|
+
// private hubConnection: signalR.HubConnection;
|
|
37
|
+
// private socketUrl: string;
|
|
38
|
+
// Notifications
|
|
39
|
+
this._sessionNotifications = new BehaviorSubject([]);
|
|
40
|
+
this._serverNotifications = new BehaviorSubject([]);
|
|
41
|
+
// Public
|
|
42
|
+
this.sessionNotifications$ = this._sessionNotifications.asObservable();
|
|
43
|
+
this.serverNotifications$ = this._serverNotifications.asObservable();
|
|
44
|
+
// this.onInit();
|
|
45
|
+
}
|
|
46
|
+
/*
|
|
47
|
+
onInit() {
|
|
48
|
+
if (AppCoreSettings.AzureAD) {
|
|
49
|
+
this.authService.getAuthToken().subscribe((token: string) => {
|
|
50
|
+
this.startSignalRConnection(token);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
this.startSignalRConnection();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
ngOnDestroy() {
|
|
60
|
+
this.stopSignalRConnection();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// SignalR
|
|
64
|
+
private startSignalRConnection(accessToken?) {
|
|
65
|
+
const cskii = AppCoreSettings.selectedClientID;
|
|
66
|
+
// tslint:disable-next-line:variable-name
|
|
67
|
+
const cskii_upn = AppCoreSettings.CSKII_UPN;
|
|
68
|
+
// tslint:disable-next-line:variable-name
|
|
69
|
+
const cli_sessionguid = AppCoreSettings.CLI_SessionGUID;
|
|
70
|
+
|
|
71
|
+
const url = this.socketUrl + '?cskii=' + cskii + '&cskii_upn=' + cskii_upn + '&cli_sessionguid=' + cli_sessionguid;
|
|
72
|
+
|
|
73
|
+
if (accessToken) {
|
|
74
|
+
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
75
|
+
.withUrl(url, {
|
|
76
|
+
skipNegotiation: false,
|
|
77
|
+
transport: signalR.HttpTransportType.WebSockets,
|
|
78
|
+
accessTokenFactory: () => accessToken
|
|
79
|
+
})
|
|
80
|
+
.withAutomaticReconnect()
|
|
81
|
+
.configureLogging(signalR.LogLevel.Debug)
|
|
82
|
+
.build();
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
86
|
+
.withUrl(this.socketUrl, {
|
|
87
|
+
skipNegotiation: true,
|
|
88
|
+
transport: signalR.HttpTransportType.WebSockets
|
|
89
|
+
})
|
|
90
|
+
.withAutomaticReconnect()
|
|
91
|
+
.configureLogging(signalR.LogLevel.Debug)
|
|
92
|
+
.build();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
this.hubConnection
|
|
96
|
+
.start()
|
|
97
|
+
.then(() => this.signalRConnection_onSuccess())
|
|
98
|
+
.catch(err => {
|
|
99
|
+
console.error('Connection failed to SignalR Notification Hub')
|
|
100
|
+
})
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private signalRConnection_onSuccess() {
|
|
104
|
+
this.addReceiveMessageDataListener();
|
|
105
|
+
|
|
106
|
+
this.notificationsApiService.retrieveNotifications().subscribe(data => {
|
|
107
|
+
this.serverNotifications = data;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
stopSignalRConnection() {
|
|
112
|
+
if (this.hubConnection) {
|
|
113
|
+
this.hubConnection.stop();
|
|
114
|
+
this.hubConnection = null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
private addReceiveMessageDataListener = () => {
|
|
119
|
+
this.hubConnection.on('ReceiveMessage', (message) => {
|
|
120
|
+
if (message) {
|
|
121
|
+
if (message.type === 'error') {
|
|
122
|
+
this.error(message.text, null, null, false);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.success(message.text, null, null, false);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const notification = {
|
|
129
|
+
id: message.id,
|
|
130
|
+
isNew: message.isNew,
|
|
131
|
+
isSession: true,
|
|
132
|
+
text: message.text,
|
|
133
|
+
type: message.type,
|
|
134
|
+
createdDate: message.createdDate
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
this.addSessionNotificationToList(notification);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
*/
|
|
142
|
+
addSessionNotification(text, type) {
|
|
143
|
+
const id = Guid.newGuid();
|
|
144
|
+
const notification = { id, isNew: true, isSession: true, text, type, createdDate: new Date(Date.now()).toISOString() };
|
|
145
|
+
this.addSessionNotificationToList(notification);
|
|
146
|
+
}
|
|
147
|
+
addSessionNotificationToList(notification) {
|
|
148
|
+
this.sessionNotifications = [
|
|
149
|
+
notification,
|
|
150
|
+
...this.sessionNotifications,
|
|
151
|
+
];
|
|
152
|
+
}
|
|
153
|
+
// Public API
|
|
154
|
+
removeNotification(id, isSession) {
|
|
155
|
+
if (isSession) {
|
|
156
|
+
this.sessionNotifications = this.sessionNotifications.filter(notifications => notifications.id !== id);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.serverNotifications = this.serverNotifications.filter(notifications => notifications.id !== id);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
success(text, params, title, createSessionNotification = true) {
|
|
163
|
+
text = Utils.getLocalizedValue(text, params, 'OperationSuccessFull');
|
|
164
|
+
title = Utils.getLocalizedValue(title);
|
|
165
|
+
this.toastrService.success(text, title, {
|
|
166
|
+
timeOut: 3000,
|
|
167
|
+
progressBar: true
|
|
168
|
+
});
|
|
169
|
+
if (createSessionNotification) {
|
|
170
|
+
this.addSessionNotification(text, 'success');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
info(text, params, title) {
|
|
174
|
+
text = Utils.getLocalizedValue(text, params);
|
|
175
|
+
title = Utils.getLocalizedValue(title);
|
|
176
|
+
this.toastrService.info(text, title, {
|
|
177
|
+
timeOut: 3000,
|
|
178
|
+
progressBar: true
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
warning(text, params, title) {
|
|
182
|
+
text = Utils.getLocalizedValue(text, params);
|
|
183
|
+
title = Utils.getLocalizedValue(title);
|
|
184
|
+
this.toastrService.warning(text, title, {
|
|
185
|
+
timeOut: 3000,
|
|
186
|
+
progressBar: true
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
error(text, params, title, createSessionNotification = true) {
|
|
190
|
+
text = Utils.getLocalizedValue(text, params, 'ErrorOccured');
|
|
191
|
+
title = Utils.getLocalizedValue(title);
|
|
192
|
+
this.toastrService.error(text, title, {
|
|
193
|
+
timeOut: 3000,
|
|
194
|
+
progressBar: true
|
|
195
|
+
});
|
|
196
|
+
if (createSessionNotification) {
|
|
197
|
+
this.addSessionNotification(text, 'error');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
cancel(text, params, title) {
|
|
201
|
+
text = Utils.getLocalizedValue(text, params, 'OperationCancelled');
|
|
202
|
+
title = Utils.getLocalizedValue(title);
|
|
203
|
+
this.toastrService.info(text, title, {
|
|
204
|
+
timeOut: 3000,
|
|
205
|
+
progressBar: true
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// SessionNotifications
|
|
209
|
+
get sessionNotifications() {
|
|
210
|
+
return this._sessionNotifications.getValue();
|
|
211
|
+
}
|
|
212
|
+
set sessionNotifications(val) {
|
|
213
|
+
this._sessionNotifications.next(val);
|
|
214
|
+
}
|
|
215
|
+
// ServerNotifications
|
|
216
|
+
get serverNotifications() {
|
|
217
|
+
return this._serverNotifications.getValue();
|
|
218
|
+
}
|
|
219
|
+
set serverNotifications(val) {
|
|
220
|
+
this._serverNotifications.next(val);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
NotificationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NotificationService_Factory() { return new NotificationService(i0.ɵɵinject(i1.ToastrService)); }, token: NotificationService, providedIn: "root" });
|
|
224
|
+
NotificationService.decorators = [
|
|
225
|
+
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
226
|
+
];
|
|
227
|
+
NotificationService.ctorParameters = () => [
|
|
228
|
+
{ type: ToastrService }
|
|
229
|
+
];
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ub3RpZmljYXRpb25zL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTztBQUNQLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsTUFBTTtBQUNOLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFlBQVksQ0FBQzs7O0FBR2hDLFVBQVU7QUFDVixpREFBaUQ7QUFDakQsNEdBQTRHO0FBRzVHLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFaaEQsVUFBVTtRQUNWLGdEQUFnRDtRQUNoRCw2QkFBNkI7UUFFN0IsZ0JBQWdCO1FBQ1IsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUV4RSxTQUFTO1FBQ0EsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xFLHlCQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUd2RSxpQkFBaUI7SUFDbkIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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bUIsQ0FBQyxHQUFvQjtRQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7WUFuTkYsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBWnhCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyIEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VG9hc3RyU2VydmljZX0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbi8vIFJ4SnNcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG4vLyBBcHBcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQge0d1aWR9IGZyb20gJy4uLy4uL2d1aWQnO1xyXG5pbXBvcnQge0lOb3RpZmljYXRpb259IGZyb20gJy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcclxuXHJcbi8vIFNpZ25hbFJcclxuLy8gaW1wb3J0ICogYXMgc2lnbmFsUiBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xyXG4vLyBpbXBvcnQgeyBOb3RpZmljYXRpb25zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmljZXMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWFwaS1zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgLy8gU2lnbmFsUlxyXG4gIC8vIHByaXZhdGUgaHViQ29ubmVjdGlvbjogc2lnbmFsUi5IdWJDb25uZWN0aW9uO1xyXG4gIC8vIHByaXZhdGUgc29ja2V0VXJsOiBzdHJpbmc7XHJcblxyXG4gIC8vIE5vdGlmaWNhdGlvbnNcclxuICBwcml2YXRlIF9zZXNzaW9uTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfc2VydmVyTm90aWZpY2F0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5vdGlmaWNhdGlvbltdPihbXSk7XHJcblxyXG4gIC8vIFB1YmxpY1xyXG4gIHJlYWRvbmx5IHNlc3Npb25Ob3RpZmljYXRpb25zJCA9IHRoaXMuX3Nlc3Npb25Ob3RpZmljYXRpb25zLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IHNlcnZlck5vdGlmaWNhdGlvbnMkID0gdGhpcy5fc2VydmVyTm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlKSB7XHJcbiAgICAvLyB0aGlzLm9uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBvbkluaXQoKSB7XHJcbiAgICBpZiAoQXBwQ29yZVNldHRpbmdzLkF6dXJlQUQpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoVG9rZW4oKS5zdWJzY3JpYmUoKHRva2VuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24odG9rZW4pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdG9wU2lnbmFsUkNvbm5lY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8vIFNpZ25hbFJcclxuICBwcml2YXRlIHN0YXJ0U2lnbmFsUkNvbm5lY3Rpb24oYWNjZXNzVG9rZW4/KSB7XHJcbiAgICBjb25zdCBjc2tpaSA9IEFwcENvcmVTZXR0aW5ncy5zZWxlY3RlZENsaWVudElEO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcclxuICAgIGNvbnN0IGNza2lpX3VwbiA9IEFwcENvcmVTZXR0aW5ncy5DU0tJSV9VUE47XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxyXG4gICAgY29uc3QgY2xpX3Nlc3Npb25ndWlkID0gQXBwQ29yZVNldHRpbmdzLkNMSV9TZXNzaW9uR1VJRDtcclxuXHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNvY2tldFVybCArICc/Y3NraWk9JyArIGNza2lpICsgJyZjc2tpaV91cG49JyArIGNza2lpX3VwbiArICcmY2xpX3Nlc3Npb25ndWlkPScgKyBjbGlfc2Vzc2lvbmd1aWQ7XHJcblxyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh1cmwsIHtcclxuICAgICAgICAgIHNraXBOZWdvdGlhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICB0cmFuc3BvcnQ6IHNpZ25hbFIuSHR0cFRyYW5zcG9ydFR5cGUuV2ViU29ja2V0cyxcclxuICAgICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gYWNjZXNzVG9rZW5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaHViQ29ubmVjdGlvbiA9IG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAud2l0aFVybCh0aGlzLnNvY2tldFVybCwge1xyXG4gICAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC53aXRoQXV0b21hdGljUmVjb25uZWN0KClcclxuICAgICAgICAuY29uZmlndXJlTG9nZ2luZyhzaWduYWxSLkxvZ0xldmVsLkRlYnVnKVxyXG4gICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHViQ29ubmVjdGlvblxyXG4gICAgICAuc3RhcnQoKVxyXG4gICAgICAudGhlbigoKSA9PiB0aGlzLnNpZ25hbFJDb25uZWN0aW9uX29uU3VjY2VzcygpKVxyXG4gICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdDb25uZWN0aW9uIGZhaWxlZCB0byBTaWduYWxSIE5vdGlmaWNhdGlvbiBIdWInKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaWduYWxSQ29ubmVjdGlvbl9vblN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmFkZFJlY2VpdmVNZXNzYWdlRGF0YUxpc3RlbmVyKCk7XHJcblxyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zQXBpU2VydmljZS5yZXRyaWV2ZU5vdGlmaWNhdGlvbnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuc2VydmVyTm90aWZpY2F0aW9ucyA9IGRhdGE7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0b3BTaWduYWxSQ29ubmVjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uLnN0b3AoKTtcclxuICAgICAgdGhpcy5odWJDb25uZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUmVjZWl2ZU1lc3NhZ2VEYXRhTGlzdGVuZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmh1YkNvbm5lY3Rpb24ub24oJ1JlY2VpdmVNZXNzYWdlJywgKG1lc3NhZ2UpID0+IHtcclxuICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UudGV4dCwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VjY2VzcyhtZXNzYWdlLnRleHQsIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcclxuICAgICAgICAgIGlkOiBtZXNzYWdlLmlkLFxyXG4gICAgICAgICAgaXNOZXc6IG1lc3NhZ2UuaXNOZXcsXHJcbiAgICAgICAgICBpc1Nlc3Npb246IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBtZXNzYWdlLnRleHQsXHJcbiAgICAgICAgICB0eXBlOiBtZXNzYWdlLnR5cGUsXHJcbiAgICAgICAgICBjcmVhdGVkRGF0ZTogbWVzc2FnZS5jcmVhdGVkRGF0ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb24pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgcHJpdmF0ZSBhZGRTZXNzaW9uTm90aWZpY2F0aW9uKHRleHQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpZCA9IEd1aWQubmV3R3VpZCgpO1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0geyBpZCwgaXNOZXc6IHRydWUsIGlzU2Vzc2lvbjogdHJ1ZSwgdGV4dCwgdHlwZSwgY3JlYXRlZERhdGU6IG5ldyBEYXRlKERhdGUubm93KCkpLnRvSVNPU3RyaW5nKCkgfTtcclxuXHJcbiAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb25Ub0xpc3Qobm90aWZpY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2Vzc2lvbk5vdGlmaWNhdGlvblRvTGlzdChub3RpZmljYXRpb246IElOb3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuc2Vzc2lvbk5vdGlmaWNhdGlvbnMgPSBbXHJcbiAgICAgIG5vdGlmaWNhdGlvbixcclxuICAgICAgLi4udGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucyxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgQVBJXHJcbiAgcmVtb3ZlTm90aWZpY2F0aW9uKGlkOiBzdHJpbmcsIGlzU2Vzc2lvbjogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzU2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Ob3RpZmljYXRpb25zID0gdGhpcy5zZXNzaW9uTm90aWZpY2F0aW9ucy5maWx0ZXIobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmlkICE9PSBpZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zID0gdGhpcy5zZXJ2ZXJOb3RpZmljYXRpb25zLmZpbHRlcihub3RpZmljYXRpb25zID0+IG5vdGlmaWNhdGlvbnMuaWQgIT09IGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Y2Nlc3ModGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGV4dCwgcGFyYW1zLCAnT3BlcmF0aW9uU3VjY2Vzc0Z1bGwnKTtcclxuICAgIHRpdGxlID0gVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGl0bGUpO1xyXG5cclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKHRleHQsIHRpdGxlLCB7XHJcbiAgICAgIHRpbWVPdXQ6IDMwMDAsXHJcbiAgICAgIHByb2dyZXNzQmFyOiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoY3JlYXRlU2Vzc2lvbk5vdGlmaWNhdGlvbikge1xyXG4gICAgICB0aGlzLmFkZFNlc3Npb25Ob3RpZmljYXRpb24odGV4dCwgJ3N1Y2Nlc3MnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluZm8odGV4dCwgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IFV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcyk7XHJcbiAgICB0aXRsZSA9IFV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2UuaW5mbyh0ZXh0LCB0aXRsZSwge1xyXG4gICAgICB0aW1lT3V0OiAzMDAwLFxyXG4gICAgICBwcm9ncmVzc0JhcjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3YXJuaW5nKHRleHQsIHBhcmFtcz86IGFueVtdLCB0aXRsZT8pIHtcclxuICAgIHRleHQgPSBVdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0ZXh0LCBwYXJhbXMpO1xyXG4gICAgdGl0bGUgPSBVdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLndhcm5pbmcodGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IodGV4dD8sIHBhcmFtcz86IGFueVtdLCB0aXRsZT8sIGNyZWF0ZVNlc3Npb25Ob3RpZmljYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0ZXh0ID0gVXRpbHMuZ2V0TG9jYWxpemVkVmFsdWUodGV4dCwgcGFyYW1zLCAnRXJyb3JPY2N1cmVkJyk7XHJcbiAgICB0aXRsZSA9IFV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRpdGxlKTtcclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IodGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjcmVhdGVTZXNzaW9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWRkU2Vzc2lvbk5vdGlmaWNhdGlvbih0ZXh0LCAnZXJyb3InKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbCh0ZXh0PywgcGFyYW1zPzogYW55W10sIHRpdGxlPykge1xyXG4gICAgdGV4dCA9IFV0aWxzLmdldExvY2FsaXplZFZhbHVlKHRleHQsIHBhcmFtcywgJ09wZXJhdGlvbkNhbmNlbGxlZCcpO1xyXG4gICAgdGl0bGUgPSBVdGlscy5nZXRMb2NhbGl6ZWRWYWx1ZSh0aXRsZSk7XHJcblxyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLmluZm8odGV4dCwgdGl0bGUsIHtcclxuICAgICAgdGltZU91dDogMzAwMCxcclxuICAgICAgcHJvZ3Jlc3NCYXI6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gU2Vzc2lvbk5vdGlmaWNhdGlvbnNcclxuICBnZXQgc2Vzc2lvbk5vdGlmaWNhdGlvbnMoKTogSU5vdGlmaWNhdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXNzaW9uTm90aWZpY2F0aW9ucy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuICBzZXQgc2Vzc2lvbk5vdGlmaWNhdGlvbnModmFsOiBJTm90aWZpY2F0aW9uW10pIHtcclxuICAgIHRoaXMuX3Nlc3Npb25Ob3RpZmljYXRpb25zLm5leHQodmFsKTtcclxuICB9XHJcblxyXG4gIC8vIFNlcnZlck5vdGlmaWNhdGlvbnNcclxuICBnZXQgc2VydmVyTm90aWZpY2F0aW9ucygpOiBJTm90aWZpY2F0aW9uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZlck5vdGlmaWNhdGlvbnMuZ2V0VmFsdWUoKTtcclxuICB9XHJcbiAgc2V0IHNlcnZlck5vdGlmaWNhdGlvbnModmFsOiBJTm90aWZpY2F0aW9uW10pIHtcclxuICAgIHRoaXMuX3NlcnZlck5vdGlmaWNhdGlvbnMubmV4dCh2YWwpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
|
-
//Node
|
|
20
|
-
import { Injectable } from
|
|
21
|
-
import { HttpClient } from
|
|
22
|
-
//App
|
|
23
|
-
import { ContextInitState } from
|
|
24
|
-
import { BaseApiService } from
|
|
19
|
+
// Node
|
|
20
|
+
import { Injectable } from '@angular/core';
|
|
21
|
+
import { HttpClient } from '@angular/common/http';
|
|
22
|
+
// App
|
|
23
|
+
import { ContextInitState } from '../consts/settings';
|
|
24
|
+
import { BaseApiService } from '../../data/base/base-api.service';
|
|
25
25
|
export class AppContextService extends BaseApiService {
|
|
26
26
|
constructor(http) {
|
|
27
27
|
super(http);
|
|
@@ -29,10 +29,10 @@ export class AppContextService extends BaseApiService {
|
|
|
29
29
|
this.current = null;
|
|
30
30
|
this.successes = [];
|
|
31
31
|
this.subscription = null;
|
|
32
|
-
this.baseUrl =
|
|
32
|
+
this.baseUrl = '/api/appContext';
|
|
33
33
|
}
|
|
34
34
|
getCurrent(success) {
|
|
35
|
-
if (typeof success ==
|
|
35
|
+
if (typeof success == 'undefined') {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
if (this.current != null) {
|
|
@@ -43,14 +43,14 @@ export class AppContextService extends BaseApiService {
|
|
|
43
43
|
if (this.subscription != null) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
this.subscription = this.get(
|
|
46
|
+
this.subscription = this.get('GetCurrentContext', null).subscribe((data) => {
|
|
47
47
|
this.dataReceived(data);
|
|
48
48
|
}, (e) => { });
|
|
49
49
|
}
|
|
50
50
|
dataReceived(data) {
|
|
51
51
|
this.current = data;
|
|
52
|
-
for (
|
|
53
|
-
|
|
52
|
+
for (let i = 0; i < this.successes.length; i++) {
|
|
53
|
+
let success = this.successes[i];
|
|
54
54
|
success(data);
|
|
55
55
|
}
|
|
56
56
|
this.successes = [];
|
|
@@ -71,4 +71,4 @@ AppContextService.decorators = [
|
|
|
71
71
|
AppContextService.ctorParameters = () => [
|
|
72
72
|
{ type: HttpClient }
|
|
73
73
|
];
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxNQUFNO0FBQ04sT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBR2hFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBS25ELFlBQXNCLElBQWdCO1FBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQVk7UUFKOUIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUFJeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWlCO1FBQzFCLElBQUksT0FBTyxPQUFPLElBQUksV0FBVyxFQUFFO1lBQ2pDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQy9ELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUMsRUFDRCxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDZjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7OztZQXZERixVQUFVOzs7WUFOSCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTMgTm92IDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuLy8gQXBwXHJcbmltcG9ydCB7Q29udGV4dEluaXRTdGF0ZX0gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuaW1wb3J0IHtCYXNlQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2Jhc2UtYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBwQ29udGV4dFNlcnZpY2UgZXh0ZW5kcyBCYXNlQXBpU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjdXJyZW50ID0gbnVsbDtcclxuICBwcml2YXRlIHN1Y2Nlc3NlcyA9IFtdO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoaHR0cCk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSAnL2FwaS9hcHBDb250ZXh0JztcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnQoc3VjY2VzczogRnVuY3Rpb24pIHtcclxuICAgIGlmICh0eXBlb2Ygc3VjY2VzcyA9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudCAhPSBudWxsKSB7XHJcbiAgICAgIHN1Y2Nlc3ModGhpcy5jdXJyZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3VjY2Vzc2VzLnB1c2goc3VjY2Vzcyk7XHJcblxyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5nZXQoJ0dldEN1cnJlbnRDb250ZXh0JywgbnVsbCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YVJlY2VpdmVkKGRhdGEpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZSkgPT4ge31cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkYXRhUmVjZWl2ZWQoZGF0YSkge1xyXG4gICAgdGhpcy5jdXJyZW50ID0gZGF0YTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3VjY2Vzc2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzdWNjZXNzID0gdGhpcy5zdWNjZXNzZXNbaV07XHJcbiAgICAgIHN1Y2Nlc3MoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWNjZXNzZXMgPSBbXTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyU2lnbmVkSW4oKSB7XHJcbiAgICByZXR1cm4gQ29udGV4dEluaXRTdGF0ZS5pc1VzZXJTaWduZWRJbjtcclxuICB9XHJcblxyXG4gIGlzVXNlckFkbWluKCkge1xyXG4gICAgcmV0dXJuIENvbnRleHRJbml0U3RhdGUuaXNVc2VyQWRtaW47XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Injectable } from "@angular/core";
|
|
21
|
+
// RxJs
|
|
22
|
+
import { fromEvent, merge, Subject, timer } from "rxjs";
|
|
23
|
+
import * as i0 from "@angular/core";
|
|
24
|
+
export class IdleService {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.expired$ = new Subject();
|
|
27
|
+
}
|
|
28
|
+
startWatching(timeOutSeconds) {
|
|
29
|
+
this.idle$ = merge(fromEvent(document, "mousemove"), fromEvent(document, "click"), fromEvent(document, "mousedown"), fromEvent(document, "keypress"), fromEvent(document, "DOMMouseScroll"), fromEvent(document, "mousewheel"), fromEvent(document, "touchmove"), fromEvent(document, "MSPointerMove"), fromEvent(window, "mousemove"), fromEvent(window, "resize"));
|
|
30
|
+
this.timeOutMilliSeconds = timeOutSeconds * 1000;
|
|
31
|
+
this.idleSubscription = this.idle$.subscribe((res) => {
|
|
32
|
+
this.resetTimer();
|
|
33
|
+
});
|
|
34
|
+
this.startTimer();
|
|
35
|
+
return this.expired$;
|
|
36
|
+
}
|
|
37
|
+
startTimer() {
|
|
38
|
+
this.timer$ = timer(this.timeOutMilliSeconds, this.timeOutMilliSeconds).subscribe((res) => {
|
|
39
|
+
this.expired$.next(true);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
resetTimer() {
|
|
43
|
+
this.timer$.unsubscribe();
|
|
44
|
+
this.startTimer();
|
|
45
|
+
}
|
|
46
|
+
stopTimer() {
|
|
47
|
+
this.timer$.unsubscribe();
|
|
48
|
+
this.idleSubscription.unsubscribe();
|
|
49
|
+
}
|
|
50
|
+
restartIdleTimer() {
|
|
51
|
+
this.timer$.unsubscribe();
|
|
52
|
+
this.idleSubscription.unsubscribe();
|
|
53
|
+
this.idleSubscription = this.idle$.subscribe((res) => {
|
|
54
|
+
this.resetTimer();
|
|
55
|
+
});
|
|
56
|
+
this.startTimer();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
IdleService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IdleService_Factory() { return new IdleService(); }, token: IdleService, providedIn: "root" });
|
|
60
|
+
IdleService.decorators = [
|
|
61
|
+
{ type: Injectable, args: [{
|
|
62
|
+
providedIn: "root",
|
|
63
|
+
},] }
|
|
64
|
+
];
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvaWRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU87QUFDUCxPQUFPLEVBQWMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtwRSxNQUFNLE9BQU8sV0FBVztJQUh4QjtRQVNTLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQXNENUQ7SUFwRFEsYUFBYSxDQUFDLGNBQWM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQ2hCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQy9CLFNBQVMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsRUFDckMsU0FBUyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFDakMsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFDaEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsRUFDcEMsU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFDOUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FDNUIsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWpELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7WUE5REYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBSeEpzXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIElkbGVTZXJ2aWNlIHtcclxuICBwcml2YXRlIGlkbGUkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgcHJpdmF0ZSB0aW1lciQ7XHJcbiAgcHJpdmF0ZSB0aW1lT3V0TWlsbGlTZWNvbmRzOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpZGxlU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwdWJsaWMgZXhwaXJlZCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBwdWJsaWMgc3RhcnRXYXRjaGluZyh0aW1lT3V0U2Vjb25kcyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlkbGUkID0gbWVyZ2UoXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgXCJtb3VzZW1vdmVcIiksXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgXCJjbGlja1wiKSxcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCBcIm1vdXNlZG93blwiKSxcclxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCBcImtleXByZXNzXCIpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsIFwiRE9NTW91c2VTY3JvbGxcIiksXHJcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgXCJtb3VzZXdoZWVsXCIpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsIFwidG91Y2htb3ZlXCIpLFxyXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsIFwiTVNQb2ludGVyTW92ZVwiKSxcclxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgXCJtb3VzZW1vdmVcIiksXHJcbiAgICAgIGZyb21FdmVudCh3aW5kb3csIFwicmVzaXplXCIpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudGltZU91dE1pbGxpU2Vjb25kcyA9IHRpbWVPdXRTZWNvbmRzICogMTAwMDtcclxuXHJcbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24gPSB0aGlzLmlkbGUkLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdGFydFRpbWVyKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZXhwaXJlZCQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0VGltZXIoKSB7XHJcbiAgICB0aGlzLnRpbWVyJCA9IHRpbWVyKFxyXG4gICAgICB0aGlzLnRpbWVPdXRNaWxsaVNlY29uZHMsXHJcbiAgICAgIHRoaXMudGltZU91dE1pbGxpU2Vjb25kc1xyXG4gICAgKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLmV4cGlyZWQkLm5leHQodHJ1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldFRpbWVyKCkge1xyXG4gICAgdGhpcy50aW1lciQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3RhcnRUaW1lcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b3BUaW1lcigpIHtcclxuICAgIHRoaXMudGltZXIkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmlkbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXN0YXJ0SWRsZVRpbWVyKCkge1xyXG4gICAgdGhpcy50aW1lciQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuaWRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5pZGxlU3Vic2NyaXB0aW9uID0gdGhpcy5pZGxlJC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnJlc2V0VGltZXIoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdGFydFRpbWVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Injectable } from '@angular/core';
|
|
21
|
+
// App
|
|
22
|
+
import { AppCoreSettings } from '../consts/settings';
|
|
23
|
+
class WebStorageService {
|
|
24
|
+
constructor(storage) {
|
|
25
|
+
this.currentClientKey = AppCoreSettings.SERVICES_CONF.selectedClientID;
|
|
26
|
+
this.storage =
|
|
27
|
+
storage === 'local' || storage === 'localStorage'
|
|
28
|
+
? localStorage
|
|
29
|
+
: sessionStorage;
|
|
30
|
+
}
|
|
31
|
+
setItem(key, value) {
|
|
32
|
+
this.storage.setItem(this.currentClientKey + key, value);
|
|
33
|
+
}
|
|
34
|
+
setObject(key, value) {
|
|
35
|
+
this.storage.setItem(this.currentClientKey + key, JSON.stringify(value));
|
|
36
|
+
}
|
|
37
|
+
getItem(key) {
|
|
38
|
+
return this.storage.getItem(this.currentClientKey + key);
|
|
39
|
+
}
|
|
40
|
+
getObject(key) {
|
|
41
|
+
return JSON.parse(this.storage.getItem(this.currentClientKey + key) || '{}');
|
|
42
|
+
}
|
|
43
|
+
remove(key) {
|
|
44
|
+
this.storage.removeItem(this.currentClientKey + key);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class LocalStorageService extends WebStorageService {
|
|
48
|
+
constructor() {
|
|
49
|
+
super('localStorage');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
LocalStorageService.decorators = [
|
|
53
|
+
{ type: Injectable }
|
|
54
|
+
];
|
|
55
|
+
LocalStorageService.ctorParameters = () => [];
|
|
56
|
+
export class SessionStorageService extends WebStorageService {
|
|
57
|
+
constructor() {
|
|
58
|
+
super('sessionStorage');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
SessionStorageService.decorators = [
|
|
62
|
+
{ type: Injectable }
|
|
63
|
+
];
|
|
64
|
+
SessionStorageService.ctorParameters = () => [];
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3dlYi1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsTUFBTTtBQUNOLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxNQUFNLGlCQUFpQjtJQUlyQixZQUFZLE9BQWU7UUFIM0IscUJBQWdCLEdBQUcsZUFBZSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUloRSxJQUFJLENBQUMsT0FBTztZQUNWLE9BQU8sS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLGNBQWM7Z0JBQy9DLENBQUMsQ0FBQyxZQUFZO2dCQUNkLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUs7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFHO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGlCQUFpQjtJQUN4RDtRQUNFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QixDQUFDOzs7WUFKRixVQUFVOzs7QUFRWCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO0lBQzFEO1FBQ0UsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUIsQ0FBQzs7O1lBSkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIEFwcFxyXG5pbXBvcnQge0FwcENvcmVTZXR0aW5nc30gZnJvbSAnLi4vY29uc3RzL3NldHRpbmdzJztcclxuXHJcbmNsYXNzIFdlYlN0b3JhZ2VTZXJ2aWNlIHtcclxuICBjdXJyZW50Q2xpZW50S2V5ID0gQXBwQ29yZVNldHRpbmdzLlNFUlZJQ0VTX0NPTkYuc2VsZWN0ZWRDbGllbnRJRDtcclxuICBzdG9yYWdlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHN0b3JhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5zdG9yYWdlID1cclxuICAgICAgc3RvcmFnZSA9PT0gJ2xvY2FsJyB8fCBzdG9yYWdlID09PSAnbG9jYWxTdG9yYWdlJ1xyXG4gICAgICAgID8gbG9jYWxTdG9yYWdlXHJcbiAgICAgICAgOiBzZXNzaW9uU3RvcmFnZTtcclxuICB9XHJcblxyXG4gIHNldEl0ZW0oa2V5LCB2YWx1ZSkge1xyXG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0odGhpcy5jdXJyZW50Q2xpZW50S2V5ICsga2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRPYmplY3Qoa2V5LCB2YWx1ZSkge1xyXG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0odGhpcy5jdXJyZW50Q2xpZW50S2V5ICsga2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbShrZXkpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmN1cnJlbnRDbGllbnRLZXkgKyBrZXkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2JqZWN0KGtleSkge1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMuY3VycmVudENsaWVudEtleSArIGtleSkgfHwgJ3t9J1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShrZXkpIHtcclxuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuY3VycmVudENsaWVudEtleSArIGtleSk7XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIGV4dGVuZHMgV2ViU3RvcmFnZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ2xvY2FsU3RvcmFnZScpO1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIGV4dGVuZHMgV2ViU3RvcmFnZVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ3Nlc3Npb25TdG9yYWdlJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/lib/core/subs.js
CHANGED
|
@@ -31,4 +31,4 @@ export class Subs {
|
|
|
31
31
|
this.subs = [];
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL3N1YnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBSUYsTUFBTSxPQUFPLElBQUk7SUFHZjtRQUZRLFNBQUksR0FBbUIsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFaEIsR0FBRyxDQUFDLEdBQUcsYUFBNkI7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsWUFBMEI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgU3VicyB7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFkZCguLi5zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSkge1xyXG4gICAgdGhpcy5zdWJzID0gdGhpcy5zdWJzLmNvbmNhdChzdWJzY3JpcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHNldCBzaW5rKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSB7XHJcbiAgICB0aGlzLnN1YnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIgJiYgc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5zdWJzID0gW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -16,17 +16,16 @@
|
|
|
16
16
|
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
17
|
</file>
|
|
18
18
|
*/
|
|
19
|
-
// Node
|
|
20
|
-
import { LocalizationService } from './localization/localization.service';
|
|
21
19
|
// App
|
|
22
20
|
import { InjectorInstance } from './core.module';
|
|
23
|
-
|
|
21
|
+
import { LocalizationService } from './localization/localization.service';
|
|
24
22
|
export class Utils {
|
|
25
23
|
static getValueByNameInQS(name) {
|
|
26
24
|
return Utils.getValueByName(location.search, name);
|
|
27
25
|
}
|
|
28
26
|
static getValueByName(url, name) {
|
|
29
27
|
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
|
|
28
|
+
// tslint:disable-next-line:one-variable-per-declaration
|
|
30
29
|
const regex = new RegExp('[\\?&]' + name + '=([^&#]*)'), results = regex.exec(url);
|
|
31
30
|
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
|
|
32
31
|
}
|
|
@@ -72,16 +71,6 @@ export class Utils {
|
|
|
72
71
|
}
|
|
73
72
|
return key;
|
|
74
73
|
}
|
|
75
|
-
/**
|
|
76
|
-
* Convert date time lo local time zone value.
|
|
77
|
-
* @param value
|
|
78
|
-
*/
|
|
79
|
-
static convertToLocalizedDateTime(value) {
|
|
80
|
-
if (value) {
|
|
81
|
-
return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds()));
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
74
|
static downloadBlobFile(value, fileName) {
|
|
86
75
|
if (window.navigator.msSaveOrOpenBlob) {
|
|
87
76
|
window.navigator.msSaveOrOpenBlob(value, fileName);
|
|
@@ -92,4 +81,4 @@ export class Utils {
|
|
|
92
81
|
}
|
|
93
82
|
}
|
|
94
83
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE1BQU0sT0FBTyxLQUFLO0lBQ1QsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUk7UUFDbkMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUk7UUFDcEMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsd0RBQXdEO1FBQ3hELE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLEVBRXZELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQVUsRUFBRSxHQUFXO1FBQ25ELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUMzQixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFZLEVBQUUsR0FBVztRQUNsRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO0lBQ2YsV0FBVztJQUNYLE1BQU0sS0FBSyxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFzQixtQkFBbUIsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsTUFBYyxFQUFFLFVBQW1CO1FBQzlFLCtFQUErRTtRQUMvRSx5QkFBeUI7UUFDekIsK0VBQStFO1FBQy9FLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsR0FBRyxJQUFJLFVBQVUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMvRDtRQUVELFdBQVc7UUFDWCx1RkFBdUY7UUFDdkYsSUFBSSxHQUFHLEVBQUU7WUFDUCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBVyxFQUFFLFFBQWdCO1FBQzFELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQyxNQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxOSBNYXJjaCAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBBcHBcclxuaW1wb3J0IHsgSW5qZWN0b3JJbnN0YW5jZSB9IGZyb20gJy4vY29yZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFV0aWxzIHtcclxuICBwdWJsaWMgc3RhdGljIGdldFZhbHVlQnlOYW1lSW5RUyhuYW1lKSB7XHJcbiAgICByZXR1cm4gVXRpbHMuZ2V0VmFsdWVCeU5hbWUobG9jYXRpb24uc2VhcmNoLCBuYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmFsdWVCeU5hbWUodXJsLCBuYW1lKSB7XHJcbiAgICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXS8sICdcXFxcWycpLnJlcGxhY2UoL1tcXF1dLywgJ1xcXFxdJyk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6b25lLXZhcmlhYmxlLXBlci1kZWNsYXJhdGlvblxyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCdbXFxcXD8mXScgKyBuYW1lICsgJz0oW14mI10qKScpLFxyXG5cclxuICAgIHJlc3VsdHMgPSByZWdleC5leGVjKHVybCk7XHJcbiAgICByZXR1cm4gcmVzdWx0cyA9PT0gbnVsbCA/ICcnIDogZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMV0ucmVwbGFjZSgvXFwrL2csICcgJykpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb3B5VG9DbGlwQm9hcmQoZXZlbnQ6IGFueSwgdmFsOiBzdHJpbmcpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgY29uc3Qgc2VsQm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIHNlbEJveC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBzZWxCb3guc3R5bGUubGVmdCA9ICcwJztcclxuICAgIHNlbEJveC5zdHlsZS50b3AgPSAnMCc7XHJcbiAgICBzZWxCb3guc3R5bGUub3BhY2l0eSA9ICcwJztcclxuICAgIHNlbEJveC52YWx1ZSA9IHZhbDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2VsQm94KTtcclxuICAgIHNlbEJveC5mb2N1cygpO1xyXG4gICAgc2VsQm94LnNlbGVjdCgpO1xyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc2VsQm94KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZG93bmxvYWRGaWxlKG5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmRvd25sb2FkID0gbmFtZTtcclxuICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIC8vIExvY2FsaXphdGlvblxyXG4gIC8vIEBkeW5hbWljXHJcbiAgc3RhdGljIGdldCBsb2NhbGl6YXRpb25TZXJ2aWNlKCk6IExvY2FsaXphdGlvblNlcnZpY2Uge1xyXG4gICAgY29uc3QgbnMgPSBJbmplY3Rvckluc3RhbmNlLmdldDxMb2NhbGl6YXRpb25TZXJ2aWNlPihMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICAgIHJldHVybiBucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxpemVkVmFsdWUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueVtdLCBkZWZhdWx0S2V5Pzogc3RyaW5nKSB7XHJcbiAgICAvLyBWYWRpbU9TOiBET04nVCBDSEFOR0UgVEhJUyBDT0RFLiBORUVEIFRPIEJFIFJFVklFV0VEIEFORCBBUFBST1ZFRCBCWSBWQURJTU9TXHJcbiAgICAvLyBkZWZhdWx0S2V5IGRlZmluaXRpb246XHJcbiAgICAvLyBpZiBrZXkgaXMgZW1wdHkgYW5kIGRlZmF1bHRLZXkgaXMgZGVmaW5lZCA9PiBnZXQgbG9jYWxpemF0aW9uIGZvciBkZWZhdWx0S2V5XHJcbiAgICAvLyBFeGFtcGxlOiBjYW5jZWwoKVxyXG4gICAgaWYgKCFrZXkgJiYgZGVmYXVsdEtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldExvY2FsaXplZFZhbHVlKGRlZmF1bHRLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhZGltT1M6XHJcbiAgICAvLyBpZiBrZXkgaXMgbm90IGVtcHR5IHZhbHVlIE1VU1QgYmUgaW4gbG9jYWxpemF0aW9uIHRhYmxlLCBvdGhld2lzZSB3ZSB3aWxsIHJldHVybiBrZXlcclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZ2V0TG9jYWxpemVkVmFsdWUoa2V5LCBwYXJhbXMpO1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZG93bmxvYWRCbG9iRmlsZSh2YWx1ZTogQmxvYiwgZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYikge1xyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IodmFsdWUsIGZpbGVOYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRvd25sb2FkVVJMID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwodmFsdWUpO1xyXG4gICAgICBVdGlscy5kb3dubG9hZEZpbGUoZmlsZU5hbWUsIGRvd25sb2FkVVJMKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|