@arsedizioni/ars-utils 18.1.62 → 18.1.64
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/core/definitions.d.ts +7 -7
- package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/document/document.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/last-15-days/last-15-days.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/references/references.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +3 -3
- package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +3 -3
- package/esm2022/core/definitions.mjs +1 -1
- package/esm2022/help/components/help-viewer/help-viewer.component.mjs +3 -3
- package/esm2022/support.common/common/interceptors/auth.interceptor.mjs +15 -15
- package/esm2022/support.common/common/services/support.service.mjs +30 -29
- package/esm2022/support.common/common/support.mjs +1 -1
- package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +46 -51
- package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +73 -74
- package/esm2022/tinymce/full-screen-editor/full-screen-editor.component.mjs +24 -24
- package/esm2022/ui/ui/definitions.mjs +1 -1
- package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +3 -3
- package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +3 -3
- package/esm2022/ui.application/ui/definitions.mjs +1 -1
- package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +3 -3
- package/esm2022/ui.application/ui/filters.mjs +2 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +14 -14
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-help.mjs +2 -2
- package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +41 -40
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +108 -112
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +23 -23
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +19 -18
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +12 -12
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/package.json +7 -7
- package/styles/ui.scss +36 -4
- package/support.common/common/interceptors/auth.interceptor.d.ts +2 -5
- package/support.common/common/services/support.service.d.ts +4 -6
- package/support.common/common/support.d.ts +6 -6
- package/support.ui/ui/notifications-browser/notification/notification.component.d.ts +13 -12
- package/support.ui/ui/notifications-browser/notifications-browser.component.d.ts +19 -23
- package/tinymce/full-screen-editor/full-screen-editor.component.d.ts +11 -11
- package/ui/ui/definitions.d.ts +3 -3
- package/ui.application/ui/definitions.d.ts +10 -10
- package/ui.application/ui/dialogs/send-to/send-to-dialog.component.d.ts +5 -5
- package/ui.application/ui/filters.d.ts +17 -17
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
1
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
3
|
+
import { BroadcastService, SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
4
4
|
import { EMPTY, of, throwError, timer } from 'rxjs';
|
|
5
5
|
import { catchError, map, shareReplay, switchMap } from 'rxjs/operators';
|
|
6
6
|
import { SupportMessages } from '../messages';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
import * as i2 from "@arsedizioni/ars-utils/core";
|
|
10
8
|
export class SupportService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.REFRESH_INTERVAL = 60000 * 50; //50 min
|
|
11
|
+
this.httpClient = inject(HttpClient);
|
|
12
|
+
this.broadcastService = inject(BroadcastService);
|
|
13
|
+
this.refreshing = false;
|
|
14
|
+
this.tokenRefreshTimer = null;
|
|
15
|
+
this.tokenRefreshTimerSubscription = null;
|
|
16
|
+
this.messageWatcher = null;
|
|
17
|
+
this._loginInfo = null;
|
|
18
|
+
this._loggedIn = false;
|
|
19
|
+
this._loggingIn = false;
|
|
20
|
+
this._serviceUri = "https://support.arsedizioni.it";
|
|
21
|
+
this._servicePrefix = "";
|
|
22
|
+
this._unreadNotifications = null;
|
|
23
|
+
}
|
|
11
24
|
get loginInfo() { return this._loginInfo; }
|
|
12
25
|
;
|
|
13
26
|
set loginInfo(value) {
|
|
@@ -52,18 +65,6 @@ export class SupportService {
|
|
|
52
65
|
get unreadNotifications() {
|
|
53
66
|
return this._unreadNotifications;
|
|
54
67
|
}
|
|
55
|
-
constructor(http, $broadcast) {
|
|
56
|
-
this.http = http;
|
|
57
|
-
this.$broadcast = $broadcast;
|
|
58
|
-
this.REFRESH_INTERVAL = 60000 * 50; //50 min
|
|
59
|
-
this.refreshing = false;
|
|
60
|
-
this._loginInfo = null;
|
|
61
|
-
this._loggedIn = false;
|
|
62
|
-
this._loggingIn = false;
|
|
63
|
-
this._serviceUri = "https://support.arsedizioni.it";
|
|
64
|
-
this._servicePrefix = "";
|
|
65
|
-
this._unreadNotifications = null;
|
|
66
|
-
}
|
|
67
68
|
ngOnDestroy() {
|
|
68
69
|
// Clean-up
|
|
69
70
|
if (this.tokenRefreshTimerSubscription)
|
|
@@ -89,7 +90,7 @@ export class SupportService {
|
|
|
89
90
|
this._products = products;
|
|
90
91
|
// React to message broadcasting
|
|
91
92
|
if (!this.messageWatcher) {
|
|
92
|
-
this.messageWatcher = this
|
|
93
|
+
this.messageWatcher = this.broadcastService.getMessage().subscribe((message) => {
|
|
93
94
|
if (message.id === SupportMessages.LOGIN_CHANGED) {
|
|
94
95
|
setTimeout(() => {
|
|
95
96
|
this.login(message.data.email, message.data.oauth, message.data.oauthAccessToken).subscribe((r) => {
|
|
@@ -178,7 +179,7 @@ export class SupportService {
|
|
|
178
179
|
login(email = null, oauth = null, oauthAccessToken = null) {
|
|
179
180
|
this.clear();
|
|
180
181
|
this.loggingIn = true;
|
|
181
|
-
return this.
|
|
182
|
+
return this.httpClient
|
|
182
183
|
.post(this._serviceUri + '/login', {
|
|
183
184
|
user: oauth > 0 ? null : email,
|
|
184
185
|
clientId: localStorage.getItem("support_client_id"),
|
|
@@ -221,7 +222,7 @@ export class SupportService {
|
|
|
221
222
|
* Perform logout
|
|
222
223
|
*/
|
|
223
224
|
logout() {
|
|
224
|
-
return this.
|
|
225
|
+
return this.httpClient
|
|
225
226
|
.post(this._serviceUri + '/logout', {}).pipe(map((r) => { return r; }), catchError((_e) => {
|
|
226
227
|
this.clear();
|
|
227
228
|
return of([]);
|
|
@@ -254,7 +255,7 @@ export class SupportService {
|
|
|
254
255
|
* Perform token refresh
|
|
255
256
|
*/
|
|
256
257
|
refresh() {
|
|
257
|
-
return this.
|
|
258
|
+
return this.httpClient.post(this._serviceUri + '/refresh', {}).pipe(map((r) => {
|
|
258
259
|
// Update token
|
|
259
260
|
this.setToken(r.value.token);
|
|
260
261
|
}));
|
|
@@ -275,7 +276,7 @@ export class SupportService {
|
|
|
275
276
|
* Count unread notifications
|
|
276
277
|
*/
|
|
277
278
|
countUnreadNotifications() {
|
|
278
|
-
this.
|
|
279
|
+
this.httpClient.get(this._serviceUri + '/notifications/count-unread/?products=' + (this.products ?? 0) + "&modules=" + (this.productModules ?? 0)).subscribe((r) => {
|
|
279
280
|
if (r.success) {
|
|
280
281
|
this._unreadNotifications = r.value > 0 ? r.value : null;
|
|
281
282
|
}
|
|
@@ -288,14 +289,14 @@ export class SupportService {
|
|
|
288
289
|
queryNotifications(params) {
|
|
289
290
|
params.products = this.products ?? 0;
|
|
290
291
|
params.productModules = this.productModules ?? 0;
|
|
291
|
-
return this.
|
|
292
|
+
return this.httpClient.post(this._serviceUri + '/notifications', params);
|
|
292
293
|
}
|
|
293
294
|
/**
|
|
294
295
|
* Retrieve a notification
|
|
295
296
|
* @param id: the notification id
|
|
296
297
|
*/
|
|
297
298
|
getNotification(id) {
|
|
298
|
-
return this.
|
|
299
|
+
return this.httpClient.get(this._serviceUri +
|
|
299
300
|
'/notifications/' +
|
|
300
301
|
id);
|
|
301
302
|
}
|
|
@@ -304,16 +305,16 @@ export class SupportService {
|
|
|
304
305
|
* @param ids: the array of notification's ids to set as read
|
|
305
306
|
*/
|
|
306
307
|
markNotifications(params) {
|
|
307
|
-
return this.
|
|
308
|
+
return this.httpClient.post(this._serviceUri + '/notifications/mark', params);
|
|
308
309
|
}
|
|
309
310
|
/**
|
|
310
311
|
* Download a notification document
|
|
311
312
|
* @param documentId : the notification document id
|
|
312
313
|
*/
|
|
313
314
|
dowloadNotificationDocument(documentId) {
|
|
314
|
-
return this.
|
|
315
|
+
return this.httpClient.get(this._serviceUri + '/documents/download/' + documentId, { responseType: 'blob' });
|
|
315
316
|
}
|
|
316
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportService, deps: [
|
|
317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
317
318
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportService, providedIn: 'root' }); }
|
|
318
319
|
}
|
|
319
320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportService, decorators: [{
|
|
@@ -321,5 +322,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
321
322
|
args: [{
|
|
322
323
|
providedIn: 'root',
|
|
323
324
|
}]
|
|
324
|
-
}]
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3N1cHBvcnQuY29tbW9uL2NvbW1vbi9zZXJ2aWNlcy9zdXBwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUF1RCxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQU85QyxNQUFNLE9BQU8sY0FBYztJQVl6QixJQUFJLFNBQVMsS0FBZ0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEQsSUFBSSxTQUFTLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUdELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBR0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxD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QztJQUVEOzs7S0FHQztJQUNELDJCQUEyQixDQUFDLFVBQWtCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsc0JBQXNCLEdBQUcsVUFBVSxFQUN0RCxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FDekIsQ0FBQztJQUNKLENBQUM7OEdBN1hVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlSZXN1bHQsIEJyb2FkY2FzdFNlcnZpY2UsIExvZ2luSW5mbywgTG9naW5SZXN1bHQsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3VwcG9ydE1lc3NhZ2VzIH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xyXG5pbXBvcnQgeyBTdXBwb3J0Tm90aWZpY2F0aW9uc1NlYXJjaFBhcmFtcywgU3VwcG9ydFByb2R1Y3QsIFN1cHBvcnRQcm9kdWN0TW9kdWxlIH0gZnJvbSAnLi4vc3VwcG9ydCc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cHBvcnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBSRUZSRVNIX0lOVEVSVkFMID0gNjAwMDAgKiA1MDsgLy81MCBtaW5cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSB0b2tlblJlZnJlc2hUaW1lcj86IE9ic2VydmFibGU8bnVtYmVyIHwgdm9pZD4gfCBudWxsO1xyXG4gIHByaXZhdGUgdG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBtZXNzYWdlV2F0Y2hlcjogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX2xvZ2luSW5mbzogTG9naW5JbmZvID0gbnVsbDtcclxuICBnZXQgbG9naW5JbmZvKCk6IExvZ2luSW5mbyB7IHJldHVybiB0aGlzLl9sb2dpbkluZm8gfTtcclxuICBzZXQgbG9naW5JbmZvKHZhbHVlOiBMb2dpbkluZm8pIHtcclxuICAgIHRoaXMuX2xvZ2luSW5mbyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9nZ2VkSW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBnZXQgbG9nZ2VkSW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9nZ2VkSW47XHJcbiAgfVxyXG4gIHNldCBsb2dnZWRJbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbG9nZ2VkSW4gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvZ2dpbmdJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdldCBsb2dnaW5nSW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9nZ2luZ0luO1xyXG4gIH1cclxuICBzZXQgbG9nZ2luZ0luKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9sb2dnaW5nSW4gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VVcmk6IHN0cmluZyA9IFwiaHR0cHM6Ly9zdXBwb3J0LmFyc2VkaXppb25pLml0XCJcclxuICBnZXQgc2VydmljZVVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VVcmk7XHJcbiAgfVxyXG4gIHNldCBzZXJ2aWNlVXJpKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlcnZpY2VVcmkgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VydmljZVByZWZpeDogc3RyaW5nID0gXCJcIlxyXG4gIGdldCBzZXJ2aWNlUHJlZml4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZVByZWZpeDtcclxuICB9XHJcbiAgc2V0IHNlcnZpY2VQcmVmaXgodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2VydmljZVByZWZpeCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJvZHVjdHM6IFN1cHBvcnRQcm9kdWN0O1xyXG4gIGdldCBwcm9kdWN0cygpOiBTdXBwb3J0UHJvZHVjdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJvZHVjdHM7XHJcbiAgfVxyXG4gIHNldCBwcm9kdWN0cyh2YWx1ZTogU3VwcG9ydFByb2R1Y3QpIHtcclxuICAgIHRoaXMuX3Byb2R1Y3RzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcm9kdWN0TW9kdWxlczogU3VwcG9ydFByb2R1Y3RNb2R1bGU7XHJcbiAgZ2V0IHByb2R1Y3RNb2R1bGVzKCk6IFN1cHBvcnRQcm9kdWN0TW9kdWxlIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9kdWN0TW9kdWxlcztcclxuICB9XHJcbiAgc2V0IHByb2R1Y3RNb2R1bGVzKHZhbHVlOiBTdXBwb3J0UHJvZHVjdE1vZHVsZSkge1xyXG4gICAgdGhpcy5fcHJvZHVjdE1vZHVsZXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VucmVhZE5vdGlmaWNhdGlvbnM6IG51bWJlciA9IG51bGw7XHJcbiAgZ2V0IHVucmVhZE5vdGlmaWNhdGlvbnMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl91bnJlYWROb3RpZmljYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlICRicm9hZGNhc3Q6IEJyb2FkY2FzdFNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbi11cFxyXG4gICAgaWYgKHRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24pXHJcbiAgICAgIHRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIGlmICh0aGlzLm1lc3NhZ2VXYXRjaGVyKSB0aGlzLm1lc3NhZ2VXYXRjaGVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gc2VydmljZVVyaSA6IHRoZSBzZXJ2aWNlIHVyaVxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlUHJlZml4IDogdGhlIHNlcnZpY2UgcHJlZml4IHVzZWQgdG8gbWFuYWdlIGxvY2FsIHN0b3JhZ2UgXHJcbiAgICogQHBhcmFtIHByb2R1Y3RzOiB0aGUgc3VwcG9ydGVkIHByb2R1Y3RzXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZShcclxuICAgIHNlcnZpY2VVcmk6IHN0cmluZyA9IG51bGwsXHJcbiAgICBzZXJ2aWNlUHJlZml4OiBzdHJpbmcgPSBudWxsLFxyXG4gICAgcHJvZHVjdHM6IG51bWJlciA9IDApIHtcclxuXHJcbiAgICAvLyBDcmVhdGUgdW5pcXVlIGNsaWVudCBpZFxyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3VwcG9ydF9jbGllbnRfaWQnKSlcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1cHBvcnRfY2xpZW50X2lkJywgU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkpO1xyXG5cclxuICAgIC8vIEluaXRpYWxpemUgdXJpc1xyXG4gICAgaWYgKHNlcnZpY2VVcmkpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgPSBzZXJ2aWNlVXJpO1xyXG4gICAgdGhpcy5fc2VydmljZVByZWZpeCA9IHNlcnZpY2VQcmVmaXg7XHJcbiAgICBpZiAocHJvZHVjdHMpXHJcbiAgICAgIHRoaXMuX3Byb2R1Y3RzID0gcHJvZHVjdHM7XHJcblxyXG4gICAgLy8gUmVhY3QgdG8gbWVzc2FnZSBicm9hZGNhc3RpbmdcclxuICAgIGlmICghdGhpcy5tZXNzYWdlV2F0Y2hlcikge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VXYXRjaGVyID0gdGhpcy4kYnJvYWRjYXN0LmdldE1lc3NhZ2UoKS5zdWJzY3JpYmUoKG1lc3NhZ2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTE9HSU5fQ0hBTkdFRCkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW4obWVzc2FnZS5kYXRhLmVtYWlsLCBtZXNzYWdlLmRhdGEub2F1dGgsIG1lc3NhZ2UuZGF0YS5vYXV0aEFjY2Vzc1Rva2VuKS5zdWJzY3JpYmUoKHI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY291bnRVbnJlYWROb3RpZmljYXRpb25zKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTE9HT1VUX0NPTVBMRVRFRCB8fFxyXG4gICAgICAgICAgbWVzc2FnZS5pZCA9PT0gU3VwcG9ydE1lc3NhZ2VzLkxPR0lOX0RJU0NPTk5FQ1RFRCkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nb3V0KCkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTk9USUZJQ0FUSU9OX1JFQUQpIHtcclxuICAgICAgICAgIHRoaXMuY291bnRVbnJlYWROb3RpZmljYXRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFdmVsdWF0ZSBjdXJyZW50IHNlc3Npb24gc3RvcmFnZSBpbiBjYXNlIG9mIHBhZ2UgcmVmcmVzaCAoRjUpXHJcbiAgICBpZiAoIXRoaXMubG9nZ2VkSW4gJiYgdGhpcy5nZXRUb2tlbigpKSB7XHJcbiAgICAgIC8vIEF1dG8gbG9naW5cclxuICAgICAgdGhpcy5sb2dnZWRJbiA9IHRydWU7XHJcblxyXG4gICAgICAvLyBTdGFydCByZWZyZXNoIHRpbWVyXHJcbiAgICAgIHRoaXMuZW5hYmxlVG9rZW5SZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogU2V0IEpXVCB0b2tlblxyXG4gKiBAcGFyYW0gdG9rZW4gOiBUaGUgdG9rZW4gIHRvIHN0b3JlXHJcbiAqL1xyXG4gIHByaXZhdGUgc2V0VG9rZW4odG9rZW46IHN0cmluZykge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3VwcG9ydF9qd3QnLCB0b2tlbik7XHJcbiAgICBpZiAodG9rZW4pIHtcclxuICAgICAgdGhpcy5lbmFibGVUb2tlblJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZSBKV1QgdG9rZW4gYXV0byByZWZyZXNoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbmFibGVUb2tlblJlZnJlc2goKSB7XHJcbiAgICBpZiAoIXRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy50b2tlblJlZnJlc2hUaW1lciA9XHJcbiAgICAgICAgdGltZXIodGhpcy5SRUZSRVNIX0lOVEVSVkFMLCB0aGlzLlJFRlJFU0hfSU5URVJWQUwpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5yZWZyZXNoaW5nIHx8ICF0aGlzLmxvZ2dlZEluKSByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMucmVmcmVzaGluZyA9IGZhbHNlOyB9LFxyXG4gICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB0aGlzLnJlZnJlc2hpbmcgPSBmYWxzZTsgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSkpO1xyXG4gICAgICB0aGlzLnRva2VuUmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uID0gdGhpcy50b2tlblJlZnJlc2hUaW1lci5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBjdXJyZW50IEpXVCB0b2tlblxyXG4gICAqIEByZXR1cm5zOiB0aGUgc3RyaW5nIEpXVCB0b2tlbiBvciBzdHJpbmcgZW1wdHkgaWYgbm9uZVxyXG4gICAqL1xyXG4gIGdldFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdzdXBwb3J0X2p3dCcpO1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIGlmICh0b2tlblswXSA9PT0gJ1wiJykgdG9rZW4gPSB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICAgIHJldHVybiB0b2tlbjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuKiBQZXJmb3JtIGxvZ2luICAgXHJcbiogQHBhcmFtIGVtYWlsOiB0aGUgZ3Vlc3QgZW1haWxcclxuKiBAcGFyYW0gb2F1dGg6IHRoZSBvcHRpb25hbCBvcGVuIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZFxyXG4qIEBwYXJhbSBvYXV0aEFjY2Vzc1Rva2VuOiB0aGUgb3B0aW9uYWwgb2F1dGgyIGFjY2VzcyB0b2tlblxyXG4qIEByZXR1cm5zOiB0aGUgbG9naW4gcmVzdWx0XHJcbiovXHJcbiAgbG9naW4oZW1haWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgb2F1dGg6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgb2F1dGhBY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGwpIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIHRoaXMubG9nZ2luZ0luID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8QXBpUmVzdWx0PExvZ2luUmVzdWx0Pj4oXHJcbiAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvbG9naW4nLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVzZXI6IG9hdXRoID4gMCA/IG51bGwgOiBlbWFpbCxcclxuICAgICAgICAgIGNsaWVudElkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1cHBvcnRfY2xpZW50X2lkXCIpLFxyXG4gICAgICAgICAgT0FVVEg6IG9hdXRoXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOlxyXG4gICAgICAgICAgICAhb2F1dGhcclxuICAgICAgICAgICAgICA/IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgICAgOiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgb2F1dGhBY2Nlc3NUb2tlbilcclxuICAgICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIG1hcCgocjogQXBpUmVzdWx0PExvZ2luUmVzdWx0PikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2dnaW5nSW4gPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdE1vZHVsZXMgPSB0aGlzLnByb2R1Y3RNb2R1bGVzO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVMb2dpblJlc3VsdChyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIGxvZ2luIHJlc3VsdFxyXG4gICAqIEBwYXJhbSBsb2dpblJlc3VsdCA6IHRoZSBjdXJyZW50IGxvZ2luIHJlc3VsdFxyXG4gICAqIEByZXR1cm5zOiB0aGUgZmluYWwgbG9naW4gcmVzdWx0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2dpblJlc3VsdChcclxuICAgIGxvZ2luUmVzdWx0OiBBcGlSZXN1bHQ8TG9naW5SZXN1bHQ+XHJcbiAgKTogQXBpUmVzdWx0PExvZ2luUmVzdWx0PiB7XHJcbiAgICBpZiAobG9naW5SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAvLyBTdG9yZSBhY2Nlc3MgdG9rZW5cclxuICAgICAgdGhpcy5zZXRUb2tlbihsb2dpblJlc3VsdC52YWx1ZS50b2tlbik7XHJcblxyXG4gICAgICB0aGlzLl9sb2dpbkluZm8gPSBsb2dpblJlc3VsdC52YWx1ZS5jb250ZXh0O1xyXG4gICAgICB0aGlzLl9sb2dnZWRJbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbG9naW5SZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJmb3JtIGxvZ291dFxyXG4gICAqL1xyXG4gIGxvZ291dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dvdXQnLCB7fSkucGlwZShcclxuICAgICAgICBtYXAoKHI6IGFueSkgPT4geyByZXR1cm4gcjsgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoX2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgIHJldHVybiBvZihbXSk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IGxvZ2luIHJlZnJlc2ggdGltZXIgYW5kIGxvZ2lucyBzdGF0ZVxyXG4gICAqL1xyXG4gIHJlc2V0KCkge1xyXG4gICAgLy8gQ2xlYXIgc3Vic2NyaXB0aW9uc1xyXG4gICAgaWYgKHRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy50b2tlblJlZnJlc2hUaW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnRva2VuUmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMudG9rZW5SZWZyZXNoVGltZXIgPSBudWxsO1xyXG5cclxuICAgIC8vIENsZWFyIGxvZ2luIGluZm9cclxuICAgIHRoaXMuX2xvZ2luSW5mbyA9IG51bGw7XHJcbiAgICB0aGlzLl9sb2dnZWRJbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgbG9naW4gZGF0YVxyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgLy8gUmVzZXQgbG9naW5cclxuICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgICAvLyBDbGVhciBsb2NhbCBzdG9yYWdlXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdzdXBwb3J0X2p3dCcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSB0b2tlbiByZWZyZXNoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3VsdDxMb2dpblJlc3VsdD4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9yZWZyZXNoJywge31cclxuICAgICkucGlwZShtYXAoKHI6IEFwaVJlc3VsdDxMb2dpblJlc3VsdD4pID0+IHtcclxuICAgICAgLy8gVXBkYXRlIHRva2VuXHJcbiAgICAgIHRoaXMuc2V0VG9rZW4oci52YWx1ZS50b2tlbik7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZSB0byBzdXBwb3J0IHNlcnZpY2VcclxuICAgKi9cclxuICBvcGVuKCkge1xyXG4gICAgbGV0IHVyaSA9IHRoaXMuc2VydmljZVVyaSA/PyAnJztcclxuICAgIGlmICh1cmkuZW5kc1dpdGgoJy9hcGknKSlcclxuICAgICAgdXJpID0gdXJpLnN1YnN0cmluZygwLCB1cmkubGVuZ3RoIC0gNClcclxuICAgIHdpbmRvdy5vcGVuKHVyaSk7XHJcbiAgfVxyXG5cclxuICAvLy8vXHJcbiAgLy8gTk9USUZJQ0FUSU9OU1xyXG4gIC8vLy9cclxuXHJcbiAgLyoqXHJcbiAgICogQ291bnQgdW5yZWFkIG5vdGlmaWNhdGlvbnNcclxuICAgKi9cclxuICBjb3VudFVucmVhZE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PEFwaVJlc3VsdDxhbnk+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvbm90aWZpY2F0aW9ucy9jb3VudC11bnJlYWQvP3Byb2R1Y3RzPScgKyAodGhpcy5wcm9kdWN0cyA/PyAwKSArIFwiJm1vZHVsZXM9XCIgKyAodGhpcy5wcm9kdWN0TW9kdWxlcyA/PyAwKVxyXG4gICAgKS5zdWJzY3JpYmUoKHI6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoci5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5fdW5yZWFkTm90aWZpY2F0aW9ucyA9IHIudmFsdWUgPiAwID8gci52YWx1ZSA6IG51bGxcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBRdWVyeSBub3RpZmljYXRpb25zXHJcbiAgICogQHBhcmFtIHBhcmFtczogcXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqL1xyXG4gIHF1ZXJ5Tm90aWZpY2F0aW9ucyhwYXJhbXM6IFN1cHBvcnROb3RpZmljYXRpb25zU2VhcmNoUGFyYW1zKSB7XHJcbiAgICBwYXJhbXMucHJvZHVjdHMgPSB0aGlzLnByb2R1Y3RzID8/IDA7XHJcbiAgICBwYXJhbXMucHJvZHVjdE1vZHVsZXMgPSB0aGlzLnByb2R1Y3RNb2R1bGVzID8/IDA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzdWx0PGFueT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9ub3RpZmljYXRpb25zJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBub3RpZmljYXRpb25cclxuICAgKiBAcGFyYW0gaWQ6IHRoZSBub3RpZmljYXRpb24gaWRcclxuICAgKi9cclxuICBnZXROb3RpZmljYXRpb24oaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzdWx0PGFueT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICtcclxuICAgICAgJy9ub3RpZmljYXRpb25zLycgK1xyXG4gICAgICBpZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcmsgYSBncm91cCBvZiBub3RpZmljYXRpb25zIGFzIHJlYWRcclxuICAgKiBAcGFyYW0gaWRzOiB0aGUgYXJyYXkgb2Ygbm90aWZpY2F0aW9uJ3MgaWRzIHRvIHNldCBhcyByZWFkXHJcbiAgICovXHJcbiAgbWFya05vdGlmaWNhdGlvbnMocGFyYW1zOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXN1bHQ8YW55Pj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL25vdGlmaWNhdGlvbnMvbWFyaycsXHJcbiAgICAgIHBhcmFtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBEb3dubG9hZCBhIG5vdGlmaWNhdGlvbiBkb2N1bWVudFxyXG4gKiBAcGFyYW0gZG9jdW1lbnRJZCA6IHRoZSBub3RpZmljYXRpb24gZG9jdW1lbnQgaWRcclxuICovXHJcbiAgZG93bG9hZE5vdGlmaWNhdGlvbkRvY3VtZW50KGRvY3VtZW50SWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9kb3dubG9hZC8nICsgZG9jdW1lbnRJZCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
325
|
+
}] });
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3N1cHBvcnQuY29tbW9uL2NvbW1vbi9zZXJ2aWNlcy9zdXBwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQWEsZ0JBQWdCLEVBQTBCLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9HLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFnQixVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU85QyxNQUFNLE9BQU8sY0FBYztJQUgzQjtRQUttQixxQkFBZ0IsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUTtRQUVoRCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsc0JBQWlCLEdBQXNDLElBQUksQ0FBQztRQUM1RCxrQ0FBNkIsR0FBeUIsSUFBSSxDQUFDO1FBQzNELG1CQUFjLEdBQXlCLElBQUksQ0FBQztRQUk1QyxlQUFVLEdBQWMsSUFBSSxDQUFDO1FBTTdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFRM0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQVE1QixnQkFBVyxHQUFXLGdDQUFn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OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsTUFBVztRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixFQUN4QyxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRDs7O0tBR0M7SUFDRCwyQkFBMkIsQ0FBQyxVQUFrQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLHNCQUFzQixHQUFHLFVBQVUsRUFDdEQsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQ3pCLENBQUM7SUFDSixDQUFDOzhHQXpYVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlSZXN1bHQsIEJyb2FkY2FzdFNlcnZpY2UsIExvZ2luSW5mbywgTG9naW5SZXN1bHQsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3VwcG9ydE1lc3NhZ2VzIH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xyXG5pbXBvcnQgeyBTdXBwb3J0Tm90aWZpY2F0aW9uc1NlYXJjaFBhcmFtcywgU3VwcG9ydFByb2R1Y3QsIFN1cHBvcnRQcm9kdWN0TW9kdWxlIH0gZnJvbSAnLi4vc3VwcG9ydCc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cHBvcnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBSRUZSRVNIX0lOVEVSVkFMID0gNjAwMDAgKiA1MDsgLy81MCBtaW5cclxuXHJcbiAgcHJpdmF0ZSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZSA9IGluamVjdChCcm9hZGNhc3RTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSB0b2tlblJlZnJlc2hUaW1lcj86IE9ic2VydmFibGU8bnVtYmVyIHwgdm9pZD4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHRva2VuUmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtZXNzYWdlV2F0Y2hlcj86IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgX2xvZ2luSW5mbzogTG9naW5JbmZvID0gbnVsbDtcclxuICBnZXQgbG9naW5JbmZvKCk6IExvZ2luSW5mbyB7IHJldHVybiB0aGlzLl9sb2dpbkluZm8gfTtcclxuICBzZXQgbG9naW5JbmZvKHZhbHVlOiBMb2dpbkluZm8pIHtcclxuICAgIHRoaXMuX2xvZ2luSW5mbyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9nZ2VkSW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBnZXQgbG9nZ2VkSW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9nZ2VkSW47XHJcbiAgfVxyXG4gIHNldCBsb2dnZWRJbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbG9nZ2VkSW4gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvZ2dpbmdJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdldCBsb2dnaW5nSW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9nZ2luZ0luO1xyXG4gIH1cclxuICBzZXQgbG9nZ2luZ0luKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9sb2dnaW5nSW4gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VVcmk6IHN0cmluZyA9IFwiaHR0cHM6Ly9zdXBwb3J0LmFyc2VkaXppb25pLml0XCJcclxuICBnZXQgc2VydmljZVVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VVcmk7XHJcbiAgfVxyXG4gIHNldCBzZXJ2aWNlVXJpKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlcnZpY2VVcmkgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VydmljZVByZWZpeDogc3RyaW5nID0gXCJcIlxyXG4gIGdldCBzZXJ2aWNlUHJlZml4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZVByZWZpeDtcclxuICB9XHJcbiAgc2V0IHNlcnZpY2VQcmVmaXgodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2VydmljZVByZWZpeCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJvZHVjdHM6IFN1cHBvcnRQcm9kdWN0O1xyXG4gIGdldCBwcm9kdWN0cygpOiBTdXBwb3J0UHJvZHVjdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJvZHVjdHM7XHJcbiAgfVxyXG4gIHNldCBwcm9kdWN0cyh2YWx1ZTogU3VwcG9ydFByb2R1Y3QpIHtcclxuICAgIHRoaXMuX3Byb2R1Y3RzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcm9kdWN0TW9kdWxlczogU3VwcG9ydFByb2R1Y3RNb2R1bGU7XHJcbiAgZ2V0IHByb2R1Y3RNb2R1bGVzKCk6IFN1cHBvcnRQcm9kdWN0TW9kdWxlIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9kdWN0TW9kdWxlcztcclxuICB9XHJcbiAgc2V0IHByb2R1Y3RNb2R1bGVzKHZhbHVlOiBTdXBwb3J0UHJvZHVjdE1vZHVsZSkge1xyXG4gICAgdGhpcy5fcHJvZHVjdE1vZHVsZXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VucmVhZE5vdGlmaWNhdGlvbnM6IG51bWJlciA9IG51bGw7XHJcbiAgZ2V0IHVucmVhZE5vdGlmaWNhdGlvbnMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl91bnJlYWROb3RpZmljYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbi11cFxyXG4gICAgaWYgKHRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24pXHJcbiAgICAgIHRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIGlmICh0aGlzLm1lc3NhZ2VXYXRjaGVyKSB0aGlzLm1lc3NhZ2VXYXRjaGVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gc2VydmljZVVyaSA6IHRoZSBzZXJ2aWNlIHVyaVxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlUHJlZml4IDogdGhlIHNlcnZpY2UgcHJlZml4IHVzZWQgdG8gbWFuYWdlIGxvY2FsIHN0b3JhZ2UgXHJcbiAgICogQHBhcmFtIHByb2R1Y3RzOiB0aGUgc3VwcG9ydGVkIHByb2R1Y3RzXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZShcclxuICAgIHNlcnZpY2VVcmk6IHN0cmluZyA9IG51bGwsXHJcbiAgICBzZXJ2aWNlUHJlZml4OiBzdHJpbmcgPSBudWxsLFxyXG4gICAgcHJvZHVjdHM6IG51bWJlciA9IDApIHtcclxuXHJcbiAgICAvLyBDcmVhdGUgdW5pcXVlIGNsaWVudCBpZFxyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3VwcG9ydF9jbGllbnRfaWQnKSlcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1cHBvcnRfY2xpZW50X2lkJywgU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkpO1xyXG5cclxuICAgIC8vIEluaXRpYWxpemUgdXJpc1xyXG4gICAgaWYgKHNlcnZpY2VVcmkpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgPSBzZXJ2aWNlVXJpO1xyXG4gICAgdGhpcy5fc2VydmljZVByZWZpeCA9IHNlcnZpY2VQcmVmaXg7XHJcbiAgICBpZiAocHJvZHVjdHMpXHJcbiAgICAgIHRoaXMuX3Byb2R1Y3RzID0gcHJvZHVjdHM7XHJcblxyXG4gICAgLy8gUmVhY3QgdG8gbWVzc2FnZSBicm9hZGNhc3RpbmdcclxuICAgIGlmICghdGhpcy5tZXNzYWdlV2F0Y2hlcikge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VXYXRjaGVyID0gdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmdldE1lc3NhZ2UoKS5zdWJzY3JpYmUoKG1lc3NhZ2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTE9HSU5fQ0hBTkdFRCkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW4obWVzc2FnZS5kYXRhLmVtYWlsLCBtZXNzYWdlLmRhdGEub2F1dGgsIG1lc3NhZ2UuZGF0YS5vYXV0aEFjY2Vzc1Rva2VuKS5zdWJzY3JpYmUoKHI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY291bnRVbnJlYWROb3RpZmljYXRpb25zKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTE9HT1VUX0NPTVBMRVRFRCB8fFxyXG4gICAgICAgICAgbWVzc2FnZS5pZCA9PT0gU3VwcG9ydE1lc3NhZ2VzLkxPR0lOX0RJU0NPTk5FQ1RFRCkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nb3V0KCkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTk9USUZJQ0FUSU9OX1JFQUQpIHtcclxuICAgICAgICAgIHRoaXMuY291bnRVbnJlYWROb3RpZmljYXRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFdmVsdWF0ZSBjdXJyZW50IHNlc3Npb24gc3RvcmFnZSBpbiBjYXNlIG9mIHBhZ2UgcmVmcmVzaCAoRjUpXHJcbiAgICBpZiAoIXRoaXMubG9nZ2VkSW4gJiYgdGhpcy5nZXRUb2tlbigpKSB7XHJcbiAgICAgIC8vIEF1dG8gbG9naW5cclxuICAgICAgdGhpcy5sb2dnZWRJbiA9IHRydWU7XHJcblxyXG4gICAgICAvLyBTdGFydCByZWZyZXNoIHRpbWVyXHJcbiAgICAgIHRoaXMuZW5hYmxlVG9rZW5SZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogU2V0IEpXVCB0b2tlblxyXG4gKiBAcGFyYW0gdG9rZW4gOiBUaGUgdG9rZW4gIHRvIHN0b3JlXHJcbiAqL1xyXG4gIHByaXZhdGUgc2V0VG9rZW4odG9rZW46IHN0cmluZykge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3VwcG9ydF9qd3QnLCB0b2tlbik7XHJcbiAgICBpZiAodG9rZW4pIHtcclxuICAgICAgdGhpcy5lbmFibGVUb2tlblJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZSBKV1QgdG9rZW4gYXV0byByZWZyZXNoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbmFibGVUb2tlblJlZnJlc2goKSB7XHJcbiAgICBpZiAoIXRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy50b2tlblJlZnJlc2hUaW1lciA9XHJcbiAgICAgICAgdGltZXIodGhpcy5SRUZSRVNIX0lOVEVSVkFMLCB0aGlzLlJFRlJFU0hfSU5URVJWQUwpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5yZWZyZXNoaW5nIHx8ICF0aGlzLmxvZ2dlZEluKSByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMucmVmcmVzaGluZyA9IGZhbHNlOyB9LFxyXG4gICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB0aGlzLnJlZnJlc2hpbmcgPSBmYWxzZTsgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSkpO1xyXG4gICAgICB0aGlzLnRva2VuUmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uID0gdGhpcy50b2tlblJlZnJlc2hUaW1lci5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBjdXJyZW50IEpXVCB0b2tlblxyXG4gICAqIEByZXR1cm5zOiB0aGUgc3RyaW5nIEpXVCB0b2tlbiBvciBzdHJpbmcgZW1wdHkgaWYgbm9uZVxyXG4gICAqL1xyXG4gIGdldFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdzdXBwb3J0X2p3dCcpO1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIGlmICh0b2tlblswXSA9PT0gJ1wiJykgdG9rZW4gPSB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICAgIHJldHVybiB0b2tlbjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuKiBQZXJmb3JtIGxvZ2luICAgXHJcbiogQHBhcmFtIGVtYWlsOiB0aGUgZ3Vlc3QgZW1haWxcclxuKiBAcGFyYW0gb2F1dGg6IHRoZSBvcHRpb25hbCBvcGVuIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZFxyXG4qIEBwYXJhbSBvYXV0aEFjY2Vzc1Rva2VuOiB0aGUgb3B0aW9uYWwgb2F1dGgyIGFjY2VzcyB0b2tlblxyXG4qIEByZXR1cm5zOiB0aGUgbG9naW4gcmVzdWx0XHJcbiovXHJcbiAgbG9naW4oZW1haWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgb2F1dGg6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsLFxyXG4gICAgb2F1dGhBY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGwpIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIHRoaXMubG9nZ2luZ0luID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLnBvc3Q8QXBpUmVzdWx0PExvZ2luUmVzdWx0Pj4oXHJcbiAgICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvbG9naW4nLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVzZXI6IG9hdXRoID4gMCA/IG51bGwgOiBlbWFpbCxcclxuICAgICAgICAgIGNsaWVudElkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInN1cHBvcnRfY2xpZW50X2lkXCIpLFxyXG4gICAgICAgICAgT0FVVEg6IG9hdXRoXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOlxyXG4gICAgICAgICAgICAhb2F1dGhcclxuICAgICAgICAgICAgICA/IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgICAgOiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgb2F1dGhBY2Nlc3NUb2tlbilcclxuICAgICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIG1hcCgocjogQXBpUmVzdWx0PExvZ2luUmVzdWx0PikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2dnaW5nSW4gPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdE1vZHVsZXMgPSB0aGlzLnByb2R1Y3RNb2R1bGVzO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVMb2dpblJlc3VsdChyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIGxvZ2luIHJlc3VsdFxyXG4gICAqIEBwYXJhbSBsb2dpblJlc3VsdCA6IHRoZSBjdXJyZW50IGxvZ2luIHJlc3VsdFxyXG4gICAqIEByZXR1cm5zOiB0aGUgZmluYWwgbG9naW4gcmVzdWx0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2dpblJlc3VsdChcclxuICAgIGxvZ2luUmVzdWx0OiBBcGlSZXN1bHQ8TG9naW5SZXN1bHQ+XHJcbiAgKTogQXBpUmVzdWx0PExvZ2luUmVzdWx0PiB7XHJcbiAgICBpZiAobG9naW5SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAvLyBTdG9yZSBhY2Nlc3MgdG9rZW5cclxuICAgICAgdGhpcy5zZXRUb2tlbihsb2dpblJlc3VsdC52YWx1ZS50b2tlbik7XHJcblxyXG4gICAgICB0aGlzLl9sb2dpbkluZm8gPSBsb2dpblJlc3VsdC52YWx1ZS5jb250ZXh0O1xyXG4gICAgICB0aGlzLl9sb2dnZWRJbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbG9naW5SZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJmb3JtIGxvZ291dFxyXG4gICAqL1xyXG4gIGxvZ291dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dvdXQnLCB7fSkucGlwZShcclxuICAgICAgICBtYXAoKHI6IGFueSkgPT4geyByZXR1cm4gcjsgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoX2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgIHJldHVybiBvZihbXSk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IGxvZ2luIHJlZnJlc2ggdGltZXIgYW5kIGxvZ2lucyBzdGF0ZVxyXG4gICAqL1xyXG4gIHJlc2V0KCkge1xyXG4gICAgLy8gQ2xlYXIgc3Vic2NyaXB0aW9uc1xyXG4gICAgaWYgKHRoaXMudG9rZW5SZWZyZXNoVGltZXJTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy50b2tlblJlZnJlc2hUaW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnRva2VuUmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMudG9rZW5SZWZyZXNoVGltZXIgPSBudWxsO1xyXG5cclxuICAgIC8vIENsZWFyIGxvZ2luIGluZm9cclxuICAgIHRoaXMuX2xvZ2luSW5mbyA9IG51bGw7XHJcbiAgICB0aGlzLl9sb2dnZWRJbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgbG9naW4gZGF0YVxyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgLy8gUmVzZXQgbG9naW5cclxuICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgICAvLyBDbGVhciBsb2NhbCBzdG9yYWdlXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdzdXBwb3J0X2p3dCcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSB0b2tlbiByZWZyZXNoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3VsdDxMb2dpblJlc3VsdD4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9yZWZyZXNoJywge31cclxuICAgICkucGlwZShtYXAoKHI6IEFwaVJlc3VsdDxMb2dpblJlc3VsdD4pID0+IHtcclxuICAgICAgLy8gVXBkYXRlIHRva2VuXHJcbiAgICAgIHRoaXMuc2V0VG9rZW4oci52YWx1ZS50b2tlbik7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZSB0byBzdXBwb3J0IHNlcnZpY2VcclxuICAgKi9cclxuICBvcGVuKCkge1xyXG4gICAgbGV0IHVyaSA9IHRoaXMuc2VydmljZVVyaSA/PyAnJztcclxuICAgIGlmICh1cmkuZW5kc1dpdGgoJy9hcGknKSlcclxuICAgICAgdXJpID0gdXJpLnN1YnN0cmluZygwLCB1cmkubGVuZ3RoIC0gNClcclxuICAgIHdpbmRvdy5vcGVuKHVyaSk7XHJcbiAgfVxyXG5cclxuICAvLy8vXHJcbiAgLy8gTk9USUZJQ0FUSU9OU1xyXG4gIC8vLy9cclxuXHJcbiAgLyoqXHJcbiAgICogQ291bnQgdW5yZWFkIG5vdGlmaWNhdGlvbnNcclxuICAgKi9cclxuICBjb3VudFVucmVhZE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxhbnk+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvbm90aWZpY2F0aW9ucy9jb3VudC11bnJlYWQvP3Byb2R1Y3RzPScgKyAodGhpcy5wcm9kdWN0cyA/PyAwKSArIFwiJm1vZHVsZXM9XCIgKyAodGhpcy5wcm9kdWN0TW9kdWxlcyA/PyAwKVxyXG4gICAgKS5zdWJzY3JpYmUoKHI6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoci5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5fdW5yZWFkTm90aWZpY2F0aW9ucyA9IHIudmFsdWUgPiAwID8gci52YWx1ZSA6IG51bGxcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBRdWVyeSBub3RpZmljYXRpb25zXHJcbiAgICogQHBhcmFtIHBhcmFtczogcXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqL1xyXG4gIHF1ZXJ5Tm90aWZpY2F0aW9ucyhwYXJhbXM6IFN1cHBvcnROb3RpZmljYXRpb25zU2VhcmNoUGFyYW1zKSB7XHJcbiAgICBwYXJhbXMucHJvZHVjdHMgPSB0aGlzLnByb2R1Y3RzID8/IDA7XHJcbiAgICBwYXJhbXMucHJvZHVjdE1vZHVsZXMgPSB0aGlzLnByb2R1Y3RNb2R1bGVzID8/IDA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PGFueT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9ub3RpZmljYXRpb25zJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBub3RpZmljYXRpb25cclxuICAgKiBAcGFyYW0gaWQ6IHRoZSBub3RpZmljYXRpb24gaWRcclxuICAgKi9cclxuICBnZXROb3RpZmljYXRpb24oaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PGFueT4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICtcclxuICAgICAgJy9ub3RpZmljYXRpb25zLycgK1xyXG4gICAgICBpZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcmsgYSBncm91cCBvZiBub3RpZmljYXRpb25zIGFzIHJlYWRcclxuICAgKiBAcGFyYW0gaWRzOiB0aGUgYXJyYXkgb2Ygbm90aWZpY2F0aW9uJ3MgaWRzIHRvIHNldCBhcyByZWFkXHJcbiAgICovXHJcbiAgbWFya05vdGlmaWNhdGlvbnMocGFyYW1zOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXN1bHQ8YW55Pj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL25vdGlmaWNhdGlvbnMvbWFyaycsXHJcbiAgICAgIHBhcmFtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBEb3dubG9hZCBhIG5vdGlmaWNhdGlvbiBkb2N1bWVudFxyXG4gKiBAcGFyYW0gZG9jdW1lbnRJZCA6IHRoZSBub3RpZmljYXRpb24gZG9jdW1lbnQgaWRcclxuICovXHJcbiAgZG93bG9hZE5vdGlmaWNhdGlvbkRvY3VtZW50KGRvY3VtZW50SWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL2RvY3VtZW50cy9kb3dubG9hZC8nICsgZG9jdW1lbnRJZCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -18,4 +18,4 @@ export var SupportProductModule;
|
|
|
18
18
|
SupportProductModule[SupportProductModule["DgiIMDG"] = 512] = "DgiIMDG";
|
|
19
19
|
SupportProductModule[SupportProductModule["DgiCLP"] = 1024] = "DgiCLP";
|
|
20
20
|
})(SupportProductModule || (SupportProductModule = {}));
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbi9jb21tb24vc3VwcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLHlEQUFXLENBQUE7SUFDWCw2REFBa0IsQ0FBQTtJQUNsQix1REFBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQVlYO0FBWkQsV0FBWSxvQkFBb0I7SUFDOUIsaUZBQWlCLENBQUE7SUFDakIsbUVBQWUsQ0FBQTtJQUNmLHVHQUFpQyxDQUFBO0lBQ2pDLHFHQUFnQyxDQUFBO0lBQ2hDLHdHQUFpQyxDQUFBO0lBQ2pDLHNGQUF3QixDQUFBO0lBQ3hCLGtGQUFzQixDQUFBO0lBQ3RCLHFFQUFlLENBQUE7SUFDZixxRUFBZSxDQUFBO0lBQ2YsdUVBQWdCLENBQUE7SUFDaEIsc0VBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQVpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFZL0IiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0Tm90aWZpY2F0aW9uc1NlYXJjaFBhcmFtcyB7XHJcbiAgYW55Pzogc3RyaW5nIHwgbnVsbDtcclxuICBwcm9kdWN0cz86IG51bWJlciB8IG51bGw7XHJcbiAgcHJvZHVjdE1vZHVsZXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIGZpcnN0PzogbnVtYmVyIHwgbnVsbDtcclxuICBjb3VudD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydE5vdGlmaWNhdGlvbnNJbmZvIHtcclxuICB1bnJlYWQ/OiBudW1iZXIgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdXBwb3J0UHJvZHVjdCB7XHJcbiAgQ2xpcHBlciA9IDEsXHJcbiAgRXZvbHV0aW9uID0gMSA8PCAxLFxyXG4gIERHSW5mbyA9IDEgPDwgMlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdXBwb3J0UHJvZHVjdE1vZHVsZSB7XHJcbiAgRXZvRm9ybWF6aW9uZSA9IDEsXHJcbiAgRXZvRFBJID0gMSA8PCAxLFxyXG4gIEV2b1NvcnZlZ2xpYW56YVNhbml0YXJpYSA9IDEgPDwgMixcclxuICBFdm9SZWdpc3Ryb0VTY2FkZW56YXJpbyA9IDEgPDwgMyxcclxuICBFdm9BdHRyZXp6YXR1cmVFSW1waWFudGkgPSAxIDw8IDQsXHJcbiAgRXZvTW9uaXRvcmFnZ2lvID0gMSA8PCA1LFxyXG4gIEV2b0JvbGxldHRpbm8gPSAxIDw8IDYsXHJcbiAgRGdpQURSID0gMSA8PCA3LFxyXG4gIERnaVJJRCA9IDEgPDwgOCxcclxuICBEZ2lJTURHID0gMSA8PCA5LFxyXG4gIERnaUNMUCA9IDEgPDwgMTAsXHJcbn1cclxuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, signal } from '@angular/core';
|
|
2
2
|
import { MAT_DIALOG_DATA, MatDialogTitle, MatDialogClose, MatDialogContent, MatDialogActions } from '@angular/material/dialog';
|
|
3
|
-
import { SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
4
|
-
import { SupportMessages } from '@arsedizioni/ars-utils/support.common';
|
|
3
|
+
import { BroadcastService, ScreenService, SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
4
|
+
import { SupportMessages, SupportService } from '@arsedizioni/ars-utils/support.common';
|
|
5
|
+
import { DialogService } from '@arsedizioni/ars-utils/ui';
|
|
5
6
|
import { saveAs } from 'file-saver';
|
|
6
7
|
import { SafeHtmlPipe } from '@arsedizioni/ars-utils/core';
|
|
7
8
|
import { MatMenuModule } from '@angular/material/menu';
|
|
@@ -10,27 +11,27 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
10
11
|
import { MatButtonModule } from '@angular/material/button';
|
|
11
12
|
import { FlexModule } from '@ngbracket/ngx-layout/flex';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@
|
|
14
|
-
import * as i2 from "@
|
|
15
|
-
import * as i3 from "@
|
|
16
|
-
import * as i4 from "@
|
|
17
|
-
import * as i5 from "@angular/material/
|
|
18
|
-
import * as i6 from "@angular/material/tooltip";
|
|
19
|
-
import * as i7 from "@angular/material/icon";
|
|
20
|
-
import * as i8 from "@angular/material/menu";
|
|
14
|
+
import * as i1 from "@ngbracket/ngx-layout/flex";
|
|
15
|
+
import * as i2 from "@angular/material/button";
|
|
16
|
+
import * as i3 from "@angular/material/tooltip";
|
|
17
|
+
import * as i4 from "@angular/material/icon";
|
|
18
|
+
import * as i5 from "@angular/material/menu";
|
|
21
19
|
export class SupportNotificationComponent {
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
this
|
|
27
|
-
this
|
|
28
|
-
this
|
|
29
|
-
this
|
|
20
|
+
constructor() {
|
|
21
|
+
this.screenService = inject(ScreenService);
|
|
22
|
+
this.supportService = inject(SupportService);
|
|
23
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
24
|
+
this.broadcastService = inject(BroadcastService);
|
|
25
|
+
this.dialogService = inject(DialogService);
|
|
26
|
+
this.dialogData = inject(MAT_DIALOG_DATA);
|
|
27
|
+
this.height = signal(null);
|
|
30
28
|
this.id = -1;
|
|
31
|
-
this.
|
|
29
|
+
this.item = null;
|
|
32
30
|
}
|
|
33
31
|
ngOnInit() {
|
|
32
|
+
if (this.dialogData) {
|
|
33
|
+
this.id = this.dialogData.id;
|
|
34
|
+
}
|
|
34
35
|
this.fetch();
|
|
35
36
|
}
|
|
36
37
|
ngAfterViewInit() {
|
|
@@ -40,41 +41,40 @@ export class SupportNotificationComponent {
|
|
|
40
41
|
* Resize dialog
|
|
41
42
|
*/
|
|
42
43
|
resize() {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.height = h;
|
|
50
|
-
this.resize();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
44
|
+
let elem = document.getElementById('notification-scrollable');
|
|
45
|
+
if (elem) {
|
|
46
|
+
const h = this.dialogService.getCurrentDialogScrollableHeight(['support-notification-fixed'], window.innerHeight);
|
|
47
|
+
if (h != this.height()) {
|
|
48
|
+
elem.setAttribute('style', 'height:' + h + 'px !important;max-height:' + h + 'px !important');
|
|
49
|
+
this.height.set(h);
|
|
54
50
|
this.resize();
|
|
55
51
|
}
|
|
56
|
-
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.resize();
|
|
55
|
+
}
|
|
57
56
|
}
|
|
58
57
|
/**
|
|
59
58
|
* Retrieve data
|
|
60
59
|
*/
|
|
61
60
|
fetch() {
|
|
62
|
-
if (!this
|
|
61
|
+
if (!this.supportService.loggedIn)
|
|
63
62
|
return;
|
|
64
|
-
this
|
|
65
|
-
this
|
|
63
|
+
this.dialogService.busy('Caricamento in corso...');
|
|
64
|
+
this.supportService.getNotification(this.id)
|
|
66
65
|
.subscribe({
|
|
67
66
|
next: (r) => {
|
|
68
67
|
if (!r.success) {
|
|
69
|
-
this
|
|
68
|
+
this.dialogService.error(r.message);
|
|
70
69
|
}
|
|
71
70
|
else {
|
|
72
71
|
this.item = r.value;
|
|
73
|
-
this
|
|
72
|
+
this.broadcastService.sendMessage(SupportMessages.NOTIFICATION_READ, this.item.id);
|
|
73
|
+
this.changeDetector.markForCheck();
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
complete: () => {
|
|
77
|
-
this
|
|
77
|
+
this.dialogService.clearBusy();
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
}
|
|
@@ -83,10 +83,10 @@ export class SupportNotificationComponent {
|
|
|
83
83
|
* @param item : the document item
|
|
84
84
|
*/
|
|
85
85
|
downloadDocument(item) {
|
|
86
|
-
if (!this
|
|
86
|
+
if (!this.supportService.loggedIn)
|
|
87
87
|
return;
|
|
88
88
|
if (item.isBinary) {
|
|
89
|
-
this
|
|
89
|
+
this.supportService.dowloadNotificationDocument(item.id).subscribe({
|
|
90
90
|
next: (r) => {
|
|
91
91
|
saveAs(r);
|
|
92
92
|
},
|
|
@@ -95,17 +95,12 @@ export class SupportNotificationComponent {
|
|
|
95
95
|
else
|
|
96
96
|
window.open(item.url, '_blank');
|
|
97
97
|
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportNotificationComponent, deps: [
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: SupportNotificationComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() }
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: SupportNotificationComponent, isStandalone: true, selector: "ng-component", host: { attributes: { "Bind": SystemUtils.generateUUID() } }, ngImport: i0, template: "<div class=\"support-notification-fixed\">\r\n <div class=\"support-notification-header\">\r\n <div fxLayout=\"row\" fxFill fxLayoutGap=\"10px\">\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">\r\n <h2 mat-dialog-title>{{item?.title}}</h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\" matTooltip=\"Chiudi\"\r\n aria-label=\"Chiudi\" [mat-dialog-close]=\"true\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div mat-dialog-content id=\"notification-scrollable\">\r\n <div id=\"notification-scroller\">\r\n <div [innerHtml]=\"(item?.text ?? 'Caricamento in corso...') | safeHtml\"></div>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions class=\"notification-fixed\">\r\n <div style=\"padding: 10px 0\">\r\n @if (item?.documents && item?.documents.length > 0) {\r\n <button type=\"button\" mat-button [attr.aria-label]=\"'Documenti scaricabili'\" [matMenuTriggerFor]=\"documentsMenu\"\r\n color=\"primary\">\r\n {{item?.documents.length}} @if (item?.documents.length === 1) {\r\n <span>Documento scaricabile</span>\r\n }\r\n @if (item?.documents.length !== 1) {\r\n <span>Documenti scaricabili</span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #documentsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n @for (doc of item?.documents; track doc) {\r\n <button mat-menu-item (click)=\"downloadDocument(doc)\">\r\n @if (doc.isBinary) {\r\n <mat-icon>attach_file</mat-icon>\r\n }\r\n @if (!doc.isBinary) {\r\n <mat-icon>link</mat-icon>\r\n }\r\n {{doc.name}}\r\n </button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i1.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SupportNotificationComponent, decorators: [{
|
|
102
102
|
type: Component,
|
|
103
|
-
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, imports: [FlexModule, MatDialogTitle, MatButtonModule, MatTooltipModule, MatDialogClose, MatIconModule, MatDialogContent,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
args: [MAT_DIALOG_DATA]
|
|
107
|
-
}] }], propDecorators: { onResize: [{
|
|
108
|
-
type: HostListener,
|
|
109
|
-
args: ['window:resize', ['$event']]
|
|
110
|
-
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvSCxPQUFPLEVBQW1DLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sdUNBQXVDLENBQUM7QUFJeEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0FBU3hELE1BQU0sT0FBTyw0QkFB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QUMsQ0FBTSxFQUFFLEVBQUU7b0JBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDOztZQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDOzhHQXpGVSw0QkFBNEIsMElBa0I3QixlQUFlO2tHQWxCZCw0QkFBNEIsOEVBTnJCLFdBQVcsQ0FBQyxZQUFZLEVBQUUsa0ZDdEI5QywwNkRBa0RNLHlERHhCUSxVQUFVLGdpR0FBRSxjQUFjLDhIQUFFLGVBQWUsd1VBQUUsZ0JBQWdCLDZUQUFFLGNBQWMsb0xBQUUsYUFBYSxvTEFBRSxnQkFBZ0IseUdBQUUsZ0JBQWdCLDJIQUFHLGFBQWEsazFCQUFHLFlBQVk7OzJGQUVoSyw0QkFBNEI7a0JBUHhDLFNBQVM7MkJBQ0EsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLGNBR2hDLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUcsYUFBYSxFQUFHLFlBQVksQ0FBQzs7MEJBb0J6SyxNQUFNOzJCQUFDLGVBQWU7eUNBWnpCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dBY3Rpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQnJvYWRjYXN0U2VydmljZSwgU2NyZWVuU2VydmljZSwgU3lzdGVtVXRpbHMgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBTdXBwb3J0TWVzc2FnZXMsIFN1cHBvcnRTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgRGlhbG9nU2VydmljZVxyXG59IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9mbGV4JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgaG9zdDogeyAnQmluZCc6IFN5c3RlbVV0aWxzLmdlbmVyYXRlVVVJRCgpIH0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtGbGV4TW9kdWxlLCBNYXREaWFsb2dUaXRsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXREaWFsb2dDbG9zZSwgTWF0SWNvbk1vZHVsZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucywgIE1hdE1lbnVNb2R1bGUsICBTYWZlSHRtbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXBwb3J0Tm90aWZpY2F0aW9uQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIHByaXZhdGUgaGVpZ2h0OiBudW1iZXI7XHJcbiAgXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgaWQ6IG51bWJlciA9IC0xO1xyXG4gIGl0ZW06IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgJHNjcmVlbjogU2NyZWVuU2VydmljZSxcclxuICAgIHByaXZhdGUgJGJyb2FkY2FzdDogQnJvYWRjYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgJHN1cHBvcnQ6IFN1cHBvcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSAkZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIF9kYXRhOiBhbnlcclxuICApIHtcclxuICAgIHRoaXMuaWQgPSBfZGF0YS5pZDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6dm9pZCAge1xyXG4gICAgdGhpcy5mZXRjaCgpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7ICAgIFxyXG4gICAgdGhpcy5yZXNpemUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2l6ZSBkaWFsb2dcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2l6ZSgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsZXQgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdub3RpZmljYXRpb24tc2Nyb2xsYWJsZScpO1xyXG4gICAgICBpZiAoZWxlbSkge1xyXG4gICAgICAgIGNvbnN0IGggPSB0aGlzLiRkaWFsb2cuZ2V0Q3VycmVudERpYWxvZ1Njcm9sbGFibGVIZWlnaHQoXHJcbiAgICAgICAgICBbJ3N1cHBvcnQtbm90aWZpY2F0aW9uLWZpeGVkJ10sXHJcbiAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChoICE9IHRoaXMuaGVpZ2h0KSB7ICAgICAgIFxyXG4gICAgICAgICAgZWxlbS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2hlaWdodDonICsgaCArICdweCAhaW1wb3J0YW50O21heC1oZWlnaHQ6JyArIGggKyAncHggIWltcG9ydGFudCcpO1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSBoO1xyXG4gICAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBkYXRhXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmZXRjaCgpIHtcclxuICAgIGlmICghdGhpcy4kc3VwcG9ydC5sb2dnZWRJbikgcmV0dXJuO1xyXG4gICAgdGhpcy4kZGlhbG9nLmJ1c3koJ0NhcmljYW1lbnRvIGluIGNvcnNvLi4uJyk7XHJcbiAgICB0aGlzLiRzdXBwb3J0LmdldE5vdGlmaWNhdGlvbih0aGlzLmlkKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocikgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy4kZGlhbG9nLmVycm9yKHIubWVzc2FnZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW0gPSByLnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLiRicm9hZGNhc3Quc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLk5PVElGSUNBVElPTl9SRUFELCB0aGlzLml0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuJGRpYWxvZy5jbGVhckJ1c3koKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgYSBub3RpZmljYXRpb24gZG9jdW1lbnQgb3IgbmF2aWdhdGUgdG8gdGhlIHVybFxyXG4gICAqIEBwYXJhbSBpdGVtIDogdGhlIGRvY3VtZW50IGl0ZW1cclxuICAgKi9cclxuICBkb3dubG9hZERvY3VtZW50KGl0ZW06IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLiRzdXBwb3J0LmxvZ2dlZEluKSByZXR1cm47XHJcbiAgICBpZiAoaXRlbS5pc0JpbmFyeSkge1xyXG4gICAgICB0aGlzLiRzdXBwb3J0LmRvd2xvYWROb3RpZmljYXRpb25Eb2N1bWVudChpdGVtLmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHNhdmVBcyhyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBcclxuICAgICAgd2luZG93Lm9wZW4oaXRlbS51cmwsICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdXBwb3J0LW5vdGlmaWNhdGlvbi1maXhlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdXBwb3J0LW5vdGlmaWNhdGlvbi1oZWFkZXJcIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeEZpbGwgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3tpdGVtPy50aXRsZX19PC9oMj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJDaGl1ZGlcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNoaXVkaVwiIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxhYmxlXCI+XHJcbiAgPGRpdiBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxlclwiPlxyXG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cIihpdGVtPy50ZXh0ID8/ICdDYXJpY2FtZW50byBpbiBjb3Jzby4uLicpIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwibm90aWZpY2F0aW9uLWZpeGVkXCI+XHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDEwcHggMFwiPlxyXG4gICAgQGlmIChpdGVtPy5kb2N1bWVudHMgJiYgaXRlbT8uZG9jdW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCInRG9jdW1lbnRpIHNjYXJpY2FiaWxpJ1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJkb2N1bWVudHNNZW51XCJcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgIHt7aXRlbT8uZG9jdW1lbnRzLmxlbmd0aH19IEBpZiAoaXRlbT8uZG9jdW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICA8c3Bhbj5Eb2N1bWVudG8gc2NhcmljYWJpbGU8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChpdGVtPy5kb2N1bWVudHMubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgIDxzcGFuPkRvY3VtZW50aSBzY2FyaWNhYmlsaTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLW1lbnUtZHJvcC1kb3duXCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgPG1hdC1tZW51ICNkb2N1bWVudHNNZW51PVwibWF0TWVudVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQ+XHJcbiAgICAgICAgQGZvciAoZG9jIG9mIGl0ZW0/LmRvY3VtZW50czsgdHJhY2sgZG9jKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZERvY3VtZW50KGRvYylcIj5cclxuICAgICAgICAgIEBpZiAoZG9jLmlzQmluYXJ5KSB7XHJcbiAgICAgICAgICA8bWF0LWljb24+YXR0YWNoX2ZpbGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmICghZG9jLmlzQmluYXJ5KSB7XHJcbiAgICAgICAgICA8bWF0LWljb24+bGluazwvbWF0LWljb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB7e2RvYy5uYW1lfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21hdC1tZW51PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
103
|
+
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FlexModule, MatDialogTitle, MatButtonModule, MatTooltipModule, MatDialogClose, MatIconModule, MatDialogContent,
|
|
104
|
+
MatDialogActions, MatMenuModule, SafeHtmlPipe], template: "<div class=\"support-notification-fixed\">\r\n <div class=\"support-notification-header\">\r\n <div fxLayout=\"row\" fxFill fxLayoutGap=\"10px\">\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\">\r\n <h2 mat-dialog-title>{{item?.title}}</h2>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\" matTooltip=\"Chiudi\"\r\n aria-label=\"Chiudi\" [mat-dialog-close]=\"true\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div mat-dialog-content id=\"notification-scrollable\">\r\n <div id=\"notification-scroller\">\r\n <div [innerHtml]=\"(item?.text ?? 'Caricamento in corso...') | safeHtml\"></div>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions class=\"notification-fixed\">\r\n <div style=\"padding: 10px 0\">\r\n @if (item?.documents && item?.documents.length > 0) {\r\n <button type=\"button\" mat-button [attr.aria-label]=\"'Documenti scaricabili'\" [matMenuTriggerFor]=\"documentsMenu\"\r\n color=\"primary\">\r\n {{item?.documents.length}} @if (item?.documents.length === 1) {\r\n <span>Documento scaricabile</span>\r\n }\r\n @if (item?.documents.length !== 1) {\r\n <span>Documenti scaricabili</span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #documentsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n @for (doc of item?.documents; track doc) {\r\n <button mat-menu-item (click)=\"downloadDocument(doc)\">\r\n @if (doc.isBinary) {\r\n <mat-icon>attach_file</mat-icon>\r\n }\r\n @if (!doc.isBinary) {\r\n <mat-icon>link</mat-icon>\r\n }\r\n {{doc.name}}\r\n </button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n </div>\r\n</div>" }]
|
|
105
|
+
}] });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LnVpL3VpL25vdGlmaWNhdGlvbnMtYnJvd3Nlci9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQ0wsYUFBYSxFQUNkLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBZ0J4RCxNQUFNLE9BQU8sNEJBQTRCO0lBVHpDO1FBWVksa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxXQUFNLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUVuQyxPQUFFLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDaEIsU0FBSSxHQUFlLElBQUksQ0FBQztLQXdFbkM7SUF0RUMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU07UUFDWixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDOUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0NBQWdDLENBQzNELENBQUMsNEJBQTRCLENBQUMsRUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FDbkIsQ0FBQztZQUNGLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLEdBQUcsQ0FBQyxHQUFHLDJCQUEyQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztnQkFDOUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFHRDs7T0FFRztJQUNLLEtBQUs7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7YUFDekMsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25GLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sZ0JBQWdCLENBQUMsSUFBUztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pFLElBQUksRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO29CQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzs7WUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0FsRlUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsOEVBUnZCLFdBQVcsQ0FBQyxZQUFZLEVBQUUsOEJDNUI1QywwNkRBa0RNLHlERGpCTSxVQUFVLGdpR0FBRSxjQUFjLDhIQUFFLGVBQWUsd1VBQUUsZ0JBQWdCLDZUQUFFLGNBQWMsb0xBQUUsYUFBYSxvTEFBRSxnQkFBZ0IseUdBQ3RILGdCQUFnQiwySEFBRSxhQUFhLGsxQkFBRSxZQUFZOzsyRkFFcEMsNEJBQTRCO2tCQVR4QyxTQUFTOzJCQUNGLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxjQUdoQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQjt3QkFDdEgsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIE9uSW5pdCxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dBY3Rpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQnJvYWRjYXN0U2VydmljZSwgU2NyZWVuU2VydmljZSwgU3lzdGVtVXRpbHMgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBTdXBwb3J0TWVzc2FnZXMsIFN1cHBvcnRTZXJ2aWNlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgRGlhbG9nU2VydmljZVxyXG59IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9mbGV4JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydE5vdGlmaWNhdGlvbkRhdGEge1xyXG4gIGlkPzogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW0ZsZXhNb2R1bGUsIE1hdERpYWxvZ1RpdGxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdERpYWxvZ0Nsb3NlLCBNYXRJY29uTW9kdWxlLCBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0RGlhbG9nQWN0aW9ucywgTWF0TWVudU1vZHVsZSwgU2FmZUh0bWxQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VwcG9ydE5vdGlmaWNhdGlvbkNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgcHJvdGVjdGVkIHNjcmVlblNlcnZpY2UgPSBpbmplY3QoU2NyZWVuU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBzdXBwb3J0U2VydmljZSA9IGluamVjdChTdXBwb3J0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBicm9hZGNhc3RTZXJ2aWNlID0gaW5qZWN0KEJyb2FkY2FzdFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgZGlhbG9nU2VydmljZSA9IGluamVjdChEaWFsb2dTZXJ2aWNlKTtcclxuICBwcml2YXRlIGRpYWxvZ0RhdGE6IFN1cHBvcnROb3RpZmljYXRpb25EYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7XHJcbiAgcHJpdmF0ZSBoZWlnaHQgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHByb3RlY3RlZCBpZDogbnVtYmVyID0gLTE7XHJcbiAgcHJvdGVjdGVkIGl0ZW06IGFueSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEpIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMuZGlhbG9nRGF0YS5pZDtcclxuICAgIH1cclxuICAgIHRoaXMuZmV0Y2goKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNpemUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2l6ZSBkaWFsb2dcclxuICAgKi9cclxuICBwcml2YXRlIHJlc2l6ZSgpIHtcclxuICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vdGlmaWNhdGlvbi1zY3JvbGxhYmxlJyk7XHJcbiAgICBpZiAoZWxlbSkge1xyXG4gICAgICBjb25zdCBoID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldEN1cnJlbnREaWFsb2dTY3JvbGxhYmxlSGVpZ2h0KFxyXG4gICAgICAgIFsnc3VwcG9ydC1ub3RpZmljYXRpb24tZml4ZWQnXSxcclxuICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGggIT0gdGhpcy5oZWlnaHQoKSkge1xyXG4gICAgICAgIGVsZW0uc2V0QXR0cmlidXRlKCdzdHlsZScsICdoZWlnaHQ6JyArIGggKyAncHggIWltcG9ydGFudDttYXgtaGVpZ2h0OicgKyBoICsgJ3B4ICFpbXBvcnRhbnQnKTtcclxuICAgICAgICB0aGlzLmhlaWdodC5zZXQoaCk7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBkYXRhXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmZXRjaCgpIHtcclxuICAgIGlmICghdGhpcy5zdXBwb3J0U2VydmljZS5sb2dnZWRJbikgcmV0dXJuO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmJ1c3koJ0NhcmljYW1lbnRvIGluIGNvcnNvLi4uJyk7XHJcbiAgICB0aGlzLnN1cHBvcnRTZXJ2aWNlLmdldE5vdGlmaWNhdGlvbih0aGlzLmlkKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocikgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVycm9yKHIubWVzc2FnZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW0gPSByLnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLk5PVElGSUNBVElPTl9SRUFELCB0aGlzLml0ZW0uaWQpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jbGVhckJ1c3koKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgYSBub3RpZmljYXRpb24gZG9jdW1lbnQgb3IgbmF2aWdhdGUgdG8gdGhlIHVybFxyXG4gICAqIEBwYXJhbSBpdGVtIDogdGhlIGRvY3VtZW50IGl0ZW1cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG93bmxvYWREb2N1bWVudChpdGVtOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5zdXBwb3J0U2VydmljZS5sb2dnZWRJbikgcmV0dXJuO1xyXG4gICAgaWYgKGl0ZW0uaXNCaW5hcnkpIHtcclxuICAgICAgdGhpcy5zdXBwb3J0U2VydmljZS5kb3dsb2FkTm90aWZpY2F0aW9uRG9jdW1lbnQoaXRlbS5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocjogYW55KSA9PiB7XHJcbiAgICAgICAgICBzYXZlQXMocik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2VcclxuICAgICAgd2luZG93Lm9wZW4oaXRlbS51cmwsICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdXBwb3J0LW5vdGlmaWNhdGlvbi1maXhlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdXBwb3J0LW5vdGlmaWNhdGlvbi1oZWFkZXJcIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeEZpbGwgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3tpdGVtPy50aXRsZX19PC9oMj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJDaGl1ZGlcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNoaXVkaVwiIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxhYmxlXCI+XHJcbiAgPGRpdiBpZD1cIm5vdGlmaWNhdGlvbi1zY3JvbGxlclwiPlxyXG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cIihpdGVtPy50ZXh0ID8/ICdDYXJpY2FtZW50byBpbiBjb3Jzby4uLicpIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwibm90aWZpY2F0aW9uLWZpeGVkXCI+XHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDEwcHggMFwiPlxyXG4gICAgQGlmIChpdGVtPy5kb2N1bWVudHMgJiYgaXRlbT8uZG9jdW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gW2F0dHIuYXJpYS1sYWJlbF09XCInRG9jdW1lbnRpIHNjYXJpY2FiaWxpJ1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJkb2N1bWVudHNNZW51XCJcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgIHt7aXRlbT8uZG9jdW1lbnRzLmxlbmd0aH19IEBpZiAoaXRlbT8uZG9jdW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICA8c3Bhbj5Eb2N1bWVudG8gc2NhcmljYWJpbGU8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChpdGVtPy5kb2N1bWVudHMubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgIDxzcGFuPkRvY3VtZW50aSBzY2FyaWNhYmlsaTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLW1lbnUtZHJvcC1kb3duXCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgPG1hdC1tZW51ICNkb2N1bWVudHNNZW51PVwibWF0TWVudVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQ+XHJcbiAgICAgICAgQGZvciAoZG9jIG9mIGl0ZW0/LmRvY3VtZW50czsgdHJhY2sgZG9jKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZERvY3VtZW50KGRvYylcIj5cclxuICAgICAgICAgIEBpZiAoZG9jLmlzQmluYXJ5KSB7XHJcbiAgICAgICAgICA8bWF0LWljb24+YXR0YWNoX2ZpbGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGlmICghZG9jLmlzQmluYXJ5KSB7XHJcbiAgICAgICAgICA8bWF0LWljb24+bGluazwvbWF0LWljb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB7e2RvYy5uYW1lfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21hdC1tZW51PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|