@tiba-spark/client-shared-lib 25.1.0-1213 → 25.1.0-1218
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/esm2022/libraries/localization/localization.action.mjs +10 -1
- package/esm2022/libraries/localization/localization.state.mjs +21 -5
- package/esm2022/libraries/modules/auth/session.actions.mjs +16 -1
- package/esm2022/libraries/modules/auth/session.state.mjs +76 -5
- package/esm2022/libraries/modules/notifications/notifications.actions.mjs +7 -1
- package/esm2022/libraries/modules/notifications/notifications.state.mjs +20 -6
- package/esm2022/libraries/modules/security/security.actions.mjs +8 -1
- package/esm2022/libraries/modules/security/security.state.mjs +22 -5
- package/esm2022/libraries/modules/smartparks/smartpark.actions.mjs +12 -1
- package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +22 -6
- package/esm2022/libraries/modules/tenant-logo/tenant-logo.actions.mjs +7 -1
- package/esm2022/libraries/modules/tenant-logo/tenant-logo.state.mjs +15 -5
- package/esm2022/libraries/modules/user-settings/user-settings.actions.mjs +17 -1
- package/esm2022/libraries/modules/user-settings/user-settings.state.mjs +56 -5
- package/esm2022/libraries/resolvers/index.mjs +4 -1
- package/esm2022/libraries/resolvers/mobile-command-center-module.resolver.mjs +50 -0
- package/esm2022/libraries/resolvers/mobile-config.resolver.mjs +21 -0
- package/esm2022/libraries/resolvers/mobile-version.resolver.mjs +24 -0
- package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +408 -1
- package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +1367 -42
- package/esm2022/libraries/service-proxy/service-proxy.module.mjs +4 -2
- package/esm2022/libraries/services/auth-token.service.mjs +4 -2
- package/esm2022/libraries/services/tenant.service.mjs +44 -16
- package/fesm2022/tiba-spark-client-shared-lib.mjs +2583 -474
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/localization/localization.action.d.ts +4 -0
- package/libraries/localization/localization.action.d.ts.map +1 -1
- package/libraries/localization/localization.state.d.ts +4 -2
- package/libraries/localization/localization.state.d.ts.map +1 -1
- package/libraries/modules/auth/session.actions.d.ts +13 -0
- package/libraries/modules/auth/session.actions.d.ts.map +1 -1
- package/libraries/modules/auth/session.state.d.ts +9 -3
- package/libraries/modules/auth/session.state.d.ts.map +1 -1
- package/libraries/modules/notifications/notifications.actions.d.ts +5 -0
- package/libraries/modules/notifications/notifications.actions.d.ts.map +1 -1
- package/libraries/modules/notifications/notifications.state.d.ts +5 -3
- package/libraries/modules/notifications/notifications.state.d.ts.map +1 -1
- package/libraries/modules/security/security.actions.d.ts +6 -0
- package/libraries/modules/security/security.actions.d.ts.map +1 -1
- package/libraries/modules/security/security.state.d.ts +7 -1
- package/libraries/modules/security/security.state.d.ts.map +1 -1
- package/libraries/modules/smartparks/smartpark.actions.d.ts +6 -0
- package/libraries/modules/smartparks/smartpark.actions.d.ts.map +1 -1
- package/libraries/modules/smartparks/smartpark.state.d.ts +7 -4
- package/libraries/modules/smartparks/smartpark.state.d.ts.map +1 -1
- package/libraries/modules/tenant-logo/tenant-logo.actions.d.ts +5 -0
- package/libraries/modules/tenant-logo/tenant-logo.actions.d.ts.map +1 -1
- package/libraries/modules/tenant-logo/tenant-logo.state.d.ts +5 -2
- package/libraries/modules/tenant-logo/tenant-logo.state.d.ts.map +1 -1
- package/libraries/modules/user-settings/user-settings.actions.d.ts +10 -0
- package/libraries/modules/user-settings/user-settings.actions.d.ts.map +1 -1
- package/libraries/modules/user-settings/user-settings.state.d.ts +6 -2
- package/libraries/modules/user-settings/user-settings.state.d.ts.map +1 -1
- package/libraries/resolvers/index.d.ts +3 -0
- package/libraries/resolvers/index.d.ts.map +1 -1
- package/libraries/resolvers/mobile-command-center-module.resolver.d.ts +23 -0
- package/libraries/resolvers/mobile-command-center-module.resolver.d.ts.map +1 -0
- package/libraries/resolvers/mobile-config.resolver.d.ts +12 -0
- package/libraries/resolvers/mobile-config.resolver.d.ts.map +1 -0
- package/libraries/resolvers/mobile-version.resolver.d.ts +14 -0
- package/libraries/resolvers/mobile-version.resolver.d.ts.map +1 -0
- package/libraries/service-proxy/cloud-service-proxies.d.ts +53 -0
- package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/identity-service-proxies.d.ts +456 -0
- package/libraries/service-proxy/identity-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/service-proxy.module.d.ts.map +1 -1
- package/libraries/services/auth-token.service.d.ts.map +1 -1
- package/libraries/services/tenant.service.d.ts +7 -2
- package/libraries/services/tenant.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,4 +9,13 @@ GetAllLocalizationsAction = __decorate([
|
|
|
9
9
|
TrackAction()
|
|
10
10
|
], GetAllLocalizationsAction);
|
|
11
11
|
export { GetAllLocalizationsAction };
|
|
12
|
-
|
|
12
|
+
let GetAllLocalizationsMobileAction = class GetAllLocalizationsMobileAction {
|
|
13
|
+
static { this.type = '[language] GetAllLocalizationsMobile'; }
|
|
14
|
+
constructor() {
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
GetAllLocalizationsMobileAction = __decorate([
|
|
18
|
+
TrackAction()
|
|
19
|
+
], GetAllLocalizationsMobileAction);
|
|
20
|
+
export { GetAllLocalizationsMobileAction };
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckMsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7YUFDYixTQUFJLEdBQUcsZ0NBQWdDLENBQUM7SUFFL0Q7SUFDQSxDQUFDOztBQUpVLHlCQUF5QjtJQURyQyxXQUFXLEVBQUU7R0FDRCx5QkFBeUIsQ0FLckM7U0FMWSx5QkFBeUI7QUFRL0IsSUFBTSwrQkFBK0IsR0FBckMsTUFBTSwrQkFBK0I7YUFDbkIsU0FBSSxHQUFHLHNDQUFzQyxDQUFDO0lBRXJFO0lBQ0EsQ0FBQzs7QUFKVSwrQkFBK0I7SUFEM0MsV0FBVyxFQUFFO0dBQ0QsK0JBQStCLENBSzNDO1NBTFksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2tBY3Rpb24gfSBmcm9tIFwiLi4vdXRpbHMvbmd4c1wiO1xuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIEdldEFsbExvY2FsaXphdGlvbnNBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xhbmd1YWdlXSBHZXRBbGxMb2NhbGl6YXRpb25zJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIEdldEFsbExvY2FsaXphdGlvbnNNb2JpbGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xhbmd1YWdlXSBHZXRBbGxMb2NhbGl6YXRpb25zTW9iaWxlJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuIl19
|
|
@@ -2,12 +2,14 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
3
|
import { Action, Selector, State } from '@ngxs/store';
|
|
4
4
|
import { tap } from 'rxjs/operators';
|
|
5
|
-
import {
|
|
5
|
+
import { VERSION_V1 } from '../constants/version-constants';
|
|
6
|
+
import { GetAllLocalizationsAction, GetAllLocalizationsMobileAction } from './localization.action';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../service-proxy/cloud-service-proxies";
|
|
8
9
|
let LocalizationState = class LocalizationState {
|
|
9
|
-
constructor(localizationServiceProxy) {
|
|
10
|
+
constructor(localizationServiceProxy, mobileServiceProxy) {
|
|
10
11
|
this.localizationServiceProxy = localizationServiceProxy;
|
|
12
|
+
this.mobileServiceProxy = mobileServiceProxy;
|
|
11
13
|
}
|
|
12
14
|
static localizations(state) {
|
|
13
15
|
return state.localizations;
|
|
@@ -23,12 +25,26 @@ let LocalizationState = class LocalizationState {
|
|
|
23
25
|
});
|
|
24
26
|
}));
|
|
25
27
|
}
|
|
26
|
-
|
|
28
|
+
onGetAllLocalizationsMobileAction(ctx) {
|
|
29
|
+
ctx.patchState({
|
|
30
|
+
localizations: []
|
|
31
|
+
});
|
|
32
|
+
const localizations$ = this.mobileServiceProxy.getAllLocalizationMobile(VERSION_V1);
|
|
33
|
+
return localizations$.pipe(tap(localizations => {
|
|
34
|
+
ctx.patchState({
|
|
35
|
+
localizations: localizations.data
|
|
36
|
+
});
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizationState, deps: [{ token: i1.LocalizationServiceProxy }, { token: i1.MobileServiceProxy }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
40
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizationState }); }
|
|
28
41
|
};
|
|
29
42
|
__decorate([
|
|
30
43
|
Action(GetAllLocalizationsAction)
|
|
31
44
|
], LocalizationState.prototype, "onGetAllLocalizationsAction", null);
|
|
45
|
+
__decorate([
|
|
46
|
+
Action(GetAllLocalizationsMobileAction)
|
|
47
|
+
], LocalizationState.prototype, "onGetAllLocalizationsMobileAction", null);
|
|
32
48
|
__decorate([
|
|
33
49
|
Selector()
|
|
34
50
|
], LocalizationState, "localizations", null);
|
|
@@ -43,5 +59,5 @@ LocalizationState = __decorate([
|
|
|
43
59
|
export { LocalizationState };
|
|
44
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizationState, decorators: [{
|
|
45
61
|
type: Injectable
|
|
46
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationServiceProxy }]; }, propDecorators: { onGetAllLocalizationsAction: [] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationServiceProxy }, { type: i1.MobileServiceProxy }]; }, propDecorators: { onGetAllLocalizationsAction: [], onGetAllLocalizationsMobileAction: [] } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBYTVGLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBRTVCLFlBQW9CLHdCQUFrRCxFQUM1RCxrQkFBc0M7UUFENUIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUM1RCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBRWhELENBQUM7SUFHYSxBQUFQLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBNkI7UUFDdkQsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQzdCLENBQUM7SUFHTSwyQkFBMkIsQ0FBQyxHQUF5QztRQUMxRSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDN0MsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDYixhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUk7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFHTSxpQ0FBaUMsQ0FBQyxHQUF5QztRQUNoRixHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ2IsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDN0MsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDYixhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUk7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7K0dBdENVLGlCQUFpQjttSEFBakIsaUJBQWlCOztBQWE1QjtJQURDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztvRUFZakM7QUFHRDtJQURDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQzswRUFZdkM7QUE5QmE7SUFEYixRQUFRLEVBQUU7NENBR1Y7QUFWVSxpQkFBaUI7SUFQN0IsS0FBSyxDQUF5QjtRQUM3QixJQUFJLEVBQUUsY0FBYztRQUNwQixRQUFRLEVBQUU7WUFDUixhQUFhLEVBQUUsSUFBSTtTQUNwQjtLQUNGLENBQUM7R0FFVyxpQkFBaUIsQ0F1QzdCO1NBdkNZLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVO2dKQWNGLDJCQUEyQixNQWMzQixpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVkVSU0lPTl9WMSB9IGZyb20gJy4uL2NvbnN0YW50cy92ZXJzaW9uLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25EdG8sIExvY2FsaXphdGlvblNlcnZpY2VQcm94eSwgTW9iaWxlU2VydmljZVByb3h5IH0gZnJvbSAnLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgR2V0QWxsTG9jYWxpemF0aW9uc0FjdGlvbiwgR2V0QWxsTG9jYWxpemF0aW9uc01vYmlsZUFjdGlvbiB9IGZyb20gJy4vbG9jYWxpemF0aW9uLmFjdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemF0aW9uU3RhdGVNb2RlbCB7XG4gIGxvY2FsaXphdGlvbnM6IExvY2FsaXphdGlvbkR0b1tdLFxufVxuXG5AU3RhdGU8TG9jYWxpemF0aW9uU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAnbG9jYWxpemF0aW9uJyxcbiAgZGVmYXVsdHM6IHtcbiAgICBsb2NhbGl6YXRpb25zOiBudWxsLFxuICB9LFxufSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TdGF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlUHJveHk6IExvY2FsaXphdGlvblNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eTogTW9iaWxlU2VydmljZVByb3h5XG4gICkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2NhbGl6YXRpb25zKHN0YXRlOiBMb2NhbGl6YXRpb25TdGF0ZU1vZGVsKTogTG9jYWxpemF0aW9uRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5sb2NhbGl6YXRpb25zO1xuICB9XG5cbiAgQEFjdGlvbihHZXRBbGxMb2NhbGl6YXRpb25zQWN0aW9uKVxuICBwdWJsaWMgb25HZXRBbGxMb2NhbGl6YXRpb25zQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvY2FsaXphdGlvblN0YXRlTW9kZWw+KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgbG9jYWxpemF0aW9uczogW11cbiAgICB9KTtcblxuICAgIGNvbnN0IGxvY2FsaXphdGlvbnMkID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlUHJveHkuZ2V0QWxsKCk7XG4gICAgcmV0dXJuIGxvY2FsaXphdGlvbnMkLnBpcGUodGFwKGxvY2FsaXphdGlvbnMgPT4ge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICBsb2NhbGl6YXRpb25zOiBsb2NhbGl6YXRpb25zLmRhdGFcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oR2V0QWxsTG9jYWxpemF0aW9uc01vYmlsZUFjdGlvbilcbiAgcHVibGljIG9uR2V0QWxsTG9jYWxpemF0aW9uc01vYmlsZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2NhbGl6YXRpb25TdGF0ZU1vZGVsPikge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIGxvY2FsaXphdGlvbnM6IFtdXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2NhbGl6YXRpb25zJCA9IHRoaXMubW9iaWxlU2VydmljZVByb3h5LmdldEFsbExvY2FsaXphdGlvbk1vYmlsZShWRVJTSU9OX1YxKTtcbiAgICByZXR1cm4gbG9jYWxpemF0aW9ucyQucGlwZSh0YXAobG9jYWxpemF0aW9ucyA9PiB7XG4gICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgIGxvY2FsaXphdGlvbnM6IGxvY2FsaXphdGlvbnMuZGF0YVxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -18,6 +18,12 @@ export class LogoutAction {
|
|
|
18
18
|
this.logoutAudit = logoutAudit;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
export class MobileLogoutAction {
|
|
22
|
+
static { this.type = '[Session] MobileLogout'; }
|
|
23
|
+
constructor(logoutAudit = true) {
|
|
24
|
+
this.logoutAudit = logoutAudit;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
21
27
|
export class LogoutMobileAction {
|
|
22
28
|
static { this.type = '[Session] LogoutMobile'; }
|
|
23
29
|
constructor() {
|
|
@@ -28,6 +34,11 @@ export class AuditLogoutAction {
|
|
|
28
34
|
constructor() {
|
|
29
35
|
}
|
|
30
36
|
}
|
|
37
|
+
export class AuditLogoutMobileAction {
|
|
38
|
+
static { this.type = '[Session] AuditLogoutMobile'; }
|
|
39
|
+
constructor() {
|
|
40
|
+
}
|
|
41
|
+
}
|
|
31
42
|
export class InitSessionFromLocalStorageAction {
|
|
32
43
|
static { this.type = '[Session] Load Session From Storage'; }
|
|
33
44
|
constructor() {
|
|
@@ -95,8 +106,12 @@ export class LoadAppConfigurationAction {
|
|
|
95
106
|
static { this.type = '[Session] App Configuration Load'; }
|
|
96
107
|
constructor() { }
|
|
97
108
|
}
|
|
109
|
+
export class LoadAppConfigurationMobileAction {
|
|
110
|
+
static { this.type = '[Session] App Configuration Mobile Load'; }
|
|
111
|
+
constructor() { }
|
|
112
|
+
}
|
|
98
113
|
export class Authenticate2FAforUser {
|
|
99
114
|
static { this.type = '[Session] Authenticate2FAforUser'; }
|
|
100
115
|
constructor() { }
|
|
101
116
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL2F1dGgvc2Vzc2lvbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxrQkFBa0I7YUFDTixTQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFFaEQsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQixFQUFTLGlCQUEwQixLQUFLO1FBQWpGLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBQ3BHLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRywwQkFBMEIsQ0FBQztJQUV6RCxZQUFtQixjQUF1QjtRQUF2QixtQkFBYyxHQUFkLGNBQWMsQ0FBUztJQUMxQyxDQUFDOztBQUdILE1BQU0sT0FBTyxZQUFZO2FBQ0EsU0FBSSxHQUFHLGtCQUFrQixDQUFDO0lBRWpELFlBQW1CLGNBQXVCLElBQUk7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQzlDLENBQUM7O0FBRUgsTUFBTSxPQUFPLGtCQUFrQjthQUNOLFNBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV2RCxZQUFtQixjQUF1QixJQUFJO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUM5QyxDQUFDOztBQUdILE1BQU0sT0FBTyxrQkFBa0I7YUFDTixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFDdkQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDTCxTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyx1QkFBdUI7YUFDWCxTQUFJLEdBQUcsNkJBQTZCLENBQUM7SUFFNUQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLHFDQUFxQyxDQUFDO0lBRXBFO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sY0FBYzthQUNGLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUVwRCxZQUFtQixTQUFpQixFQUFTLE9BQW9CO1FBQTlDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFhO0lBQ2pFLENBQUM7O0FBR0gsTUFBTSxPQUFPLHFCQUFxQjthQUNULFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUU1RCxZQUFtQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ3BDLENBQUM7O0FBR0gsTUFBTSxPQUFPLGlCQUFpQjthQUNMLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUV0RCxZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLFlBQVk7YUFDQSxTQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFeEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxnQkFBZ0I7YUFDSixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQsWUFBbUIsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUNyQyxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDTCxTQUFJLEdBQUcseUJBQXlCLENBQUM7SUFFeEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxZQUFZO2FBQ0EsU0FBSSxHQUFHLHVCQUF1QixDQUFDO0lBRXREO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8saUNBQWlDO2FBQ3JCLFNBQUksR0FBRywrQkFBK0IsQ0FBQztJQUU5RCxZQUFtQixZQUFnQztRQUFoQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFDbkQsQ0FBQzs7QUFHSCxNQUFNLE9BQU8scUJBQXFCO2FBQ1QsU0FBSSxHQUFHLG9DQUFvQyxDQUFDO0lBRW5FLFlBQW1CLEtBQVU7UUFBVixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQzdCLENBQUM7O0FBR0gsTUFBTSxPQUFPLG1CQUFtQjthQUNQLFNBQUksR0FBRywyQkFBMkIsQ0FBQztJQUUxRCxZQUFtQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFJLENBQUM7O0FBR3BELE1BQU0sT0FBTywwQkFBMEI7YUFDZCxTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsZ0JBQWdCLENBQUM7O0FBR25CLE1BQU0sT0FBTyxnQ0FBZ0M7YUFDcEIsU0FBSSxHQUFHLHlDQUF5QyxDQUFDO0lBRXhFLGdCQUFnQixDQUFDOztBQUduQixNQUFNLE9BQU8sc0JBQXNCO2FBQ1YsU0FBSSxHQUFHLGtDQUFrQyxDQUFDO0lBRWpFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BhcmtTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFyay1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTcGFya1NldHRpbmdzRHRvIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgTG9naW5SZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbC9sb2dpbi1yZXF1ZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWZyZXNoSW5mbyB9IGZyb20gJy4vbW9kZWwvcmVmcmVzaC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSAnLi9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgTG9naW5SZXF1ZXN0QWN0aW9uIGltcGxlbWVudHMgTG9naW5SZXF1ZXN0IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBMb2dpbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJuYW1lOiBzdHJpbmcsIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nLCBwdWJsaWMga2VlcE1lTG9nZ2VkSW46IGJvb2xlYW4gPSBmYWxzZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRrZWVwTWVMb2dnZWRJbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0ga2VlcE1lTG9nZ2VkSW4nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBrZWVwTWVMb2dnZWRJbjogYm9vbGVhbikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dvdXRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIExvZ291dCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxvZ291dEF1ZGl0OiBib29sZWFuID0gdHJ1ZSkge1xuICB9XG59XG5leHBvcnQgY2xhc3MgTW9iaWxlTG9nb3V0QWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBNb2JpbGVMb2dvdXQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dvdXRBdWRpdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9nb3V0TW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBMb2dvdXRNb2JpbGUnO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dvdXRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEF1ZGl0IExvZ291dCc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBBdWRpdExvZ291dE1vYmlsZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9hZCBTZXNzaW9uIEZyb20gU3RvcmFnZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldFN0YXRlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBTZXQgU3RhdGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoVG9rZW46IHN0cmluZywgcHVibGljIHJlZnJlc2g6IFJlZnJlc2hJbmZvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gVXBkYXRlIEF1dGggVG9rZW4nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoVG9rZW46IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRVc2VyTmFtZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gU2V0VXNlck5hbWUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvZ2luU3VjY2VzcyB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gTG9naW4gU3VjY2Vzcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudExvYWRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFRlbmFudCBMb2FkICc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbmFudDogVGVuYW50SW5mbykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW5hbnRDbGVhckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gVGVuYW50IENsZWFyICc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhlYWx0aEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gSGVhbHRoIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVVc2VyU2V0dGluZ3NJblNlc3Npb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFVwZGF0ZSBVc2VyIFNldHRpbmcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyU2V0dGluZ3M6IFNwYXJrU2V0dGluZ3NEdG9bXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW5hbnRJbmZvUHJvcHMge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIFVwZGF0ZSBUZW5hbnQgSW5mbyBQcm9wcyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHByb3BzOiBhbnkpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0VGVuYW50VXNlckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gU2V0IFRlbmFudCBVc2VyJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3BhcmtTZXNzaW9uOiBTcGFya1Nlc3Npb24pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW1Nlc3Npb25dIEFwcCBDb25maWd1cmF0aW9uIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQXBwQ29uZmlndXJhdGlvbk1vYmlsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbU2Vzc2lvbl0gQXBwIENvbmZpZ3VyYXRpb24gTW9iaWxlIExvYWQnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGUyRkFmb3JVc2VyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tTZXNzaW9uXSBBdXRoZW50aWNhdGUyRkFmb3JVc2VyJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIl19
|
|
@@ -8,12 +8,13 @@ import { distinctUntilChanged, filter, first, of, switchMap, tap } from 'rxjs';
|
|
|
8
8
|
import { MessageBarPosition } from '../../components/message-bar/message-bar-position.enum';
|
|
9
9
|
import { LOCAL_ENGLISH_LANGUAGE } from '../../constants/global-constants';
|
|
10
10
|
import { ENVIRONMENT, LOGGED_TENANT_KEY, SESSION, TENANT_KEY } from '../../constants/keys-constants';
|
|
11
|
+
import { VERSION_V1 } from '../../constants/version-constants';
|
|
11
12
|
import { AppType } from '../../enums/app-type.enum';
|
|
12
13
|
import { SingleSignOnProvider, SparkSettingsDto } from '../../service-proxy/cloud-service-proxies';
|
|
13
14
|
import { parseApiErrorMessage } from '../../utils/api-helper.util';
|
|
14
15
|
import { getNavigationRoute } from '../../utils/route.util';
|
|
15
16
|
import { UnloadParkingLotAction } from '../facility/facility.actions';
|
|
16
|
-
import { AuditLogoutAction, Authenticate2FAforUser, HealthAction, InitSessionFromLocalStorageAction, LoadAppConfigurationAction, LoginRequestAction, LogoutAction, LogoutMobileAction, SetStateAction, SetTenantUserAction, SetUserNameAction, TenantClearAction, TenantLoadAction, UpdateAuthTokenAction, UpdateTenantInfoProps, UpdateUserSettingsInSessionAction } from './session.actions';
|
|
17
|
+
import { AuditLogoutAction, AuditLogoutMobileAction, Authenticate2FAforUser, HealthAction, InitSessionFromLocalStorageAction, LoadAppConfigurationAction, LoadAppConfigurationMobileAction, LoginRequestAction, LogoutAction, LogoutMobileAction, MobileLogoutAction, SetStateAction, SetTenantUserAction, SetUserNameAction, TenantClearAction, TenantLoadAction, UpdateAuthTokenAction, UpdateTenantInfoProps, UpdateUserSettingsInSessionAction } from './session.actions';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
import * as i1 from "../../services/session-storage.service";
|
|
19
20
|
import * as i2 from "../../services/local-storage.service";
|
|
@@ -27,12 +28,13 @@ import * as i9 from "@ngx-translate/core";
|
|
|
27
28
|
import * as i10 from "@azure/msal-angular";
|
|
28
29
|
import * as i11 from "../../services/openid-auth.service";
|
|
29
30
|
import * as i12 from "../../components/message-bar/message-bar.service";
|
|
31
|
+
import * as i13 from "../../service-proxy/identity-service-proxies";
|
|
30
32
|
const defaultSessionState = {
|
|
31
33
|
sparkSessions: {},
|
|
32
34
|
application: { version: null, releaseDate: null, features: {} },
|
|
33
35
|
};
|
|
34
36
|
let SessionState = SessionState_1 = class SessionState {
|
|
35
|
-
constructor(sessionStorageService, localStorageService, store, appConfigService, authService, configurationServiceProxy, router, httpCancelService, translateService, msalService, usersServiceProxy, openIdAuthService, messageBarService) {
|
|
37
|
+
constructor(sessionStorageService, localStorageService, store, appConfigService, authService, configurationServiceProxy, router, httpCancelService, translateService, msalService, usersServiceProxy, openIdAuthService, messageBarService, mobileServiceProxy, mobileServiceProxyIdentity) {
|
|
36
38
|
this.sessionStorageService = sessionStorageService;
|
|
37
39
|
this.localStorageService = localStorageService;
|
|
38
40
|
this.store = store;
|
|
@@ -46,6 +48,8 @@ let SessionState = SessionState_1 = class SessionState {
|
|
|
46
48
|
this.usersServiceProxy = usersServiceProxy;
|
|
47
49
|
this.openIdAuthService = openIdAuthService;
|
|
48
50
|
this.messageBarService = messageBarService;
|
|
51
|
+
this.mobileServiceProxy = mobileServiceProxy;
|
|
52
|
+
this.mobileServiceProxyIdentity = mobileServiceProxyIdentity;
|
|
49
53
|
this.isTenantUndefined = (tenant, session) => !tenant || !session;
|
|
50
54
|
this.getSparkSessions = () => JSON.parse(this.localStorageService.getItem(SESSION))?.sparkSessions ?? {};
|
|
51
55
|
this.setSparkSessions = (ctx, sparkSessions) => {
|
|
@@ -169,6 +173,54 @@ let SessionState = SessionState_1 = class SessionState {
|
|
|
169
173
|
}
|
|
170
174
|
return this.usersServiceProxy.auditLogout().pipe(tap(() => { }));
|
|
171
175
|
}
|
|
176
|
+
AuditLogoutMobileAction(ctx, action) {
|
|
177
|
+
const sparkSessions = this.getSparkSessions();
|
|
178
|
+
const tenantName = sessionStorage.getItem(TENANT_KEY);
|
|
179
|
+
const tenantInfo = ctx.getState().sparkSessions[tenantName].tenant;
|
|
180
|
+
if (this.isTenantUndefined(tenantInfo, sparkSessions[tenantName])) {
|
|
181
|
+
return of(null); // Handle the case where tenant or sparkSessions are undefined
|
|
182
|
+
}
|
|
183
|
+
return this.mobileServiceProxy.mobileAuditLogout(VERSION_V1).pipe(tap(() => { }));
|
|
184
|
+
}
|
|
185
|
+
onMobileLogoutAction(ctx, { logoutAudit }) {
|
|
186
|
+
const appType = this.appConfigService.getConfig().appType;
|
|
187
|
+
this.httpCancelService.cancelPendingRequests();
|
|
188
|
+
if (appType === AppType.Mobile) {
|
|
189
|
+
ctx.dispatch(new LogoutMobileAction());
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
const path = getNavigationRoute(SessionState_1.tenantInfo(ctx.getState()), appType, ['account', 'login']);
|
|
193
|
+
ctx.dispatch(new Navigate(path));
|
|
194
|
+
}
|
|
195
|
+
if (logoutAudit) {
|
|
196
|
+
ctx.dispatch(new AuditLogoutMobileAction());
|
|
197
|
+
}
|
|
198
|
+
return this.router.events.pipe(// observe all route events
|
|
199
|
+
filter(e => e instanceof NavigationEnd && e.url.includes('/account/login')), // filter only NavigationEnd events
|
|
200
|
+
distinctUntilChanged(), first(), switchMap(() => {
|
|
201
|
+
return this.authService.logout().pipe(tap(() => {
|
|
202
|
+
const sparkSessions = this.getSparkSessions();
|
|
203
|
+
const tenant = sparkSessions[this.sessionStorageService.tenant];
|
|
204
|
+
const ssoEnabled = tenant?.user?.ssoAuthenticated;
|
|
205
|
+
this.translateService.use(LOCAL_ENGLISH_LANGUAGE);
|
|
206
|
+
ctx.dispatch(new TenantClearAction());
|
|
207
|
+
ctx.dispatch(new UnloadParkingLotAction());
|
|
208
|
+
if (ssoEnabled) {
|
|
209
|
+
const tenantName = tenant?.tenant?.tenantName;
|
|
210
|
+
const provider = tenant?.tenant.props?.sso?.provider;
|
|
211
|
+
if (provider == SingleSignOnProvider.Microsoft) {
|
|
212
|
+
this.msalService.logoutRedirect({
|
|
213
|
+
postLogoutRedirectUri: `/${tenantName}`
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
else if (provider == SingleSignOnProvider.PingFederate) {
|
|
217
|
+
this.openIdAuthService.signOut();
|
|
218
|
+
}
|
|
219
|
+
//this.silentLogOutMsl(ctx, appType);
|
|
220
|
+
}
|
|
221
|
+
}));
|
|
222
|
+
}));
|
|
223
|
+
}
|
|
172
224
|
onLogout(ctx, { logoutAudit }) {
|
|
173
225
|
const appType = this.appConfigService.getConfig().appType;
|
|
174
226
|
this.httpCancelService.cancelPendingRequests();
|
|
@@ -288,7 +340,17 @@ let SessionState = SessionState_1 = class SessionState {
|
|
|
288
340
|
}
|
|
289
341
|
}));
|
|
290
342
|
}
|
|
291
|
-
|
|
343
|
+
onLoadAppConfigurationMobileAction(ctx) {
|
|
344
|
+
const appConfiguration$ = this.mobileServiceProxyIdentity.getAppConfigurationMobile(VERSION_V1);
|
|
345
|
+
return appConfiguration$.pipe(tap(appConfiguration => {
|
|
346
|
+
const sparkSessions = this.getSparkSessions();
|
|
347
|
+
if (this.sessionStorageService.tenant) {
|
|
348
|
+
sparkSessions[this.sessionStorageService.tenant].appConfiguration = appConfiguration.data;
|
|
349
|
+
this.setSparkSessions(ctx, sparkSessions);
|
|
350
|
+
}
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionState, deps: [{ token: i1.SessionStorageService }, { token: i2.LocalStorageService }, { token: i3.Store }, { token: i4.AppConfigService }, { token: i5.AuthService }, { token: i6.ConfigurationServiceProxy }, { token: i7.Router }, { token: i8.HttpCancelService }, { token: i9.TranslateService }, { token: i10.MsalService }, { token: i6.UsersServiceProxy }, { token: i11.OpenIdAuthService }, { token: i12.MessageBarService }, { token: i6.MobileServiceProxy }, { token: i13.MobileServiceProxyIdentity }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
292
354
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionState }); }
|
|
293
355
|
};
|
|
294
356
|
__decorate([
|
|
@@ -309,6 +371,12 @@ __decorate([
|
|
|
309
371
|
__decorate([
|
|
310
372
|
Action(AuditLogoutAction)
|
|
311
373
|
], SessionState.prototype, "AuditLogoutAction", null);
|
|
374
|
+
__decorate([
|
|
375
|
+
Action(AuditLogoutMobileAction)
|
|
376
|
+
], SessionState.prototype, "AuditLogoutMobileAction", null);
|
|
377
|
+
__decorate([
|
|
378
|
+
Action(MobileLogoutAction)
|
|
379
|
+
], SessionState.prototype, "onMobileLogoutAction", null);
|
|
312
380
|
__decorate([
|
|
313
381
|
Action(LogoutAction)
|
|
314
382
|
], SessionState.prototype, "onLogout", null);
|
|
@@ -336,6 +404,9 @@ __decorate([
|
|
|
336
404
|
__decorate([
|
|
337
405
|
Action(LoadAppConfigurationAction)
|
|
338
406
|
], SessionState.prototype, "onAppConfigurationAction", null);
|
|
407
|
+
__decorate([
|
|
408
|
+
Action(LoadAppConfigurationMobileAction)
|
|
409
|
+
], SessionState.prototype, "onLoadAppConfigurationMobileAction", null);
|
|
339
410
|
__decorate([
|
|
340
411
|
Selector()
|
|
341
412
|
], SessionState, "isUserAuthenticatedWithSSO", null);
|
|
@@ -381,5 +452,5 @@ SessionState = SessionState_1 = __decorate([
|
|
|
381
452
|
export { SessionState };
|
|
382
453
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionState, decorators: [{
|
|
383
454
|
type: Injectable
|
|
384
|
-
}], ctorParameters: function () { return [{ type: i1.SessionStorageService }, { type: i2.LocalStorageService }, { type: i3.Store }, { type: i4.AppConfigService }, { type: i5.AuthService }, { type: i6.ConfigurationServiceProxy }, { type: i7.Router }, { type: i8.HttpCancelService }, { type: i9.TranslateService }, { type: i10.MsalService }, { type: i6.UsersServiceProxy }, { type: i11.OpenIdAuthService }, { type: i12.MessageBarService }]; }, propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [], onLogout: [], onTenantLoadAction: [], onTenantClearAction: [], onHealthActionAction: [], onUpdateUserSettings: [], onUpdateTenantInfoProps: [], onAuthenticate2FAforUser: [], onLoadSessionFromLocalStorageAction: [], onAppConfigurationAction: [] } });
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEQsT0FBTyxFQUErQyxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSwyQ0FBMkMsQ0FBQztBQU1uSyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUl0RSxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUsc0JBQXNC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QUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRVcsWUFBWSxDQTBVeEI7U0ExVVksWUFBWTs0RkFBWixZQUFZO2tCQUR4QixVQUFVO29kQTJGRixPQUFPLE1BYVAscUJBQXFCLE1BMkJyQix1QkFBdUIsTUFNdkIsZUFBZSxNQWVmLGlCQUFpQixNQVFqQixpQkFBaUIsTUFZakIsUUFBUSxNQTZEUixrQkFBa0IsTUFhbEIsbUJBQW1CLE1BZ0JuQixvQkFBb0IsTUFTcEIsb0JBQW9CLE1BT3BCLHVCQUF1QixNQU92Qix3QkFBd0IsTUFTeEIsbUNBQW1DLE1BaUJuQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7IENsZWFyQ2FjaGVSZXF1ZXN0IH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdCwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTE9DQUxfRU5HTElTSF9MQU5HVUFHRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9nbG9iYWwtY29uc3RhbnRzJztcbmltcG9ydCB7IEVOVklST05NRU5ULCBMT0dHRURfVEVOQU5UX0tFWSwgU0VTU0lPTiwgVEVOQU5UX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9rZXlzLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBBcHBUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYXBwLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTcGFya1Nlc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NwYXJrLXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHksIFNldHRpbmdzQ2F0ZWdvcnksIFNpbmdsZVNpZ25PblByb3ZpZGVyLCBTcGFya1NldHRpbmdzRHRvLCBVc2Vyc1NlcnZpY2VQcm94eSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENhbmNlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwLWNhbmNlbC5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlbklkQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcGVuaWQtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBnZXROYXZpZ2F0aW9uUm91dGUgfSBmcm9tICcuLi8uLi91dGlscy9yb3V0ZS51dGlsJztcbmltcG9ydCB7IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24gfSBmcm9tICcuLi9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvIH0gZnJvbSAnLi9tb2RlbC9hcHBsaWNhdGlvbi1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSAnLi9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQXVkaXRMb2dvdXRBY3Rpb24sIEF1dGhlbnRpY2F0ZTJGQWZvclVzZXIsIEhlYWx0aEFjdGlvbiwgSW5pdFNlc3Npb25Gcm9tTG9jYWxTdG9yYWdlQWN0aW9uLCBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbixcbiAgTG9naW5SZXF1ZXN0QWN0aW9uLCBMb2dvdXRBY3Rpb24sIExvZ291dE1vYmlsZUFjdGlvbiwgU2V0U3RhdGVBY3Rpb24sIFNldFRlbmFudFVzZXJBY3Rpb24sIFNldFVzZXJOYW1lQWN0aW9uLFxuICBUZW5hbnRDbGVhckFjdGlvbiwgVGVuYW50TG9hZEFjdGlvbiwgVXBkYXRlQXV0aFRva2VuQWN0aW9uLCBVcGRhdGVUZW5hbnRJbmZvUHJvcHMsIFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvblxufSBmcm9tICcuL3Nlc3Npb24uYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblN0YXRlTW9kZWwge1xuICBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPjtcbiAgYXBwbGljYXRpb24/OiBBcHBsaWNhdGlvbkluZm87XG4gIHNlcnZlckVudmlyb25tZW50TW9kZT86IHN0cmluZztcbn1cblxuY29uc3QgZGVmYXVsdFNlc3Npb25TdGF0ZSA9IHtcbiAgc3BhcmtTZXNzaW9uczoge30sXG4gIGFwcGxpY2F0aW9uOiB7IHZlcnNpb246IG51bGwsIHJlbGVhc2VEYXRlOiBudWxsLCBmZWF0dXJlczoge30gfSxcbn1cblxuQFN0YXRlPFNlc3Npb25TdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdzZXNzaW9uJyxcbiAgZGVmYXVsdHM6IGRlZmF1bHRTZXNzaW9uU3RhdGUsXG59KVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdGF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2VQcm94eTogQ29uZmlndXJhdGlvblNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cENhbmNlbFNlcnZpY2U6IEh0dHBDYW5jZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5OiBVc2Vyc1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBpc1VzZXJBdXRoZW50aWNhdGVkV2l0aFNTTyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBpc1VzZXJBdXRoZW50aWNhdGVkV2l0aDJGQShzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLmF1dGhlbnRpY2F0ZWQyRkE7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHNlcnZlckVudmlyb25tZW50TW9kZShzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICByZXR1cm4gc3RhdGUuc2VydmVyRW52aXJvbm1lbnRNb2RlO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VySW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyBsb2dnZWRVc2VySW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShMT0dHRURfVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udXNlcjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdGVuYW50SW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRoaXJkUGFydHlUb2tlbihzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50aGlyZFBhcnR5VG9rZW47XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxvZ2dlZFRlbmFudEluZm8oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oTE9HR0VEX1RFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdXNlclNldHRpbmdzKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCk6IFNwYXJrU2V0dGluZ3NEdG9bXSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udXNlci5zZXR0aW5ncyBhcyBTcGFya1NldHRpbmdzRHRvW107XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIG1hcHBlZFVzZXJTZXR0aW5ncyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLnNldHRpbmdzLnJlZHVjZSgoc2V0dGluZ3NNYXAsIHVzZXJTZXR0aW5nKSA9PlxuICAgICAgc2V0dGluZ3NNYXAuc2V0KHVzZXJTZXR0aW5nLmNhdGVnb3J5LCBKU09OLnBhcnNlKHVzZXJTZXR0aW5nLnNldHRpbmdzSnNvbikpLCBuZXcgTWFwPFNldHRpbmdzQ2F0ZWdvcnksIGFueT4oKSk7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGFwcENvbmZpZ3VyYXRpb24oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oTE9HR0VEX1RFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLmFwcENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGtlZXBNZUxvZ2dlZEluKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnVzZXIua2VlcE1lTG9nZ2VkSW4gPz8gZmFsc2U7XG4gIH1cblxuICBAQWN0aW9uKExvZ2luUmVxdWVzdEFjdGlvbilcbiAgcHVibGljIG9uTG9naW4oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IExvZ2luUmVxdWVzdEFjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKGFjdGlvbikucGlwZSh0YXAoe1xuICAgICAgbmV4dDogc3BhcmtTZXNzaW9uID0+IHtcbiAgICAgICAgdGhpcy5TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eCwgc3BhcmtTZXNzaW9uKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBwYXJzZUFwaUVycm9yTWVzc2FnZShlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgIH1cbiAgICB9KSlcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VGVuYW50VXNlckFjdGlvbilcbiAgcHVibGljIG9uU2V0VGVuYW50VXNlckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgc3BhcmtTZXNzaW9uIH06IFNldFRlbmFudFVzZXJBY3Rpb24pIHtcbiAgICB0aGlzLlNldFRlbmFudFVzZXJBY3Rpb24oY3R4LCBzcGFya1Nlc3Npb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBTZXRUZW5hbnRVc2VyQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgc3BhcmtTZXNzaW9uOiBTcGFya1Nlc3Npb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgY29uc3QgeyB1c2VyLCBhdXRoVG9rZW4sIHJlZnJlc2gsIHRoaXJkUGFydHlUb2tlbiB9ID0gc3BhcmtTZXNzaW9uO1xuICAgIHVzZXIuc2V0dGluZ3MgPSB1c2VyLnNldHRpbmdzLm1hcChzID0+IHtcbiAgICAgIHJldHVybiBuZXcgU3BhcmtTZXR0aW5nc0R0byh7XG4gICAgICAgIGNhdGVnb3J5OiBzLmNhdGVnb3J5LFxuICAgICAgICBzZXR0aW5nc0pzb246IEpTT04ucGFyc2Uocy5zZXR0aW5nc0pzb24pXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgaWYgKCFzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0pIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XSA9IHsgdXNlciwgYXV0aFRva2VuLCByZWZyZXNoLCB0ZW5hbnQ6IG51bGwsIHRoaXJkUGFydHlUb2tlbiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlciA9IHVzZXI7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXV0aFRva2VuID0gYXV0aFRva2VuO1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnJlZnJlc2ggPSByZWZyZXNoO1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnRoaXJkUGFydHlUb2tlbiA9IHRoaXJkUGFydHlUb2tlbjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlQXV0aFRva2VuQWN0aW9uKVxuICBwdWJsaWMgb25VcGRhdGVBdXRoVG9rZW5BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFVwZGF0ZUF1dGhUb2tlbkFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXV0aFRva2VuID0gYWN0aW9uLmF1dGhUb2tlbjtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0U3RhdGVBY3Rpb24pXG4gIHB1YmxpYyBzZXRTZXNzaW9uU3RhdGUoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFNldFN0YXRlQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhY3Rpb24uYXV0aFRva2VuO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5yZWZyZXNoID0gYWN0aW9uLnJlZnJlc2g7XG5cbiAgICBjb25zdCBhcHBsaWNhdGlvbjogQXBwbGljYXRpb25JbmZvID0ge1xuICAgICAgdmVyc2lvbjogdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLnBhY2thZ2VJbmZvLnZlcnNpb24sXG4gICAgICByZWxlYXNlRGF0ZTogbnVsbCxcbiAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICB9O1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgYXBwbGljYXRpb24gfSk7XG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFNldFVzZXJOYW1lQWN0aW9uKVxuICBwdWJsaWMgU2V0VXNlck5hbWVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFNldFVzZXJOYW1lQWN0aW9uKSB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udXNlci5kaXNwbGF5TmFtZSA9IGFjdGlvbi51c2VyTmFtZTtcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oQXVkaXRMb2dvdXRBY3Rpb24pXG4gIHB1YmxpYyBBdWRpdExvZ291dEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogQXVkaXRMb2dvdXRBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgY29uc3QgdGVuYW50SW5mbyA9IGN0eC5nZXRTdGF0ZSgpLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udGVuYW50O1xuICAgIGlmICh0aGlzLmlzVGVuYW50VW5kZWZpbmVkKHRlbmFudEluZm8sIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7IC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0ZW5hbnQgb3Igc3BhcmtTZXNzaW9ucyBhcmUgdW5kZWZpbmVkXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5LmF1ZGl0TG9nb3V0KCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9nb3V0QWN0aW9uKVxuICBwdWJsaWMgb25Mb2dvdXQoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IGxvZ291dEF1ZGl0IH06IExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IGFwcFR5cGUgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuYXBwVHlwZTtcbiAgICB0aGlzLmh0dHBDYW5jZWxTZXJ2aWNlLmNhbmNlbFBlbmRpbmdSZXF1ZXN0cygpO1xuXG4gICAgaWYgKGFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlKSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IExvZ291dE1vYmlsZUFjdGlvbigpKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXRoID0gZ2V0TmF2aWdhdGlvblJvdXRlKFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKGN0eC5nZXRTdGF0ZSgpKSwgYXBwVHlwZSwgWydhY2NvdW50JywgJ2xvZ2luJ10pO1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvZ291dEF1ZGl0KSB7XG4gICAgICBjdHguZGlzcGF0Y2gobmV3IEF1ZGl0TG9nb3V0QWN0aW9uKCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHMucGlwZSggLy8gb2JzZXJ2ZSBhbGwgcm91dGUgZXZlbnRzXG4gICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiBlLnVybC5pbmNsdWRlcygnL2FjY291bnQvbG9naW4nKSksIC8vIGZpbHRlciBvbmx5IE5hdmlnYXRpb25FbmQgZXZlbnRzXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHRlbmFudCA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICAgICAgICAgIGNvbnN0IHNzb0VuYWJsZWQgPSB0ZW5hbnQ/LnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQ7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKExPQ0FMX0VOR0xJU0hfTEFOR1VBR0UpO1xuICAgICAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBUZW5hbnRDbGVhckFjdGlvbigpKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVW5sb2FkUGFya2luZ0xvdEFjdGlvbigpKTtcbiAgICAgICAgICAgIGlmIChzc29FbmFibGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlbmFudE5hbWUgPSB0ZW5hbnQ/LnRlbmFudD8udGVuYW50TmFtZTtcbiAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0ZW5hbnQ/LnRlbmFudC5wcm9wcz8uc3NvPy5wcm92aWRlcjtcbiAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0UmVkaXJlY3Qoe1xuICAgICAgICAgICAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBgLyR7dGVuYW50TmFtZX1gXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZWxzZSBpZiAocHJvdmlkZXIgPT0gU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuSWRBdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy90aGlzLnNpbGVudExvZ091dE1zbChjdHgsIGFwcFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNUZW5hbnRVbmRlZmluZWQgPSAodGVuYW50OiBUZW5hbnRJbmZvLCBzZXNzaW9uOiBTcGFya1Nlc3Npb24pID0+ICF0ZW5hbnQgfHwgIXNlc3Npb247XG5cbiAgc2lsZW50TG9nT3V0TXNsKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYXBwVHlwZTogQXBwVHlwZSkge1xuICAgIGNvbnN0IGNsZWFyQ2FjaGVSZXF1ZXN0OiBDbGVhckNhY2hlUmVxdWVzdCA9IHtcbiAgICAgIGFjY291bnQ6IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVswXSxcbiAgICB9O1xuXG4gICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5jbGVhckNhY2hlKGNsZWFyQ2FjaGVSZXF1ZXN0KTtcbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuXG4gICAgY29uc3QgcGF0aCA9IGdldE5hdmlnYXRpb25Sb3V0ZShTZXNzaW9uU3RhdGUudGVuYW50SW5mbyhjdHguZ2V0U3RhdGUoKSksIGFwcFR5cGUsIFsnYWNjb3VudCcsICdsb2dpbiddKTtcbiAgICBjdHguZGlzcGF0Y2gobmV3IE5hdmlnYXRlKHBhdGgpKTtcbiAgfVxuXG4gIEBBY3Rpb24oVGVuYW50TG9hZEFjdGlvbilcbiAgcHVibGljIG9uVGVuYW50TG9hZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogVGVuYW50TG9hZEFjdGlvbikge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBhY3Rpb24udGVuYW50Py50ZW5hbnROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlVGVuYW50SW5mb1Byb3BzKGFjdGlvbi50ZW5hbnQ/LnByb3BzKSk7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGlmICghc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSkge1xuICAgICAgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSA9IHsgdXNlcjogbnVsbCwgYXV0aFRva2VuOiBudWxsLCByZWZyZXNoOiBudWxsLCB0ZW5hbnQ6IGFjdGlvbi50ZW5hbnQgfTtcbiAgICB9XG5cbiAgICBzcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudCA9IGFjdGlvbi50ZW5hbnQ7XG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudENsZWFyQWN0aW9uKVxuICBwdWJsaWMgb25UZW5hbnRDbGVhckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IFRlbmFudENsZWFyQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICBpZiAoc3BhcmtTZXNzaW9uKSB7XG4gICAgICBzcGFya1Nlc3Npb24udXNlciA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24ucmVmcmVzaCA9IG51bGw7XG4gICAgICBzcGFya1Nlc3Npb24uYXV0aFRva2VuID0gbnVsbDtcbiAgICAgIGlmIChzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbikge1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5hbmFseXRpY3NUb2tlbiA9ICcnO1xuICAgICAgICBzcGFya1Nlc3Npb24uYXBwQ29uZmlndXJhdGlvbi5mZWVkYmFja1Rva2VuID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgICB9XG4gIH1cblxuICBAQWN0aW9uKEhlYWx0aEFjdGlvbilcbiAgcHVibGljIG9uSGVhbHRoQWN0aW9uQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGVudmlyb25tZW50VmFyaWFibGUkID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZVByb3h5LmdldEhlYWx0aCgpO1xuICAgIHJldHVybiBlbnZpcm9ubWVudFZhcmlhYmxlJC5waXBlKHRhcChlbnZpcm9ubWVudFZhcmlhYmxlID0+IHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRU5WSVJPTk1FTlQsIEpTT04uc3RyaW5naWZ5KGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCkpO1xuICAgICAgY3R4LnBhdGNoU3RhdGUoeyBzZXJ2ZXJFbnZpcm9ubWVudE1vZGU6IGVudmlyb25tZW50VmFyaWFibGUuZGF0YS5lbnZpcm9ubWVudCB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvbilcbiAgcHVibGljIG9uVXBkYXRlVXNlclNldHRpbmdzKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB1c2VyU2V0dGluZ3MgfSkge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlci5zZXR0aW5ncyA9IHVzZXJTZXR0aW5ncztcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oVXBkYXRlVGVuYW50SW5mb1Byb3BzKVxuICBwdWJsaWMgb25VcGRhdGVUZW5hbnRJbmZvUHJvcHMoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCB7IHByb3BzIH0pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnRlbmFudC5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdXRoZW50aWNhdGUyRkFmb3JVc2VyKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGUyRkFmb3JVc2VyKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyB9KSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIGlmIChzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0/LnVzZXIpIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyLmF1dGhlbnRpY2F0ZWQyRkEgPSB0cnVlO1xuICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24pXG4gIHB1YmxpYyBvbkxvYWRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIF86IEluaXRTZXNzaW9uRnJvbUxvY2FsU3RvcmFnZUFjdGlvbikge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTRVNTSU9OKTtcbiAgICBjb25zdCBzZXNzaW9uOiB7XG4gICAgICBhcHBsaWNhdGlvbjogQXBwbGljYXRpb25JbmZvLFxuICAgICAgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4sXG4gICAgfSA9IGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogZGVmYXVsdFNlc3Npb25TdGF0ZTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICBhcHBsaWNhdGlvbjogc2Vzc2lvbi5hcHBsaWNhdGlvbixcbiAgICAgIHNwYXJrU2Vzc2lvbnM6IHNlc3Npb24uc3BhcmtTZXNzaW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQpIHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbiA9IHNlc3Npb24uc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdO1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0QXV0aFNlc3Npb24oc3BhcmtTZXNzaW9uPy5hdXRoVG9rZW4sIHNwYXJrU2Vzc2lvbj8ucmVmcmVzaCk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbilcbiAgcHVibGljIG9uQXBwQ29uZmlndXJhdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBhcHBDb25maWd1cmF0aW9uJCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VQcm94eS5nZXRBcHBDb25maWd1cmF0aW9uKCk7XG4gICAgcmV0dXJuIGFwcENvbmZpZ3VyYXRpb24kLnBpcGUodGFwKGFwcENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudCkge1xuICAgICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0uYXBwQ29uZmlndXJhdGlvbiA9IGFwcENvbmZpZ3VyYXRpb24uZGF0YTtcbiAgICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFya1Nlc3Npb25zID0gKCk6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+ID0+IEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU0VTU0lPTikpPy5zcGFya1Nlc3Npb25zID8/IHt9O1xuICBwcml2YXRlIHNldFNwYXJrU2Vzc2lvbnMgPSAoY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGFwcGxpY2F0aW9uID0gY3R4LmdldFN0YXRlKCkuYXBwbGljYXRpb247XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU0VTU0lPTiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgYXBwbGljYXRpb24sXG4gICAgICBzcGFya1Nlc3Npb25zOiBzcGFya1Nlc3Npb25zXG4gICAgfSkpO1xuICAgIGN0eC5wYXRjaFN0YXRlKHsgc3BhcmtTZXNzaW9ucyB9KTtcbiAgfVxufVxuIl19
|
|
455
|
+
}], ctorParameters: function () { return [{ type: i1.SessionStorageService }, { type: i2.LocalStorageService }, { type: i3.Store }, { type: i4.AppConfigService }, { type: i5.AuthService }, { type: i6.ConfigurationServiceProxy }, { type: i7.Router }, { type: i8.HttpCancelService }, { type: i9.TranslateService }, { type: i10.MsalService }, { type: i6.UsersServiceProxy }, { type: i11.OpenIdAuthService }, { type: i12.MessageBarService }, { type: i6.MobileServiceProxy }, { type: i13.MobileServiceProxyIdentity }]; }, propDecorators: { onLogin: [], onSetTenantUserAction: [], onUpdateAuthTokenAction: [], setSessionState: [], SetUserNameAction: [], AuditLogoutAction: [], AuditLogoutMobileAction: [], onMobileLogoutAction: [], onLogout: [], onTenantLoadAction: [], onTenantClearAction: [], onHealthActionAction: [], onUpdateUserSettings: [], onUpdateTenantInfoProps: [], onAuthenticate2FAforUser: [], onLoadSessionFromLocalStorageAction: [], onAppConfigurationAction: [], onLoadAppConfigurationMobileAction: [] } });
|
|
456
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUF1QixNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBbUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sMkNBQTJDLENBQUM7QUFPdkwsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJB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QUU7c0NBSVY7QUFHYTtJQURiLFFBQVEsRUFBRTs0Q0FLVjtBQUdhO0lBRGIsUUFBUSxFQUFFOzBDQUlWO0FBR2E7SUFEYixRQUFRLEVBQUU7d0NBSVY7QUF6RlUsWUFBWTtJQUx4QixLQUFLLENBQW9CO1FBQ3hCLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLG1CQUFtQjtLQUM5QixDQUFDO0dBRVcsWUFBWSxDQWtaeEI7U0FsWlksWUFBWTs0RkFBWixZQUFZO2tCQUR4QixVQUFVOytoQkE2RkYsT0FBTyxNQWFQLHFCQUFxQixNQTJCckIsdUJBQXVCLE1BTXZCLGVBQWUsTUFlZixpQkFBaUIsTUFRakIsaUJBQWlCLE1BWWpCLHVCQUF1QixNQVl2QixvQkFBb0IsTUE4Q3BCLFFBQVEsTUE2RFIsa0JBQWtCLE1BYWxCLG1CQUFtQixNQWdCbkIsb0JBQW9CLE1BU3BCLG9CQUFvQixNQU9wQix1QkFBdUIsTUFPdkIsd0JBQXdCLE1BU3hCLG1DQUFtQyxNQWlCbkMsd0JBQXdCLE1BWXhCLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZpcnN0LCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXItcG9zaXRpb24uZW51bSc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBMT0NBTF9FTkdMSVNIX0xBTkdVQUdFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2dsb2JhbC1jb25zdGFudHMnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQsIExPR0dFRF9URU5BTlRfS0VZLCBTRVNTSU9OLCBURU5BTlRfS0VZIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2tleXMtY29uc3RhbnRzJztcbmltcG9ydCB7IFZFUlNJT05fVjEgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdmVyc2lvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2FwcC10eXBlLmVudW0nO1xuaW1wb3J0IHsgU3BhcmtTZXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zcGFyay1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZVByb3h5LCBNb2JpbGVTZXJ2aWNlUHJveHksIFNldHRpbmdzQ2F0ZWdvcnksIFNpbmdsZVNpZ25PblByb3ZpZGVyLCBTcGFya1NldHRpbmdzRHRvLCBVc2Vyc1NlcnZpY2VQcm94eSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2FuY2VsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAtY2FuY2VsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPcGVuSWRBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wZW5pZC1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IGdldE5hdmlnYXRpb25Sb3V0ZSB9IGZyb20gJy4uLy4uL3V0aWxzL3JvdXRlLnV0aWwnO1xuaW1wb3J0IHsgVW5sb2FkUGFya2luZ0xvdEFjdGlvbiB9IGZyb20gJy4uL2ZhY2lsaXR5L2ZhY2lsaXR5LmFjdGlvbnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8gfSBmcm9tICcuL21vZGVsL2FwcGxpY2F0aW9uLWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRlbmFudEluZm8gfSBmcm9tICcuL21vZGVsL3RlbmFudC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBBdWRpdExvZ291dEFjdGlvbiwgQXVkaXRMb2dvdXRNb2JpbGVBY3Rpb24sIEF1dGhlbnRpY2F0ZTJGQWZvclVzZXIsIEhlYWx0aEFjdGlvbiwgSW5pdFNlc3Npb25Gcm9tTG9jYWxTdG9yYWdlQWN0aW9uLCBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbixcbiAgTG9hZEFwcENvbmZpZ3VyYXRpb25Nb2JpbGVBY3Rpb24sXG4gIExvZ2luUmVxdWVzdEFjdGlvbiwgTG9nb3V0QWN0aW9uLCBMb2dvdXRNb2JpbGVBY3Rpb24sIE1vYmlsZUxvZ291dEFjdGlvbiwgU2V0U3RhdGVBY3Rpb24sIFNldFRlbmFudFVzZXJBY3Rpb24sIFNldFVzZXJOYW1lQWN0aW9uLFxuICBUZW5hbnRDbGVhckFjdGlvbiwgVGVuYW50TG9hZEFjdGlvbiwgVXBkYXRlQXV0aFRva2VuQWN0aW9uLCBVcGRhdGVUZW5hbnRJbmZvUHJvcHMsIFVwZGF0ZVVzZXJTZXR0aW5nc0luU2Vzc2lvbkFjdGlvblxufSBmcm9tICcuL3Nlc3Npb24uYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblN0YXRlTW9kZWwge1xuICBzcGFya1Nlc3Npb25zOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPjtcbiAgYXBwbGljYXRpb24/OiBBcHBsaWNhdGlvbkluZm87XG4gIHNlcnZlckVudmlyb25tZW50TW9kZT86IHN0cmluZztcbn1cblxuY29uc3QgZGVmYXVsdFNlc3Npb25TdGF0ZSA9IHtcbiAgc3BhcmtTZXNzaW9uczoge30sXG4gIGFwcGxpY2F0aW9uOiB7IHZlcnNpb246IG51bGwsIHJlbGVhc2VEYXRlOiBudWxsLCBmZWF0dXJlczoge30gfSxcbn1cblxuQFN0YXRlPFNlc3Npb25TdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdzZXNzaW9uJyxcbiAgZGVmYXVsdHM6IGRlZmF1bHRTZXNzaW9uU3RhdGUsXG59KVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdGF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2VQcm94eTogQ29uZmlndXJhdGlvblNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cENhbmNlbFNlcnZpY2U6IEh0dHBDYW5jZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5OiBVc2Vyc1NlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSxcbiAgICBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eTogTW9iaWxlU2VydmljZVByb3h5LFxuICAgIHByaXZhdGUgbW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHk6IE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5KSB7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoU1NPKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnVzZXI/LnNzb0F1dGhlbnRpY2F0ZWQ7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGlzVXNlckF1dGhlbnRpY2F0ZWRXaXRoMkZBKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnVzZXIuYXV0aGVudGljYXRlZDJGQTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgc2VydmVyRW52aXJvbm1lbnRNb2RlKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIHJldHVybiBzdGF0ZS5zZXJ2ZXJFbnZpcm9ubWVudE1vZGU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHVzZXJJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnVzZXI7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGxvZ2dlZFVzZXJJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKExPR0dFRF9URU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW5hbnRJbmZvKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRlbmFudDtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdGhpcmRQYXJ0eVRva2VuKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnRoaXJkUGFydHlUb2tlbjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbG9nZ2VkVGVuYW50SW5mbyhzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShMT0dHRURfVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udGVuYW50O1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VyU2V0dGluZ3Moc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogU3BhcmtTZXR0aW5nc0R0b1tdIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICByZXR1cm4gc3RhdGUuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLnNldHRpbmdzIGFzIFNwYXJrU2V0dGluZ3NEdG9bXTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgbWFwcGVkVXNlclNldHRpbmdzKHN0YXRlOiBTZXNzaW9uU3RhdGVNb2RlbCkge1xuICAgIGNvbnN0IHRlbmFudE5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFRFTkFOVF9LRVkpO1xuICAgIHJldHVybiBzdGF0ZS5zcGFya1Nlc3Npb25zW3RlbmFudE5hbWVdLnVzZXIuc2V0dGluZ3MucmVkdWNlKChzZXR0aW5nc01hcCwgdXNlclNldHRpbmcpID0+XG4gICAgICBzZXR0aW5nc01hcC5zZXQodXNlclNldHRpbmcuY2F0ZWdvcnksIEpTT04ucGFyc2UodXNlclNldHRpbmcuc2V0dGluZ3NKc29uKSksIG5ldyBNYXA8U2V0dGluZ3NDYXRlZ29yeSwgYW55PigpKTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYXBwQ29uZmlndXJhdGlvbihzdGF0ZTogU2Vzc2lvblN0YXRlTW9kZWwpIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShMT0dHRURfVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0uYXBwQ29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMga2VlcE1lTG9nZ2VkSW4oc3RhdGU6IFNlc3Npb25TdGF0ZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGVuYW50TmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVEVOQU5UX0tFWSk7XG4gICAgcmV0dXJuIHN0YXRlLnNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0udXNlci5rZWVwTWVMb2dnZWRJbiA/PyBmYWxzZTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9naW5SZXF1ZXN0QWN0aW9uKVxuICBwdWJsaWMgb25Mb2dpbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogTG9naW5SZXF1ZXN0QWN0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oYWN0aW9uKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBzcGFya1Nlc3Npb24gPT4ge1xuICAgICAgICB0aGlzLlNldFRlbmFudFVzZXJBY3Rpb24oY3R4LCBzcGFya1Nlc3Npb24pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UpLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgICAgfVxuICAgIH0pKVxuICB9XG5cbiAgQEFjdGlvbihTZXRUZW5hbnRVc2VyQWN0aW9uKVxuICBwdWJsaWMgb25TZXRUZW5hbnRVc2VyQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyBzcGFya1Nlc3Npb24gfTogU2V0VGVuYW50VXNlckFjdGlvbikge1xuICAgIHRoaXMuU2V0VGVuYW50VXNlckFjdGlvbihjdHgsIHNwYXJrU2Vzc2lvbik7XG4gIH1cblxuICBwcml2YXRlIFNldFRlbmFudFVzZXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBzcGFya1Nlc3Npb246IFNwYXJrU2Vzc2lvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB7IHVzZXIsIGF1dGhUb2tlbiwgcmVmcmVzaCwgdGhpcmRQYXJ0eVRva2VuIH0gPSBzcGFya1Nlc3Npb247XG4gICAgdXNlci5zZXR0aW5ncyA9IHVzZXIuc2V0dGluZ3MubWFwKHMgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBTcGFya1NldHRpbmdzRHRvKHtcbiAgICAgICAgY2F0ZWdvcnk6IHMuY2F0ZWdvcnksXG4gICAgICAgIHNldHRpbmdzSnNvbjogSlNPTi5wYXJzZShzLnNldHRpbmdzSnNvbilcbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICBpZiAoIXNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XSkge1xuICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdID0geyB1c2VyLCBhdXRoVG9rZW4sIHJlZnJlc2gsIHRlbmFudDogbnVsbCwgdGhpcmRQYXJ0eVRva2VuIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS51c2VyID0gdXNlcjtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhdXRoVG9rZW47XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0ucmVmcmVzaCA9IHJlZnJlc2g7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udGhpcmRQYXJ0eVRva2VuID0gdGhpcmRQYXJ0eVRva2VuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVBdXRoVG9rZW5BY3Rpb24pXG4gIHB1YmxpYyBvblVwZGF0ZUF1dGhUb2tlbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogVXBkYXRlQXV0aFRva2VuQWN0aW9uKSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS5hdXRoVG9rZW4gPSBhY3Rpb24uYXV0aFRva2VuO1xuICB9XG5cbiAgQEFjdGlvbihTZXRTdGF0ZUFjdGlvbilcbiAgcHVibGljIHNldFNlc3Npb25TdGF0ZShjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0U3RhdGVBY3Rpb24pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLmF1dGhUb2tlbiA9IGFjdGlvbi5hdXRoVG9rZW47XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnJlZnJlc2ggPSBhY3Rpb24ucmVmcmVzaDtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uOiBBcHBsaWNhdGlvbkluZm8gPSB7XG4gICAgICB2ZXJzaW9uOiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkucGFja2FnZUluZm8udmVyc2lvbixcbiAgICAgIHJlbGVhc2VEYXRlOiBudWxsLFxuICAgICAgZmVhdHVyZXM6IHt9LFxuICAgIH07XG4gICAgY3R4LnBhdGNoU3RhdGUoeyBhcHBsaWNhdGlvbiB9KTtcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VXNlck5hbWVBY3Rpb24pXG4gIHB1YmxpYyBTZXRVc2VyTmFtZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFjdGlvbjogU2V0VXNlck5hbWVBY3Rpb24pIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS51c2VyLmRpc3BsYXlOYW1lID0gYWN0aW9uLnVzZXJOYW1lO1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dEFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dEFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQ7XG4gICAgaWYgKHRoaXMuaXNUZW5hbnRVbmRlZmluZWQodGVuYW50SW5mbywgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSkpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTsgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRlbmFudCBvciBzcGFya1Nlc3Npb25zIGFyZSB1bmRlZmluZWRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXNlcnNTZXJ2aWNlUHJveHkuYXVkaXRMb2dvdXQoKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihBdWRpdExvZ291dE1vYmlsZUFjdGlvbilcbiAgcHVibGljIEF1ZGl0TG9nb3V0TW9iaWxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgYWN0aW9uOiBBdWRpdExvZ291dE1vYmlsZUFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShURU5BTlRfS0VZKTtcbiAgICBjb25zdCB0ZW5hbnRJbmZvID0gY3R4LmdldFN0YXRlKCkuc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQ7XG4gICAgaWYgKHRoaXMuaXNUZW5hbnRVbmRlZmluZWQodGVuYW50SW5mbywgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXSkpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTsgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRlbmFudCBvciBzcGFya1Nlc3Npb25zIGFyZSB1bmRlZmluZWRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubW9iaWxlU2VydmljZVByb3h5Lm1vYmlsZUF1ZGl0TG9nb3V0KFZFUlNJT05fVjEpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4geyB9KSk7XG4gIH1cblxuICBAQWN0aW9uKE1vYmlsZUxvZ291dEFjdGlvbilcbiAgcHVibGljIG9uTW9iaWxlTG9nb3V0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyBsb2dvdXRBdWRpdCB9OiBNb2JpbGVMb2dvdXRBY3Rpb24pIHtcbiAgICBjb25zdCBhcHBUeXBlID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmFwcFR5cGU7XG4gICAgdGhpcy5odHRwQ2FuY2VsU2VydmljZS5jYW5jZWxQZW5kaW5nUmVxdWVzdHMoKTtcblxuICAgIGlmIChhcHBUeXBlID09PSBBcHBUeXBlLk1vYmlsZSkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBMb2dvdXRNb2JpbGVBY3Rpb24oKSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IGdldE5hdmlnYXRpb25Sb3V0ZShTZXNzaW9uU3RhdGUudGVuYW50SW5mbyhjdHguZ2V0U3RhdGUoKSksIGFwcFR5cGUsIFsnYWNjb3VudCcsICdsb2dpbiddKTtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICAgIH1cblxuICAgIGlmIChsb2dvdXRBdWRpdCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdExvZ291dE1vYmlsZUFjdGlvbigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoIC8vIG9ic2VydmUgYWxsIHJvdXRlIGV2ZW50c1xuICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgZS51cmwuaW5jbHVkZXMoJy9hY2NvdW50L2xvZ2luJykpLCAvLyBmaWx0ZXIgb25seSBOYXZpZ2F0aW9uRW5kIGV2ZW50c1xuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIGZpcnN0KCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKS5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW5hbnQgPSBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF07XG4gICAgICAgICAgICBjb25zdCBzc29FbmFibGVkID0gdGVuYW50Py51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShMT0NBTF9FTkdMSVNIX0xBTkdVQUdFKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVGVuYW50Q2xlYXJBY3Rpb24oKSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24oKSk7XG4gICAgICAgICAgICBpZiAoc3NvRW5hYmxlZCkge1xuICAgICAgICAgICAgICBjb25zdCB0ZW5hbnROYW1lID0gdGVuYW50Py50ZW5hbnQ/LnRlbmFudE5hbWU7XG4gICAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGVuYW50Py50ZW5hbnQucHJvcHM/LnNzbz8ucHJvdmlkZXI7XG4gICAgICAgICAgICAgIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KHtcbiAgICAgICAgICAgICAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogYC8ke3RlbmFudE5hbWV9YFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2UgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLlBpbmdGZWRlcmF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbklkQXV0aFNlcnZpY2Uuc2lnbk91dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vdGhpcy5zaWxlbnRMb2dPdXRNc2woY3R4LCBhcHBUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKExvZ291dEFjdGlvbilcbiAgcHVibGljIG9uTG9nb3V0KGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyBsb2dvdXRBdWRpdCB9OiBMb2dvdXRBY3Rpb24pIHtcbiAgICBjb25zdCBhcHBUeXBlID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmFwcFR5cGU7XG4gICAgdGhpcy5odHRwQ2FuY2VsU2VydmljZS5jYW5jZWxQZW5kaW5nUmVxdWVzdHMoKTtcblxuICAgIGlmIChhcHBUeXBlID09PSBBcHBUeXBlLk1vYmlsZSkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBMb2dvdXRNb2JpbGVBY3Rpb24oKSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGF0aCA9IGdldE5hdmlnYXRpb25Sb3V0ZShTZXNzaW9uU3RhdGUudGVuYW50SW5mbyhjdHguZ2V0U3RhdGUoKSksIGFwcFR5cGUsIFsnYWNjb3VudCcsICdsb2dpbiddKTtcbiAgICAgIGN0eC5kaXNwYXRjaChuZXcgTmF2aWdhdGUocGF0aCkpO1xuICAgIH1cblxuICAgIGlmIChsb2dvdXRBdWRpdCkge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBBdWRpdExvZ291dEFjdGlvbigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoIC8vIG9ic2VydmUgYWxsIHJvdXRlIGV2ZW50c1xuICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgZS51cmwuaW5jbHVkZXMoJy9hY2NvdW50L2xvZ2luJykpLCAvLyBmaWx0ZXIgb25seSBOYXZpZ2F0aW9uRW5kIGV2ZW50c1xuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIGZpcnN0KCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKS5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW5hbnQgPSBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF07XG4gICAgICAgICAgICBjb25zdCBzc29FbmFibGVkID0gdGVuYW50Py51c2VyPy5zc29BdXRoZW50aWNhdGVkO1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShMT0NBTF9FTkdMSVNIX0xBTkdVQUdFKTtcbiAgICAgICAgICAgIGN0eC5kaXNwYXRjaChuZXcgVGVuYW50Q2xlYXJBY3Rpb24oKSk7XG4gICAgICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24oKSk7XG4gICAgICAgICAgICBpZiAoc3NvRW5hYmxlZCkge1xuICAgICAgICAgICAgICBjb25zdCB0ZW5hbnROYW1lID0gdGVuYW50Py50ZW5hbnQ/LnRlbmFudE5hbWU7XG4gICAgICAgICAgICAgIGNvbnN0IHByb3ZpZGVyID0gdGVuYW50Py50ZW5hbnQucHJvcHM/LnNzbz8ucHJvdmlkZXI7XG4gICAgICAgICAgICAgIGlmIChwcm92aWRlciA9PSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KHtcbiAgICAgICAgICAgICAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogYC8ke3RlbmFudE5hbWV9YFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2UgaWYgKHByb3ZpZGVyID09IFNpbmdsZVNpZ25PblByb3ZpZGVyLlBpbmdGZWRlcmF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbklkQXV0aFNlcnZpY2Uuc2lnbk91dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vdGhpcy5zaWxlbnRMb2dPdXRNc2woY3R4LCBhcHBUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSk7XG4gICAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGlzVGVuYW50VW5kZWZpbmVkID0gKHRlbmFudDogVGVuYW50SW5mbywgc2Vzc2lvbjogU3BhcmtTZXNzaW9uKSA9PiAhdGVuYW50IHx8ICFzZXNzaW9uO1xuXG4gIHNpbGVudExvZ091dE1zbChjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIGFwcFR5cGU6IEFwcFR5cGUpIHtcbiAgICBjb25zdCBjbGVhckNhY2hlUmVxdWVzdDogQ2xlYXJDYWNoZVJlcXVlc3QgPSB7XG4gICAgICBhY2NvdW50OiB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKClbMF0sXG4gICAgfTtcblxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuY2xlYXJDYWNoZShjbGVhckNhY2hlUmVxdWVzdCk7XG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcblxuICAgIGNvbnN0IHBhdGggPSBnZXROYXZpZ2F0aW9uUm91dGUoU2Vzc2lvblN0YXRlLnRlbmFudEluZm8oY3R4LmdldFN0YXRlKCkpLCBhcHBUeXBlLCBbJ2FjY291bnQnLCAnbG9naW4nXSk7XG4gICAgY3R4LmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZShwYXRoKSk7XG4gIH1cblxuICBAQWN0aW9uKFRlbmFudExvYWRBY3Rpb24pXG4gIHB1YmxpYyBvblRlbmFudExvYWRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBhY3Rpb246IFRlbmFudExvYWRBY3Rpb24pIHtcbiAgICBjb25zdCB0ZW5hbnROYW1lID0gYWN0aW9uLnRlbmFudD8udGVuYW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZVRlbmFudEluZm9Qcm9wcyhhY3Rpb24udGVuYW50Py5wcm9wcykpO1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBpZiAoIXNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0pIHtcbiAgICAgIHNwYXJrU2Vzc2lvbnNbdGVuYW50TmFtZV0gPSB7IHVzZXI6IG51bGwsIGF1dGhUb2tlbjogbnVsbCwgcmVmcmVzaDogbnVsbCwgdGVuYW50OiBhY3Rpb24udGVuYW50IH07XG4gICAgfVxuXG4gICAgc3BhcmtTZXNzaW9uc1t0ZW5hbnROYW1lXS50ZW5hbnQgPSBhY3Rpb24udGVuYW50O1xuICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICB9XG5cbiAgQEFjdGlvbihUZW5hbnRDbGVhckFjdGlvbilcbiAgcHVibGljIG9uVGVuYW50Q2xlYXJBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBfOiBUZW5hbnRDbGVhckFjdGlvbikge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBjb25zdCBzcGFya1Nlc3Npb24gPSBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF07XG4gICAgaWYgKHNwYXJrU2Vzc2lvbikge1xuICAgICAgc3BhcmtTZXNzaW9uLnVzZXIgPSBudWxsO1xuICAgICAgc3BhcmtTZXNzaW9uLnJlZnJlc2ggPSBudWxsO1xuICAgICAgc3BhcmtTZXNzaW9uLmF1dGhUb2tlbiA9IG51bGw7XG4gICAgICBpZiAoc3BhcmtTZXNzaW9uLmFwcENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgc3BhcmtTZXNzaW9uLmFwcENvbmZpZ3VyYXRpb24uYW5hbHl0aWNzVG9rZW4gPSAnJztcbiAgICAgICAgc3BhcmtTZXNzaW9uLmFwcENvbmZpZ3VyYXRpb24uZmVlZGJhY2tUb2tlbiA9ICcnO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gICAgfVxuICB9XG5cbiAgQEFjdGlvbihIZWFsdGhBY3Rpb24pXG4gIHB1YmxpYyBvbkhlYWx0aEFjdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4pIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudFZhcmlhYmxlJCA9IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2VQcm94eS5nZXRIZWFsdGgoKTtcbiAgICByZXR1cm4gZW52aXJvbm1lbnRWYXJpYWJsZSQucGlwZSh0YXAoZW52aXJvbm1lbnRWYXJpYWJsZSA9PiB7XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKEVOVklST05NRU5ULCBKU09OLnN0cmluZ2lmeShlbnZpcm9ubWVudFZhcmlhYmxlLmRhdGEuZW52aXJvbm1lbnQpKTtcbiAgICAgIGN0eC5wYXRjaFN0YXRlKHsgc2VydmVyRW52aXJvbm1lbnRNb2RlOiBlbnZpcm9ubWVudFZhcmlhYmxlLmRhdGEuZW52aXJvbm1lbnQgfSk7XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVVc2VyU2V0dGluZ3NJblNlc3Npb25BY3Rpb24pXG4gIHB1YmxpYyBvblVwZGF0ZVVzZXJTZXR0aW5ncyhjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgdXNlclNldHRpbmdzIH0pIHtcbiAgICBjb25zdCBzcGFya1Nlc3Npb25zID0gdGhpcy5nZXRTcGFya1Nlc3Npb25zKCk7XG4gICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLnVzZXIuc2V0dGluZ3MgPSB1c2VyU2V0dGluZ3M7XG4gICAgdGhpcy5zZXRTcGFya1Nlc3Npb25zKGN0eCwgc3BhcmtTZXNzaW9ucyk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZVRlbmFudEluZm9Qcm9wcylcbiAgcHVibGljIG9uVXBkYXRlVGVuYW50SW5mb1Byb3BzKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgeyBwcm9wcyB9KSB7XG4gICAgY29uc3Qgc3BhcmtTZXNzaW9ucyA9IHRoaXMuZ2V0U3BhcmtTZXNzaW9ucygpO1xuICAgIHNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XS50ZW5hbnQucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnNldFNwYXJrU2Vzc2lvbnMoY3R4LCBzcGFya1Nlc3Npb25zKTtcbiAgfVxuXG4gIEBBY3Rpb24oQXV0aGVudGljYXRlMkZBZm9yVXNlcilcbiAgcHVibGljIG9uQXV0aGVudGljYXRlMkZBZm9yVXNlcihjdHg6IFN0YXRlQ29udGV4dDxTZXNzaW9uU3RhdGVNb2RlbD4sIHsgfSkge1xuICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICBpZiAoc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdPy51c2VyKSB7XG4gICAgICBzcGFya1Nlc3Npb25zW3RoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnRlbmFudF0udXNlci5hdXRoZW50aWNhdGVkMkZBID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oSW5pdFNlc3Npb25Gcm9tTG9jYWxTdG9yYWdlQWN0aW9uKVxuICBwdWJsaWMgb25Mb2FkU2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+LCBfOiBJbml0U2Vzc2lvbkZyb21Mb2NhbFN0b3JhZ2VBY3Rpb24pIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU0VTU0lPTik7XG4gICAgY29uc3Qgc2Vzc2lvbjoge1xuICAgICAgYXBwbGljYXRpb246IEFwcGxpY2F0aW9uSW5mbyxcbiAgICAgIHNwYXJrU2Vzc2lvbnM6IFN0cmluZ01hcDxTcGFya1Nlc3Npb24+LFxuICAgIH0gPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IGRlZmF1bHRTZXNzaW9uU3RhdGU7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgYXBwbGljYXRpb246IHNlc3Npb24uYXBwbGljYXRpb24sXG4gICAgICBzcGFya1Nlc3Npb25zOiBzZXNzaW9uLnNwYXJrU2Vzc2lvbnNcbiAgICB9KTtcbiAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50KSB7XG4gICAgICBjb25zdCBzcGFya1Nlc3Npb24gPSBzZXNzaW9uLnNwYXJrU2Vzc2lvbnNbdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudGVuYW50XTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEF1dGhTZXNzaW9uKHNwYXJrU2Vzc2lvbj8uYXV0aFRva2VuLCBzcGFya1Nlc3Npb24/LnJlZnJlc2gpO1xuICAgIH1cbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24pXG4gIHB1YmxpYyBvbkFwcENvbmZpZ3VyYXRpb25BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8U2Vzc2lvblN0YXRlTW9kZWw+KSB7XG4gICAgY29uc3QgYXBwQ29uZmlndXJhdGlvbiQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlUHJveHkuZ2V0QXBwQ29uZmlndXJhdGlvbigpO1xuICAgIHJldHVybiBhcHBDb25maWd1cmF0aW9uJC5waXBlKHRhcChhcHBDb25maWd1cmF0aW9uID0+IHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQpIHtcbiAgICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLmFwcENvbmZpZ3VyYXRpb24gPSBhcHBDb25maWd1cmF0aW9uLmRhdGE7XG4gICAgICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oTG9hZEFwcENvbmZpZ3VyYXRpb25Nb2JpbGVBY3Rpb24pXG4gIHB1YmxpYyBvbkxvYWRBcHBDb25maWd1cmF0aW9uTW9iaWxlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPikge1xuICAgIGNvbnN0IGFwcENvbmZpZ3VyYXRpb24kID0gdGhpcy5tb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eS5nZXRBcHBDb25maWd1cmF0aW9uTW9iaWxlKFZFUlNJT05fVjEpO1xuICAgIHJldHVybiBhcHBDb25maWd1cmF0aW9uJC5waXBlKHRhcChhcHBDb25maWd1cmF0aW9uID0+IHtcbiAgICAgIGNvbnN0IHNwYXJrU2Vzc2lvbnMgPSB0aGlzLmdldFNwYXJrU2Vzc2lvbnMoKTtcbiAgICAgIGlmICh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnQpIHtcbiAgICAgICAgc3BhcmtTZXNzaW9uc1t0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS50ZW5hbnRdLmFwcENvbmZpZ3VyYXRpb24gPSBhcHBDb25maWd1cmF0aW9uLmRhdGE7XG4gICAgICAgIHRoaXMuc2V0U3BhcmtTZXNzaW9ucyhjdHgsIHNwYXJrU2Vzc2lvbnMpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3BhcmtTZXNzaW9ucyA9ICgpOiBTdHJpbmdNYXA8U3BhcmtTZXNzaW9uPiA9PiBKU09OLnBhcnNlKHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFNFU1NJT04pKT8uc3BhcmtTZXNzaW9ucyA/PyB7fTtcbiAgcHJpdmF0ZSBzZXRTcGFya1Nlc3Npb25zID0gKGN0eDogU3RhdGVDb250ZXh0PFNlc3Npb25TdGF0ZU1vZGVsPiwgc3BhcmtTZXNzaW9uczogU3RyaW5nTWFwPFNwYXJrU2Vzc2lvbj4pOiB2b2lkID0+IHtcbiAgICBjb25zdCBhcHBsaWNhdGlvbiA9IGN0eC5nZXRTdGF0ZSgpLmFwcGxpY2F0aW9uO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFNFU1NJT04sIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGFwcGxpY2F0aW9uLFxuICAgICAgc3BhcmtTZXNzaW9uczogc3BhcmtTZXNzaW9uc1xuICAgIH0pKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7IHNwYXJrU2Vzc2lvbnMgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,6 +10,12 @@ export class LoadNotificationsAction {
|
|
|
10
10
|
this.minutesAgo = minutesAgo;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
export class LoadNotificationsMobileAction {
|
|
14
|
+
static { this.type = '[notifications] Load Notifications Mobile'; }
|
|
15
|
+
constructor(minutesAgo) {
|
|
16
|
+
this.minutesAgo = minutesAgo;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
13
19
|
export class ClearNotificationsAction {
|
|
14
20
|
static { this.type = '[notifications] Clear'; }
|
|
15
21
|
constructor() {
|
|
@@ -42,4 +48,4 @@ export class HandleNotificationAction {
|
|
|
42
48
|
this.guid = guid;
|
|
43
49
|
}
|
|
44
50
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9tb2R1bGVzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLHlEQUF5RCxDQUFDO0lBRXhGLFlBQW1CLDRCQUF5RDtRQUF6RCxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO0lBQzVFLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNsQixTQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFFOUMsWUFBbUIsVUFBa0I7UUFBbEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUNyQyxDQUFDOztBQUdILE1BQU0sT0FBTyw2QkFBNkI7YUFDeEIsU0FBSSxHQUFHLDJDQUEyQyxDQUFDO0lBRW5FLFlBQW1CLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDckMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sd0JBQXdCO2FBQ25CLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUUvQztJQUNBLENBQUM7O0FBR0gsTUFBTSxPQUFPLHdCQUF3QjthQUNuQixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFaEQsWUFBbUIsWUFBNkIsRUFBUyxJQUFZO1FBQWxELGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7SUFDckUsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNEJBQTRCO2FBQ3ZCLFNBQUksR0FBRyxrQ0FBa0MsQ0FBQztJQUUxRCxZQUFtQixZQUE2QixFQUFTLElBQVk7UUFBbEQsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUNyRSxDQUFDOztBQUdILE1BQU0sT0FBTyw0QkFBNEI7YUFDdkIsU0FBSSxHQUFHLDJCQUEyQixDQUFDO0lBRW5ELFlBQW1CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQzNELENBQUM7O0FBR0gsTUFBTSxPQUFPLHdCQUF3QjthQUNuQixTQUFJLEdBQUcsb0NBQW9DLENBQUM7SUFFNUQsWUFBbUIsZUFBZ0MsRUFBUyxJQUFZO1FBQXJELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7SUFDeEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQWxlcnRQcmVmZXJlbmNlc1NldHRpbmdzRHRvLCBOb3RpZmljYXRpb25EdG8gfSBmcm9tIFwiLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNDb25maWcgfSBmcm9tIFwiLi9ub3RpZmljYXRpb25zLmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlVXNlckFsZXJ0c1ByZWZlcmVuY2VzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tub3RpZmljYXRpb25zLXByZWZlcmVuY2VzXSBVcGRhdGVVc2VyQWxlcnRzUHJlZmVyZW5jZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTm90aWZpY2F0aW9uc1ByZWZlcmVuY2VzOiBBbGVydFByZWZlcmVuY2VzU2V0dGluZ3NEdG8pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZE5vdGlmaWNhdGlvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbm90aWZpY2F0aW9uc10gTG9hZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG1pbnV0ZXNBZ286IG51bWJlcikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkTm90aWZpY2F0aW9uc01vYmlsZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tub3RpZmljYXRpb25zXSBMb2FkIE5vdGlmaWNhdGlvbnMgTW9iaWxlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWludXRlc0FnbzogbnVtYmVyKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyTm90aWZpY2F0aW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tub3RpZmljYXRpb25zXSBDbGVhcic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNoYW5nZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tub3RpZmljYXRpb25zXSBDaGFuZ2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbkR0bywgcHVibGljIGd1aWQ6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIYW5kbGVOb3RpZmljYXRpb25Gb3JDbG9zaW5nIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW25vdGlmaWNhdGlvbnNdIEhhbmRsZUZvckNsb3NpbmcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbkR0bywgcHVibGljIGd1aWQ6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXROb3RpZmljYXRpb25zQ29uZmlnQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW25vdGlmaWNhdGlvbnNdIFNldENvbmZpZyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5vdGlmaWNhdGlvbnNDb25maWc6IE5vdGlmaWNhdGlvbnNDb25maWcpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGFuZGxlTm90aWZpY2F0aW9uQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW25vdGlmaWNhdGlvbnNdIEhhbmRsZU5vdGlmaWNhdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5vdGlmaWNhdGlvbkR0bzogTm90aWZpY2F0aW9uRHRvLCBwdWJsaWMgZ3VpZDogc3RyaW5nKSB7XG4gIH1cbn1cbiJdfQ==
|