@esfaenza/admin-module 11.2.2 → 11.2.4-beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/esfaenza-admin-module.umd.js +85 -42
- package/bundles/esfaenza-admin-module.umd.js.map +1 -1
- package/bundles/esfaenza-admin-module.umd.min.js +2 -2
- package/bundles/esfaenza-admin-module.umd.min.js.map +1 -1
- package/esfaenza-admin-module.d.ts +1 -0
- package/esfaenza-admin-module.metadata.json +1 -1
- package/esm2015/esfaenza-admin-module.js +2 -1
- package/esm2015/lib/admin-module-messages.js +8 -0
- package/esm2015/lib/admin-module.comms.service.js +31 -0
- package/esm2015/lib/admin-module.module.js +21 -3
- package/esm2015/lib/components/audits/adm_audits.component.js +6 -6
- package/esm2015/lib/components/enqueues/adm_enq.component.js +6 -7
- package/esm2015/lib/components/logs/adm_logs.component.js +6 -6
- package/esm2015/lib/components/metrics/metrics_search.component.js +6 -7
- package/esm2015/lib/components/profiler/adm_profiler.component.js +6 -7
- package/esm2015/lib/components/topact/topact_search.component.js +6 -8
- package/esm2015/lib/components/workers/adm_wrk.component.js +6 -8
- package/esm2015/lib/models/shared/Locale.js +1 -1
- package/esm2015/public-api.js +2 -2
- package/fesm2015/esfaenza-admin-module.js +79 -34
- package/fesm2015/esfaenza-admin-module.js.map +1 -1
- package/lib/admin-module-messages.d.ts +6 -0
- package/lib/admin-module.comms.service.d.ts +7 -0
- package/lib/admin-module.module.d.ts +3 -0
- package/lib/components/audits/adm_audits.component.d.ts +3 -3
- package/lib/components/enqueues/adm_enq.component.d.ts +3 -4
- package/lib/components/logs/adm_logs.component.d.ts +3 -3
- package/lib/components/metrics/metrics_search.component.d.ts +3 -4
- package/lib/components/profiler/adm_profiler.component.d.ts +3 -4
- package/lib/components/topact/topact_search.component.d.ts +3 -4
- package/lib/components/workers/adm_wrk.component.d.ts +3 -4
- package/package.json +2 -1
- package/public-api.d.ts +1 -1
- package/esm2015/lib/communications/base/BaseModuleCommunicationsConsumer.js +0 -3
- package/lib/communications/base/BaseModuleCommunicationsConsumer.d.ts +0 -3
|
@@ -8,22 +8,20 @@ import { DateValue, Limit, LineChartData, LineSerie } from "@esfaenza/es-charts"
|
|
|
8
8
|
import { LocalizationService } from "@esfaenza/localizations";
|
|
9
9
|
import { PreferencesService } from "@esfaenza/preferences";
|
|
10
10
|
import { HTTPService } from "@esfaenza/httpservice";
|
|
11
|
-
import { DateService } from "@esfaenza/extensions";
|
|
11
|
+
import { DateService, InboundMessageTypes, InterComService } from "@esfaenza/extensions";
|
|
12
12
|
import { map } from "rxjs/operators";
|
|
13
|
-
// Applicazione
|
|
14
|
-
import { BaseModuleCommunicationsConsumer } from "../../communications/base/BaseModuleCommunicationsConsumer";
|
|
15
13
|
import { Repository } from "../../models/externals/Repository";
|
|
16
14
|
import { TopActivitiesDataView } from "../../models/components/TopActivitiesDataView";
|
|
17
15
|
import { ADM_BACKEND_URL, ADM_MODULE_PATH } from "../../tokens";
|
|
18
16
|
// Localizzazione
|
|
19
17
|
import { AdmTopActivitieLoc } from "./topact_search.component.loc";
|
|
20
18
|
export class AdmTopActivitiesComponent {
|
|
21
|
-
constructor(dateExts, lc, localStorage, location,
|
|
19
|
+
constructor(dateExts, lc, localStorage, location, intercom, http, route, backend, mod) {
|
|
22
20
|
this.dateExts = dateExts;
|
|
23
21
|
this.lc = lc;
|
|
24
22
|
this.localStorage = localStorage;
|
|
25
23
|
this.location = location;
|
|
26
|
-
this.
|
|
24
|
+
this.intercom = intercom;
|
|
27
25
|
this.http = http;
|
|
28
26
|
this.route = route;
|
|
29
27
|
this.backend = backend;
|
|
@@ -42,7 +40,7 @@ export class AdmTopActivitiesComponent {
|
|
|
42
40
|
["sleeptime"]: "Sleep",
|
|
43
41
|
["iotime"]: "IO"
|
|
44
42
|
};
|
|
45
|
-
this.
|
|
43
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
46
44
|
}
|
|
47
45
|
ngOnInit() {
|
|
48
46
|
this.storageSub = this.route.queryParams.subscribe(params => {
|
|
@@ -184,10 +182,10 @@ AdmTopActivitiesComponent.ctorParameters = () => [
|
|
|
184
182
|
{ type: LocalizationService },
|
|
185
183
|
{ type: PreferencesService },
|
|
186
184
|
{ type: Location },
|
|
187
|
-
{ type:
|
|
185
|
+
{ type: InterComService },
|
|
188
186
|
{ type: HTTPService },
|
|
189
187
|
{ type: ActivatedRoute },
|
|
190
188
|
{ type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] },
|
|
191
189
|
{ type: String, decorators: [{ type: Inject, args: [ADM_MODULE_PATH,] }] }
|
|
192
190
|
];
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBc0IsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUluRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsZUFBZTtBQUNmLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBRTlHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRSxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7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O1lBUFgsY0FBYzt5Q0FxRGQsTUFBTSxTQUFDLGVBQWU7eUNBQ3RCLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCwgRGF0ZVZhbHVlLCBMaW1pdCwgTGluZUNoYXJ0RGF0YSwgTGluZVNlcmllIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy1jaGFydHNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgKiBhcyBhbTRjaGFydHMgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvY2hhcnRzXCI7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyIH0gZnJvbSBcIi4uLy4uL2NvbW11bmljYXRpb25zL2Jhc2UvQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXJcIjtcclxuaW1wb3J0IHsgRGlyZWN0b3JJbmZvcyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9EaXJlY3RvckluZm9zXCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcbmltcG9ydCB7IFRvcEFjdGl2aXRpZXNEYXRhVmlldyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9Ub3BBY3Rpdml0aWVzRGF0YVZpZXdcIjtcclxuaW1wb3J0IHsgVG9wTm9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9Ub3BOb2RlXCI7XHJcbmltcG9ydCB7IFRvcFNlc3Npb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wU2Vzc2lvblwiO1xyXG5pbXBvcnQgeyBBRE1fQkFDS0VORF9VUkwsIEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbVRvcEFjdGl2aXRpZUxvYyB9IGZyb20gXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50LmxvY1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidG9wYWN0X3NlYXJjaFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtVG9wQWN0aXZpdGllTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHByaXZhdGUgTGFzdERhdGFQb2ludDogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgcHJpdmF0ZSBDaGFydEluc3RhbmNlOiBCYXNlQ2hhcnRDb21wb25lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGRhdGVFeHRzOiBEYXRlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZTogQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhdGUuaGFuZGxlTmF2aWdhdGlvbih0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxUb3BBY3Rpdml0aWVzRGF0YVZpZXc+KFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vdG9wYWN0YCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaFRvcEFjdFwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFRvcEFjdGl2aXRpZXNEYXRhVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllc1wiXSwgdGhpcy5zZWFyY2hWaWV3LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgVG9wQWN0aXZpdGllc0RhdGFWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2hWaWV3T3ZlcnJpZGU6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllc1wiXSwgc2VhcmNoVmlld092ZXJyaWRlID8/IHRoaXMuc2VhcmNoVmlldywgdXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0SXRlbXModXJsOiBzdHJpbmcsIGRhdGE6IFRvcEFjdGl2aXRpZXNEYXRhVmlldywgdXBkYXRlOiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFRvcEFjdGl2aXRpZXNEYXRhVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUoYXN5bmMgKHQpID0+IHtcclxuICAgICAgICAgICAgLy9TZSBzb25vIGluIG1vZGFsaXTDoCBkaSB1cGRhdGUgbm9uIGRldm8gdG9jY2FyZSBsYSBzZWFyY2hWaWV3IGF0dHVhbGUgc2Ugbm9uIHBlciBpbCBzZWFyY2hpbnByb2dyZXNzIGNoZSB2aWVuZSBtZXNzbyBkYWxsJ2VzIHRhYmxlXHJcbiAgICAgICAgICAgIGlmICghdXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkhvdFNlYXJjaFRvcEFjdFwiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBkaXJpbmZvcyA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3JJbmZvcygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJldmlld0JpbmRpbmdzKHVwZGF0ZSwgdCwgZGlyaW5mb3MpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERpcmVjdG9ySW5mb3MoKTogUHJvbWlzZTxEaXJlY3RvckluZm9zPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGlyZWN0b3JJbmZvcz4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fR2V0SW5mb3NcIl0pLnBpcGUobWFwKHJlcyA9PiB7IHJldHVybiByZXM7IH0pKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRyYXNmb3JtYXppb25lIGRhIHNlYXJjaHZpZXcgY29uIHVuaWNvIGVsZW1lbnRvIGNvbiB0dXR0byBhaSAzIGVsZW1lbnRpOlxyXG4gICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBHcmFmaWNvLCBUb3BOb2RlcyBlIFRvcFNlc3Npb25zXHJcbiAgICBUb3BBY3RpdmVTZXNzaW9uczogTGluZUNoYXJ0RGF0YTtcclxuICAgIFRvcE5vZGVzOiBUb3BOb2RlW107XHJcbiAgICBUb3BTZXNzaW9uczogVG9wU2Vzc2lvbltdO1xyXG4gICAgRGlySW5mb3M6IERpcmVjdG9ySW5mb3M7XHJcbiAgICBzZXJpZXNQcm9wZXJ0aWVzTWFwcGluZzogeyBbaW5kZXg6IHN0cmluZ106IExpbmVTZXJpZSB9ID0ge307XHJcbiAgICBwcm9wZXJ0aWVzU2VyaWVzTWFwcGluZzogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICAgIFtcImNwdXRpbWVcIl06IFwiQ1BVXCIsXHJcbiAgICAgICAgW1wid2FpdHRpbWVcIl06IFwiV2FpdFwiLFxyXG4gICAgICAgIFtcInNjcmlwdHRpbWVcIl06IFwiU2NyaXB0aW5nXCIsXHJcbiAgICAgICAgW1wiZGJ0aW1lXCJdOiBcIkRCXCIsXHJcbiAgICAgICAgW1wibmV0dGltZVwiXTogXCJOZXR3b3JrXCIsXHJcbiAgICAgICAgW1widGhyb3R0bGV0aW1lXCJdOiBcIlRocm90dGxpbmdcIixcclxuICAgICAgICBbXCJzbGVlcHRpbWVcIl06IFwiU2xlZXBcIixcclxuICAgICAgICBbXCJpb3RpbWVcIl06IFwiSU9cIlxyXG4gICAgfTtcclxuXHJcbiAgICByZXZpZXdCaW5kaW5ncyh1cGRhdGU6IGJvb2xlYW4sIHNlYXJjaFZpZXdPdmVycmlkZT8sIGRpckluZm9zPzogRGlyZWN0b3JJbmZvcykge1xyXG4gICAgICAgIGxldCByZWZlcmVuY2UgPSAoc2VhcmNoVmlld092ZXJyaWRlID8/IHRoaXMuc2VhcmNoVmlldykuaXRlbXNbMF07XHJcbiAgICAgICAgdGhpcy5Ub3BOb2RlcyA9IHJlZmVyZW5jZS50b3Bub2RlcztcclxuICAgICAgICB0aGlzLlRvcFNlc3Npb25zID0gcmVmZXJlbmNlLnRvcHNlc3Npb25zO1xyXG4gICAgICAgIHRoaXMuRGlySW5mb3MgPSBkaXJJbmZvcztcclxuXHJcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UuYWN0c2Vzc2lvbnMgfHwgcmVmZXJlbmNlLmFjdHNlc3Npb25zLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuVG9wQWN0aXZlU2Vzc2lvbnMgPSBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2VyaWVzOiBMaW5lU2VyaWVbXSA9IFtdO1xyXG4gICAgICAgIGxldCBwcm9wcyA9IE9iamVjdC5rZXlzKHJlZmVyZW5jZS5hY3RzZXNzaW9uc1swXSk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAocHJvcHNbaV0gIT0gJ3NhbXBsZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcyA9IG5ldyBMaW5lU2VyaWUodGhpcy5wcm9wZXJ0aWVzU2VyaWVzTWFwcGluZ1twcm9wc1tpXV0sIFtdLCBudWxsLCBudWxsLCBcInNlc3Npb25zXCIpO1xyXG4gICAgICAgICAgICAgICAgc2VyaWVzLnB1c2gocyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcmllc1Byb3BlcnRpZXNNYXBwaW5nW3Byb3BzW2ldXSA9IHM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVmZXJlbmNlLmFjdHNlc3Npb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtcmVmID0gcmVmZXJlbmNlLmFjdHNlc3Npb25zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdGhlRCA9IG5ldyBEYXRlKGl0ZW1yZWYuc2FtcGxldGltZSk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgaWYgKHByb3BzW2ldICE9ICdzYW1wbGV0aW1lJyAmJiAoIXVwZGF0ZSB8fCB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoZUQpLmlzQWZ0ZXIodGhpcy5MYXN0RGF0YVBvaW50KSkpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJpZXNQcm9wZXJ0aWVzTWFwcGluZ1twcm9wc1tpXV0udmFsdWVzLnB1c2gobmV3IERhdGVWYWx1ZSh0aGVELCBpdGVtcmVmW3Byb3BzW2ldXSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHVwZGF0ZSAmJiB0aGlzLkNoYXJ0SW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSBuZXcgTGluZUNoYXJ0RGF0YShzZXJpZXMsIG5ldyBMaW1pdChkaXJJbmZvcz8udGhyZWFkcywgdGhpcy5sYy5sb2MoXCJNYXhpbXVtIFRocmVhZHNcIikpKTtcclxuICAgICAgICAgICAgaWYgKHNlcmllcy5zb21lKHQgPT4gdC52YWx1ZXMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuQ2hhcnRJbnN0YW5jZS5hZGREYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5MYXN0RGF0YVBvaW50ID0gc2VyaWVzLm1hcCh0ID0+IGRheWpzLm1heCh0LnZhbHVlcy5tYXAodiA9PiB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHYuZCkpKSlbMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuVG9wQWN0aXZlU2Vzc2lvbnMgPSBuZXcgTGluZUNoYXJ0RGF0YShzZXJpZXMsIG5ldyBMaW1pdChkaXJJbmZvcz8udGhyZWFkcywgdGhpcy5sYy5sb2MoXCJNYXhpbXVtIFRocmVhZHNcIikpKTtcclxuICAgICAgICAgICAgdGhpcy5MYXN0RGF0YVBvaW50ID0gc2VyaWVzLm1hcCh0ID0+IGRheWpzLm1heCh0LnZhbHVlcy5tYXAodiA9PiB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHYuZCkpKSlbMF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICNyZWdpb24gR2VzdGlvbmUgdXBkYXRlIGF1dG9tYXRpY29cclxuICAgIHVwZGF0ZVRpbWVyOiBhbnk7XHJcbiAgICBhdXRvVXBkYXRlQ2hhbmdlZCgpIHtcclxuICAgICAgICBpZiAoIS9eWzEtOV1cXGQqJC8udGVzdCh0aGlzLnNlY29uZHMpKVxyXG4gICAgICAgICAgICB0aGlzLnNlY29uZHMgPSAnMTAnO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHNJbk1zID0gcGFyc2VJbnQodGhpcy5zZWNvbmRzLCBudWxsKSAqIDEwMDA7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b1VwZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goZmFsc2UsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4geyB0aGlzLnNlbmRTZWFyY2goZmFsc2UsIHRydWUpOyB9LCBzZWNvbmRzSW5Ncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnVwZGF0ZVRpbWVyKTtcclxuICAgIH1cclxuICAgIC8vICNlbmRyZWdpb25cclxuXHJcbiAgICBwcml2YXRlIGZyb206IERhdGU7XHJcbiAgICBwcml2YXRlIHRvOiBEYXRlO1xyXG5cclxuICAgIGRhdGFTZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiB7IGZyb206IERhdGUsIHRvOiBEYXRlLCBpbml0aWFsOiBib29sZWFuIH0pIHtcclxuICAgICAgICB0aGlzLmZyb20gPSBldmVudC5pbml0aWFsID8gKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJmcm9tID8gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih0aGlzLnNlYXJjaFZpZXcuZmlsdGVyZnJvbSkudG9EYXRlKCkgOiBcIlwiKSA6IGV2ZW50LmZyb207XHJcbiAgICAgICAgdGhpcy50byA9IGV2ZW50LmluaXRpYWwgPyAodGhpcy5zZWFyY2hWaWV3LmZpbHRlcnRvID8gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih0aGlzLnNlYXJjaFZpZXcuZmlsdGVydG8pLnRvRGF0ZSgpIDogXCJcIikgOiBldmVudC50bztcclxuXHJcbiAgICAgICAgdmFyIHBzZXVkb1NlYXJjaFZpZXc6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWFyY2hWaWV3KSk7XHJcbiAgICAgICAgcHNldWRvU2VhcmNoVmlldy5maWx0ZXJmcm9tID0gdGhpcy5mcm9tID8gZGF5anModGhpcy5mcm9tKS5mb3JtYXQodGhpcy5sYy50b2tlbihcImdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdFwiKSkgOiBcIlwiO1xyXG4gICAgICAgIHBzZXVkb1NlYXJjaFZpZXcuZmlsdGVydG8gPSB0aGlzLnRvID8gZGF5anModGhpcy50bykuZm9ybWF0KHRoaXMubGMudG9rZW4oXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXRcIikpIDogXCJcIjtcclxuICAgICAgICB0aGlzLnNlbmRTZWFyY2godHJ1ZSwgdHJ1ZSwgcHNldWRvU2VhcmNoVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFydExvYWRlZChjaGFydDogQmFzZUNoYXJ0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5DaGFydEluc3RhbmNlID0gY2hhcnQ7XHJcbiAgICAgICAgY2hhcnQuQ2hhcnQuZXZlbnRzLm9uKFwicmVhZHlcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS54QXhlcy5lYWNoKHggPT4geC56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcbiAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnlBeGVzLmVhY2goeSA9PiB5Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS54QXhlcy5lYWNoKHggPT4geC56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcbiAgICAgICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS55QXhlcy5lYWNoKHkgPT4geS56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gNTAwIG1pbGxpc2Vjb25kaSDDqCBwacO5IG8gbWVubyBpbCB0ZW1wbyBkaSBwcmltYSBhbmltYXppb25lIGRlbCBncmFmaWNvLiBGaW5pdG8gcXVlc3RvIHNpIHJlc2V0dGEgbG8gem9vbVxyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBc0IsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRSxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFTbkUsTUFBTSxPQUFPLHlCQUF5QjtJQVVsQyxZQUNX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LGVBQWU7WUFEakQsV0FBVztZQVBYLGNBQWM7eUNBa0RkLE1BQU0sU0FBQyxlQUFlO3lDQUN0QixNQUFNLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlQ2hhcnRDb21wb25lbnQsIERhdGVWYWx1ZSwgTGltaXQsIExpbmVDaGFydERhdGEsIExpbmVTZXJpZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UsIEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgKiBhcyBhbTRjaGFydHMgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvY2hhcnRzXCI7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IERpcmVjdG9ySW5mb3MgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvRGlyZWN0b3JJbmZvc1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wQWN0aXZpdGllc0RhdGFWaWV3XCI7XHJcbmltcG9ydCB7IFRvcE5vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wTm9kZVwiO1xyXG5pbXBvcnQgeyBUb3BTZXNzaW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1RvcFNlc3Npb25cIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMLCBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1Ub3BBY3Rpdml0aWVMb2MgfSBmcm9tIFwiLi90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidG9wYWN0X3NlYXJjaFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtVG9wQWN0aXZpdGllTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHByaXZhdGUgTGFzdERhdGFQb2ludDogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgcHJpdmF0ZSBDaGFydEluc3RhbmNlOiBCYXNlQ2hhcnRDb21wb25lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGRhdGVFeHRzOiBEYXRlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIEluaXQoaWdub3JlU3RvcmUpIHtcclxuICAgICAgICB0aGlzLmRvSW5pdChpZ25vcmVTdG9yZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZG9Jbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08VG9wQWN0aXZpdGllc0RhdGFWaWV3PihcIkhvdFNlYXJjaFRvcEFjdFwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgL3BhZ2VzLyR7dGhpcy5tb2R9L3RvcGFjdGApO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3RTZWFyY2hUb3BBY3RcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcpIHtcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IEhvdFBvdGF0bztcclxuICAgICAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFRvcEFjdGl2aXRpZXNcIl0sIHRoaXMuc2VhcmNoVmlldywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFNlYXJjaChyZXNldFBhZ2U6IGJvb2xlYW4gPSB0cnVlLCB1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZSwgc2VhcmNoVmlld092ZXJyaWRlOiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIGlmIChyZXNldFBhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5wYWdlID0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFRvcEFjdGl2aXRpZXNcIl0sIHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcsIHVwZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldEl0ZW1zKHVybDogc3RyaW5nLCBkYXRhOiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcsIHVwZGF0ZTogYm9vbGVhbikge1xyXG5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxUb3BBY3Rpdml0aWVzRGF0YVZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKGFzeW5jICh0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vU2Ugc29ubyBpbiBtb2RhbGl0w6AgZGkgdXBkYXRlIG5vbiBkZXZvIHRvY2NhcmUgbGEgc2VhcmNoVmlldyBhdHR1YWxlIHNlIG5vbiBwZXIgaWwgc2VhcmNoaW5wcm9ncmVzcyBjaGUgdmllbmUgbWVzc28gZGFsbCdlcyB0YWJsZVxyXG4gICAgICAgICAgICBpZiAoIXVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hUb3BBY3RcIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGlyaW5mb3MgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9ySW5mb3MoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZXZpZXdCaW5kaW5ncyh1cGRhdGUsIHQsIGRpcmluZm9zKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXJlY3RvckluZm9zKCk6IFByb21pc2U8RGlyZWN0b3JJbmZvcz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERpcmVjdG9ySW5mb3M+KHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJHRVRfQWRtX0dldEluZm9zXCJdKS5waXBlKG1hcChyZXMgPT4geyByZXR1cm4gcmVzOyB9KSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUcmFzZm9ybWF6aW9uZSBkYSBzZWFyY2h2aWV3IGNvbiB1bmljbyBlbGVtZW50byBjb24gdHV0dG8gYWkgMyBlbGVtZW50aTpcclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogR3JhZmljbywgVG9wTm9kZXMgZSBUb3BTZXNzaW9uc1xyXG4gICAgVG9wQWN0aXZlU2Vzc2lvbnM6IExpbmVDaGFydERhdGE7XHJcbiAgICBUb3BOb2RlczogVG9wTm9kZVtdO1xyXG4gICAgVG9wU2Vzc2lvbnM6IFRvcFNlc3Npb25bXTtcclxuICAgIERpckluZm9zOiBEaXJlY3RvckluZm9zO1xyXG4gICAgc2VyaWVzUHJvcGVydGllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBMaW5lU2VyaWUgfSA9IHt9O1xyXG4gICAgcHJvcGVydGllc1Nlcmllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgICBbXCJjcHV0aW1lXCJdOiBcIkNQVVwiLFxyXG4gICAgICAgIFtcIndhaXR0aW1lXCJdOiBcIldhaXRcIixcclxuICAgICAgICBbXCJzY3JpcHR0aW1lXCJdOiBcIlNjcmlwdGluZ1wiLFxyXG4gICAgICAgIFtcImRidGltZVwiXTogXCJEQlwiLFxyXG4gICAgICAgIFtcIm5ldHRpbWVcIl06IFwiTmV0d29ya1wiLFxyXG4gICAgICAgIFtcInRocm90dGxldGltZVwiXTogXCJUaHJvdHRsaW5nXCIsXHJcbiAgICAgICAgW1wic2xlZXB0aW1lXCJdOiBcIlNsZWVwXCIsXHJcbiAgICAgICAgW1wiaW90aW1lXCJdOiBcIklPXCJcclxuICAgIH07XHJcblxyXG4gICAgcmV2aWV3QmluZGluZ3ModXBkYXRlOiBib29sZWFuLCBzZWFyY2hWaWV3T3ZlcnJpZGU/LCBkaXJJbmZvcz86IERpcmVjdG9ySW5mb3MpIHtcclxuICAgICAgICBsZXQgcmVmZXJlbmNlID0gKHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcpLml0ZW1zWzBdO1xyXG4gICAgICAgIHRoaXMuVG9wTm9kZXMgPSByZWZlcmVuY2UudG9wbm9kZXM7XHJcbiAgICAgICAgdGhpcy5Ub3BTZXNzaW9ucyA9IHJlZmVyZW5jZS50b3BzZXNzaW9ucztcclxuICAgICAgICB0aGlzLkRpckluZm9zID0gZGlySW5mb3M7XHJcblxyXG4gICAgICAgIGlmICghcmVmZXJlbmNlLmFjdHNlc3Npb25zIHx8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlcmllczogTGluZVNlcmllW10gPSBbXTtcclxuICAgICAgICBsZXQgcHJvcHMgPSBPYmplY3Qua2V5cyhyZWZlcmVuY2UuYWN0c2Vzc2lvbnNbMF0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb3BzW2ldICE9ICdzYW1wbGV0aW1lJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHMgPSBuZXcgTGluZVNlcmllKHRoaXMucHJvcGVydGllc1Nlcmllc01hcHBpbmdbcHJvcHNbaV1dLCBbXSwgbnVsbCwgbnVsbCwgXCJzZXNzaW9uc1wiKTtcclxuICAgICAgICAgICAgICAgIHNlcmllcy5wdXNoKHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJpZXNQcm9wZXJ0aWVzTWFwcGluZ1twcm9wc1tpXV0gPSBzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbXJlZiA9IHJlZmVyZW5jZS5hY3RzZXNzaW9uc1tpXTtcclxuICAgICAgICAgICAgbGV0IHRoZUQgPSBuZXcgRGF0ZShpdGVtcmVmLnNhbXBsZXRpbWUpO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScgJiYgKCF1cGRhdGUgfHwgdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih0aGVEKS5pc0FmdGVyKHRoaXMuTGFzdERhdGFQb2ludCkpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dLnZhbHVlcy5wdXNoKG5ldyBEYXRlVmFsdWUodGhlRCwgaXRlbXJlZltwcm9wc1tpXV0pKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh1cGRhdGUgJiYgdGhpcy5DaGFydEluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXMuc29tZSh0ID0+IHQudmFsdWVzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UuYWRkRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjcmVnaW9uIEdlc3Rpb25lIHVwZGF0ZSBhdXRvbWF0aWNvXHJcbiAgICB1cGRhdGVUaW1lcjogYW55O1xyXG4gICAgYXV0b1VwZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCEvXlsxLTldXFxkKiQvLnRlc3QodGhpcy5zZWNvbmRzKSlcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gJzEwJztcclxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IHBhcnNlSW50KHRoaXMuc2Vjb25kcywgbnVsbCkgKiAxMDAwO1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTsgfSwgc2Vjb25kc0luTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gICAgcHJpdmF0ZSBmcm9tOiBEYXRlO1xyXG4gICAgcHJpdmF0ZSB0bzogRGF0ZTtcclxuXHJcbiAgICBkYXRhU2VsZWN0aW9uQ2hhbmdlZChldmVudDogeyBmcm9tOiBEYXRlLCB0bzogRGF0ZSwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XHJcbiAgICAgICAgdGhpcy5mcm9tID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVyZnJvbSA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20pLnRvRGF0ZSgpIDogXCJcIikgOiBldmVudC5mcm9tO1xyXG4gICAgICAgIHRoaXMudG8gPSBldmVudC5pbml0aWFsID8gKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0byA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcnRvKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQudG87XHJcblxyXG4gICAgICAgIHZhciBwc2V1ZG9TZWFyY2hWaWV3OiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhcmNoVmlldykpO1xyXG4gICAgICAgIHBzZXVkb1NlYXJjaFZpZXcuZmlsdGVyZnJvbSA9IHRoaXMuZnJvbSA/IGRheWpzKHRoaXMuZnJvbSkuZm9ybWF0KHRoaXMubGMudG9rZW4oXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXRcIikpIDogXCJcIjtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcnRvID0gdGhpcy50byA/IGRheWpzKHRoaXMudG8pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZW5kU2VhcmNoKHRydWUsIHRydWUsIHBzZXVkb1NlYXJjaFZpZXcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhcnRMb2FkZWQoY2hhcnQ6IEJhc2VDaGFydENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuQ2hhcnRJbnN0YW5jZSA9IGNoYXJ0O1xyXG4gICAgICAgIGNoYXJ0LkNoYXJ0LmV2ZW50cy5vbihcInJlYWR5XCIsICgpID0+IHtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS55QXhlcy5lYWNoKHkgPT4geS56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIDUwMCBtaWxsaXNlY29uZGkgw6ggcGnDuSBvIG1lbm8gaWwgdGVtcG8gZGkgcHJpbWEgYW5pbWF6aW9uZSBkZWwgZ3JhZmljby4gRmluaXRvIHF1ZXN0byBzaSByZXNldHRhIGxvIHpvb21cclxuICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -5,25 +5,23 @@ import { HttpParams } from "@angular/common/http";
|
|
|
5
5
|
import { ActivatedRoute } from "@angular/router";
|
|
6
6
|
import { Location } from "@angular/common";
|
|
7
7
|
// Configurazioni
|
|
8
|
-
import { MessageService, UtilityService } from "@esfaenza/extensions";
|
|
8
|
+
import { InboundMessageTypes, InterComService, MessageService, UtilityService } from "@esfaenza/extensions";
|
|
9
9
|
import { EsTableOperationDefinition } from "@esfaenza/es-table";
|
|
10
10
|
import { LocalizationService } from "@esfaenza/localizations";
|
|
11
11
|
import { PreferencesService } from "@esfaenza/preferences";
|
|
12
12
|
import { HTTPService } from "@esfaenza/httpservice";
|
|
13
|
-
// Applicazione
|
|
14
|
-
import { BaseModuleCommunicationsConsumer } from "../../communications/base/BaseModuleCommunicationsConsumer";
|
|
15
13
|
import { ProcessesView } from "../../models/components/ProcessesView";
|
|
16
14
|
import { Repository } from "../../models/externals/Repository";
|
|
17
15
|
import { ADM_BACKEND_URL, ADM_MODULE_PATH } from "../../tokens";
|
|
18
16
|
// Localizzazione
|
|
19
17
|
import { AdmWrkLoc } from "./adm_wrk.component.loc";
|
|
20
18
|
export class AdmWrkComponent {
|
|
21
|
-
constructor(utiExts, msgExts, lc, localStorage,
|
|
19
|
+
constructor(utiExts, msgExts, lc, localStorage, intercom, http, route, location, backend, mod) {
|
|
22
20
|
this.utiExts = utiExts;
|
|
23
21
|
this.msgExts = msgExts;
|
|
24
22
|
this.lc = lc;
|
|
25
23
|
this.localStorage = localStorage;
|
|
26
|
-
this.
|
|
24
|
+
this.intercom = intercom;
|
|
27
25
|
this.http = http;
|
|
28
26
|
this.route = route;
|
|
29
27
|
this.location = location;
|
|
@@ -36,7 +34,7 @@ export class AdmWrkComponent {
|
|
|
36
34
|
this.newCg = "";
|
|
37
35
|
this.CGs = [];
|
|
38
36
|
this.CgDictionariesLoaded = false;
|
|
39
|
-
this.
|
|
37
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
40
38
|
this.DynamicOps = [
|
|
41
39
|
new EsTableOperationDefinition("trace_on", this.lc.loc("Activate Process Tracing"), "fa fa-circle text-danger", "", "trace_enabled", "N"),
|
|
42
40
|
new EsTableOperationDefinition("trace_off", this.lc.loc("Deactivate Process Tracing"), "fa fa-circle text-success", "", "trace_enabled", "Y"),
|
|
@@ -170,7 +168,7 @@ AdmWrkComponent.ctorParameters = () => [
|
|
|
170
168
|
{ type: MessageService },
|
|
171
169
|
{ type: LocalizationService },
|
|
172
170
|
{ type: PreferencesService },
|
|
173
|
-
{ type:
|
|
171
|
+
{ type: InterComService },
|
|
174
172
|
{ type: HTTPService },
|
|
175
173
|
{ type: ActivatedRoute },
|
|
176
174
|
{ type: Location },
|
|
@@ -181,4 +179,4 @@ AdmWrkComponent.propDecorators = {
|
|
|
181
179
|
cgFrom: [{ type: ViewChild, args: ["cgFrom",] }],
|
|
182
180
|
dlgChangeCg: [{ type: ViewChild, args: ["dlgChangeCg",] }]
|
|
183
181
|
};
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBS3BELGVBQWU7QUFDZixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUU5RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPcEQsTUFBTSxPQUFPLGVBQWU7SUFP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QUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsb0NBQW9DLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3BLLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7O1lBbktKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsU0FBUztnQkFDbkIsYUFBYSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO2dCQUN0RSwwL0xBQXVDO2FBQzFDOzs7WUF2QndCLGNBQWM7WUFBOUIsY0FBYztZQUVkLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFPbEIsZ0NBQWdDO1lBTmhDLFdBQVc7WUFUWCxjQUFjO1lBQ2QsUUFBUTt5Q0E0Q1IsTUFBTSxTQUFDLGVBQWU7eUNBQ3RCLE1BQU0sU0FBQyxlQUFlOzs7cUJBNEcxQixTQUFTLFNBQUMsUUFBUTswQkFDbEIsU0FBUyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgTW9kYWxEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyIH0gZnJvbSBcIi4uLy4uL2NvbW11bmljYXRpb25zL2Jhc2UvQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXJcIjtcclxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NoYXJlZC9LZXlWYWx1ZVwiO1xyXG5pbXBvcnQgeyBQcm9jZXNzZXNWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1Byb2Nlc3Nlc1ZpZXdcIjtcclxuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZXh0ZXJuYWxzL1JlcG9zaXRvcnlcIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMLCBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1XcmtMb2MgfSBmcm9tIFwiLi9hZG1fd3JrLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX3dya1wiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbVdya0xvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX3dyay5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1XcmtDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBQcm9jZXNzZXNWaWV3ID0gbmV3IFByb2Nlc3Nlc1ZpZXcoKTtcclxuICAgIHB1YmxpYyBEeW5hbWljT3BzOiBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG4gICAgcHVibGljIHZhbHVlVG9TaG93OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdXRpRXh0czogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZTogQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhdGUuaGFuZGxlTmF2aWdhdGlvbih0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSksIGZhbHNlKTtcclxuXHJcbiAgICAgICAgdGhpcy5EeW5hbWljT3BzID0gW1xyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJ0cmFjZV9vblwiLCB0aGlzLmxjLmxvYyhcIkFjdGl2YXRlIFByb2Nlc3MgVHJhY2luZ1wiKSwgXCJmYSBmYS1jaXJjbGUgdGV4dC1kYW5nZXJcIiwgXCJcIiwgXCJ0cmFjZV9lbmFibGVkXCIsIFwiTlwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwidHJhY2Vfb2ZmXCIsIHRoaXMubGMubG9jKFwiRGVhY3RpdmF0ZSBQcm9jZXNzIFRyYWNpbmdcIiksIFwiZmEgZmEtY2lyY2xlIHRleHQtc3VjY2Vzc1wiLCBcIlwiLCBcInRyYWNlX2VuYWJsZWRcIiwgXCJZXCIpLFxyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJraWxsXCIsIHRoaXMubGMubG9jKFwiS2lsbCBQcm9jZXNzXCIpLCBcImZhIGZhLWJhbiB0ZXh0LWRhbmdlclwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwiY2hhbmdlX2NnXCIsIHRoaXMubGMubG9jKFwiQ2hhbmdlIENvbnN1bWVyIEdyb3VwXCIpLCBcImZhIGZhLWVkaXQgdGV4dC1pbmZvXCIpXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFByb2Nlc3Nlc1ZpZXc+KFwiSG90UHJvY2Vzc2F0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgL3BhZ2VzLyR7dGhpcy5tb2R9L3NlcnZlcndvcmtlcnNgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90UHJvY2Vzc2F0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFByb2Nlc3Nlc1ZpZXcpIHtcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IEhvdFBvdGF0bztcclxuICAgICAgICAgICAgdGhpcy5QT1NUR2V0UHJvY2Vzc2VzKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRTZXJ2ZXJXb3JrZXJzXCJdLCB0aGlzLnNlYXJjaFZpZXcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IFByb2Nlc3Nlc1ZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldFByb2Nlc3Nlcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0U2VydmVyV29ya2Vyc1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0UHJvY2Vzc2VzKHVybDogc3RyaW5nLCBkYXRhOiBQcm9jZXNzZXNWaWV3KSB7XHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8UHJvY2Vzc2VzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RQcm9jZXNzYXRvXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFjaygpIHtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBvbk9wZXJhdGlvbihldmVudDogeyBpZDogc3RyaW5nLCBpdGVtOiBhbnkgfSkge1xyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuaWQpIHtcclxuICAgICAgICAgICAgY2FzZSBcInRyYWNlX29uXCI6IHRoaXMudG9nZ2xlVHJhY2luZyhldmVudC5pdGVtLCB0cnVlKTsgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0cmFjZV9vZmZcIjogdGhpcy50b2dnbGVUcmFjaW5nKGV2ZW50Lml0ZW0sIGZhbHNlKTsgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJraWxsXCI6IHRoaXMua2lsbFByb2Nlc3MoZXZlbnQuaXRlbSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiY2hhbmdlX2NnXCI6IHRoaXMuY2hhbmdlUHJvY2Vzc0NnKGV2ZW50Lml0ZW0pOyBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlVHJhY2luZyhwcm9jZXNzOiBhbnksIHRyYWNpbmc6IGJvb2xlYW4pIHtcclxuICAgICAgICB2YXIgcGFycyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgICAgICAgLnNldChcImluc3RhbmNlaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wiaW5zdF9pZFwiXSlcclxuICAgICAgICAgICAgLnNldChcInNpZFwiLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJzaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdKVxyXG4gICAgICAgICAgICAuc2V0KFwiZW5hYmxlXCIsIHRyYWNpbmcudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5odHRwLmdldDxzdHJpbmc+KHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJHRVRfQWRtX1NldFByb2Nlc3NUcmFjaW5nXCJdLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VTdHJpbmdSZXNwb25zZSh0LCBcIlwiLCB0aGlzLmxjLmxvYyhcIkVycm9ycyB0b2dnbGluZyBQcm9jZXNzIFRyYWNpbmdcIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBraWxsUHJvY2Vzcyhwcm9jZXNzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlV2FybmluZ1dpdGhDaG9pY2UoXHJcbiAgICAgICAgICAgIHRoaXMubGMubG9jKFwiQ29uZmlybSBQcm9jZXNzIEtpbGxcIiksXHJcbiAgICAgICAgICAgIHRoaXMubGMubG9jKFwiQXJlIHlvdSBzdXJlIHlvdSB3aXNoIHRvIGtpbGwgdGhlIHNlbGVjdGVkIHByb2Nlc3M/IFRoZSBhc3NvY2lhdGVkIHVzZXIgd2lsbCBiZSBkaXNjb25uZWN0ZWRcIiksXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJpbnN0YW5jZWlkXCIsIHByb2Nlc3MucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnNldChcInNpZFwiLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJzaWRcIl0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnNldChcInNlcmlhbFwiLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJzZXJpYWxcIl0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwLmdldDxzdHJpbmc+KHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJHRVRfQWRtX0tpbGxQcm9jZXNzXCJdLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZVN0cmluZ1Jlc3BvbnNlKHQsIHRoaXMubGMubG9jKFwiUHJvY2VzcyBzdWNjZXNmdWxseSBraWxsZWRcIiksIHRoaXMubGMubG9jKFwiRXJyb3JzIGtpbGxpbmcgdGhlIFByb2Nlc3NcIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogR2VzdGlvbmUgbW9kaWZpY2EgQ29uc3VtZXIgR3JvdXAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4gICAgbmV3Q2c6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBDR3M6IEtleVZhbHVlW10gPSBbXTtcclxuICAgIENnRGljdGlvbmFyaWVzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBQcm9jZXNzT25FZGl0OiBhbnk7XHJcblxyXG4gICAgQFZpZXdDaGlsZChcImNnRnJvbVwiKSBjZ0Zyb206IE5nRm9ybTtcclxuICAgIEBWaWV3Q2hpbGQoXCJkbGdDaGFuZ2VDZ1wiKSBkbGdDaGFuZ2VDZzogTW9kYWxEaXJlY3RpdmU7XHJcblxyXG4gICAgY2hhbmdlUHJvY2Vzc0NnKHByb2Nlc3M6IGFueSkge1xyXG4gICAgICAgIHRoaXMuUHJvY2Vzc09uRWRpdCA9IHByb2Nlc3M7XHJcbiAgICAgICAgaWYgKCF0aGlzLkNnRGljdGlvbmFyaWVzTG9hZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENnRGljdGlvbmFyaWVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuQ2dEaWN0aW9uYXJpZXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHVwQ2hhbmdlQ2coKTtcclxuICAgICAgICB0aGlzLmRsZ0NoYW5nZUNnLnNob3coKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQ2dEaWN0aW9uYXJpZXMoKSB7XHJcbiAgICAgICAgdGhpcy5odHRwLmdldDxLZXlWYWx1ZVtdPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9HZXRDb25zdW1lckdyb3Vwc1wiXSkuc3Vic2NyaWJlKHQgPT4gdGhpcy5DR3MgPSB0KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cENoYW5nZUNnKCkge1xyXG4gICAgICAgIHRoaXMudXRpRXh0cy5jbGVhbkZvcm0odGhpcy5jZ0Zyb20pXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMubmV3Q2cgPSBcIlwiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRvQ2hhbmdlQ2coKSB7XHJcbiAgICAgICAgdmFyIHBhcnMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgICAgICAgIC5zZXQoXCJpbnN0YW5jZWlkXCIsIHRoaXMuUHJvY2Vzc09uRWRpdC5wcm9wZXJ0aWVzW1wiaW5zdF9pZFwiXSlcclxuICAgICAgICAgICAgLnNldChcInNpZFwiLCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcInNpZFwiXSlcclxuICAgICAgICAgICAgLnNldChcInNlcmlhbFwiLCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcInNlcmlhbFwiXSlcclxuICAgICAgICAgICAgLnNldChcImNvbnN1bWVyX2dyb3VwXCIsIHRoaXMubmV3Q2cpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9DaGFuZ2VQcm9jZXNzQ29uc3VtZXJHcm91cFwiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UodCwgdGhpcy5sYy5sb2MoXCJDb25zdW1lciBHcm91cCBzdWNjZXNmdWxseSBjaGFuZ2VkXCIpLCB0aGlzLmxjLmxvYyhcIkVycm9ycyBjaGFuZ2luZyBDb25zdW1lciBHcm91cFwiKSwgKCkgPT4gdGhpcy5zZW5kU2VhcmNoKCkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxufSJdfQ==
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU9wRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPcEQsTUFBTSxPQUFPLGVBQWU7SUFPeEIsWUFDWSxPQUF1QixFQUN2QixPQUF1QixFQUN4QixF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SUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEQsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2RyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDcEssQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7WUFuS0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixhQUFhLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7Z0JBQ3RFLDAvTEFBdUM7YUFDMUM7OztZQXRCOEQsY0FBYztZQUE5QixjQUFjO1lBRXBELG1CQUFtQjtZQUNuQixrQkFBa0I7WUFIRyxlQUFlO1lBSXBDLFdBQVc7WUFUWCxjQUFjO1lBQ2QsUUFBUTt5Q0EyQ1IsTUFBTSxTQUFDLGVBQWU7eUNBQ3RCLE1BQU0sU0FBQyxlQUFlOzs7cUJBNEcxQixTQUFTLFNBQUMsUUFBUTswQkFDbEIsU0FBUyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBNb2RhbERpcmVjdGl2ZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL21vZGFsXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NoYXJlZC9LZXlWYWx1ZVwiO1xyXG5pbXBvcnQgeyBQcm9jZXNzZXNWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1Byb2Nlc3Nlc1ZpZXdcIjtcclxuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZXh0ZXJuYWxzL1JlcG9zaXRvcnlcIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMLCBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1XcmtMb2MgfSBmcm9tIFwiLi9hZG1fd3JrLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX3dya1wiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbVdya0xvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX3dyay5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1XcmtDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBQcm9jZXNzZXNWaWV3ID0gbmV3IFByb2Nlc3Nlc1ZpZXcoKTtcclxuICAgIHB1YmxpYyBEeW5hbWljT3BzOiBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG4gICAgcHVibGljIHZhbHVlVG9TaG93OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdXRpRXh0czogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuRHluYW1pY09wcyA9IFtcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwidHJhY2Vfb25cIiwgdGhpcy5sYy5sb2MoXCJBY3RpdmF0ZSBQcm9jZXNzIFRyYWNpbmdcIiksIFwiZmEgZmEtY2lyY2xlIHRleHQtZGFuZ2VyXCIsIFwiXCIsIFwidHJhY2VfZW5hYmxlZFwiLCBcIk5cIiksXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcInRyYWNlX29mZlwiLCB0aGlzLmxjLmxvYyhcIkRlYWN0aXZhdGUgUHJvY2VzcyBUcmFjaW5nXCIpLCBcImZhIGZhLWNpcmNsZSB0ZXh0LXN1Y2Nlc3NcIiwgXCJcIiwgXCJ0cmFjZV9lbmFibGVkXCIsIFwiWVwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwia2lsbFwiLCB0aGlzLmxjLmxvYyhcIktpbGwgUHJvY2Vzc1wiKSwgXCJmYSBmYS1iYW4gdGV4dC1kYW5nZXJcIiksXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcImNoYW5nZV9jZ1wiLCB0aGlzLmxjLmxvYyhcIkNoYW5nZSBDb25zdW1lciBHcm91cFwiKSwgXCJmYSBmYS1lZGl0IHRleHQtaW5mb1wiKVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIEluaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxQcm9jZXNzZXNWaWV3PihcIkhvdFByb2Nlc3NhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS9zZXJ2ZXJ3b3JrZXJzYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFByb2Nlc3NhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBQcm9jZXNzZXNWaWV3KSB7XHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldFByb2Nlc3Nlcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0U2VydmVyV29ya2Vyc1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBQcm9jZXNzZXNWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlcldvcmtlcnNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldFByb2Nlc3Nlcyh1cmw6IHN0cmluZywgZGF0YTogUHJvY2Vzc2VzVmlldykge1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2Nlc3Nlc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90UHJvY2Vzc2F0b1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2soKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVyYXRpb24oZXZlbnQ6IHsgaWQ6IHN0cmluZywgaXRlbTogYW55IH0pIHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0cmFjZV9vblwiOiB0aGlzLnRvZ2dsZVRyYWNpbmcoZXZlbnQuaXRlbSwgdHJ1ZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidHJhY2Vfb2ZmXCI6IHRoaXMudG9nZ2xlVHJhY2luZyhldmVudC5pdGVtLCBmYWxzZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwia2lsbFwiOiB0aGlzLmtpbGxQcm9jZXNzKGV2ZW50Lml0ZW0pOyBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImNoYW5nZV9jZ1wiOiB0aGlzLmNoYW5nZVByb2Nlc3NDZyhldmVudC5pdGVtKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRyYWNpbmcocHJvY2VzczogYW55LCB0cmFjaW5nOiBib29sZWFuKSB7XHJcbiAgICAgICAgdmFyIHBhcnMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgICAgICAgIC5zZXQoXCJpbnN0YW5jZWlkXCIsIHByb2Nlc3MucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdKVxyXG4gICAgICAgICAgICAuc2V0KFwic2VyaWFsXCIsIHByb2Nlc3MucHJvcGVydGllc1tcInNlcmlhbFwiXSlcclxuICAgICAgICAgICAgLnNldChcImVuYWJsZVwiLCB0cmFjaW5nLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9TZXRQcm9jZXNzVHJhY2luZ1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UodCwgXCJcIiwgdGhpcy5sYy5sb2MoXCJFcnJvcnMgdG9nZ2xpbmcgUHJvY2VzcyBUcmFjaW5nXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAga2lsbFByb2Nlc3MocHJvY2VzczogYW55KSB7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmdXaXRoQ2hvaWNlKFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIkNvbmZpcm0gUHJvY2VzcyBLaWxsXCIpLFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIkFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBraWxsIHRoZSBzZWxlY3RlZCBwcm9jZXNzPyBUaGUgYXNzb2NpYXRlZCB1c2VyIHdpbGwgYmUgZGlzY29ubmVjdGVkXCIpLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcGFycyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgICAgICAgICAgICAgICAuc2V0KFwiaW5zdGFuY2VpZFwiLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJpbnN0X2lkXCJdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9LaWxsUHJvY2Vzc1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VTdHJpbmdSZXNwb25zZSh0LCB0aGlzLmxjLmxvYyhcIlByb2Nlc3Mgc3VjY2VzZnVsbHkga2lsbGVkXCIpLCB0aGlzLmxjLmxvYyhcIkVycm9ycyBraWxsaW5nIHRoZSBQcm9jZXNzXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdlc3Rpb25lIG1vZGlmaWNhIENvbnN1bWVyIEdyb3VwICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuICAgIG5ld0NnOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQ0dzOiBLZXlWYWx1ZVtdID0gW107XHJcbiAgICBDZ0RpY3Rpb25hcmllc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgUHJvY2Vzc09uRWRpdDogYW55O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJjZ0Zyb21cIikgY2dGcm9tOiBOZ0Zvcm07XHJcbiAgICBAVmlld0NoaWxkKFwiZGxnQ2hhbmdlQ2dcIikgZGxnQ2hhbmdlQ2c6IE1vZGFsRGlyZWN0aXZlO1xyXG5cclxuICAgIGNoYW5nZVByb2Nlc3NDZyhwcm9jZXNzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLlByb2Nlc3NPbkVkaXQgPSBwcm9jZXNzO1xyXG4gICAgICAgIGlmICghdGhpcy5DZ0RpY3Rpb25hcmllc0xvYWRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDZ0RpY3Rpb25hcmllcygpO1xyXG4gICAgICAgICAgICB0aGlzLkNnRGljdGlvbmFyaWVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZUNnKCk7XHJcbiAgICAgICAgdGhpcy5kbGdDaGFuZ2VDZy5zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZENnRGljdGlvbmFyaWVzKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8S2V5VmFsdWVbXT4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fR2V0Q29uc3VtZXJHcm91cHNcIl0pLnN1YnNjcmliZSh0ID0+IHRoaXMuQ0dzID0gdCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDaGFuZ2VDZygpIHtcclxuICAgICAgICB0aGlzLnV0aUV4dHMuY2xlYW5Gb3JtKHRoaXMuY2dGcm9tKVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLm5ld0NnID0gXCJcIiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkb0NoYW5nZUNnKCkge1xyXG4gICAgICAgIHZhciBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAgICAgICAuc2V0KFwiaW5zdGFuY2VpZFwiLCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzZXJpYWxcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJjb25zdW1lcl9ncm91cFwiLCB0aGlzLm5ld0NnKTtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PHN0cmluZz4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fQ2hhbmdlUHJvY2Vzc0NvbnN1bWVyR3JvdXBcIl0sIHBhcnMpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZVN0cmluZ1Jlc3BvbnNlKHQsIHRoaXMubGMubG9jKFwiQ29uc3VtZXIgR3JvdXAgc3VjY2VzZnVsbHkgY2hhbmdlZFwiKSwgdGhpcy5sYy5sb2MoXCJFcnJvcnMgY2hhbmdpbmcgQ29uc3VtZXIgR3JvdXBcIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const Locale = localStorage.getItem("LOCALE") || myconfig.LOCALE;
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvbW9kZWxzL3NoYXJlZC9Mb2NhbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFXLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMb2NhbGU6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiTE9DQUxFXCIpIHx8IG15Y29uZmlnLkxPQ0FMRTsiXX0=
|
package/esm2015/public-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './lib/admin-module.module';
|
|
2
2
|
export * from './lib/tokens';
|
|
3
|
-
export * from
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
export * from "./lib/admin-module-messages";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hZG1pbi1tb2R1bGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvYWRtaW4tbW9kdWxlLW1lc3NhZ2VzXCI7Il19
|
|
@@ -20,14 +20,11 @@ import { ContextMenuModule } from '@esfaenza/ngx-contextmenu';
|
|
|
20
20
|
import { __awaiter, __decorate } from 'tslib';
|
|
21
21
|
import { PreferencesService } from '@esfaenza/preferences';
|
|
22
22
|
import { HTTPService } from '@esfaenza/httpservice';
|
|
23
|
+
import { InboundMessageTypes, InterComService, UtilityService, MessageService, Export, ExportService, DateService } from '@esfaenza/extensions';
|
|
23
24
|
import { HttpParams } from '@angular/common/http';
|
|
24
|
-
import { UtilityService, MessageService, Export, ExportService, DateService } from '@esfaenza/extensions';
|
|
25
25
|
import { autoserialize } from 'cerialize';
|
|
26
26
|
import { map } from 'rxjs/operators';
|
|
27
27
|
|
|
28
|
-
class BaseModuleCommunicationsConsumer {
|
|
29
|
-
}
|
|
30
|
-
|
|
31
28
|
class AuditsView extends AppSearch {
|
|
32
29
|
constructor() {
|
|
33
30
|
super();
|
|
@@ -89,10 +86,10 @@ AdmAuditLoc.ctorParameters = () => [
|
|
|
89
86
|
];
|
|
90
87
|
|
|
91
88
|
class AdmAuditsComponent {
|
|
92
|
-
constructor(lc,
|
|
89
|
+
constructor(lc, intercom, localStorage, http, route, location, backend, mod) {
|
|
93
90
|
this.lc = lc;
|
|
91
|
+
this.intercom = intercom;
|
|
94
92
|
this.localStorage = localStorage;
|
|
95
|
-
this._state = _state;
|
|
96
93
|
this.http = http;
|
|
97
94
|
this.route = route;
|
|
98
95
|
this.location = location;
|
|
@@ -102,7 +99,7 @@ class AdmAuditsComponent {
|
|
|
102
99
|
this.Actions = [];
|
|
103
100
|
this.HttpMethods = [];
|
|
104
101
|
this.searchInProgress = false;
|
|
105
|
-
this.
|
|
102
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
106
103
|
this.HttpMethods = [
|
|
107
104
|
{ id: "GET", description: "GET" },
|
|
108
105
|
{ id: "POST", description: "POST" },
|
|
@@ -174,8 +171,8 @@ AdmAuditsComponent.decorators = [
|
|
|
174
171
|
];
|
|
175
172
|
AdmAuditsComponent.ctorParameters = () => [
|
|
176
173
|
{ type: LocalizationService },
|
|
174
|
+
{ type: InterComService },
|
|
177
175
|
{ type: PreferencesService },
|
|
178
|
-
{ type: BaseModuleCommunicationsConsumer },
|
|
179
176
|
{ type: HTTPService },
|
|
180
177
|
{ type: ActivatedRoute },
|
|
181
178
|
{ type: Location },
|
|
@@ -218,12 +215,12 @@ AdmWrkLoc.ctorParameters = () => [
|
|
|
218
215
|
];
|
|
219
216
|
|
|
220
217
|
class AdmWrkComponent {
|
|
221
|
-
constructor(utiExts, msgExts, lc, localStorage,
|
|
218
|
+
constructor(utiExts, msgExts, lc, localStorage, intercom, http, route, location, backend, mod) {
|
|
222
219
|
this.utiExts = utiExts;
|
|
223
220
|
this.msgExts = msgExts;
|
|
224
221
|
this.lc = lc;
|
|
225
222
|
this.localStorage = localStorage;
|
|
226
|
-
this.
|
|
223
|
+
this.intercom = intercom;
|
|
227
224
|
this.http = http;
|
|
228
225
|
this.route = route;
|
|
229
226
|
this.location = location;
|
|
@@ -236,7 +233,7 @@ class AdmWrkComponent {
|
|
|
236
233
|
this.newCg = "";
|
|
237
234
|
this.CGs = [];
|
|
238
235
|
this.CgDictionariesLoaded = false;
|
|
239
|
-
this.
|
|
236
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
240
237
|
this.DynamicOps = [
|
|
241
238
|
new EsTableOperationDefinition("trace_on", this.lc.loc("Activate Process Tracing"), "fa fa-circle text-danger", "", "trace_enabled", "N"),
|
|
242
239
|
new EsTableOperationDefinition("trace_off", this.lc.loc("Deactivate Process Tracing"), "fa fa-circle text-success", "", "trace_enabled", "Y"),
|
|
@@ -370,7 +367,7 @@ AdmWrkComponent.ctorParameters = () => [
|
|
|
370
367
|
{ type: MessageService },
|
|
371
368
|
{ type: LocalizationService },
|
|
372
369
|
{ type: PreferencesService },
|
|
373
|
-
{ type:
|
|
370
|
+
{ type: InterComService },
|
|
374
371
|
{ type: HTTPService },
|
|
375
372
|
{ type: ActivatedRoute },
|
|
376
373
|
{ type: Location },
|
|
@@ -510,18 +507,18 @@ AdmProfilerComponentLoc.ctorParameters = () => [
|
|
|
510
507
|
];
|
|
511
508
|
|
|
512
509
|
class AdmProfilerComponent {
|
|
513
|
-
constructor(expExts, lc, localStorage, location,
|
|
510
|
+
constructor(expExts, lc, localStorage, location, intercom, http, route, backend, mod) {
|
|
514
511
|
this.expExts = expExts;
|
|
515
512
|
this.lc = lc;
|
|
516
513
|
this.localStorage = localStorage;
|
|
517
514
|
this.location = location;
|
|
518
|
-
this.
|
|
515
|
+
this.intercom = intercom;
|
|
519
516
|
this.http = http;
|
|
520
517
|
this.route = route;
|
|
521
518
|
this.backend = backend;
|
|
522
519
|
this.mod = mod;
|
|
523
520
|
this.searchView = new ProfilerDataNodesView();
|
|
524
|
-
this.
|
|
521
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
525
522
|
}
|
|
526
523
|
ngOnInit() {
|
|
527
524
|
this.storageSub = this.route.queryParams.subscribe(params => {
|
|
@@ -594,7 +591,7 @@ AdmProfilerComponent.ctorParameters = () => [
|
|
|
594
591
|
{ type: LocalizationService },
|
|
595
592
|
{ type: PreferencesService },
|
|
596
593
|
{ type: Location },
|
|
597
|
-
{ type:
|
|
594
|
+
{ type: InterComService },
|
|
598
595
|
{ type: HTTPService },
|
|
599
596
|
{ type: ActivatedRoute },
|
|
600
597
|
{ type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] },
|
|
@@ -635,12 +632,12 @@ AdmTopActivitieLoc.ctorParameters = () => [
|
|
|
635
632
|
];
|
|
636
633
|
|
|
637
634
|
class AdmTopActivitiesComponent {
|
|
638
|
-
constructor(dateExts, lc, localStorage, location,
|
|
635
|
+
constructor(dateExts, lc, localStorage, location, intercom, http, route, backend, mod) {
|
|
639
636
|
this.dateExts = dateExts;
|
|
640
637
|
this.lc = lc;
|
|
641
638
|
this.localStorage = localStorage;
|
|
642
639
|
this.location = location;
|
|
643
|
-
this.
|
|
640
|
+
this.intercom = intercom;
|
|
644
641
|
this.http = http;
|
|
645
642
|
this.route = route;
|
|
646
643
|
this.backend = backend;
|
|
@@ -659,7 +656,7 @@ class AdmTopActivitiesComponent {
|
|
|
659
656
|
["sleeptime"]: "Sleep",
|
|
660
657
|
["iotime"]: "IO"
|
|
661
658
|
};
|
|
662
|
-
this.
|
|
659
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
663
660
|
}
|
|
664
661
|
ngOnInit() {
|
|
665
662
|
this.storageSub = this.route.queryParams.subscribe(params => {
|
|
@@ -801,7 +798,7 @@ AdmTopActivitiesComponent.ctorParameters = () => [
|
|
|
801
798
|
{ type: LocalizationService },
|
|
802
799
|
{ type: PreferencesService },
|
|
803
800
|
{ type: Location },
|
|
804
|
-
{ type:
|
|
801
|
+
{ type: InterComService },
|
|
805
802
|
{ type: HTTPService },
|
|
806
803
|
{ type: ActivatedRoute },
|
|
807
804
|
{ type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] },
|
|
@@ -829,18 +826,18 @@ AdmEnqLoc.ctorParameters = () => [
|
|
|
829
826
|
];
|
|
830
827
|
|
|
831
828
|
class AdmEnqComponent {
|
|
832
|
-
constructor(lc, localStorage, expExts,
|
|
829
|
+
constructor(lc, localStorage, expExts, intercom, http, route, location, backend, mod) {
|
|
833
830
|
this.lc = lc;
|
|
834
831
|
this.localStorage = localStorage;
|
|
835
832
|
this.expExts = expExts;
|
|
836
|
-
this.
|
|
833
|
+
this.intercom = intercom;
|
|
837
834
|
this.http = http;
|
|
838
835
|
this.route = route;
|
|
839
836
|
this.location = location;
|
|
840
837
|
this.backend = backend;
|
|
841
838
|
this.mod = mod;
|
|
842
839
|
this.locksView = new LocksView();
|
|
843
|
-
this.
|
|
840
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
844
841
|
}
|
|
845
842
|
ngOnInit() {
|
|
846
843
|
this.storageSub = this.route.queryParams.subscribe(params => { this.Init(params["ignoreStorage"]); });
|
|
@@ -896,7 +893,7 @@ AdmEnqComponent.ctorParameters = () => [
|
|
|
896
893
|
{ type: LocalizationService },
|
|
897
894
|
{ type: PreferencesService },
|
|
898
895
|
{ type: ExportService },
|
|
899
|
-
{ type:
|
|
896
|
+
{ type: InterComService },
|
|
900
897
|
{ type: HTTPService },
|
|
901
898
|
{ type: ActivatedRoute },
|
|
902
899
|
{ type: Location },
|
|
@@ -936,12 +933,12 @@ AdmMetricsLoc.ctorParameters = () => [
|
|
|
936
933
|
];
|
|
937
934
|
|
|
938
935
|
class AdmMetricsComponent {
|
|
939
|
-
constructor(dateExts, lc, localStorage, location,
|
|
936
|
+
constructor(dateExts, lc, localStorage, location, intercom, http, route, backend, mod) {
|
|
940
937
|
this.dateExts = dateExts;
|
|
941
938
|
this.lc = lc;
|
|
942
939
|
this.localStorage = localStorage;
|
|
943
940
|
this.location = location;
|
|
944
|
-
this.
|
|
941
|
+
this.intercom = intercom;
|
|
945
942
|
this.http = http;
|
|
946
943
|
this.route = route;
|
|
947
944
|
this.backend = backend;
|
|
@@ -954,7 +951,7 @@ class AdmMetricsComponent {
|
|
|
954
951
|
this.selectedInstance = "";
|
|
955
952
|
this.instanceRequired = false;
|
|
956
953
|
this.metricsToShow = [];
|
|
957
|
-
this.
|
|
954
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
958
955
|
}
|
|
959
956
|
ngOnInit() {
|
|
960
957
|
this.storageSub = this.route.queryParams.subscribe(params => {
|
|
@@ -1088,7 +1085,7 @@ AdmMetricsComponent.ctorParameters = () => [
|
|
|
1088
1085
|
{ type: LocalizationService },
|
|
1089
1086
|
{ type: PreferencesService },
|
|
1090
1087
|
{ type: Location },
|
|
1091
|
-
{ type:
|
|
1088
|
+
{ type: InterComService },
|
|
1092
1089
|
{ type: HTTPService },
|
|
1093
1090
|
{ type: ActivatedRoute },
|
|
1094
1091
|
{ type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] },
|
|
@@ -1097,13 +1094,13 @@ AdmMetricsComponent.ctorParameters = () => [
|
|
|
1097
1094
|
|
|
1098
1095
|
// Angular
|
|
1099
1096
|
class AdmLogsComponent {
|
|
1100
|
-
constructor(
|
|
1101
|
-
this.
|
|
1097
|
+
constructor(intercom, http, lc, route, backend) {
|
|
1098
|
+
this.intercom = intercom;
|
|
1102
1099
|
this.http = http;
|
|
1103
1100
|
this.lc = lc;
|
|
1104
1101
|
this.route = route;
|
|
1105
1102
|
this.backend = backend;
|
|
1106
|
-
this.
|
|
1103
|
+
this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
|
|
1107
1104
|
}
|
|
1108
1105
|
ngOnInit() {
|
|
1109
1106
|
this.http.get(this.backend + Repository["GET_Adm_GetServerLogs"]).subscribe(t => { this.Log = t; });
|
|
@@ -1116,13 +1113,47 @@ AdmLogsComponent.decorators = [
|
|
|
1116
1113
|
},] }
|
|
1117
1114
|
];
|
|
1118
1115
|
AdmLogsComponent.ctorParameters = () => [
|
|
1119
|
-
{ type:
|
|
1116
|
+
{ type: InterComService },
|
|
1120
1117
|
{ type: HTTPService },
|
|
1121
1118
|
{ type: LocalizationService },
|
|
1122
1119
|
{ type: ActivatedRoute },
|
|
1123
1120
|
{ type: String, decorators: [{ type: Inject, args: [ADM_BACKEND_URL,] }] }
|
|
1124
1121
|
];
|
|
1125
1122
|
|
|
1123
|
+
/** Chiave di questo modulo, da utilizzare per i messaggi */
|
|
1124
|
+
const MK_ADM = "EsAdminModule";
|
|
1125
|
+
/** Messaggi gestiti da questo modulo */
|
|
1126
|
+
var AdmMessageTypes;
|
|
1127
|
+
(function (AdmMessageTypes) {
|
|
1128
|
+
AdmMessageTypes[AdmMessageTypes["Message"] = 0] = "Message";
|
|
1129
|
+
})(AdmMessageTypes || (AdmMessageTypes = {}));
|
|
1130
|
+
|
|
1131
|
+
// Angular
|
|
1132
|
+
class AdminModuleCommService {
|
|
1133
|
+
constructor(intercom) {
|
|
1134
|
+
this.intercom = intercom;
|
|
1135
|
+
}
|
|
1136
|
+
register() {
|
|
1137
|
+
this.intercom.register(MK_ADM);
|
|
1138
|
+
this.intercom.outbounds[MK_ADM].subscribe((t) => { this.handleOutbound(t.type, t.message); });
|
|
1139
|
+
}
|
|
1140
|
+
handleOutbound(type, message) {
|
|
1141
|
+
switch (type) {
|
|
1142
|
+
case AdmMessageTypes.Message:
|
|
1143
|
+
{
|
|
1144
|
+
if (myconfig.DEBUG_MODE)
|
|
1145
|
+
console.log("@admin-module:" + message);
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
AdminModuleCommService.decorators = [
|
|
1151
|
+
{ type: Injectable }
|
|
1152
|
+
];
|
|
1153
|
+
AdminModuleCommService.ctorParameters = () => [
|
|
1154
|
+
{ type: InterComService }
|
|
1155
|
+
];
|
|
1156
|
+
|
|
1126
1157
|
// Angular
|
|
1127
1158
|
const ɵ0 = { title: "Search Application Processes", internalNavigation: false }, ɵ1 = { title: "Server Profiler", internalNavigation: false }, ɵ2 = { title: "Top Activities", internalNavigation: false }, ɵ3 = { title: "System Metrics", internalNavigation: false }, ɵ4 = { title: "Server Logs", internalNavigation: false }, ɵ5 = { title: "Search Application Audits", internalNavigation: false }, ɵ6 = { title: "Search Application Locks", internalNavigation: false };
|
|
1128
1159
|
const routeConfig = [
|
|
@@ -1172,18 +1203,32 @@ const COMPONENTS = [
|
|
|
1172
1203
|
AdmEnqComponent,
|
|
1173
1204
|
AdmMetricsComponent
|
|
1174
1205
|
];
|
|
1206
|
+
const ɵ7 = myconfig.LOCALE, ɵ8 = myconfig.BACKEND_URL;
|
|
1175
1207
|
class AdmModule {
|
|
1208
|
+
constructor(commService) {
|
|
1209
|
+
this.commService = commService;
|
|
1210
|
+
console.log("@esfaenza/admin-module: BOOTSTRAP");
|
|
1211
|
+
this.commService.register();
|
|
1212
|
+
}
|
|
1176
1213
|
}
|
|
1177
1214
|
AdmModule.decorators = [
|
|
1178
1215
|
{ type: NgModule, args: [{
|
|
1179
1216
|
imports: [...MODULES],
|
|
1180
|
-
declarations: [...COMPONENTS]
|
|
1217
|
+
declarations: [...COMPONENTS],
|
|
1218
|
+
providers: [
|
|
1219
|
+
AdminModuleCommService,
|
|
1220
|
+
{ provide: ADM_LOCALE, useValue: ɵ7 },
|
|
1221
|
+
{ provide: ADM_BACKEND_URL, useValue: ɵ8 },
|
|
1222
|
+
]
|
|
1181
1223
|
},] }
|
|
1224
|
+
];
|
|
1225
|
+
AdmModule.ctorParameters = () => [
|
|
1226
|
+
{ type: AdminModuleCommService }
|
|
1182
1227
|
];
|
|
1183
1228
|
|
|
1184
1229
|
/**
|
|
1185
1230
|
* Generated bundle index. Do not edit.
|
|
1186
1231
|
*/
|
|
1187
1232
|
|
|
1188
|
-
export { ADM_BACKEND_URL, ADM_LOCALE, ADM_MODULE_PATH, AdmModule,
|
|
1233
|
+
export { ADM_BACKEND_URL, ADM_LOCALE, ADM_MODULE_PATH, AdmMessageTypes, AdmModule, MK_ADM, routeConfig, ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, AdmWrkComponent as ɵa, AdmWrkLoc as ɵb, AdmProfilerComponent as ɵc, AdmProfilerComponentLoc as ɵd, AdmTopActivitiesComponent as ɵe, AdmTopActivitieLoc as ɵf, AdmMetricsComponent as ɵg, AdmMetricsLoc as ɵh, AdmLogsComponent as ɵi, AdmAuditsComponent as ɵj, AdmAuditLoc as ɵk, AdmEnqComponent as ɵl, AdmEnqLoc as ɵm, AdminModuleCommService as ɵn };
|
|
1189
1234
|
//# sourceMappingURL=esfaenza-admin-module.js.map
|