@arsedizioni/ars-utils 18.5.62 → 19.0.1
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/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +10 -10
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +41 -41
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.mjs +99 -99
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +10 -10
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-help.mjs +13 -13
- package/fesm2022/arsedizioni-ars-utils-help.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +10 -10
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +6 -6
- package/fesm2022/arsedizioni-ars-utils-support.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +7 -7
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +58 -58
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +34 -34
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +7 -7
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
- package/package.json +9 -33
- package/clipper.ui/ui/clipper.scss +0 -530
- package/esm2022/arsedizioni-ars-utils.mjs +0 -5
- package/esm2022/clipper.common/arsedizioni-ars-utils-clipper.common.mjs +0 -5
- package/esm2022/clipper.common/common/common.module.mjs +0 -16
- package/esm2022/clipper.common/common/definitions.mjs +0 -2041
- package/esm2022/clipper.common/common/interceptors/auth.interceptor.mjs +0 -100
- package/esm2022/clipper.common/common/messages.mjs +0 -36
- package/esm2022/clipper.common/common/services/clipper.service.mjs +0 -1011
- package/esm2022/clipper.common/public_api.mjs +0 -5
- package/esm2022/clipper.ui/arsedizioni-ars-utils-clipper.ui.mjs +0 -5
- package/esm2022/clipper.ui/documents.mjs +0 -50
- package/esm2022/clipper.ui/public_api.mjs +0 -18
- package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +0 -766
- package/esm2022/clipper.ui/ui/document/document.component.mjs +0 -688
- package/esm2022/clipper.ui/ui/document-index/document-index.component.mjs +0 -118
- package/esm2022/clipper.ui/ui/document-manager/document-manager.mjs +0 -441
- package/esm2022/clipper.ui/ui/document-menu/document-menu.component.mjs +0 -217
- package/esm2022/clipper.ui/ui/references/references.component.mjs +0 -380
- package/esm2022/clipper.ui/ui/search-calendar/search-calendar.component.mjs +0 -116
- package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +0 -339
- package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +0 -251
- package/esm2022/clipper.ui/ui/search-free-text-help/search-free-text-help.component.mjs +0 -17
- package/esm2022/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.mjs +0 -106
- package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +0 -120
- package/esm2022/clipper.ui/ui/search-result-manager/search-result-manager.mjs +0 -531
- package/esm2022/core/arsedizioni-ars-utils-core.mjs +0 -5
- package/esm2022/core/core.module.mjs +0 -151
- package/esm2022/core/dateFnsAdapter.mjs +0 -203
- package/esm2022/core/definitions.mjs +0 -47
- package/esm2022/core/directives/autoFocusDirective.mjs +0 -22
- package/esm2022/core/directives/changeDateIntervalDirective.mjs +0 -48
- package/esm2022/core/directives/copyClipboardDirective.mjs +0 -46
- package/esm2022/core/directives/validators.mjs +0 -502
- package/esm2022/core/pipes/format.pipe.mjs +0 -53
- package/esm2022/core/pipes/replace.pipe.mjs +0 -29
- package/esm2022/core/pipes/safe-html.pipe.mjs +0 -24
- package/esm2022/core/pipes/safe-url.pipe.mjs +0 -24
- package/esm2022/core/pipes/search-callback.pipe.mjs +0 -21
- package/esm2022/core/pipes/search-filter.pipe.mjs +0 -50
- package/esm2022/core/public_api.mjs +0 -22
- package/esm2022/core/selectable.mjs +0 -131
- package/esm2022/core/services/broadcast.service.mjs +0 -35
- package/esm2022/core/services/broadcastChannelManager.mjs +0 -80
- package/esm2022/core/services/environment.service.mjs +0 -29
- package/esm2022/core/services/screen.service.mjs +0 -23
- package/esm2022/core/services/theme.service.mjs +0 -140
- package/esm2022/core/system.mjs +0 -664
- package/esm2022/evolution.common/arsedizioni-ars-utils-evolution.common.mjs +0 -5
- package/esm2022/evolution.common/common/common.module.mjs +0 -16
- package/esm2022/evolution.common/common/definitions.mjs +0 -454
- package/esm2022/evolution.common/common/interceptors/auth.interceptor.mjs +0 -100
- package/esm2022/evolution.common/common/messages.mjs +0 -8
- package/esm2022/evolution.common/common/services/evolution.service.mjs +0 -490
- package/esm2022/evolution.common/public_api.mjs +0 -5
- package/esm2022/help/arsedizioni-ars-utils-help.mjs +0 -5
- package/esm2022/help/components/help-viewer/help-viewer.component.mjs +0 -442
- package/esm2022/help/definitions.mjs +0 -2
- package/esm2022/help/help.module.mjs +0 -12
- package/esm2022/help/public_api.mjs +0 -7
- package/esm2022/help/services/help.service.mjs +0 -77
- package/esm2022/public_api.mjs +0 -15
- package/esm2022/support.common/arsedizioni-ars-utils-support.common.mjs +0 -5
- package/esm2022/support.common/common/common.module.mjs +0 -16
- package/esm2022/support.common/common/definitions.mjs +0 -29
- package/esm2022/support.common/common/interceptors/auth.interceptor.mjs +0 -100
- package/esm2022/support.common/common/messages.mjs +0 -13
- package/esm2022/support.common/common/services/support.service.mjs +0 -289
- package/esm2022/support.common/public_api.mjs +0 -8
- package/esm2022/support.ui/arsedizioni-ars-utils-support.ui.mjs +0 -5
- package/esm2022/support.ui/public_api.mjs +0 -5
- package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +0 -80
- package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +0 -233
- package/esm2022/tinymce/arsedizioni-ars-utils-tinymce.mjs +0 -5
- package/esm2022/tinymce/full-screen-editor/full-screen-editor.component.mjs +0 -48
- package/esm2022/tinymce/public_api.mjs +0 -7
- package/esm2022/tinymce/tinymce.module.mjs +0 -19
- package/esm2022/tinymce/utils.mjs +0 -150
- package/esm2022/ui/arsedizioni-ars-utils-ui.mjs +0 -5
- package/esm2022/ui/public_api.mjs +0 -12
- package/esm2022/ui/ui/components/button-selector/button-selector.component.mjs +0 -150
- package/esm2022/ui/ui/components/button-toggle/button-toggle.component.mjs +0 -51
- package/esm2022/ui/ui/components/calendar-empty-header/calendar-empy-header.component.mjs +0 -30
- package/esm2022/ui/ui/components/chips-selector/chips-selector.component.mjs +0 -272
- package/esm2022/ui/ui/components/file-input/file-input.component.mjs +0 -264
- package/esm2022/ui/ui/components/file-preview/file-preview.component.mjs +0 -73
- package/esm2022/ui/ui/components/filter-bar/filter-bar.component.mjs +0 -356
- package/esm2022/ui/ui/definitions.mjs +0 -2
- package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +0 -47
- package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +0 -101
- package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +0 -86
- package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +0 -51
- package/esm2022/ui/ui/dialogs/prompt/prompt-dialog.component.mjs +0 -77
- package/esm2022/ui/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +0 -79
- package/esm2022/ui/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +0 -72
- package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +0 -49
- package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +0 -89
- package/esm2022/ui/ui/dialogs/select/select-dialog.component.mjs +0 -374
- package/esm2022/ui/ui/dialogs/select-file/select-file-dialog.component.mjs +0 -106
- package/esm2022/ui/ui/dialogs/select-picture/select-picture-dialog.component.mjs +0 -62
- package/esm2022/ui/ui/dialogs/select-tree/select-tree-dialog.component.mjs +0 -277
- package/esm2022/ui/ui/dialogs/send-to/send-to-dialog.component.mjs +0 -90
- package/esm2022/ui/ui/dialogs/toast/toast.component.mjs +0 -32
- package/esm2022/ui/ui/directives/resize-table-column.directive.mjs +0 -63
- package/esm2022/ui/ui/filters.mjs +0 -43
- package/esm2022/ui/ui/paginatorIntl.mjs +0 -34
- package/esm2022/ui/ui/services/dialog.service.mjs +0 -417
- package/esm2022/ui/ui/services/ui.service.mjs +0 -21
- package/esm2022/ui/ui/ui.module.mjs +0 -21
- package/esm2022/ui.application/arsedizioni-ars-utils-ui.application.mjs +0 -5
- package/esm2022/ui.application/public_api.mjs +0 -21
- package/esm2022/ui.application/ui/components/button-selector/button-selector.component.mjs +0 -150
- package/esm2022/ui.application/ui/components/button-toggle/button-toggle.component.mjs +0 -51
- package/esm2022/ui.application/ui/components/calendar-empty-header/calendar-empy-header.component.mjs +0 -30
- package/esm2022/ui.application/ui/components/chips-selector/chips-selector.component.mjs +0 -272
- package/esm2022/ui.application/ui/components/file-input/file-input.component.mjs +0 -264
- package/esm2022/ui.application/ui/components/file-preview/file-preview.component.mjs +0 -73
- package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +0 -356
- package/esm2022/ui.application/ui/definitions.mjs +0 -31
- package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +0 -77
- package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +0 -79
- package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +0 -72
- package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +0 -374
- package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +0 -106
- package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +0 -62
- package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +0 -277
- package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +0 -90
- package/esm2022/ui.application/ui/directives/resize-table-column.directive.mjs +0 -63
- package/esm2022/ui.application/ui/filters.mjs +0 -43
- package/esm2022/ui.application/ui/services/applicationDialog.service.mjs +0 -304
- package/esm2022/ui.application/ui/ui.module.mjs +0 -30
- package/esm2022/ui.oauth/arsedizioni-ars-utils-ui.oauth.mjs +0 -5
- package/esm2022/ui.oauth/public_api.mjs +0 -6
- package/esm2022/ui.oauth/ui/components/login/login-oauth.component.mjs +0 -199
- package/esm2022/ui.oauth/ui/definitions.mjs +0 -7
- package/esm2022/ui.oauth/ui/ui.module.mjs +0 -13
- package/styles/ui.colors.scss +0 -77
- package/styles/ui.scss +0 -318
- package/ui/ui/components/button-selector/button-selector.component.d.ts +0 -52
- package/ui/ui/components/button-toggle/button-toggle.component.d.ts +0 -28
- package/ui/ui/components/calendar-empty-header/calendar-empy-header.component.d.ts +0 -11
- package/ui/ui/components/chips-selector/chips-selector.component.d.ts +0 -82
- package/ui/ui/components/file-input/file-input.component.d.ts +0 -88
- package/ui/ui/components/file-preview/file-preview.component.d.ts +0 -26
- package/ui/ui/components/filter-bar/filter-bar.component.d.ts +0 -83
- package/ui/ui/dialogs/prompt/prompt-dialog.component.d.ts +0 -18
- package/ui/ui/dialogs/prompt-date/prompt-date-dialog.component.d.ts +0 -18
- package/ui/ui/dialogs/prompt-time/prompt-time-dialog.component.d.ts +0 -18
- package/ui/ui/dialogs/select/select-dialog.component.d.ts +0 -122
- package/ui/ui/dialogs/select-file/select-file-dialog.component.d.ts +0 -36
- package/ui/ui/dialogs/select-picture/select-picture-dialog.component.d.ts +0 -26
- package/ui/ui/dialogs/select-tree/select-tree-dialog.component.d.ts +0 -98
- package/ui/ui/dialogs/send-to/send-to-dialog.component.d.ts +0 -28
- package/ui/ui/directives/resize-table-column.directive.d.ts +0 -19
- package/ui/ui/filters.d.ts +0 -57
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { DialogService } from '@arsedizioni/ars-utils/ui';
|
|
3
|
-
import { HttpClient } from '@angular/common/http';
|
|
4
|
-
import { HelpViewerComponent } from '../components/help-viewer/help-viewer.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class HelpService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.httpClient = inject(HttpClient);
|
|
9
|
-
this.dialogService = inject(DialogService);
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Initialize help service
|
|
13
|
-
* @param serviceUri : the service uri
|
|
14
|
-
*/
|
|
15
|
-
initialize(serviceUri) {
|
|
16
|
-
this.serviceUri = serviceUri;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Retrieve an help chapter
|
|
20
|
-
* @param id the chapter id
|
|
21
|
-
* @param query the search query
|
|
22
|
-
*/
|
|
23
|
-
getChapter(id, query = null) {
|
|
24
|
-
return this.httpClient.get(this.serviceUri +
|
|
25
|
-
'/help/chapter/' +
|
|
26
|
-
id +
|
|
27
|
-
'/?query=' +
|
|
28
|
-
(query == null ? '' : query));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Retrieve an help chapater info
|
|
32
|
-
* @param id the chapter id
|
|
33
|
-
*/
|
|
34
|
-
getChapterInfo(id) {
|
|
35
|
-
return this.httpClient.get(this.serviceUri + '/help/chapter/info/' + id);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Retrieve a repository item
|
|
39
|
-
* @param id the file id
|
|
40
|
-
*/
|
|
41
|
-
getRepo(id) {
|
|
42
|
-
return this.httpClient.get(this.serviceUri + '/help/repo/' + id);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Retrieve an help toc
|
|
46
|
-
*/
|
|
47
|
-
getToc() {
|
|
48
|
-
return this.httpClient.get(this.serviceUri + '/help/toc');
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Open help viewer
|
|
52
|
-
*/
|
|
53
|
-
show(id = '1') {
|
|
54
|
-
this.dialogService.open(HelpViewerComponent, {
|
|
55
|
-
ariaLabel: 'guida',
|
|
56
|
-
autoFocus: false,
|
|
57
|
-
restoreFocus: false,
|
|
58
|
-
disableClose: true,
|
|
59
|
-
data: {
|
|
60
|
-
id: id
|
|
61
|
-
},
|
|
62
|
-
minWidth: '375px',
|
|
63
|
-
maxWidth: '1200px',
|
|
64
|
-
width: '100%',
|
|
65
|
-
height: '100%'
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HelpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
69
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HelpService, providedIn: 'root' }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HelpService, decorators: [{
|
|
72
|
-
type: Injectable,
|
|
73
|
-
args: [{
|
|
74
|
-
providedIn: 'root'
|
|
75
|
-
}]
|
|
76
|
-
}] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2hlbHAvc2VydmljZXMvaGVscC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFhLE1BQU0saURBQWlELENBQUM7O0FBTWpHLE1BQU0sT0FBTyxXQUFXO0lBSHhCO1FBS1UsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQTBFL0M7SUF2RUM7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLFVBQWtCO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEVBQVUsRUFBRSxRQUFnQixJQUFJO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxVQUFVO1lBQ2IsZ0JBQWdCO1lBQ2hCLEVBQUU7WUFDRixVQUFVO1lBQ1YsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLEdBQUcsRUFBRSxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFHRDs7T0FFRztJQUNILElBQUksQ0FBQyxLQUFhLEdBQUc7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0MsU0FBUyxFQUFFLE9BQU87WUFDbEIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxFQUFFO2FBQ1A7WUFDRCxRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E1RVUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWknO1xyXG5pbXBvcnQgeyBBcGlSZXN1bHQgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIZWxwVmlld2VyQ29tcG9uZW50LCBJbmRleEluZm8gfSBmcm9tICcuLi9jb21wb25lbnRzL2hlbHAtdmlld2VyL2hlbHAtdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYXB0ZXIsIENoYXB0ZXJCYWcgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWxwU2VydmljZSB7XHJcbiAgXHJcbiAgcHJpdmF0ZSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpOyBcclxuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBzZXJ2aWNlVXJpOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgaGVscCBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VVcmkgOiB0aGUgc2VydmljZSB1cmlcclxuICAgKi9cclxuICBpbml0aWFsaXplKHNlcnZpY2VVcmk6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXJ2aWNlVXJpID0gc2VydmljZVVyaTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGFuIGhlbHAgY2hhcHRlclxyXG4gICAqIEBwYXJhbSBpZCB0aGUgY2hhcHRlciBpZFxyXG4gICAqIEBwYXJhbSBxdWVyeSB0aGUgc2VhcmNoIHF1ZXJ5XHJcbiAgICovXHJcbiAgZ2V0Q2hhcHRlcihpZDogc3RyaW5nLCBxdWVyeTogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PENoYXB0ZXJCYWc+PihcclxuICAgICAgdGhpcy5zZXJ2aWNlVXJpICtcclxuICAgICAgICAnL2hlbHAvY2hhcHRlci8nICtcclxuICAgICAgICBpZCArXHJcbiAgICAgICAgJy8/cXVlcnk9JyArXHJcbiAgICAgICAgKHF1ZXJ5ID09IG51bGwgPyAnJyA6IHF1ZXJ5KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGFuIGhlbHAgY2hhcGF0ZXIgaW5mb1xyXG4gICAqIEBwYXJhbSBpZCB0aGUgY2hhcHRlciBpZFxyXG4gICAqL1xyXG4gIGdldENoYXB0ZXJJbmZvKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxDaGFwdGVyPj4oXHJcbiAgICAgIHRoaXMuc2VydmljZVVyaSArICcvaGVscC9jaGFwdGVyL2luZm8vJyArIGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSByZXBvc2l0b3J5IGl0ZW1cclxuICAgKiBAcGFyYW0gaWQgdGhlIGZpbGUgaWRcclxuICAgKi9cclxuICBnZXRSZXBvKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxhbnk+PihcclxuICAgICAgdGhpcy5zZXJ2aWNlVXJpICsgJy9oZWxwL3JlcG8vJyArIGlkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYW4gaGVscCB0b2NcclxuICAgKi9cclxuICBnZXRUb2MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlSZXN1bHQ8SW5kZXhJbmZvPj4oXHJcbiAgICAgIHRoaXMuc2VydmljZVVyaSArICcvaGVscC90b2MnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gaGVscCB2aWV3ZXJcclxuICAgKi9cclxuICBzaG93KGlkOiBzdHJpbmcgPSAnMScpIHtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEhlbHBWaWV3ZXJDb21wb25lbnQsIHtcclxuICAgICAgYXJpYUxhYmVsOiAnZ3VpZGEnLFxyXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICByZXN0b3JlRm9jdXM6IGZhbHNlLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpZDogaWRcclxuICAgICAgfSxcclxuICAgICAgbWluV2lkdGg6ICczNzVweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnMTIwMHB4JyxcclxuICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgaGVpZ2h0OiAnMTAwJSdcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2022/public_api.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ars-utils
|
|
3
|
-
*/
|
|
4
|
-
export * from '@arsedizioni/ars-utils/core';
|
|
5
|
-
export * from '@arsedizioni/ars-utils/ui';
|
|
6
|
-
export * from '@arsedizioni/ars-utils/ui.oauth';
|
|
7
|
-
export * from '@arsedizioni/ars-utils/ui.application';
|
|
8
|
-
export * from '@arsedizioni/ars-utils/support.common';
|
|
9
|
-
export * from '@arsedizioni/ars-utils/support.ui';
|
|
10
|
-
export * from '@arsedizioni/ars-utils/help';
|
|
11
|
-
export * from '@arsedizioni/ars-utils/clipper.common';
|
|
12
|
-
export * from '@arsedizioni/ars-utils/clipper.ui';
|
|
13
|
-
export * from '@arsedizioni/ars-utils/tinymce';
|
|
14
|
-
export * from '@arsedizioni/ars-utils/evolution.common';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFycy11dGlsc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuZXhwb3J0ICogZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy91aSc7XHJcbmV4cG9ydCAqIGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvdWkub2F1dGgnO1xyXG5leHBvcnQgKiBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3VpLmFwcGxpY2F0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbic7XHJcbmV4cG9ydCAqIGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvc3VwcG9ydC51aSc7XHJcbmV4cG9ydCAqIGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvaGVscCc7XHJcbmV4cG9ydCAqIGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24nO1xyXG5leHBvcnQgKiBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NsaXBwZXIudWknO1xyXG5leHBvcnQgKiBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3RpbnltY2UnO1xyXG5leHBvcnQgKiBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2V2b2x1dGlvbi5jb21tb24nO1xyXG5cclxuXHJcblxyXG5cclxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJzZWRpemlvbmktYXJzLXV0aWxzLXN1cHBvcnQuY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3N1cHBvcnQuY29tbW9uL2Fyc2VkaXppb25pLWFycy11dGlscy1zdXBwb3J0LmNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ArsSupportCommonModule {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: ArsSupportCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: ArsSupportCommonModule }); }
|
|
6
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: ArsSupportCommonModule }); }
|
|
7
|
-
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: ArsSupportCommonModule, decorators: [{
|
|
9
|
-
type: NgModule
|
|
10
|
-
}] });
|
|
11
|
-
// Other exports
|
|
12
|
-
export * from './messages';
|
|
13
|
-
export * from './definitions';
|
|
14
|
-
export * from './interceptors/auth.interceptor';
|
|
15
|
-
export * from './services/support.service';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbi9jb21tb24vY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6QyxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7Z0hBQXRCLHNCQUFzQjtnSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxRQUFROztBQUdULGdCQUFnQjtBQUNoQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKClcclxuZXhwb3J0IGNsYXNzIEFyc1N1cHBvcnRDb21tb25Nb2R1bGUge31cclxuXHJcbi8vIE90aGVyIGV4cG9ydHNcclxuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGVmaW5pdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyY2VwdG9ycy9hdXRoLmludGVyY2VwdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zdXBwb3J0LnNlcnZpY2UnO1xyXG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export var SupportServiceFlags;
|
|
2
|
-
(function (SupportServiceFlags) {
|
|
3
|
-
SupportServiceFlags[SupportServiceFlags["None"] = 0] = "None";
|
|
4
|
-
SupportServiceFlags[SupportServiceFlags["NotifySystemErrors"] = 1] = "NotifySystemErrors";
|
|
5
|
-
SupportServiceFlags[SupportServiceFlags["DisplayConnectionStateMessages"] = 2] = "DisplayConnectionStateMessages";
|
|
6
|
-
})(SupportServiceFlags || (SupportServiceFlags = {}));
|
|
7
|
-
export var SupportProduct;
|
|
8
|
-
(function (SupportProduct) {
|
|
9
|
-
SupportProduct[SupportProduct["None"] = 0] = "None";
|
|
10
|
-
SupportProduct[SupportProduct["Clipper"] = 1] = "Clipper";
|
|
11
|
-
SupportProduct[SupportProduct["Evolution"] = 2] = "Evolution";
|
|
12
|
-
SupportProduct[SupportProduct["DGInfo"] = 4] = "DGInfo";
|
|
13
|
-
})(SupportProduct || (SupportProduct = {}));
|
|
14
|
-
export var SupportProductModule;
|
|
15
|
-
(function (SupportProductModule) {
|
|
16
|
-
SupportProductModule[SupportProductModule["None"] = 0] = "None";
|
|
17
|
-
SupportProductModule[SupportProductModule["EvoFormazione"] = 1] = "EvoFormazione";
|
|
18
|
-
SupportProductModule[SupportProductModule["EvoDPI"] = 2] = "EvoDPI";
|
|
19
|
-
SupportProductModule[SupportProductModule["EvoSorveglianzaSanitaria"] = 4] = "EvoSorveglianzaSanitaria";
|
|
20
|
-
SupportProductModule[SupportProductModule["EvoRegistroEScadenzario"] = 8] = "EvoRegistroEScadenzario";
|
|
21
|
-
SupportProductModule[SupportProductModule["EvoAttrezzatureEImpianti"] = 16] = "EvoAttrezzatureEImpianti";
|
|
22
|
-
SupportProductModule[SupportProductModule["EvoMonitoraggio"] = 32] = "EvoMonitoraggio";
|
|
23
|
-
SupportProductModule[SupportProductModule["EvoBollettino"] = 64] = "EvoBollettino";
|
|
24
|
-
SupportProductModule[SupportProductModule["DgiADR"] = 128] = "DgiADR";
|
|
25
|
-
SupportProductModule[SupportProductModule["DgiRID"] = 256] = "DgiRID";
|
|
26
|
-
SupportProductModule[SupportProductModule["DgiIMDG"] = 512] = "DgiIMDG";
|
|
27
|
-
SupportProductModule[SupportProductModule["DgiCLP"] = 1024] = "DgiCLP";
|
|
28
|
-
})(SupportProductModule || (SupportProductModule = {}));
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvc3VwcG9ydC5jb21tb24vY29tbW9uL2RlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsNkRBQVEsQ0FBQTtJQUNSLHlGQUFzQixDQUFBO0lBQ3RCLGlIQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBa0VELE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEIsbURBQVEsQ0FBQTtJQUNSLHlEQUFXLENBQUE7SUFDWCw2REFBa0IsQ0FBQTtJQUNsQix1REFBZSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQWFYO0FBYkQsV0FBWSxvQkFBb0I7SUFDOUIsK0RBQVEsQ0FBQTtJQUNSLGlGQUFpQixDQUFBO0lBQ2pCLG1FQUFlLENBQUE7SUFDZix1R0FBaUMsQ0FBQTtJQUNqQyxxR0FBZ0MsQ0FBQTtJQUNoQyx3R0FBaUMsQ0FBQTtJQUNqQyxzRkFBd0IsQ0FBQTtJQUN4QixrRkFBc0IsQ0FBQTtJQUN0QixxRUFBZSxDQUFBO0lBQ2YscUVBQWUsQ0FBQTtJQUNmLHVFQUFnQixDQUFBO0lBQ2hCLHNFQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBYS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9naW5SZXN1bHQgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5cclxuZXhwb3J0IGVudW0gU3VwcG9ydFNlcnZpY2VGbGFncyB7XHJcbiAgTm9uZSA9IDAsXHJcbiAgTm90aWZ5U3lzdGVtRXJyb3JzID0gMSxcclxuICBEaXNwbGF5Q29ubmVjdGlvblN0YXRlTWVzc2FnZXMgPSAxIDw8IDFcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0VXNlckluZm8ge1xyXG5cclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBncm91cHM/OiBudW1iZXIgfCBudWxsO1xyXG4gICAgZ3JvdXBOYW1lcz86IHN0cmluZyB8IG51bGw7XHJcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBkYXNoYm9hcmQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGN1c3RvbWVySWQ/OiBudW1iZXIgfCBudWxsO1xyXG4gICAgY29tcGFueU5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgcm9sZTogbnVtYmVyO1xyXG4gICAgc2NvcGVzPzogc3RyaW5nW10gfCBudWxsO1xyXG4gICAgc2xhOiBudW1iZXI7XHJcbiAgICBpc0NvbW1lcmNpYWw/OiBib29sZWFuIHwgbnVsbDtcclxuICAgIGlzQWRtaW5pc3RyYXRvcjogYm9vbGVhbjtcclxuICAgIGlzR3Vlc3Q6IGJvb2xlYW47XHJcbiAgICBpc1VzZXI6IGJvb2xlYW47XHJcbiAgICBpc09wZXJhdG9yOiBib29sZWFuO1xyXG4gICAgaXNUZW1wb3Jhcnk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydExvZ2luUmVzdWx0IGV4dGVuZHMgTG9naW5SZXN1bHQ8U3VwcG9ydFVzZXJJbmZvPiB7IH0gXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRMb2dpbkluZm8ge1xyXG4gIGNvbnRleHQ6IFN1cHBvcnRVc2VySW5mbztcclxuICB1c2VyQ3JlZGVudGlhbHM/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0Tm90aWZpY2F0aW9uc1NlYXJjaFBhcmFtcyB7XHJcbiAgYW55Pzogc3RyaW5nIHwgbnVsbDtcclxuICBwcm9kdWN0cz86IG51bWJlciB8IG51bGw7XHJcbiAgcHJvZHVjdE1vZHVsZXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIGZpcnN0PzogbnVtYmVyIHwgbnVsbDtcclxuICBjb3VudD86IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3VwcG9ydE5vdGlmaWNhdGlvbnNTZWFyY2hSZXN1bHQge1xyXG4gIGludGVydmFsPzogc3RyaW5nIHwgbnVsbDtcclxuICBpdGVtcz86IFN1cHBvcnROb3RpZmljYXRpb25JbmZvW10gfCBudWxsO1xyXG4gIHRvdGFsPzogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0Tm90aWZpY2F0aW9uSW5mbyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBwcm9kdWN0czogbnVtYmVyO1xyXG4gIHByb2R1Y3ROYW1lcz86IHN0cmluZyB8IG51bGw7XHJcbiAgcHJvZHVjdE1vZHVsZXM/OiBudW1iZXIgfCBudWxsO1xyXG4gIHByb2R1Y3RNb2R1bGVOYW1lcz86IHN0cmluZyB8IG51bGw7XHJcbiAgcHVibGlzaGluZ0RhdGU/OiBEYXRlIHwgbnVsbDtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBzdGF0ZTogbnVtYmVyO1xyXG4gIGlzUHVibGlzaGVkOiBib29sZWFuO1xyXG4gIGlzSW50ZXJuYWw6IGJvb2xlYW47XHJcbiAgaXNSZWFkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnROb3RpZmljYXRpb25zTWFya1BhcmFtcyB7XHJcbiAgaWRzOiBudW1iZXJbXTtcclxuICB1bm1hcms6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFN1cHBvcnRQcm9kdWN0IHtcclxuICBOb25lID0gMCxcclxuICBDbGlwcGVyID0gMSxcclxuICBFdm9sdXRpb24gPSAxIDw8IDEsXHJcbiAgREdJbmZvID0gMSA8PCAyXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFN1cHBvcnRQcm9kdWN0TW9kdWxlIHtcclxuICBOb25lID0gMCxcclxuICBFdm9Gb3JtYXppb25lID0gMSxcclxuICBFdm9EUEkgPSAxIDw8IDEsXHJcbiAgRXZvU29ydmVnbGlhbnphU2FuaXRhcmlhID0gMSA8PCAyLFxyXG4gIEV2b1JlZ2lzdHJvRVNjYWRlbnphcmlvID0gMSA8PCAzLFxyXG4gIEV2b0F0dHJlenphdHVyZUVJbXBpYW50aSA9IDEgPDwgNCxcclxuICBFdm9Nb25pdG9yYWdnaW8gPSAxIDw8IDUsXHJcbiAgRXZvQm9sbGV0dGlubyA9IDEgPDwgNixcclxuICBEZ2lBRFIgPSAxIDw8IDcsXHJcbiAgRGdpUklEID0gMSA8PCA4LFxyXG4gIERnaUlNREcgPSAxIDw8IDksXHJcbiAgRGdpQ0xQID0gMSA8PCAxMCxcclxufVxyXG4iXX0=
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
|
-
import { Injectable, inject } from '@angular/core';
|
|
3
|
-
import { catchError, finalize, switchMap, throwError } from 'rxjs';
|
|
4
|
-
import { SupportService } from '../services/support.service';
|
|
5
|
-
import { DialogService } from '@arsedizioni/ars-utils/ui';
|
|
6
|
-
import { BroadcastService } from '@arsedizioni/ars-utils/core';
|
|
7
|
-
import { SupportMessages } from '../messages';
|
|
8
|
-
import { SupportServiceFlags } from '../definitions';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class SupportAuthInterceptor {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.supportService = inject(SupportService);
|
|
13
|
-
this.broadcastService = inject(BroadcastService);
|
|
14
|
-
this.dialogService = inject(DialogService);
|
|
15
|
-
this.lastErrorTime = -1;
|
|
16
|
-
}
|
|
17
|
-
intercept(request, next) {
|
|
18
|
-
if (request.url.startsWith(this.supportService.serviceUri)) {
|
|
19
|
-
request = request.clone({ withCredentials: true });
|
|
20
|
-
return next.handle(this.addTokenToRequest(request))
|
|
21
|
-
.pipe(finalize(() => this.dialogService.clearBusy()), catchError(error => {
|
|
22
|
-
if (error.url.startsWith(this.supportService.serviceUri)) {
|
|
23
|
-
if (error instanceof HttpErrorResponse &&
|
|
24
|
-
!request.url.includes("/login") &&
|
|
25
|
-
error.status === 401) {
|
|
26
|
-
return this.handle401Error(request, next);
|
|
27
|
-
}
|
|
28
|
-
const errorStatus = parseInt(error.status ?? "0");
|
|
29
|
-
if ((errorStatus > 0 && errorStatus < 500) || (this.supportService.flags & SupportServiceFlags.NotifySystemErrors) > 0) {
|
|
30
|
-
const errorTime = new Date().getTime();
|
|
31
|
-
if (errorTime - this.lastErrorTime > 5000) {
|
|
32
|
-
this.lastErrorTime = errorTime;
|
|
33
|
-
let message = "";
|
|
34
|
-
switch (errorStatus) {
|
|
35
|
-
case 0:
|
|
36
|
-
message = "In questo momento ARS Support non è disponibile. Riprova tra qualche minuto.";
|
|
37
|
-
break;
|
|
38
|
-
case 403:
|
|
39
|
-
message = "Non hai i permessi necessari per eseguire l'operazione richiesta.";
|
|
40
|
-
break;
|
|
41
|
-
default:
|
|
42
|
-
message = (error.error?.message ?? error.message ?? "Impossibile eseguire l'operazione richiesta.").replaceAll("\r\n", "</p><p>");
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
const invalidSession = errorStatus === 405 || errorStatus === 410;
|
|
46
|
-
this.dialogService.error("<p>" + message + "</p>", null, "Errore in ARS Support", undefined, undefined, invalidSession ? 5000 : 15000).afterClosed().subscribe(() => {
|
|
47
|
-
if (invalidSession) {
|
|
48
|
-
this.broadcastService.sendMessage(SupportMessages.LOGOUT);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return throwError(() => error);
|
|
55
|
-
}));
|
|
56
|
-
}
|
|
57
|
-
return next.handle(request);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Handle 401 error
|
|
61
|
-
* @param request : the request
|
|
62
|
-
* @param next : the http handler
|
|
63
|
-
*/
|
|
64
|
-
handle401Error(request, next) {
|
|
65
|
-
if (this.supportService.loggedIn()) {
|
|
66
|
-
return this.supportService.refresh().pipe(switchMap(() => {
|
|
67
|
-
return next.handle(this.addTokenToRequest(request));
|
|
68
|
-
}), catchError(error => {
|
|
69
|
-
return throwError(() => error);
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
return next.handle(request);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Add token to request
|
|
76
|
-
* @param request : the request
|
|
77
|
-
* @param token: the token or null to use curre3nt
|
|
78
|
-
*/
|
|
79
|
-
addTokenToRequest(request, token = null) {
|
|
80
|
-
if (request.url.startsWith(this.supportService.serviceUri)) {
|
|
81
|
-
if (!token)
|
|
82
|
-
token = this.supportService.getToken();
|
|
83
|
-
if (token) {
|
|
84
|
-
return request.clone({
|
|
85
|
-
setHeaders: {
|
|
86
|
-
Authorization: 'Bearer ' + token,
|
|
87
|
-
'ngsw-bypass': 'ngsw-bypass'
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return request;
|
|
93
|
-
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SupportAuthInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
95
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SupportAuthInterceptor }); }
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SupportAuthInterceptor, decorators: [{
|
|
98
|
-
type: Injectable
|
|
99
|
-
}] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9zdXBwb3J0LmNvbW1vbi9jb21tb24vaW50ZXJjZXB0b3JzL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUdyRCxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBR1UsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsa0JBQWEsR0FBVyxDQUFDLENBQUMsQ0FBQztLQW9HcEM7SUFsR0MsU0FBUyxDQUNQLE9BQXlCLEVBQ3pCLElBQWlCO1FBRWpCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzNELE9BQU8sR0FBRyxP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RXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdXBwb3J0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N1cHBvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL3VpJztcclxuaW1wb3J0IHsgQnJvYWRjYXN0U2VydmljZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IFN1cHBvcnRNZXNzYWdlcyB9IGZyb20gJy4uL21lc3NhZ2VzJztcclxuaW1wb3J0IHsgU3VwcG9ydFNlcnZpY2VGbGFncyB9IGZyb20gJy4uL2RlZmluaXRpb25zJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN1cHBvcnRBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cclxuICBwcml2YXRlIHN1cHBvcnRTZXJ2aWNlID0gaW5qZWN0KFN1cHBvcnRTZXJ2aWNlKTtcclxuICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2UgPSBpbmplY3QoQnJvYWRjYXN0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgbGFzdEVycm9yVGltZTogbnVtYmVyID0gLTE7XHJcblxyXG4gIGludGVyY2VwdChcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXHJcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIGlmIChyZXF1ZXN0LnVybC5zdGFydHNXaXRoKHRoaXMuc3VwcG9ydFNlcnZpY2Uuc2VydmljZVVyaSkpIHtcclxuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuVG9SZXF1ZXN0KHJlcXVlc3QpKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5kaWFsb2dTZXJ2aWNlLmNsZWFyQnVzeSgpKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IudXJsLnN0YXJ0c1dpdGgodGhpcy5zdXBwb3J0U2VydmljZS5zZXJ2aWNlVXJpKSkge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiZcclxuICAgICAgICAgICAgICAgICFyZXF1ZXN0LnVybC5pbmNsdWRlcyhcIi9sb2dpblwiKSAmJlxyXG4gICAgICAgICAgICAgICAgZXJyb3Iuc3RhdHVzID09PSA0MDFcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZTQwMUVycm9yKHJlcXVlc3QsIG5leHQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBjb25zdCBlcnJvclN0YXR1cyA9IHBhcnNlSW50KGVycm9yLnN0YXR1cyA/PyBcIjBcIik7XHJcbiAgICAgICAgICAgICAgaWYgKChlcnJvclN0YXR1cyA+IDAgJiYgZXJyb3JTdGF0dXMgPCA1MDApIHx8ICh0aGlzLnN1cHBvcnRTZXJ2aWNlLmZsYWdzICYgU3VwcG9ydFNlcnZpY2VGbGFncy5Ob3RpZnlTeXN0ZW1FcnJvcnMpID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JUaW1lIC0gdGhpcy5sYXN0RXJyb3JUaW1lID4gNTAwMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxhc3RFcnJvclRpbWUgPSBlcnJvclRpbWU7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBtZXNzYWdlID0gXCJcIlxyXG4gICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yU3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiSW4gcXVlc3RvIG1vbWVudG8gQVJTIFN1cHBvcnQgbm9uIMOoIGRpc3BvbmliaWxlLiBSaXByb3ZhIHRyYSBxdWFsY2hlIG1pbnV0by5cIjtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAzOlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiTm9uIGhhaSBpIHBlcm1lc3NpIG5lY2Vzc2FyaSBwZXIgZXNlZ3VpcmUgbCdvcGVyYXppb25lIHJpY2hpZXN0YS5cIjtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gKGVycm9yLmVycm9yPy5tZXNzYWdlID8/IGVycm9yLm1lc3NhZ2UgPz8gXCJJbXBvc3NpYmlsZSBlc2VndWlyZSBsJ29wZXJhemlvbmUgcmljaGllc3RhLlwiKS5yZXBsYWNlQWxsKFwiXFxyXFxuXCIsIFwiPC9wPjxwPlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGludmFsaWRTZXNzaW9uID0gZXJyb3JTdGF0dXMgPT09IDQwNSB8fCBlcnJvclN0YXR1cyA9PT0gNDEwO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgXCI8cD5cIiArIG1lc3NhZ2UgICsgXCI8L3A+XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBcIkVycm9yZSBpbiBBUlMgU3VwcG9ydFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZFNlc3Npb24gPyA1MDAwIDogMTUwMDApLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkU2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLkxPR09VVCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAgICAgICAgIH0pKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBIYW5kbGUgNDAxIGVycm9yXHJcbiAqIEBwYXJhbSByZXF1ZXN0IDogdGhlIHJlcXVlc3RcclxuICogQHBhcmFtIG5leHQgOiB0aGUgaHR0cCBoYW5kbGVyXHJcbiAqL1xyXG4gIHByaXZhdGUgaGFuZGxlNDAxRXJyb3IocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcclxuICAgIGlmICh0aGlzLnN1cHBvcnRTZXJ2aWNlLmxvZ2dlZEluKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydFNlcnZpY2UucmVmcmVzaCgpLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuVG9SZXF1ZXN0KHJlcXVlc3QpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRva2VuIHRvIHJlcXVlc3RcclxuICAgKiBAcGFyYW0gcmVxdWVzdCA6IHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHRva2VuOiB0aGUgdG9rZW4gb3IgbnVsbCB0byB1c2UgY3VycmUzbnRcclxuICAgKi9cclxuICBwcml2YXRlIGFkZFRva2VuVG9SZXF1ZXN0KFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcclxuICAgIHRva2VuOiBzdHJpbmcgPSBudWxsXHJcbiAgKTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcbiAgICBpZiAocmVxdWVzdC51cmwuc3RhcnRzV2l0aCh0aGlzLnN1cHBvcnRTZXJ2aWNlLnNlcnZpY2VVcmkpKSB7XHJcbiAgICAgIGlmICghdG9rZW4pIHRva2VuID0gdGhpcy5zdXBwb3J0U2VydmljZS5nZXRUb2tlbigpO1xyXG4gICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICByZXR1cm4gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgICBzZXRIZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRva2VuLFxyXG4gICAgICAgICAgICAnbmdzdy1ieXBhc3MnOiAnbmdzdy1ieXBhc3MnXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const SupportMessages = {
|
|
2
|
-
/**
|
|
3
|
-
* Messages
|
|
4
|
-
*/
|
|
5
|
-
// Login
|
|
6
|
-
LOGIN_CHANGED: '§support-login-changed',
|
|
7
|
-
LOGIN_COMPLETED: '§support-login-completed',
|
|
8
|
-
LOGOUT_COMPLETED: '§support-logout-completed',
|
|
9
|
-
LOGOUT: '§support-logout',
|
|
10
|
-
// Notifications
|
|
11
|
-
NOTIFICATION_READ: '§support-notification-read',
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvc3VwcG9ydC5jb21tb24vY29tbW9uL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3Qjs7T0FFRztJQUVILFFBQVE7SUFDUixhQUFhLEVBQUUsd0JBQXdCO0lBQ3ZDLGVBQWUsRUFBRSwwQkFBMEI7SUFDM0MsZ0JBQWdCLEVBQUUsMkJBQTJCO0lBQzdDLE1BQU0sRUFBRSxpQkFBaUI7SUFFekIsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUFFLDRCQUE0QjtDQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFN1cHBvcnRNZXNzYWdlcyA9IHtcclxuICAvKipcclxuICAgKiBNZXNzYWdlc1xyXG4gICAqL1xyXG5cclxuICAvLyBMb2dpblxyXG4gIExPR0lOX0NIQU5HRUQ6ICfCp3N1cHBvcnQtbG9naW4tY2hhbmdlZCcsXHJcbiAgTE9HSU5fQ09NUExFVEVEOiAnwqdzdXBwb3J0LWxvZ2luLWNvbXBsZXRlZCcsXHJcbiAgTE9HT1VUX0NPTVBMRVRFRDogJ8Knc3VwcG9ydC1sb2dvdXQtY29tcGxldGVkJyxcclxuICBMT0dPVVQ6ICfCp3N1cHBvcnQtbG9nb3V0JyxcclxuXHJcbiAgLy8gTm90aWZpY2F0aW9uc1xyXG4gIE5PVElGSUNBVElPTl9SRUFEOiAnwqdzdXBwb3J0LW5vdGlmaWNhdGlvbi1yZWFkJyxcclxufTtcclxuIl19
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
2
|
-
import { Injectable, inject, signal } from '@angular/core';
|
|
3
|
-
import { BroadcastService, SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
4
|
-
import { EMPTY, of, throwError } from 'rxjs';
|
|
5
|
-
import { catchError, finalize, map } from 'rxjs/operators';
|
|
6
|
-
import { SupportMessages } from '../messages';
|
|
7
|
-
import { SupportProduct, SupportProductModule, SupportServiceFlags } from '../definitions';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class SupportService {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.httpClient = inject(HttpClient);
|
|
12
|
-
this.broadcastService = inject(BroadcastService);
|
|
13
|
-
this.broadcastServiceSubscription = null;
|
|
14
|
-
this._loginInfo = null;
|
|
15
|
-
this._serviceUri = "https://support.arsedizioni.it";
|
|
16
|
-
this._flags = SupportServiceFlags.None;
|
|
17
|
-
this.products = SupportProduct.None;
|
|
18
|
-
this.productModules = SupportProductModule.None;
|
|
19
|
-
this.unreadNotifications = signal(null);
|
|
20
|
-
this.loggedIn = signal(false);
|
|
21
|
-
this.loggingIn = signal(false);
|
|
22
|
-
this.keepAlive = 0;
|
|
23
|
-
}
|
|
24
|
-
get loginInfo() { return this._loginInfo; }
|
|
25
|
-
;
|
|
26
|
-
set loginInfo(value) {
|
|
27
|
-
this._loginInfo = value;
|
|
28
|
-
}
|
|
29
|
-
get serviceUri() {
|
|
30
|
-
return this._serviceUri;
|
|
31
|
-
}
|
|
32
|
-
get flags() {
|
|
33
|
-
return this._flags;
|
|
34
|
-
}
|
|
35
|
-
ngOnDestroy() {
|
|
36
|
-
// Clean-up
|
|
37
|
-
if (this.broadcastServiceSubscription) {
|
|
38
|
-
this.broadcastServiceSubscription.unsubscribe();
|
|
39
|
-
}
|
|
40
|
-
// Stop keep alive
|
|
41
|
-
this.removeKeepAlive();
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Initialize service
|
|
45
|
-
* @param serviceUri : the service uri
|
|
46
|
-
* @param products: the supported products
|
|
47
|
-
* @param productModules: the supported product modules
|
|
48
|
-
* @param flags: the service flags. Default is none.
|
|
49
|
-
*/
|
|
50
|
-
initialize(serviceUri = null, products = SupportProduct.None, productModules = SupportProductModule.None, flags = SupportServiceFlags.None) {
|
|
51
|
-
// Create unique client id
|
|
52
|
-
if (!localStorage.getItem('support_client_id'))
|
|
53
|
-
localStorage.setItem('support_client_id', SystemUtils.generateUUID());
|
|
54
|
-
// Initialize
|
|
55
|
-
this._serviceUri = serviceUri;
|
|
56
|
-
this._flags = flags;
|
|
57
|
-
this.products = products;
|
|
58
|
-
this.productModules = productModules;
|
|
59
|
-
// React to message broadcasting
|
|
60
|
-
if (!this.broadcastServiceSubscription) {
|
|
61
|
-
this.broadcastServiceSubscription = this.broadcastService.getMessage().subscribe((message) => {
|
|
62
|
-
if (message.id === SupportMessages.LOGIN_CHANGED) {
|
|
63
|
-
setTimeout(() => {
|
|
64
|
-
this.login(message.data.email, message.data.oauth, message.data.oauthAccessToken).subscribe({
|
|
65
|
-
next: r => {
|
|
66
|
-
if (r.success) {
|
|
67
|
-
this.countUnreadNotifications();
|
|
68
|
-
}
|
|
69
|
-
}, error: () => { console.error("ARS Support non disponibile."); } // Avoid unwanted errors on client);
|
|
70
|
-
});
|
|
71
|
-
}, 500);
|
|
72
|
-
}
|
|
73
|
-
else if (message.id === SupportMessages.LOGOUT) {
|
|
74
|
-
if (this.loggedIn()) {
|
|
75
|
-
this.logout().subscribe({
|
|
76
|
-
complete: () => {
|
|
77
|
-
this.clear();
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.clear();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else if (message.id === SupportMessages.NOTIFICATION_READ) {
|
|
86
|
-
this.countUnreadNotifications();
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
// Eveluate current session storage in case of page refresh (F5)
|
|
91
|
-
if (!this.loggedIn() && this.getToken()) {
|
|
92
|
-
// Auto login
|
|
93
|
-
this.loggedIn.set(true);
|
|
94
|
-
// Notify
|
|
95
|
-
this.broadcastService.sendMessage(SupportMessages.LOGIN_COMPLETED);
|
|
96
|
-
// Set keep alive
|
|
97
|
-
this.setKeepAlive();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Set keep alive
|
|
102
|
-
*/
|
|
103
|
-
setKeepAlive() {
|
|
104
|
-
// Keep alive every 1 min
|
|
105
|
-
if (this.keepAlive === 0) {
|
|
106
|
-
this.keepAlive = window.setInterval(() => {
|
|
107
|
-
this.ping();
|
|
108
|
-
}, 1000 * 60);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Remove keep alive
|
|
113
|
-
*/
|
|
114
|
-
removeKeepAlive() {
|
|
115
|
-
if (this.keepAlive > 0) {
|
|
116
|
-
window.clearInterval(this.keepAlive);
|
|
117
|
-
this.keepAlive = 0;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Ping
|
|
122
|
-
*/
|
|
123
|
-
ping() {
|
|
124
|
-
this.httpClient.get(this._serviceUri + '/ping')
|
|
125
|
-
.pipe(catchError(() => { return EMPTY; }))
|
|
126
|
-
.subscribe();
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Set JWT token
|
|
130
|
-
* @param value : the login result
|
|
131
|
-
*/
|
|
132
|
-
setToken(value) {
|
|
133
|
-
sessionStorage.setItem('support_jwt', value.token);
|
|
134
|
-
sessionStorage.setItem('support_jwt_refresh', value.refreshToken ?? '');
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Return current JWT token
|
|
138
|
-
* @param refresh: true to get the refresh token. Default is false.
|
|
139
|
-
*/
|
|
140
|
-
getToken(refresh = false) {
|
|
141
|
-
let token = sessionStorage.getItem(refresh ? 'support_jwt_refresh' : 'support_jwt');
|
|
142
|
-
if (token && token[0] === '"') {
|
|
143
|
-
return token.substring(1, token.length - 1);
|
|
144
|
-
}
|
|
145
|
-
return token ?? '';
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Perform login
|
|
149
|
-
* @param email: the guest email
|
|
150
|
-
* @param oauth: the optional open authentication supported
|
|
151
|
-
* @param oauthAccessToken: the optional oauth2 access token
|
|
152
|
-
* @returns: the login result
|
|
153
|
-
*/
|
|
154
|
-
login(email = null, oauth = null, oauthAccessToken = null) {
|
|
155
|
-
this.loggingIn.set(true);
|
|
156
|
-
return this.httpClient
|
|
157
|
-
.post(this._serviceUri + '/login', {
|
|
158
|
-
user: oauth > 0 ? null : email,
|
|
159
|
-
clientId: localStorage.getItem("support_client_id"),
|
|
160
|
-
OAUTH: oauth
|
|
161
|
-
}, {
|
|
162
|
-
headers: !oauth
|
|
163
|
-
? new HttpHeaders()
|
|
164
|
-
: new HttpHeaders()
|
|
165
|
-
.set("Authorization", oauthAccessToken)
|
|
166
|
-
})
|
|
167
|
-
.pipe(catchError(err => {
|
|
168
|
-
this.loggingIn.set(false);
|
|
169
|
-
return throwError(() => err);
|
|
170
|
-
}), map((r) => {
|
|
171
|
-
this.loggingIn.set(false);
|
|
172
|
-
if (r.success) {
|
|
173
|
-
this.setToken(r.value);
|
|
174
|
-
this._loginInfo = r.value.context;
|
|
175
|
-
this.loggedIn.set(true);
|
|
176
|
-
// Notify
|
|
177
|
-
this.broadcastService.sendMessage(SupportMessages.LOGIN_COMPLETED);
|
|
178
|
-
// Keep alive
|
|
179
|
-
this.setKeepAlive();
|
|
180
|
-
}
|
|
181
|
-
return r;
|
|
182
|
-
}));
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Perform logout
|
|
186
|
-
*/
|
|
187
|
-
logout() {
|
|
188
|
-
return this.httpClient
|
|
189
|
-
.post(this._serviceUri + '/logout', {}).pipe(finalize(() => { this.removeKeepAlive(); }), map(r => {
|
|
190
|
-
this.clear();
|
|
191
|
-
return r;
|
|
192
|
-
}), catchError((_e) => {
|
|
193
|
-
this.clear();
|
|
194
|
-
return of([]);
|
|
195
|
-
}));
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Reset login refresh timer and logins state
|
|
199
|
-
*/
|
|
200
|
-
reset() {
|
|
201
|
-
// Clear login info
|
|
202
|
-
this._loginInfo = null;
|
|
203
|
-
this.loggedIn.set(false);
|
|
204
|
-
// Notify
|
|
205
|
-
this.broadcastService.sendMessage(SupportMessages.LOGOUT_COMPLETED);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Clear login data
|
|
209
|
-
*/
|
|
210
|
-
clear() {
|
|
211
|
-
// Reset login
|
|
212
|
-
this.reset();
|
|
213
|
-
// Clear local storage
|
|
214
|
-
sessionStorage.removeItem('support_jwt');
|
|
215
|
-
sessionStorage.removeItem('support_jwt_refresh');
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Perform token refresh
|
|
219
|
-
*/
|
|
220
|
-
refresh() {
|
|
221
|
-
return this.httpClient.get(this._serviceUri + '/refresh2/?token=' + this.getToken(true)).pipe(map((r) => {
|
|
222
|
-
// Update token
|
|
223
|
-
this.setToken(r.value);
|
|
224
|
-
}));
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Navigate to support service
|
|
228
|
-
*/
|
|
229
|
-
open() {
|
|
230
|
-
let uri = this.serviceUri ?? '';
|
|
231
|
-
if (uri.endsWith('/api'))
|
|
232
|
-
uri = uri.substring(0, uri.length - 4);
|
|
233
|
-
window.open(uri);
|
|
234
|
-
}
|
|
235
|
-
////
|
|
236
|
-
// NOTIFICATIONS
|
|
237
|
-
////
|
|
238
|
-
/**
|
|
239
|
-
* Count unread notifications
|
|
240
|
-
*/
|
|
241
|
-
countUnreadNotifications() {
|
|
242
|
-
this.httpClient.get(this._serviceUri + '/notifications/count-unread/?products=' + (this.products ?? 0) + "&modules=" + (this.productModules ?? 0)).subscribe((r) => {
|
|
243
|
-
if (r.success) {
|
|
244
|
-
this.unreadNotifications.set(r.value > 0 ? r.value : null);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Query notifications
|
|
250
|
-
* @param params: query parameters
|
|
251
|
-
*/
|
|
252
|
-
queryNotifications(params) {
|
|
253
|
-
params.products = this.products ?? 0;
|
|
254
|
-
params.productModules = this.productModules ?? 0;
|
|
255
|
-
return this.httpClient.post(this._serviceUri + '/notifications', params);
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Retrieve a notification
|
|
259
|
-
* @param id: the notification id
|
|
260
|
-
*/
|
|
261
|
-
getNotification(id) {
|
|
262
|
-
return this.httpClient.get(this._serviceUri +
|
|
263
|
-
'/notifications/' +
|
|
264
|
-
id);
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Mark a group of notifications as read
|
|
268
|
-
* @param ids: the array of notification's ids to set as read
|
|
269
|
-
*/
|
|
270
|
-
markNotifications(params) {
|
|
271
|
-
return this.httpClient.post(this._serviceUri + '/notifications/mark', params);
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Download a notification document
|
|
275
|
-
* @param documentId : the notification document id
|
|
276
|
-
*/
|
|
277
|
-
dowloadNotificationDocument(documentId) {
|
|
278
|
-
return this.httpClient.get(this._serviceUri + '/documents/download/' + documentId, { responseType: 'blob' });
|
|
279
|
-
}
|
|
280
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
281
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SupportService, providedIn: 'root' }); }
|
|
282
|
-
}
|
|
283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: SupportService, decorators: [{
|
|
284
|
-
type: Injectable,
|
|
285
|
-
args: [{
|
|
286
|
-
providedIn: 'root',
|
|
287
|
-
}]
|
|
288
|
-
}] });
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL3N1cHBvcnQuY29tbW9uL2NvbW1vbi9zZXJ2aWNlcy9zdXBwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFtQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFtSixjQUFjLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTdQLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBTVUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxpQ0FBNEIsR0FBeUIsSUFBSSxDQUFDO1FBQzFELGVBQVUsR0FBMkIsSUFBSSxDQUFDO1FBTTFDLGdCQUFXLEdBQVcsZ0NBQWdDLENBQUE7UUFJdEQsV0FBTSxHQUF3QixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFLeEQsYUFBUSxHQUFtQixjQUFjLENBQUMsSUFBSSxDQUFDO1FBQy9DLG1CQUFjLEdBQXlCLG9CQUFvQixDQUFDLElBQUksQ0FBQztR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Q0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FBQyxNQUF3QztRQUN6RCxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsRUFDbkMsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDeEIsSUFBSSxDQUFDLFdBQVc7WUFDaEIsaUJBQWlCO1lBQ2pCLEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLE1BQXNDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLEVBQ3hDLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7S0FHQztJQUNELDJCQUEyQixDQUFDLFVBQWtCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsc0JBQXNCLEdBQUcsVUFBVSxFQUN0RCxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FDekIsQ0FBQztJQUNKLENBQUM7K0dBN1VVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpUmVzdWx0LCBCcm9hZGNhc3RNZXNzYWdlSW5mbywgQnJvYWRjYXN0U2VydmljZSwgU3lzdGVtVXRpbHMgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBFTVBUWSwgb2YsIFN1YnNjcmlwdGlvbiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdXBwb3J0TWVzc2FnZXMgfSBmcm9tICcuLi9tZXNzYWdlcyc7XHJcbmltcG9ydCB7IFN1cHBvcnRMb2dpblJlc3VsdCwgU3VwcG9ydE5vdGlmaWNhdGlvbkluZm8sIFN1cHBvcnROb3RpZmljYXRpb25zTWFya1BhcmFtcywgU3VwcG9ydE5vdGlmaWNhdGlvbnNTZWFyY2hQYXJhbXMsIFN1cHBvcnROb3RpZmljYXRpb25zU2VhcmNoUmVzdWx0LCBTdXBwb3J0UHJvZHVjdCwgU3VwcG9ydFByb2R1Y3RNb2R1bGUsIFN1cHBvcnRTZXJ2aWNlRmxhZ3MsIFN1cHBvcnRVc2VySW5mbyB9IGZyb20gJy4uL2RlZmluaXRpb25zJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VwcG9ydFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZSA9IGluamVjdChCcm9hZGNhc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9sb2dpbkluZm86IFN1cHBvcnRVc2VySW5mbyB8IG51bGwgPSBudWxsO1xyXG4gIGdldCBsb2dpbkluZm8oKTogU3VwcG9ydFVzZXJJbmZvIHwgbnVsbCB7IHJldHVybiB0aGlzLl9sb2dpbkluZm8gfTtcclxuICBzZXQgbG9naW5JbmZvKHZhbHVlOiBTdXBwb3J0VXNlckluZm8gfCBudWxsKSB7XHJcbiAgICB0aGlzLl9sb2dpbkluZm8gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VVcmk6IHN0cmluZyA9IFwiaHR0cHM6Ly9zdXBwb3J0LmFyc2VkaXppb25pLml0XCJcclxuICBnZXQgc2VydmljZVVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VVcmk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZsYWdzOiBTdXBwb3J0U2VydmljZUZsYWdzID0gU3VwcG9ydFNlcnZpY2VGbGFncy5Ob25lO1xyXG4gIGdldCBmbGFncygpOiBTdXBwb3J0U2VydmljZUZsYWdzIHtcclxuICAgIHJldHVybiB0aGlzLl9mbGFncztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcm9kdWN0czogU3VwcG9ydFByb2R1Y3QgPSBTdXBwb3J0UHJvZHVjdC5Ob25lO1xyXG4gIHB1YmxpYyBwcm9kdWN0TW9kdWxlczogU3VwcG9ydFByb2R1Y3RNb2R1bGUgPSBTdXBwb3J0UHJvZHVjdE1vZHVsZS5Ob25lO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdW5yZWFkTm90aWZpY2F0aW9ucyA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgbG9nZ2VkSW4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyByZWFkb25seSBsb2dnaW5nSW4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIGtlZXBBbGl2ZSA9IDA7XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gQ2xlYW4tdXBcclxuICAgIGlmICh0aGlzLmJyb2FkY2FzdFNlcnZpY2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICAvLyBTdG9wIGtlZXAgYWxpdmVcclxuICAgIHRoaXMucmVtb3ZlS2VlcEFsaXZlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gc2VydmljZVVyaSA6IHRoZSBzZXJ2aWNlIHVyaVxyXG4gICAqIEBwYXJhbSBwcm9kdWN0czogdGhlIHN1cHBvcnRlZCBwcm9kdWN0c1xyXG4gICAqIEBwYXJhbSBwcm9kdWN0TW9kdWxlczogdGhlIHN1cHBvcnRlZCBwcm9kdWN0IG1vZHVsZXNcclxuICAgKiBAcGFyYW0gZmxhZ3M6IHRoZSBzZXJ2aWNlIGZsYWdzLiBEZWZhdWx0IGlzIG5vbmUuXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZShcclxuICAgIHNlcnZpY2VVcmk6IHN0cmluZyA9IG51bGwsXHJcbiAgICBwcm9kdWN0czogU3VwcG9ydFByb2R1Y3QgPSBTdXBwb3J0UHJvZHVjdC5Ob25lLFxyXG4gICAgcHJvZHVjdE1vZHVsZXM6IFN1cHBvcnRQcm9kdWN0TW9kdWxlID0gU3VwcG9ydFByb2R1Y3RNb2R1bGUuTm9uZSxcclxuICAgIGZsYWdzOiBTdXBwb3J0U2VydmljZUZsYWdzID0gU3VwcG9ydFNlcnZpY2VGbGFncy5Ob25lKSB7XHJcblxyXG4gICAgLy8gQ3JlYXRlIHVuaXF1ZSBjbGllbnQgaWRcclxuICAgIGlmICghbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1cHBvcnRfY2xpZW50X2lkJykpXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdXBwb3J0X2NsaWVudF9pZCcsIFN5c3RlbVV0aWxzLmdlbmVyYXRlVVVJRCgpKTtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplXHJcbiAgICB0aGlzLl9zZXJ2aWNlVXJpID0gc2VydmljZVVyaTtcclxuICAgIHRoaXMuX2ZsYWdzID0gZmxhZ3M7XHJcbiAgICB0aGlzLnByb2R1Y3RzID0gcHJvZHVjdHM7XHJcbiAgICB0aGlzLnByb2R1Y3RNb2R1bGVzID0gcHJvZHVjdE1vZHVsZXM7XHJcblxyXG4gICAgLy8gUmVhY3QgdG8gbWVzc2FnZSBicm9hZGNhc3RpbmdcclxuICAgIGlmICghdGhpcy5icm9hZGNhc3RTZXJ2aWNlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZVN1YnNjcmlwdGlvbiA9IHRoaXMuYnJvYWRjYXN0U2VydmljZS5nZXRNZXNzYWdlKCkuc3Vic2NyaWJlKChtZXNzYWdlOiBCcm9hZGNhc3RNZXNzYWdlSW5mbykgPT4ge1xyXG4gICAgICAgIGlmIChtZXNzYWdlLmlkID09PSBTdXBwb3J0TWVzc2FnZXMuTE9HSU5fQ0hBTkdFRCkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW4obWVzc2FnZS5kYXRhLmVtYWlsLCBtZXNzYWdlLmRhdGEub2F1dGgsIG1lc3NhZ2UuZGF0YS5vYXV0aEFjY2Vzc1Rva2VuKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50VW5yZWFkTm90aWZpY2F0aW9ucygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sIGVycm9yOiAoKSA9PiB7IGNvbnNvbGUuZXJyb3IoXCJBUlMgU3VwcG9ydCBub24gZGlzcG9uaWJpbGUuXCIpIH0gLy8gQXZvaWQgdW53YW50ZWQgZXJyb3JzIG9uIGNsaWVudCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pZCA9PT0gU3VwcG9ydE1lc3NhZ2VzLkxPR09VVCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMubG9nZ2VkSW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pZCA9PT0gU3VwcG9ydE1lc3NhZ2VzLk5PVElGSUNBVElPTl9SRUFEKSB7XHJcbiAgICAgICAgICB0aGlzLmNvdW50VW5yZWFkTm90aWZpY2F0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXZlbHVhdGUgY3VycmVudCBzZXNzaW9uIHN0b3JhZ2UgaW4gY2FzZSBvZiBwYWdlIHJlZnJlc2ggKEY1KVxyXG4gICAgaWYgKCF0aGlzLmxvZ2dlZEluKCkgJiYgdGhpcy5nZXRUb2tlbigpKSB7XHJcbiAgICAgIC8vIEF1dG8gbG9naW5cclxuICAgICAgdGhpcy5sb2dnZWRJbi5zZXQodHJ1ZSk7XHJcbiAgICAgIC8vIE5vdGlmeVxyXG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLkxPR0lOX0NPTVBMRVRFRCk7XHJcbiAgICAgIC8vIFNldCBrZWVwIGFsaXZlXHJcbiAgICAgIHRoaXMuc2V0S2VlcEFsaXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQga2VlcCBhbGl2ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0S2VlcEFsaXZlKCkge1xyXG4gICAgLy8gS2VlcCBhbGl2ZSBldmVyeSAxIG1pblxyXG4gICAgaWYgKHRoaXMua2VlcEFsaXZlID09PSAwKSB7XHJcbiAgICAgIHRoaXMua2VlcEFsaXZlID0gd2luZG93LnNldEludGVydmFsKFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGluZygpO1xyXG4gICAgICAgIH0sIDEwMDAgKiA2MCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUga2VlcCBhbGl2ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlS2VlcEFsaXZlKCkge1xyXG4gICAgaWYgKHRoaXMua2VlcEFsaXZlID4gMCkge1xyXG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmtlZXBBbGl2ZSk7XHJcbiAgICAgIHRoaXMua2VlcEFsaXZlID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBQaW5nXHJcbiAqL1xyXG4gIHBpbmcoKSB7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3VsdDxudW1iZXI+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvcGluZydcclxuICAgIClcclxuICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4ge3JldHVybiBFTVBUWX0pKVxyXG4gICAgLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIFNldCBKV1QgdG9rZW5cclxuICogQHBhcmFtIHZhbHVlIDogdGhlIGxvZ2luIHJlc3VsdFxyXG4gKi9cclxuICBwcml2YXRlIHNldFRva2VuKHZhbHVlOiBTdXBwb3J0TG9naW5SZXN1bHQpIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3N1cHBvcnRfand0JywgdmFsdWUudG9rZW4pO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3VwcG9ydF9qd3RfcmVmcmVzaCcsIHZhbHVlLnJlZnJlc2hUb2tlbiA/PyAnJyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGN1cnJlbnQgSldUIHRva2VuXHJcbiAgICogQHBhcmFtIHJlZnJlc2g6IHRydWUgdG8gZ2V0IHRoZSByZWZyZXNoIHRva2VuLiBEZWZhdWx0IGlzIGZhbHNlLlxyXG4gICAqL1xyXG4gIGdldFRva2VuKHJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgdG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHJlZnJlc2ggPyAnc3VwcG9ydF9qd3RfcmVmcmVzaCcgOiAnc3VwcG9ydF9qd3QnKTtcclxuICAgIGlmICh0b2tlbiAmJiB0b2tlblswXSA9PT0gJ1wiJykge1xyXG4gICAgICByZXR1cm4gdG9rZW4uc3Vic3RyaW5nKDEsIHRva2VuLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRva2VuID8/ICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiogUGVyZm9ybSBsb2dpbiAgIFxyXG4qIEBwYXJhbSBlbWFpbDogdGhlIGd1ZXN0IGVtYWlsXHJcbiogQHBhcmFtIG9hdXRoOiB0aGUgb3B0aW9uYWwgb3BlbiBhdXRoZW50aWNhdGlvbiBzdXBwb3J0ZWRcclxuKiBAcGFyYW0gb2F1dGhBY2Nlc3NUb2tlbjogdGhlIG9wdGlvbmFsIG9hdXRoMiBhY2Nlc3MgdG9rZW5cclxuKiBAcmV0dXJuczogdGhlIGxvZ2luIHJlc3VsdFxyXG4qL1xyXG4gIGxvZ2luKGVtYWlsOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbCxcclxuICAgIG9hdXRoOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbCxcclxuICAgIG9hdXRoQWNjZXNzVG9rZW46IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsKSB7XHJcbiAgICB0aGlzLmxvZ2dpbmdJbi5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PEFwaVJlc3VsdDxTdXBwb3J0TG9naW5SZXN1bHQ+PihcclxuICAgICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9sb2dpbicsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdXNlcjogb2F1dGggPiAwID8gbnVsbCA6IGVtYWlsLFxyXG4gICAgICAgICAgY2xpZW50SWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic3VwcG9ydF9jbGllbnRfaWRcIiksXHJcbiAgICAgICAgICBPQVVUSDogb2F1dGhcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6XHJcbiAgICAgICAgICAgICFvYXV0aFxyXG4gICAgICAgICAgICAgID8gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgICA6IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgICAgICAuc2V0KFwiQXV0aG9yaXphdGlvblwiLCBvYXV0aEFjY2Vzc1Rva2VuKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZ0luLnNldChmYWxzZSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIG1hcCgocjogQXBpUmVzdWx0PFN1cHBvcnRMb2dpblJlc3VsdD4pID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZ0luLnNldChmYWxzZSk7XHJcbiAgICAgICAgICBpZiAoci5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VG9rZW4oci52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvZ2luSW5mbyA9IHIudmFsdWUuY29udGV4dDtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZWRJbi5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIE5vdGlmeVxyXG4gICAgICAgICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLkxPR0lOX0NPTVBMRVRFRCk7XHJcbiAgICAgICAgICAgIC8vIEtlZXAgYWxpdmVcclxuICAgICAgICAgICAgdGhpcy5zZXRLZWVwQWxpdmUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSBsb2dvdXRcclxuICAgKi9cclxuICBsb2dvdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PGFueT4odGhpcy5fc2VydmljZVVyaSArICcvbG9nb3V0Jywge30pLnBpcGUoXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4geyB0aGlzLnJlbW92ZUtlZXBBbGl2ZSgpIH0pLFxyXG4gICAgICAgIG1hcChyID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKF9lKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBsb2dpbiByZWZyZXNoIHRpbWVyIGFuZCBsb2dpbnMgc3RhdGVcclxuICAgKi9cclxuICByZXNldCgpIHtcclxuICAgIC8vIENsZWFyIGxvZ2luIGluZm9cclxuICAgIHRoaXMuX2xvZ2luSW5mbyA9IG51bGw7XHJcbiAgICB0aGlzLmxvZ2dlZEluLnNldChmYWxzZSk7XHJcblxyXG4gICAgLy8gTm90aWZ5XHJcbiAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc2VuZE1lc3NhZ2UoU3VwcG9ydE1lc3NhZ2VzLkxPR09VVF9DT01QTEVURUQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgbG9naW4gZGF0YVxyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgLy8gUmVzZXQgbG9naW5cclxuICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgICAvLyBDbGVhciBsb2NhbCBzdG9yYWdlXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdzdXBwb3J0X2p3dCcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnc3VwcG9ydF9qd3RfcmVmcmVzaCcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIFBlcmZvcm0gdG9rZW4gcmVmcmVzaFxyXG4gKi9cclxuICByZWZyZXNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PFN1cHBvcnRMb2dpblJlc3VsdD4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9yZWZyZXNoMi8/dG9rZW49JyArIHRoaXMuZ2V0VG9rZW4odHJ1ZSlcclxuICAgICkucGlwZShtYXAoKHI6IEFwaVJlc3VsdDxTdXBwb3J0TG9naW5SZXN1bHQ+KSA9PiB7XHJcbiAgICAgIC8vIFVwZGF0ZSB0b2tlblxyXG4gICAgICB0aGlzLnNldFRva2VuKHIudmFsdWUpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmF2aWdhdGUgdG8gc3VwcG9ydCBzZXJ2aWNlXHJcbiAgICovXHJcbiAgb3BlbigpIHtcclxuICAgIGxldCB1cmkgPSB0aGlzLnNlcnZpY2VVcmkgPz8gJyc7XHJcbiAgICBpZiAodXJpLmVuZHNXaXRoKCcvYXBpJykpXHJcbiAgICAgIHVyaSA9IHVyaS5zdWJzdHJpbmcoMCwgdXJpLmxlbmd0aCAtIDQpXHJcbiAgICB3aW5kb3cub3Blbih1cmkpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLy9cclxuICAvLyBOT1RJRklDQVRJT05TXHJcbiAgLy8vL1xyXG5cclxuICAvKipcclxuICAgKiBDb3VudCB1bnJlYWQgbm90aWZpY2F0aW9uc1xyXG4gICAqL1xyXG4gIGNvdW50VW5yZWFkTm90aWZpY2F0aW9ucygpIHtcclxuICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzdWx0PG51bWJlcj4+KFxyXG4gICAgICB0aGlzLl9zZXJ2aWNlVXJpICsgJy9ub3RpZmljYXRpb25zL2NvdW50LXVucmVhZC8/cHJvZHVjdHM9JyArICh0aGlzLnByb2R1Y3RzID8/IDApICsgXCImbW9kdWxlcz1cIiArICh0aGlzLnByb2R1Y3RNb2R1bGVzID8/IDApXHJcbiAgICApLnN1YnNjcmliZSgocjogQXBpUmVzdWx0PG51bWJlcj4pID0+IHtcclxuICAgICAgaWYgKHIuc3VjY2Vzcykge1xyXG4gICAgICAgIHRoaXMudW5yZWFkTm90aWZpY2F0aW9ucy5zZXQoci52YWx1ZSA+IDAgPyByLnZhbHVlIDogbnVsbClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBRdWVyeSBub3RpZmljYXRpb25zXHJcbiAgICogQHBhcmFtIHBhcmFtczogcXVlcnkgcGFyYW1ldGVyc1xyXG4gICAqL1xyXG4gIHF1ZXJ5Tm90aWZpY2F0aW9ucyhwYXJhbXM6IFN1cHBvcnROb3RpZmljYXRpb25zU2VhcmNoUGFyYW1zKSB7XHJcbiAgICBwYXJhbXMucHJvZHVjdHMgPSB0aGlzLnByb2R1Y3RzID8/IDA7XHJcbiAgICBwYXJhbXMucHJvZHVjdE1vZHVsZXMgPSB0aGlzLnByb2R1Y3RNb2R1bGVzID8/IDA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PFN1cHBvcnROb3RpZmljYXRpb25zU2VhcmNoUmVzdWx0Pj4oXHJcbiAgICAgIHRoaXMuX3NlcnZpY2VVcmkgKyAnL25vdGlmaWNhdGlvbnMnLFxyXG4gICAgICBwYXJhbXNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhIG5vdGlmaWNhdGlvblxyXG4gICAqIEBwYXJhbSBpZDogdGhlIG5vdGlmaWNhdGlvbiBpZFxyXG4gICAqL1xyXG4gIGdldE5vdGlmaWNhdGlvbihpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlSZXN1bHQ8U3VwcG9ydE5vdGlmaWNhdGlvbkluZm8+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArXHJcbiAgICAgICcvbm90aWZpY2F0aW9ucy8nICtcclxuICAgICAgaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXJrIGEgZ3JvdXAgb2Ygbm90aWZpY2F0aW9ucyBhcyByZWFkXHJcbiAgICogQHBhcmFtIGlkczogdGhlIGFycmF5IG9mIG5vdGlmaWNhdGlvbidzIGlkcyB0byBzZXQgYXMgcmVhZFxyXG4gICAqL1xyXG4gIG1hcmtOb3RpZmljYXRpb25zKHBhcmFtczogU3VwcG9ydE5vdGlmaWNhdGlvbnNNYXJrUGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzdWx0PGJvb2xlYW4+PihcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvbm90aWZpY2F0aW9ucy9tYXJrJyxcclxuICAgICAgcGFyYW1zXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIERvd25sb2FkIGEgbm90aWZpY2F0aW9uIGRvY3VtZW50XHJcbiAqIEBwYXJhbSBkb2N1bWVudElkIDogdGhlIG5vdGlmaWNhdGlvbiBkb2N1bWVudCBpZFxyXG4gKi9cclxuICBkb3dsb2FkTm90aWZpY2F0aW9uRG9jdW1lbnQoZG9jdW1lbnRJZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcclxuICAgICAgdGhpcy5fc2VydmljZVVyaSArICcvZG9jdW1lbnRzL2Rvd25sb2FkLycgKyBkb2N1bWVudElkLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|