@esfaenza/core 16.2.28 → 19.2.2
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/components/back-top/back-top.component.d.ts +12 -12
- package/components/base/base.component.d.ts +26 -26
- package/components/base/embedding.component.d.ts +22 -22
- package/components/base/reactive.component.d.ts +9 -9
- package/components/breadcrumb/breadcrumb.component.d.ts +26 -26
- package/components/components.module.d.ts +32 -32
- package/components/error/404/pagenotfound.component.d.ts +15 -15
- package/components/error/500/servererror.component.d.ts +20 -20
- package/components/error/Angular/angularerror.component.d.ts +25 -25
- package/components/es-image-cropper/es-image-cropper.component.d.ts +25 -25
- package/components/es-modal/es-modal-head/es-modal-head.component.d.ts +11 -11
- package/components/es-modal/es-modal.component.d.ts +18 -18
- package/components/external-page/external_pages.component.d.ts +21 -21
- package/components/index.d.ts +5 -5
- package/components/jace-login/jace-login.component.d.ts +8 -8
- package/components/jace-resource/jace-resource.component.d.ts +25 -25
- package/components/labeled-span/labeled-span.component.d.ts +11 -11
- package/components/navbar/navbar.component.d.ts +58 -58
- package/components/navbar/navbar.component.loc.d.ts +8 -8
- package/components/page/pages.component.d.ts +23 -23
- package/components/public-api.d.ts +21 -21
- package/components/redirecter/redirecter.component.d.ts +23 -23
- package/components/sidebar/sidebar.component.d.ts +64 -64
- package/components/sidebar/sidebar.component.loc.d.ts +8 -8
- package/components/user_infos/user_infos.component.d.ts +50 -50
- package/components/user_infos/user_infos.component.loc.d.ts +8 -8
- package/directives/componentHost/componentHost.directive.d.ts +12 -12
- package/directives/directives.module.d.ts +12 -12
- package/directives/draggable/draggable.directive.d.ts +13 -13
- package/directives/es-modal/es-modal.directive.d.ts +20 -20
- package/directives/es-routerLink/es-routerLink.directive.d.ts +13 -13
- package/directives/index.d.ts +5 -5
- package/directives/public-api.d.ts +7 -7
- package/directives/slim-scroll/slim-scroll.directive.d.ts +15 -15
- package/directives/widget/widget.directive.d.ts +9 -9
- package/domain/index.d.ts +5 -5
- package/domain/models/core/ApplicationJob.d.ts +12 -12
- package/domain/models/core/ApplicationMenu.d.ts +16 -16
- package/domain/models/core/ApplicationRoutes.d.ts +2 -2
- package/domain/models/core/EnvOptions.d.ts +15 -15
- package/domain/models/core/GenericItem.d.ts +10 -10
- package/domain/models/core/KeyValue.d.ts +5 -5
- package/domain/models/global_search/SaerchResultContainer.d.ts +5 -5
- package/domain/models/global_search/SearchResult.d.ts +10 -10
- package/domain/models/jace/AccountScope.d.ts +9 -9
- package/domain/models/jace/ActiveModuleView.d.ts +11 -11
- package/domain/models/jace/CategoriesWithModules.d.ts +6 -6
- package/domain/models/jace/JaceAccount.d.ts +17 -17
- package/domain/models/jace/JaceIdentity.d.ts +17 -17
- package/domain/models/jace/JaceModule.d.ts +8 -8
- package/domain/models/jace/JacePermission.d.ts +10 -10
- package/domain/models/jace/JaceRole.d.ts +13 -13
- package/domain/models/jace/JaceUser.d.ts +9 -9
- package/domain/models/user/UpdateAccountRecoverySettingsDto.d.ts +5 -5
- package/domain/models/user/UpdatePasswordDto.d.ts +9 -9
- package/domain/models/user/UpdateProfilePictureDto.d.ts +4 -4
- package/domain/models/user/UserAccount.d.ts +23 -23
- package/domain/public-api.d.ts +22 -22
- package/domain/tokens.d.ts +22 -22
- package/fesm2022/esfaenza-core-components.mjs +1492 -1480
- package/fesm2022/esfaenza-core-components.mjs.map +1 -1
- package/fesm2022/esfaenza-core-directives.mjs +269 -269
- package/fesm2022/esfaenza-core-directives.mjs.map +1 -1
- package/fesm2022/esfaenza-core-domain.mjs +153 -153
- package/fesm2022/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2022/esfaenza-core-helpers.mjs +38 -38
- package/fesm2022/esfaenza-core-helpers.mjs.map +1 -1
- package/fesm2022/esfaenza-core-modules.mjs +128 -134
- package/fesm2022/esfaenza-core-modules.mjs.map +1 -1
- package/fesm2022/esfaenza-core-pipes.mjs +96 -96
- package/fesm2022/esfaenza-core-pipes.mjs.map +1 -1
- package/fesm2022/esfaenza-core-services.mjs +1760 -1754
- package/fesm2022/esfaenza-core-services.mjs.map +1 -1
- package/fesm2022/esfaenza-core.mjs +206 -230
- package/fesm2022/esfaenza-core.mjs.map +1 -1
- package/helpers/classes/ResizeListener.d.ts +12 -12
- package/helpers/index.d.ts +5 -5
- package/helpers/public-api.d.ts +1 -1
- package/index.d.ts +5 -5
- package/lib/app.component.d.ts +13 -13
- package/lib/core.module.d.ts +85 -86
- package/modules/classes/_base.module.d.ts +4 -4
- package/modules/classes/_embedding.module.d.ts +11 -11
- package/modules/classes/_shared.module.d.ts +28 -29
- package/modules/classes/t_c.module.d.ts +18 -19
- package/modules/index.d.ts +5 -5
- package/modules/public-api.d.ts +4 -4
- package/package.json +84 -104
- package/pipes/classes/included_in.pipe.d.ts +7 -7
- package/pipes/classes/safe_html.pipe.d.ts +10 -10
- package/pipes/classes/safe_script.pipe.d.ts +10 -10
- package/pipes/classes/safe_style.pipe.d.ts +10 -10
- package/pipes/classes/safe_url.pipe.d.ts +10 -10
- package/pipes/index.d.ts +5 -5
- package/pipes/pipes.module.d.ts +11 -11
- package/pipes/public-api.d.ts +6 -6
- package/public-api.d.ts +2 -2
- package/services/classes/app.accesstoken.d.ts +17 -17
- package/services/classes/app.completedjobredirection.d.ts +12 -12
- package/services/classes/app.errorhandler.d.ts +11 -11
- package/services/classes/app.event.d.ts +10 -10
- package/services/classes/app.globalsearch.d.ts +25 -25
- package/services/classes/app.httpextensions.d.ts +34 -34
- package/services/classes/app.httpextensions.loc.d.ts +8 -8
- package/services/classes/app.menufilter.d.ts +14 -14
- package/services/classes/app.routeguard.d.ts +10 -10
- package/services/classes/app.session.d.ts +15 -15
- package/services/classes/app.state.d.ts +55 -55
- package/services/classes/preferences/app.cache.persistor.d.ts +25 -25
- package/services/classes/preferences/app.preference.persistor.d.ts +25 -25
- package/services/classes/preferences/user/app.userpreferences.base.d.ts +25 -25
- package/services/index.d.ts +5 -5
- package/services/public-api.d.ts +13 -13
- package/theme/initial.scss +17 -7
- package/esm2022/components/back-top/back-top.component.mjs +0 -43
- package/esm2022/components/base/base.component.mjs +0 -67
- package/esm2022/components/base/embedding.component.mjs +0 -64
- package/esm2022/components/base/reactive.component.mjs +0 -28
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -80
- package/esm2022/components/components.module.mjs +0 -97
- package/esm2022/components/error/404/pagenotfound.component.mjs +0 -36
- package/esm2022/components/error/500/servererror.component.mjs +0 -47
- package/esm2022/components/error/Angular/angularerror.component.mjs +0 -62
- package/esm2022/components/es-image-cropper/es-image-cropper.component.mjs +0 -82
- package/esm2022/components/es-modal/es-modal-head/es-modal-head.component.mjs +0 -22
- package/esm2022/components/es-modal/es-modal.component.mjs +0 -40
- package/esm2022/components/esfaenza-core-components.mjs +0 -5
- package/esm2022/components/external-page/external_pages.component.mjs +0 -48
- package/esm2022/components/jace-login/jace-login.component.mjs +0 -31
- package/esm2022/components/jace-resource/jace-resource.component.mjs +0 -68
- package/esm2022/components/labeled-span/labeled-span.component.mjs +0 -25
- package/esm2022/components/navbar/navbar.component.loc.mjs +0 -41
- package/esm2022/components/navbar/navbar.component.mjs +0 -223
- package/esm2022/components/page/pages.component.mjs +0 -60
- package/esm2022/components/public-api.mjs +0 -22
- package/esm2022/components/redirecter/redirecter.component.mjs +0 -65
- package/esm2022/components/sidebar/sidebar.component.loc.mjs +0 -39
- package/esm2022/components/sidebar/sidebar.component.mjs +0 -286
- package/esm2022/components/user_infos/user_infos.component.loc.mjs +0 -43
- package/esm2022/components/user_infos/user_infos.component.mjs +0 -148
- package/esm2022/directives/componentHost/componentHost.directive.mjs +0 -29
- package/esm2022/directives/directives.module.mjs +0 -21
- package/esm2022/directives/draggable/draggable.directive.mjs +0 -49
- package/esm2022/directives/es-modal/es-modal.directive.mjs +0 -79
- package/esm2022/directives/es-routerLink/es-routerLink.directive.mjs +0 -55
- package/esm2022/directives/esfaenza-core-directives.mjs +0 -5
- package/esm2022/directives/public-api.mjs +0 -8
- package/esm2022/directives/slim-scroll/slim-scroll.directive.mjs +0 -41
- package/esm2022/directives/widget/widget.directive.mjs +0 -37
- package/esm2022/domain/esfaenza-core-domain.mjs +0 -5
- package/esm2022/domain/models/core/ApplicationJob.mjs +0 -3
- package/esm2022/domain/models/core/ApplicationMenu.mjs +0 -26
- package/esm2022/domain/models/core/ApplicationRoutes.mjs +0 -3
- package/esm2022/domain/models/core/EnvOptions.mjs +0 -13
- package/esm2022/domain/models/core/GenericItem.mjs +0 -12
- package/esm2022/domain/models/core/KeyValue.mjs +0 -15
- package/esm2022/domain/models/global_search/SaerchResultContainer.mjs +0 -6
- package/esm2022/domain/models/global_search/SearchResult.mjs +0 -8
- package/esm2022/domain/models/jace/AccountScope.mjs +0 -8
- package/esm2022/domain/models/jace/ActiveModuleView.mjs +0 -6
- package/esm2022/domain/models/jace/CategoriesWithModules.mjs +0 -7
- package/esm2022/domain/models/jace/JaceAccount.mjs +0 -3
- package/esm2022/domain/models/jace/JaceIdentity.mjs +0 -15
- package/esm2022/domain/models/jace/JaceModule.mjs +0 -10
- package/esm2022/domain/models/jace/JacePermission.mjs +0 -3
- package/esm2022/domain/models/jace/JaceRole.mjs +0 -9
- package/esm2022/domain/models/jace/JaceUser.mjs +0 -3
- package/esm2022/domain/models/user/UpdateAccountRecoverySettingsDto.mjs +0 -7
- package/esm2022/domain/models/user/UpdatePasswordDto.mjs +0 -11
- package/esm2022/domain/models/user/UpdateProfilePictureDto.mjs +0 -6
- package/esm2022/domain/models/user/UserAccount.mjs +0 -3
- package/esm2022/domain/public-api.mjs +0 -23
- package/esm2022/domain/tokens.mjs +0 -17
- package/esm2022/esfaenza-core.mjs +0 -5
- package/esm2022/helpers/classes/ResizeListener.mjs +0 -38
- package/esm2022/helpers/esfaenza-core-helpers.mjs +0 -5
- package/esm2022/helpers/public-api.mjs +0 -2
- package/esm2022/lib/app.component.mjs +0 -34
- package/esm2022/lib/core.module.mjs +0 -258
- package/esm2022/modules/classes/_base.module.mjs +0 -32
- package/esm2022/modules/classes/_embedding.module.mjs +0 -27
- package/esm2022/modules/classes/_shared.module.mjs +0 -47
- package/esm2022/modules/classes/t_c.module.mjs +0 -85
- package/esm2022/modules/esfaenza-core-modules.mjs +0 -5
- package/esm2022/modules/public-api.mjs +0 -5
- package/esm2022/pipes/classes/included_in.pipe.mjs +0 -20
- package/esm2022/pipes/classes/safe_html.pipe.mjs +0 -21
- package/esm2022/pipes/classes/safe_script.pipe.mjs +0 -21
- package/esm2022/pipes/classes/safe_style.pipe.mjs +0 -21
- package/esm2022/pipes/classes/safe_url.pipe.mjs +0 -21
- package/esm2022/pipes/esfaenza-core-pipes.mjs +0 -5
- package/esm2022/pipes/pipes.module.mjs +0 -20
- package/esm2022/pipes/public-api.mjs +0 -7
- package/esm2022/public-api.mjs +0 -3
- package/esm2022/services/classes/app.accesstoken.mjs +0 -1042
- package/esm2022/services/classes/app.completedjobredirection.mjs +0 -18
- package/esm2022/services/classes/app.errorhandler.mjs +0 -41
- package/esm2022/services/classes/app.event.mjs +0 -27
- package/esm2022/services/classes/app.globalsearch.mjs +0 -34
- package/esm2022/services/classes/app.httpextensions.loc.mjs +0 -15
- package/esm2022/services/classes/app.httpextensions.mjs +0 -90
- package/esm2022/services/classes/app.menufilter.mjs +0 -21
- package/esm2022/services/classes/app.routeguard.mjs +0 -23
- package/esm2022/services/classes/app.session.mjs +0 -40
- package/esm2022/services/classes/app.state.mjs +0 -229
- package/esm2022/services/classes/preferences/app.cache.persistor.mjs +0 -94
- package/esm2022/services/classes/preferences/app.preference.persistor.mjs +0 -94
- package/esm2022/services/classes/preferences/user/app.userpreferences.base.mjs +0 -101
- package/esm2022/services/esfaenza-core-services.mjs +0 -5
- package/esm2022/services/public-api.mjs +0 -14
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { InboundMessageTypes } from "@esfaenza/extensions";
|
|
3
|
-
// Core
|
|
4
|
-
import { ANONYMOUS_MODE } from "@esfaenza/core/domain";
|
|
5
|
-
// Direttive, Componenti, Librerie
|
|
6
|
-
import * as customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
7
|
-
import * as isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
|
|
8
|
-
import * as isSameOrAfter from 'dayjs/plugin/isSameOrAfter';
|
|
9
|
-
import * as isBetween from 'dayjs/plugin/isBetween';
|
|
10
|
-
import * as duration from 'dayjs/plugin/duration';
|
|
11
|
-
import * as minMax from 'dayjs/plugin/minMax';
|
|
12
|
-
import * as utc from 'dayjs/plugin/utc';
|
|
13
|
-
import { Subject, filter } from "rxjs";
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@angular/router";
|
|
16
|
-
import * as i2 from "@esfaenza/localizations";
|
|
17
|
-
import * as i3 from "./app.accesstoken";
|
|
18
|
-
import * as i4 from "@esfaenza/signalr-notifications";
|
|
19
|
-
import * as i5 from "@esfaenza/extensions";
|
|
20
|
-
export class AppState {
|
|
21
|
-
set Modules(modules) {
|
|
22
|
-
this._modules = modules;
|
|
23
|
-
this.notifyDataChanged("modules.Retrieved", this._modules);
|
|
24
|
-
}
|
|
25
|
-
get Modules() { return this._modules; }
|
|
26
|
-
constructor(router, lc, bts, notifications, MessageDef, intercom, emb, anonymousMode) {
|
|
27
|
-
this.router = router;
|
|
28
|
-
this.lc = lc;
|
|
29
|
-
this.bts = bts;
|
|
30
|
-
this.notifications = notifications;
|
|
31
|
-
this.MessageDef = MessageDef;
|
|
32
|
-
this.intercom = intercom;
|
|
33
|
-
this.emb = emb;
|
|
34
|
-
this.anonymousMode = anonymousMode;
|
|
35
|
-
this.redirectingToLogin = false;
|
|
36
|
-
this.handlingError = false;
|
|
37
|
-
this.christmasTime = false;
|
|
38
|
-
this.halloweenTime = false;
|
|
39
|
-
this.jobsInProgress = 0;
|
|
40
|
-
this.allJobs = [];
|
|
41
|
-
this.jobWithIdsCache = {};
|
|
42
|
-
this.notifyOnCompletedJobs = true;
|
|
43
|
-
this._data = new Subject();
|
|
44
|
-
this._subscriptions = new Map();
|
|
45
|
-
this.ModulesLocalizations = {};
|
|
46
|
-
this.hookEmbedding();
|
|
47
|
-
this.setupDayjs();
|
|
48
|
-
this.setupSignalRJobListening();
|
|
49
|
-
this.JaceIdentity = null;
|
|
50
|
-
this._data.subscribe((data) => this._onEvent(data));
|
|
51
|
-
//Decide se siamo attorno a natale
|
|
52
|
-
var today = dayjs();
|
|
53
|
-
var thisYear = today.year();
|
|
54
|
-
var lowerBound = dayjs("18/12/" + thisYear, "DD/MM/YYYY");
|
|
55
|
-
var upperBound = dayjs("07/01/" + (thisYear + 1), "DD/MM/YYYY");
|
|
56
|
-
this.christmasTime = today > lowerBound && today < upperBound;
|
|
57
|
-
//Decide se siamo attorno ad halloween
|
|
58
|
-
var lowerBound = dayjs("28/10/" + thisYear, "DD/MM/YYYY");
|
|
59
|
-
var upperBound = dayjs("05/11/" + thisYear, "DD/MM/YYYY");
|
|
60
|
-
this.halloweenTime = today > lowerBound && today < upperBound;
|
|
61
|
-
this.intercom.inbounds.subscribe((t) => { this.handleInboundMessage(t); });
|
|
62
|
-
}
|
|
63
|
-
// Collego le informazioni dell'embedding che devono appoggiarsi all'app state in modo che possano comunicare col resto dell'applicazione
|
|
64
|
-
hookEmbedding() {
|
|
65
|
-
this.emb.MessageObserver.pipe(filter(ev => ev.event == "navigation")).subscribe(event => {
|
|
66
|
-
var navigationOp = event?.data?.internalNavigation ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo";
|
|
67
|
-
this.notifyDataChanged(navigationOp, event?.data?.title);
|
|
68
|
-
});
|
|
69
|
-
this.emb.MessageObserver.pipe(filter(ev => ev.event == "window-message")).subscribe(event => {
|
|
70
|
-
this.notifyDataChanged("window-message", event?.data);
|
|
71
|
-
});
|
|
72
|
-
this._data.pipe(filter(e => e.event == "menu.isCollapsed")).subscribe(_ => {
|
|
73
|
-
this.emb.refreshBoundariesOnMenuCollapse();
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
/** Tenant§Account§User§APPNAME */
|
|
77
|
-
getSessionIdentity() {
|
|
78
|
-
if (this.SessionIdentity)
|
|
79
|
-
return this.SessionIdentity;
|
|
80
|
-
// Se non ho un id mi manca il login, quindi via di qua
|
|
81
|
-
var id = this.getJaceIDentity();
|
|
82
|
-
if (!id) {
|
|
83
|
-
if (this.anonymousMode)
|
|
84
|
-
return "";
|
|
85
|
-
this.router.navigate(["login"]);
|
|
86
|
-
return "";
|
|
87
|
-
}
|
|
88
|
-
this.SessionIdentity = "" + id.Idtenant + "§" + id.IdAccount + "§" + id.IdUser + "§" + myconfig.AppData.ModuleId;
|
|
89
|
-
return this.SessionIdentity;
|
|
90
|
-
}
|
|
91
|
-
registerNavigationIfMeaningful(route) {
|
|
92
|
-
let title = route.data["title"];
|
|
93
|
-
let internal = route.data["internalNavigation"];
|
|
94
|
-
// Permette di chiamare sto registerNavigation a prescindere e fare opt out se non è una route navigabile
|
|
95
|
-
if (!title)
|
|
96
|
-
return;
|
|
97
|
-
/*
|
|
98
|
-
* Parent ({url: [{path: "{module}"}]})
|
|
99
|
-
* Parent ({url: [{path: ""}]}) (Root del modulo lazy)
|
|
100
|
-
* -> Navigazione attuale <-
|
|
101
|
-
*/
|
|
102
|
-
let module = route.parent?.parent?.url[0]?.path;
|
|
103
|
-
let loc = module ? this.ModulesLocalizations[module] : null;
|
|
104
|
-
if (!module)
|
|
105
|
-
console.error("Impossibile estrapolare il modulo dalla navigazione (Atteso Modulo al secondo livello di parentela partendo dal componente attuale): " + route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'));
|
|
106
|
-
this.notifyDataChanged(internal ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo", loc ? loc.loc(title) : title);
|
|
107
|
-
}
|
|
108
|
-
handleInboundMessage(t) {
|
|
109
|
-
switch (t.type) {
|
|
110
|
-
case InboundMessageTypes.Navigation:
|
|
111
|
-
this.notifyDataChanged(t.message.sub ? "menu.adjustSubNavigationTo" : "menu.adjustNavigationTo", t.message.routeTitle);
|
|
112
|
-
// export const MK_ADM = "EsAdminModule";
|
|
113
|
-
// AdmMessageTypes.Message = 0;
|
|
114
|
-
// definita in admin-module.
|
|
115
|
-
// admin-module usa core quindi referenze circolari no-no-no
|
|
116
|
-
this.intercom.send(0, "Navigation Message Received", "EsAdminModule");
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
setupDayjs() {
|
|
121
|
-
dayjs.extend(customParseFormat.default || customParseFormat);
|
|
122
|
-
dayjs.extend(minMax.default || minMax);
|
|
123
|
-
dayjs.extend(isBetween.default || isBetween);
|
|
124
|
-
dayjs.extend(isSameOrBefore.default || isSameOrBefore);
|
|
125
|
-
dayjs.extend(isSameOrAfter.default || isSameOrAfter);
|
|
126
|
-
dayjs.extend(duration.default || duration);
|
|
127
|
-
dayjs.extend(utc.default || utc);
|
|
128
|
-
// Require e collegamento con la localizzazione per dayjs
|
|
129
|
-
import("dayjs/locale/" + this.lc.SmallLocale + ".js").then(locale => { dayjs.locale(locale); });
|
|
130
|
-
}
|
|
131
|
-
setupSignalRJobListening() {
|
|
132
|
-
this.notifications.observe(this.MessageDef.IN_JobProgressNotification).subscribe((ev) => {
|
|
133
|
-
var identity = this.getJaceIDentity();
|
|
134
|
-
if (!identity)
|
|
135
|
-
return;
|
|
136
|
-
var desc = (ev.description || ev.actionid) + " (" + (ev.user || identity.DsUser) + ")";
|
|
137
|
-
let job = {
|
|
138
|
-
id: ev.instance,
|
|
139
|
-
description: desc,
|
|
140
|
-
smalldescription: desc.length > 35 ? desc.substring(0, 30) + "..." : desc,
|
|
141
|
-
percentage: this.roundToTwo(ev.progress),
|
|
142
|
-
completed: ev.type == 'Completed',
|
|
143
|
-
fileid: ev.resultfile,
|
|
144
|
-
reportid: ev.resultreport,
|
|
145
|
-
reportpars: ev.resultreportparams,
|
|
146
|
-
complexreportid: ev.resultcomplexreport
|
|
147
|
-
};
|
|
148
|
-
switch (ev.type) {
|
|
149
|
-
case "Started":
|
|
150
|
-
if (this.jobWithIdsCache[ev.instance]) {
|
|
151
|
-
console.warn("Job already registered on the 'Started' callback");
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
this.jobWithIdsCache[ev.instance] = job;
|
|
155
|
-
this.allJobs.splice(0, 0, job);
|
|
156
|
-
this.notifyDataChanged("app.startedJob", job.description);
|
|
157
|
-
break;
|
|
158
|
-
case "Progress":
|
|
159
|
-
// Se mi arriva un progress di un job che non ho significa che mi sono loggato ora con dei Job in corso
|
|
160
|
-
// quindi per prima cosa devo metterlo in lista
|
|
161
|
-
if (!this.jobWithIdsCache[ev.instance]) {
|
|
162
|
-
this.jobWithIdsCache[ev.instance] = job;
|
|
163
|
-
this.allJobs.splice(0, 0, job);
|
|
164
|
-
}
|
|
165
|
-
this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);
|
|
166
|
-
this.notifyDataChanged("app.progressJob", { description: job.description, progress: this.jobWithIdsCache[ev.instance].percentage });
|
|
167
|
-
break;
|
|
168
|
-
case "Completed":
|
|
169
|
-
if (!this.jobWithIdsCache[ev.instance]) {
|
|
170
|
-
this.jobWithIdsCache[ev.instance] = job;
|
|
171
|
-
this.allJobs.splice(0, 0, job);
|
|
172
|
-
}
|
|
173
|
-
var jobToUpdate = this.jobWithIdsCache[ev.instance];
|
|
174
|
-
jobToUpdate.percentage = 100;
|
|
175
|
-
jobToUpdate.fileid = ev.resultfile;
|
|
176
|
-
jobToUpdate.reportid = ev.resultreport;
|
|
177
|
-
jobToUpdate.reportpars = ev.resultreportparams;
|
|
178
|
-
jobToUpdate.completed = true;
|
|
179
|
-
if (this.notifyOnCompletedJobs)
|
|
180
|
-
this.notifyDataChanged("app.completedJob", jobToUpdate.description);
|
|
181
|
-
break;
|
|
182
|
-
}
|
|
183
|
-
this.jobsInProgress = this.allJobs.filter(t => !t.completed).length;
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
roundToTwo(num) {
|
|
187
|
-
return Math.round(num * 100) / 100;
|
|
188
|
-
}
|
|
189
|
-
getJaceIDentity() {
|
|
190
|
-
if (this.JaceIdentity)
|
|
191
|
-
return this.JaceIdentity;
|
|
192
|
-
this.JaceIdentity = this.bts.getJaceIdentity();
|
|
193
|
-
return this.JaceIdentity;
|
|
194
|
-
}
|
|
195
|
-
notifyDataChanged(event, value) {
|
|
196
|
-
this._data[event] = value;
|
|
197
|
-
this._data.next({
|
|
198
|
-
event: event,
|
|
199
|
-
data: this._data[event]
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
subscribe(event, callback) {
|
|
203
|
-
var subscribers = this._subscriptions.get(event) || [];
|
|
204
|
-
subscribers.push(callback);
|
|
205
|
-
this._subscriptions.set(event, subscribers);
|
|
206
|
-
}
|
|
207
|
-
_onEvent(data) {
|
|
208
|
-
var subscribers = this._subscriptions.get(data["event"]) || [];
|
|
209
|
-
subscribers.forEach((callback) => {
|
|
210
|
-
callback.call(null, data["data"]);
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
setSidebarWidth(width) {
|
|
214
|
-
this.sidebarWidth = width;
|
|
215
|
-
}
|
|
216
|
-
setHeaderHeight(height) {
|
|
217
|
-
this.headerHeight = height;
|
|
218
|
-
}
|
|
219
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppState, deps: [{ token: i1.Router }, { token: i2.LocalizationService }, { token: i3.TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
220
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppState, providedIn: "root" }); }
|
|
221
|
-
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppState, decorators: [{
|
|
223
|
-
type: Injectable,
|
|
224
|
-
args: [{ providedIn: "root" }]
|
|
225
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocalizationService }, { type: i3.TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }, { type: undefined, decorators: [{
|
|
226
|
-
type: Inject,
|
|
227
|
-
args: [ANONYMOUS_MODE]
|
|
228
|
-
}] }]; } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFvQyxNQUFNLHNCQUFzQixDQUFDO0FBTTdGLE9BQU87QUFDUCxPQUFPLEVBQW9CLGNBQWMsRUFBNEMsTUFBTSx1QkFBdUIsQ0FBQztBQUVuSCxrQ0FBa0M7QUFDbEMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxjQUFjLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTXZDLE1BQU0sT0FBTyxRQUFRO0lBd0JqQixJQUFXLE9BQU8sQ0FBQyxPQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxJQUFXLE9BQU8sS0FBeUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVsRSxZQUFvQixNQUFjLEVBQVUsRUFBdUIsRUFBVSxHQUFpQixFQUFV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QjFRLFFBQVEsY0FESyxNQUFNOzs0RkFDbkIsUUFBUTtrQkFEcEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQStCZ08sTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlTWVzc2FnZVNlcnZpY2UsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBKb2JQcm9ncmVzc0R0byB9IGZyb20gXCJAZXNmYWVuemEvc2lnbmFsci1ub3RpZmljYXRpb25zXCI7XHJcbmltcG9ydCB7IEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tTWVzc2FnZSwgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4vYXBwLmFjY2Vzc3Rva2VuXCI7XHJcblxyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb3JlXHJcbmltcG9ydCB7IEFjdGl2ZU1vZHVsZVZpZXcsIEFOT05ZTU9VU19NT0RFLCBBcHBsaWNhdGlvbkpvYiwgRW52T3B0aW9ucywgSmFjZUlkZW50aXR5IH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgKiBhcyBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckJlZm9yZSBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmUnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckFmdGVyIGZyb20gJ2RheWpzL3BsdWdpbi9pc1NhbWVPckFmdGVyJztcclxuaW1wb3J0ICogYXMgaXNCZXR3ZWVuIGZyb20gJ2RheWpzL3BsdWdpbi9pc0JldHdlZW4nO1xyXG5pbXBvcnQgKiBhcyBkdXJhdGlvbiBmcm9tICdkYXlqcy9wbHVnaW4vZHVyYXRpb24nO1xyXG5pbXBvcnQgKiBhcyBtaW5NYXggZnJvbSAnZGF5anMvcGx1Z2luL21pbk1heCc7XHJcbmltcG9ydCAqIGFzIHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgQXBwU3RhdGUge1xyXG5cclxuICAgIHB1YmxpYyBzaWRlYmFyV2lkdGg6IG51bWJlcjtcclxuICAgIHB1YmxpYyBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBTZXNzaW9uSWRlbnRpdHk6IHN0cmluZztcclxuICAgIHByaXZhdGUgSmFjZUlkZW50aXR5OiBKYWNlSWRlbnRpdHk7XHJcblxyXG4gICAgcHVibGljIGpvYnNJblByb2dyZXNzOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGFsbEpvYnM6IEFwcGxpY2F0aW9uSm9iW10gPSBbXTtcclxuICAgIHByaXZhdGUgam9iV2l0aElkc0NhY2hlOiB7IFtpbmRleDogc3RyaW5nXTogQXBwbGljYXRpb25Kb2IgfSA9IHt9O1xyXG4gICAgcHVibGljIG5vdGlmeU9uQ29tcGxldGVkSm9iczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGF0YSA9IG5ldyBTdWJqZWN0PE9iamVjdD4oKTtcclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PigpO1xyXG5cclxuICAgIHB1YmxpYyBNb2R1bGVzTG9jYWxpemF0aW9uczogeyBbaWQ6IHN0cmluZ106IExvY2FsaXphdGlvblNlcnZpY2UgfSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuICAgIHB1YmxpYyBzZXQgTW9kdWxlcyhtb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W10pIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVzID0gbW9kdWxlcztcclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgdGhpcy5fbW9kdWxlcyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IE1vZHVsZXMoKTogQWN0aXZlTW9kdWxlVmlld1tdIHsgcmV0dXJuIHRoaXMuX21vZHVsZXM7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucywgQEluamVjdChBTk9OWU1PVVNfTU9ERSkgcHJpdmF0ZSBhbm9ueW1vdXNNb2RlIDogYm9vbGVhbikge1xyXG5cclxuICAgICAgICB0aGlzLmhvb2tFbWJlZGRpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERheWpzKCk7XHJcbiAgICAgICAgdGhpcy5zZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2RhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIHRoaXNZZWFyID0gdG9kYXkueWVhcigpO1xyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIxOC8xMi9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRoaXNZZWFyICsgMSksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmNocmlzdG1hc1RpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGFkIGhhbGxvd2VlblxyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIyOC8xMC9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA1LzExL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENvbGxlZ28gbGUgaW5mb3JtYXppb25pIGRlbGwnZW1iZWRkaW5nIGNoZSBkZXZvbm8gYXBwb2dnaWFyc2kgYWxsJ2FwcCBzdGF0ZSBpbiBtb2RvIGNoZSBwb3NzYW5vIGNvbXVuaWNhcmUgY29sIHJlc3RvIGRlbGwnYXBwbGljYXppb25lXHJcbiAgICBob29rRW1iZWRkaW5nKCkge1xyXG4gICAgICAgIHRoaXMuZW1iLk1lc3NhZ2VPYnNlcnZlci5waXBlKGZpbHRlcihldiA9PiBldi5ldmVudCA9PSBcIm5hdmlnYXRpb25cIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBuYXZpZ2F0aW9uT3AgPSBldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKG5hdmlnYXRpb25PcCwgZXZlbnQ/LmRhdGE/LnRpdGxlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5lbWIuTWVzc2FnZU9ic2VydmVyLnBpcGUoZmlsdGVyKGV2ID0+IGV2LmV2ZW50ID09IFwid2luZG93LW1lc3NhZ2VcIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJ3aW5kb3ctbWVzc2FnZVwiLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RhdGEucGlwZShmaWx0ZXIoZSA9PiAoZSBhcyBhbnkpLmV2ZW50ID09IFwibWVudS5pc0NvbGxhcHNlZFwiKSkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVtYi5yZWZyZXNoQm91bmRhcmllc09uTWVudUNvbGxhcHNlKClcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGVuYW50wqdBY2NvdW50wqdVc2VywqdBUFBOQU1FICovXHJcbiAgICBnZXRTZXNzaW9uSWRlbnRpdHkoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5TZXNzaW9uSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLlNlc3Npb25JZGVudGl0eTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGhvIHVuIGlkIG1pIG1hbmNhIGlsIGxvZ2luLCBxdWluZGkgdmlhIGRpIHF1YVxyXG4gICAgICAgIHZhciBpZCA9IHRoaXMuZ2V0SmFjZUlEZW50aXR5KCk7XHJcbiAgICAgICAgaWYgKCFpZCkge1xyXG4gICAgICAgICAgICBpZih0aGlzLmFub255bW91c01vZGUpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImxvZ2luXCJdKTtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLlNlc3Npb25JZGVudGl0eSA9IFwiXCIgKyBpZC5JZHRlbmFudCArIFwiwqdcIiArIGlkLklkQWNjb3VudCArIFwiwqdcIiArIGlkLklkVXNlciArIFwiwqdcIiArIG15Y29uZmlnLkFwcERhdGEuTW9kdWxlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuU2Vzc2lvbklkZW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyTmF2aWdhdGlvbklmTWVhbmluZ2Z1bChyb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgICAgICBsZXQgdGl0bGUgPSByb3V0ZS5kYXRhW1widGl0bGVcIl07XHJcbiAgICAgICAgbGV0IGludGVybmFsID0gcm91dGUuZGF0YVtcImludGVybmFsTmF2aWdhdGlvblwiXVxyXG5cclxuICAgICAgICAvLyBQZXJtZXR0ZSBkaSBjaGlhbWFyZSBzdG8gcmVnaXN0ZXJOYXZpZ2F0aW9uIGEgcHJlc2NpbmRlcmUgZSBmYXJlIG9wdCBvdXQgc2Ugbm9uIMOoIHVuYSByb3V0ZSBuYXZpZ2FiaWxlXHJcbiAgICAgICAgaWYoIXRpdGxlKSByZXR1cm47XHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogIFBhcmVudCAoe3VybDogW3twYXRoOiBcInttb2R1bGV9XCJ9XX0pXHJcbiAgICAgICAgICogICAgICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJcIn1dfSkgKFJvb3QgZGVsIG1vZHVsbyBsYXp5KVxyXG4gICAgICAgICAqICAgICAgICAgIC0+IE5hdmlnYXppb25lIGF0dHVhbGUgPC1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgbW9kdWxlID0gcm91dGUucGFyZW50Py5wYXJlbnQ/LnVybFswXT8ucGF0aDtcclxuICAgICAgICBsZXQgbG9jID0gbW9kdWxlID8gdGhpcy5Nb2R1bGVzTG9jYWxpemF0aW9uc1ttb2R1bGVdIDogbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKCFtb2R1bGUpXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbXBvc3NpYmlsZSBlc3RyYXBvbGFyZSBpbCBtb2R1bG8gZGFsbGEgbmF2aWdhemlvbmUgKEF0dGVzbyBNb2R1bG8gYWwgc2Vjb25kbyBsaXZlbGxvIGRpIHBhcmVudGVsYSBwYXJ0ZW5kbyBkYWwgY29tcG9uZW50ZSBhdHR1YWxlKTogXCIgKyByb3V0ZS5wYXRoRnJvbVJvb3QubWFwKHYgPT4gdi51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC50b1N0cmluZygpKS5qb2luKCcvJykpLmpvaW4oJy8nKSk7XHJcblxyXG4gICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoaW50ZXJuYWwgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIGxvYyA/IGxvYy5sb2ModGl0bGUpIDogdGl0bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUluYm91bmRNZXNzYWdlKHQ6IEludGVyQ29tTWVzc2FnZSkge1xyXG4gICAgICAgIHN3aXRjaCAodC50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZCh0Lm1lc3NhZ2Uuc3ViID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCB0Lm1lc3NhZ2Uucm91dGVUaXRsZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBleHBvcnQgY29uc3QgTUtfQURNID0gXCJFc0FkbWluTW9kdWxlXCI7XHJcbiAgICAgICAgICAgICAgICAvLyBBZG1NZXNzYWdlVHlwZXMuTWVzc2FnZSA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5pdGEgaW4gYWRtaW4tbW9kdWxlLlxyXG4gICAgICAgICAgICAgICAgLy8gYWRtaW4tbW9kdWxlIHVzYSBjb3JlIHF1aW5kaSByZWZlcmVuemUgY2lyY29sYXJpIG5vLW5vLW5vXHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoMCwgXCJOYXZpZ2F0aW9uIE1lc3NhZ2UgUmVjZWl2ZWRcIiwgXCJFc0FkbWluTW9kdWxlXCIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRGF5anMoKSB7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmN1c3RvbVBhcnNlRm9ybWF0KS5kZWZhdWx0IHx8IGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+bWluTWF4KS5kZWZhdWx0IHx8IG1pbk1heCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzQmV0d2VlbikuZGVmYXVsdCB8fCBpc0JldHdlZW4pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc1NhbWVPckJlZm9yZSkuZGVmYXVsdCB8fCBpc1NhbWVPckJlZm9yZSk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQWZ0ZXIpLmRlZmF1bHQgfHwgaXNTYW1lT3JBZnRlcik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmR1cmF0aW9uKS5kZWZhdWx0IHx8IGR1cmF0aW9uKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+dXRjKS5kZWZhdWx0IHx8IHV0Yyk7XHJcblxyXG4gICAgICAgIC8vIFJlcXVpcmUgZSBjb2xsZWdhbWVudG8gY29uIGxhIGxvY2FsaXp6YXppb25lIHBlciBkYXlqc1xyXG4gICAgICAgIGltcG9ydChcImRheWpzL2xvY2FsZS9cIiArIHRoaXMubGMuU21hbGxMb2NhbGUgKyBcIi5qc1wiKS50aGVuKGxvY2FsZSA9PiB7IGRheWpzLmxvY2FsZShsb2NhbGUpOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9ic2VydmUodGhpcy5NZXNzYWdlRGVmLklOX0pvYlByb2dyZXNzTm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKGV2OiBKb2JQcm9ncmVzc0R0bykgPT4ge1xyXG5cclxuICAgICAgICAgICAgdmFyIGlkZW50aXR5ID0gdGhpcy5nZXRKYWNlSURlbnRpdHkoKTtcclxuICAgICAgICAgICAgaWYgKCFpZGVudGl0eSlcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgdmFyIGRlc2MgPSAoZXYuZGVzY3JpcHRpb24gfHwgZXYuYWN0aW9uaWQpICsgXCIgKFwiICsgKGV2LnVzZXIgfHwgaWRlbnRpdHkuRHNVc2VyKSArIFwiKVwiO1xyXG4gICAgICAgICAgICBsZXQgam9iOiBBcHBsaWNhdGlvbkpvYiA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiBldi5pbnN0YW5jZSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgc21hbGxkZXNjcmlwdGlvbjogZGVzYy5sZW5ndGggPiAzNSA/IGRlc2Muc3Vic3RyaW5nKDAsIDMwKSArIFwiLi4uXCIgOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZTogdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogZXYudHlwZSA9PSAnQ29tcGxldGVkJyxcclxuICAgICAgICAgICAgICAgIGZpbGVpZDogZXYucmVzdWx0ZmlsZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydGlkOiBldi5yZXN1bHRyZXBvcnQsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRwYXJzOiBldi5yZXN1bHRyZXBvcnRwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBjb21wbGV4cmVwb3J0aWQ6IGV2LnJlc3VsdGNvbXBsZXhyZXBvcnRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZXYudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlN0YXJ0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkpvYiBhbHJlYWR5IHJlZ2lzdGVyZWQgb24gdGhlICdTdGFydGVkJyBjYWxsYmFja1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuc3RhcnRlZEpvYlwiLCBqb2IuZGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlByb2dyZXNzXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2UgbWkgYXJyaXZhIHVuIHByb2dyZXNzIGRpIHVuIGpvYiBjaGUgbm9uIGhvIHNpZ25pZmljYSBjaGUgbWkgc29ubyBsb2dnYXRvIG9yYSBjb24gZGVpIEpvYiBpbiBjb3Jzb1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHF1aW5kaSBwZXIgcHJpbWEgY29zYSBkZXZvIG1ldHRlcmxvIGluIGxpc3RhXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXS5wZXJjZW50YWdlID0gdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLnByb2dyZXNzSm9iXCIsIHsgZGVzY3JpcHRpb246IGpvYi5kZXNjcmlwdGlvbiwgcHJvZ3Jlc3M6IHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXS5wZXJjZW50YWdlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNvbXBsZXRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgam9iVG9VcGRhdGUgPSB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV07XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucGVyY2VudGFnZSA9IDEwMDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5maWxlaWQgPSBldi5yZXN1bHRmaWxlO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydGlkID0gZXYucmVzdWx0cmVwb3J0O1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydHBhcnMgPSBldi5yZXN1bHRyZXBvcnRwYXJhbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuY29tcGxldGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm90aWZ5T25Db21wbGV0ZWRKb2JzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLmNvbXBsZXRlZEpvYlwiLCBqb2JUb1VwZGF0ZS5kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmpvYnNJblByb2dyZXNzID0gdGhpcy5hbGxKb2JzLmZpbHRlcih0ID0+ICF0LmNvbXBsZXRlZCkubGVuZ3RoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJvdW5kVG9Ud28obnVtKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRKYWNlSURlbnRpdHkoKTogSmFjZUlkZW50aXR5IHtcclxuICAgICAgICBpZiAodGhpcy5KYWNlSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IHRoaXMuYnRzLmdldEphY2VJZGVudGl0eSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBub3RpZnlEYXRhQ2hhbmdlZChldmVudCwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9kYXRhW2V2ZW50XSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2RhdGEubmV4dCh7XHJcbiAgICAgICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgZGF0YTogdGhpcy5fZGF0YVtldmVudF1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmUoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5nZXQoZXZlbnQpIHx8IFtdO1xyXG4gICAgICAgIHN1YnNjcmliZXJzLnB1c2goY2FsbGJhY2spO1xyXG5cclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnNldChldmVudCwgc3Vic2NyaWJlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIF9vbkV2ZW50KGRhdGE6IGFueSkge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGRhdGFbXCJldmVudFwiXSkgfHwgW107XHJcblxyXG4gICAgICAgIHN1YnNjcmliZXJzLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwobnVsbCwgZGF0YVtcImRhdGFcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRTaWRlYmFyV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhcldpZHRoID0gd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEhlYWRlckhlaWdodChoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { HttpHeaders } from "@angular/common/http";
|
|
3
|
-
import { Injectable } from "@angular/core";
|
|
4
|
-
// Configurazioni
|
|
5
|
-
import { CachePersistor } from "@esfaenza/preferences";
|
|
6
|
-
// Direttive, Componenti, Librerie
|
|
7
|
-
import { of } from "rxjs";
|
|
8
|
-
import { catchError, map } from "rxjs/operators";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@esfaenza/localizations";
|
|
11
|
-
import * as i2 from "@angular/common/http";
|
|
12
|
-
import * as i3 from "../app.accesstoken";
|
|
13
|
-
import * as i4 from "@esfaenza/preferences";
|
|
14
|
-
// Chiamate ai Repository
|
|
15
|
-
const BASE_Cache_Sessions = "/api/Cache/sessions";
|
|
16
|
-
export class ApplicationCachePersistor extends CachePersistor {
|
|
17
|
-
// Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che
|
|
18
|
-
// lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...
|
|
19
|
-
constructor(lc, http, tks, session) {
|
|
20
|
-
super(session);
|
|
21
|
-
this.lc = lc;
|
|
22
|
-
this.http = http;
|
|
23
|
-
this.tks = tks;
|
|
24
|
-
}
|
|
25
|
-
persist(key, item) {
|
|
26
|
-
let sk = this.session.getSessionKey();
|
|
27
|
-
if (!sk)
|
|
28
|
-
return of(false);
|
|
29
|
-
return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
|
|
30
|
-
}
|
|
31
|
-
recover(key) {
|
|
32
|
-
let sk = this.session.getSessionKey();
|
|
33
|
-
if (!sk)
|
|
34
|
-
return of(null);
|
|
35
|
-
return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
|
|
36
|
-
var resProp = null;
|
|
37
|
-
try {
|
|
38
|
-
resProp = JSON.parse(res);
|
|
39
|
-
}
|
|
40
|
-
catch { }
|
|
41
|
-
return resProp;
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
|
-
recoverAll() {
|
|
45
|
-
let sk = this.session.getSessionKey();
|
|
46
|
-
if (!sk)
|
|
47
|
-
return of(null);
|
|
48
|
-
return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
|
|
49
|
-
for (var prop in res) {
|
|
50
|
-
var resProp = null;
|
|
51
|
-
try {
|
|
52
|
-
resProp = JSON.parse(res[prop]);
|
|
53
|
-
}
|
|
54
|
-
catch { }
|
|
55
|
-
res[prop] = resProp;
|
|
56
|
-
}
|
|
57
|
-
return res;
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
remove(key) {
|
|
61
|
-
let sk = this.session.getSessionKey();
|
|
62
|
-
if (!sk)
|
|
63
|
-
return of(false);
|
|
64
|
-
return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
|
|
65
|
-
}
|
|
66
|
-
clear() {
|
|
67
|
-
let sk = this.session.getSessionKey();
|
|
68
|
-
if (!sk)
|
|
69
|
-
return of(false);
|
|
70
|
-
return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
|
|
71
|
-
}
|
|
72
|
-
getHeaders(contentType = 'application/json') {
|
|
73
|
-
return new HttpHeaders()
|
|
74
|
-
.append("Content-Type", contentType)
|
|
75
|
-
.append("Accept", "application/json")
|
|
76
|
-
.append("Authorization", "Bearer " + this.tks.getAccessToken())
|
|
77
|
-
.append("Accept-Language", this.lc.Locale);
|
|
78
|
-
}
|
|
79
|
-
getSessionUrl(sessionKey) {
|
|
80
|
-
return `${BASE_Cache_Sessions}/${sessionKey}`;
|
|
81
|
-
}
|
|
82
|
-
getItemsUrl(sessionKey) {
|
|
83
|
-
return `${this.getSessionUrl(sessionKey)}/items`;
|
|
84
|
-
}
|
|
85
|
-
getItemUrl(sessionKey, itemKey) {
|
|
86
|
-
return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
|
|
87
|
-
}
|
|
88
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationCachePersistor, deps: [{ token: i1.LocalizationService }, { token: i2.HttpClient }, { token: i3.TokenService }, { token: i4.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
89
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationCachePersistor }); }
|
|
90
|
-
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationCachePersistor, decorators: [{
|
|
92
|
-
type: Injectable
|
|
93
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.HttpClient }, { type: i3.TokenService }, { type: i4.BaseSessionRetriever }]; } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNhY2hlLnBlcnNpc3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc2VydmljZXMvc3JjL2NsYXNzZXMvcHJlZmVyZW5jZXMvYXBwLmNhY2hlLnBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBd0IsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJN0Usa0NBQWtDO0FBQ2xDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRWpELHlCQUF5QjtBQUN6QixNQUFNLG1CQUFtQixHQUFZLHFCQUFxQixDQUFDO0FBRzNELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBRXpELG1HQUFtRztJQUNuRyxzR0FBc0c7SUFDdEcsWUFBb0IsRUFBdUIsRUFBVSxJQUFnQixFQUFVLEdBQWlCLEVBQUUsT0FBNkI7UUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFBOUgsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYztJQUFtRCxDQUFDO0lBRTdJLE9BQU8sQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNsQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElB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clxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciwgQ2FjaGVQZXJzaXN0b3IgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4uL2FwcC5hY2Nlc3N0b2tlblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ2hpYW1hdGUgYWkgUmVwb3NpdG9yeVxyXG5jb25zdCBCQVNFX0NhY2hlX1Nlc3Npb25zOiBzdHJpbmcgPSAgXCIvYXBpL0NhY2hlL3Nlc3Npb25zXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlUGVyc2lzdG9yIGV4dGVuZHMgQ2FjaGVQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8vIFBhc3NvIGRpcmV0dGFtZW50ZSBkYWxsJ0h0dHBDbGllbnQgbmF0aXZvIGluIHF1YW50byBub24gcG9zc28gcGFzc2FyZSBkYWxsJ0h0dHBTZXJ2aWNlIGRhdG8gY2hlIFxyXG4gICAgLy8gbHVpIHJpY2hpZWRlIGlsIFByZWZlcmVuY2VzU2VydmljZSBjaGUgcmljaGllZGUgcXVlc3RhIGNsYXNzZSBjaGUgcmljaGllZGUgbCdIdHRwU2VydmljZSBlY2MgZWNjLi4uXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgdGtzOiBUb2tlblNlcnZpY2UsIHNlc3Npb246IEJhc2VTZXNzaW9uUmV0cmlldmVyKSB7IHN1cGVyKHNlc3Npb24pOyB9XHJcblxyXG4gICAgcHVibGljIHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIEpTT04uc3RyaW5naWZ5KGl0ZW0pLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWNvdmVyPFQ+KGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzdHJpbmc+KHRoaXMuZ2V0SXRlbVVybChzaywga2V5KSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpLFxyXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlc1Byb3AgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgcmVzUHJvcCA9IDxUPkpTT04ucGFyc2UocmVzKTsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzUHJvcDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWNvdmVyQWxsKCk6IE9ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueTsgfT4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IFtpbmRleDogc3RyaW5nXTogYW55OyB9Pih0aGlzLmdldFNlc3Npb25Vcmwoc2spLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKSksXHJcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNQcm9wID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0cnkgeyByZXNQcm9wID0gSlNPTi5wYXJzZShyZXNbcHJvcF0pOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gcmVzUHJvcDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmUoa2V5Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YoZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxib29sZWFuPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShjYXRjaEVycm9yKGUgPT4gb2YoZmFsc2UpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Ym9vbGVhbj4odGhpcy5nZXRJdGVtc1VybChzayksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShjYXRjaEVycm9yKGUgPT4gb2YoZmFsc2UpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRIZWFkZXJzKGNvbnRlbnRUeXBlOiBzdHJpbmcgPSAnYXBwbGljYXRpb24vanNvbicpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJDb250ZW50LVR5cGVcIiwgY29udGVudFR5cGUpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBY2NlcHRcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBdXRob3JpemF0aW9uXCIsIFwiQmVhcmVyIFwiICsgdGhpcy50a3MuZ2V0QWNjZXNzVG9rZW4oKSlcclxuICAgICAgICAgICAgLmFwcGVuZChcIkFjY2VwdC1MYW5ndWFnZVwiLCB0aGlzLmxjLkxvY2FsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZXNzaW9uVXJsKHNlc3Npb25LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke0JBU0VfQ2FjaGVfU2Vzc2lvbnN9LyR7c2Vzc2lvbktleX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SXRlbXNVcmwoc2Vzc2lvbktleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRTZXNzaW9uVXJsKHNlc3Npb25LZXkpfS9pdGVtc2A7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRJdGVtVXJsKHNlc3Npb25LZXk6IHN0cmluZywgaXRlbUtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRJdGVtc1VybChzZXNzaW9uS2V5KX0vJHtpdGVtS2V5fWA7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { HttpHeaders } from "@angular/common/http";
|
|
3
|
-
import { Injectable } from "@angular/core";
|
|
4
|
-
// Configurazioni
|
|
5
|
-
import { PreferencesPersistor } from "@esfaenza/preferences";
|
|
6
|
-
// Direttive, Componenti, Librerie
|
|
7
|
-
import { of } from "rxjs";
|
|
8
|
-
import { catchError, map } from "rxjs/operators";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@esfaenza/localizations";
|
|
11
|
-
import * as i2 from "@angular/common/http";
|
|
12
|
-
import * as i3 from "../app.accesstoken";
|
|
13
|
-
import * as i4 from "@esfaenza/preferences";
|
|
14
|
-
// Chiamate ai Repository
|
|
15
|
-
const BASE_Preferences_Sessions = "/api/Preferences/sessions";
|
|
16
|
-
export class ApplicationPreferencesPersistor extends PreferencesPersistor {
|
|
17
|
-
// Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che
|
|
18
|
-
// lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...
|
|
19
|
-
constructor(lc, http, tks, session) {
|
|
20
|
-
super(session);
|
|
21
|
-
this.lc = lc;
|
|
22
|
-
this.http = http;
|
|
23
|
-
this.tks = tks;
|
|
24
|
-
}
|
|
25
|
-
persist(key, item) {
|
|
26
|
-
let sk = this.session.getSessionKey();
|
|
27
|
-
if (!sk)
|
|
28
|
-
return of(false);
|
|
29
|
-
return this.http.post(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
|
|
30
|
-
}
|
|
31
|
-
recover(key) {
|
|
32
|
-
let sk = this.session.getSessionKey();
|
|
33
|
-
if (!sk)
|
|
34
|
-
return of(null);
|
|
35
|
-
return this.http.get(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(map((res) => {
|
|
36
|
-
var resProp = null;
|
|
37
|
-
try {
|
|
38
|
-
resProp = JSON.parse(res);
|
|
39
|
-
}
|
|
40
|
-
catch { }
|
|
41
|
-
return resProp;
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
|
-
recoverAll() {
|
|
45
|
-
let sk = this.session.getSessionKey();
|
|
46
|
-
if (!sk)
|
|
47
|
-
return of(null);
|
|
48
|
-
return this.http.get(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(null)), map((res) => {
|
|
49
|
-
for (var prop in res) {
|
|
50
|
-
var resProp = null;
|
|
51
|
-
try {
|
|
52
|
-
resProp = JSON.parse(res[prop]);
|
|
53
|
-
}
|
|
54
|
-
catch { }
|
|
55
|
-
res[prop] = resProp;
|
|
56
|
-
}
|
|
57
|
-
return res;
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
remove(key) {
|
|
61
|
-
let sk = this.session.getSessionKey();
|
|
62
|
-
if (!sk)
|
|
63
|
-
return of(false);
|
|
64
|
-
return this.http.delete(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
|
|
65
|
-
}
|
|
66
|
-
clear() {
|
|
67
|
-
let sk = this.session.getSessionKey();
|
|
68
|
-
if (!sk)
|
|
69
|
-
return of(false);
|
|
70
|
-
return this.http.delete(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));
|
|
71
|
-
}
|
|
72
|
-
getHeaders(contentType = 'application/json') {
|
|
73
|
-
return new HttpHeaders()
|
|
74
|
-
.append("Content-Type", contentType)
|
|
75
|
-
.append("Accept", "application/json")
|
|
76
|
-
.append("Authorization", "Bearer " + this.tks.getAccessToken())
|
|
77
|
-
.append("Accept-Language", this.lc.Locale);
|
|
78
|
-
}
|
|
79
|
-
getSessionUrl(sessionKey) {
|
|
80
|
-
return `${BASE_Preferences_Sessions}/${sessionKey}`;
|
|
81
|
-
}
|
|
82
|
-
getItemsUrl(sessionKey) {
|
|
83
|
-
return `${this.getSessionUrl(sessionKey)}/items`;
|
|
84
|
-
}
|
|
85
|
-
getItemUrl(sessionKey, itemKey) {
|
|
86
|
-
return `${this.getItemsUrl(sessionKey)}/${itemKey}`;
|
|
87
|
-
}
|
|
88
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationPreferencesPersistor, deps: [{ token: i1.LocalizationService }, { token: i2.HttpClient }, { token: i3.TokenService }, { token: i4.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
89
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationPreferencesPersistor }); }
|
|
90
|
-
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ApplicationPreferencesPersistor, decorators: [{
|
|
92
|
-
type: Injectable
|
|
93
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.HttpClient }, { type: i3.TokenService }, { type: i4.BaseSessionRetriever }]; } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnByZWZlcmVuY2UucGVyc2lzdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9wcmVmZXJlbmNlcy9hcHAucHJlZmVyZW5jZS5wZXJzaXN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLGlCQUFpQjtBQUNqQixPQUFPLEVBQXdCLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkYsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRWpELHlCQUF5QjtBQUN6QixNQUFNLHlCQUF5QixHQUFZLDJCQUEyQixDQUFDO0FBR3ZFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxvQkFBb0I7SUFFckUsbUdBQW1HO0lBQ25HLHNHQUFzRztJQUN0RyxZQUFvQixFQUF1QixFQUFVLElBQWdCLEVBQVUsR0FBaUIsRUFBRSxPQUE2QjtRQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUE5SCxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO0lBQW1ELENBQUM7SUFFN0ksT0FBTyxDQUFJLEdBQVcsRUFBRSxJQUFPO1FBQ2xDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FB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LENBQUMsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFVLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRU8sVUFBVSxDQUFDLGNBQXNCLGtCQUFrQjtRQUN2RCxPQUFPLElBQUksV0FBVyxFQUFFO2FBQ25CLE1BQU0sQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUM7YUFDcEMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUM5RCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQWtCO1FBQ3BDLE9BQU8sR0FBRyx5QkFBeUIsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDckQsQ0FBQztJQUVPLFVBQVUsQ0FBQyxVQUFrQixFQUFFLE9BQWU7UUFDbEQsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7SUFDeEQsQ0FBQzsrR0ExRVEsK0JBQStCO21IQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZVNlc3Npb25SZXRyaWV2ZXIsIFByZWZlcmVuY2VzUGVyc2lzdG9yIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gXCIuLi9hcHAuYWNjZXNzdG9rZW5cIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIENoaWFtYXRlIGFpIFJlcG9zaXRvcnlcclxuY29uc3QgQkFTRV9QcmVmZXJlbmNlc19TZXNzaW9uczogc3RyaW5nID0gIFwiL2FwaS9QcmVmZXJlbmNlcy9zZXNzaW9uc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25QcmVmZXJlbmNlc1BlcnNpc3RvciBleHRlbmRzIFByZWZlcmVuY2VzUGVyc2lzdG9yIHtcclxuXHJcbiAgICAvLyBQYXNzbyBkaXJldHRhbWVudGUgZGFsbCdIdHRwQ2xpZW50IG5hdGl2byBpbiBxdWFudG8gbm9uIHBvc3NvIHBhc3NhcmUgZGFsbCdIdHRwU2VydmljZSBkYXRvIGNoZSBcclxuICAgIC8vIGx1aSByaWNoaWVkZSBpbCBQcmVmZXJlbmNlc1NlcnZpY2UgY2hlIHJpY2hpZWRlIHF1ZXN0YSBjbGFzc2UgY2hlIHJpY2hpZWRlIGwnSHR0cFNlcnZpY2UgZWNjIGVjYy4uLlxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHRrczogVG9rZW5TZXJ2aWNlLCBzZXNzaW9uOiBCYXNlU2Vzc2lvblJldHJpZXZlcikgeyBzdXBlcihzZXNzaW9uKTsgfVxyXG5cclxuICAgIHB1YmxpYyBwZXJzaXN0PFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IHNrID0gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKTtcclxuICAgICAgICBpZiAoIXNrKSByZXR1cm4gb2YoZmFsc2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Ym9vbGVhbj4odGhpcy5nZXRJdGVtVXJsKHNrLCBrZXkpLCBKU09OLnN0cmluZ2lmeShpdGVtKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKGNhdGNoRXJyb3IoZSA9PiBvZihmYWxzZSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjb3ZlcjxUPihrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihudWxsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmdldEl0ZW1Vcmwoc2ssIGtleSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgcmVzUHJvcCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRyeSB7IHJlc1Byb3AgPSA8VD5KU09OLnBhcnNlKHJlcyk7IH1cclxuICAgICAgICAgICAgY2F0Y2ggeyB9XHJcbiAgICAgICAgICAgIHJldHVybiByZXNQcm9wO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnk7IH0+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihudWxsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBbaW5kZXg6IHN0cmluZ106IGFueTsgfT4odGhpcy5nZXRTZXNzaW9uVXJsKHNrKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpLFxyXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiByZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzUHJvcCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgcmVzUHJvcCA9IEpTT04ucGFyc2UocmVzW3Byb3BdKTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIHsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHJlc1Byb3A7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlKGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBzayA9IHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCk7XHJcbiAgICAgICAgaWYgKCFzaykgcmV0dXJuIG9mKGZhbHNlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8Ym9vbGVhbj4odGhpcy5nZXRJdGVtVXJsKHNrLCBrZXkpLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgc2sgPSB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpO1xyXG4gICAgICAgIGlmICghc2spIHJldHVybiBvZihmYWxzZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGJvb2xlYW4+KHRoaXMuZ2V0SXRlbXNVcmwoc2spLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SGVhZGVycyhjb250ZW50VHlwZTogc3RyaW5nID0gJ2FwcGxpY2F0aW9uL2pzb24nKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQ29udGVudC1UeXBlXCIsIGNvbnRlbnRUeXBlKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQWNjZXB0XCIsIFwiYXBwbGljYXRpb24vanNvblwiKVxyXG4gICAgICAgICAgICAuYXBwZW5kKFwiQXV0aG9yaXphdGlvblwiLCBcIkJlYXJlciBcIiArIHRoaXMudGtzLmdldEFjY2Vzc1Rva2VuKCkpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoXCJBY2NlcHQtTGFuZ3VhZ2VcIiwgdGhpcy5sYy5Mb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2Vzc2lvblVybChzZXNzaW9uS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHtCQVNFX1ByZWZlcmVuY2VzX1Nlc3Npb25zfS8ke3Nlc3Npb25LZXl9YDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEl0ZW1zVXJsKHNlc3Npb25LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0U2Vzc2lvblVybChzZXNzaW9uS2V5KX0vaXRlbXNgO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SXRlbVVybChzZXNzaW9uS2V5OiBzdHJpbmcsIGl0ZW1LZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0SXRlbXNVcmwoc2Vzc2lvbktleSl9LyR7aXRlbUtleX1gO1xyXG4gICAgfVxyXG59Il19
|