@ts-core/angular 15.0.60 → 17.0.10
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/asset/AssetBackgroundDirective.d.ts +1 -1
- package/cookie/CookieService.d.ts +1 -3
- package/directive/AspectRatioResizeDirective.d.ts +1 -1
- package/directive/AutoScrollBottomDirective.d.ts +1 -1
- package/directive/ClickToCopyDirective.d.ts +1 -1
- package/directive/FocusDirective.d.ts +1 -1
- package/directive/HTMLContentTitleDirective.d.ts +1 -1
- package/directive/HTMLTitleDirective.d.ts +1 -1
- package/directive/InfiniteScrollDirective.d.ts +1 -1
- package/directive/ResizeDirective.d.ts +1 -1
- package/directive/ScrollCheckDirective.d.ts +1 -1
- package/directive/ScrollDirective.d.ts +1 -1
- package/esm2022/VIModule.mjs +190 -0
- package/esm2022/application/ApplicationBaseComponent.mjs +96 -0
- package/esm2022/application/ApplicationComponent.mjs +64 -0
- package/esm2022/application/MessageBaseComponent.mjs +60 -0
- package/esm2022/asset/AssetBackgroundDirective.mjs +152 -0
- package/{esm2020 → esm2022}/asset/AssetBackgroundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetFilePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetIconPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetImagePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetModule.mjs +5 -5
- package/{esm2020 → esm2022}/asset/AssetSoundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetVideoPipe.mjs +4 -4
- package/{esm2020 → esm2022}/cookie/CookieModule.mjs +5 -5
- package/{esm2020 → esm2022}/cookie/CookieOptions.mjs +7 -1
- package/esm2022/cookie/CookieService.mjs +71 -0
- package/esm2022/directive/AspectRatioResizeDirective.mjs +134 -0
- package/esm2022/directive/AutoScrollBottomDirective.mjs +122 -0
- package/esm2022/directive/ClickToCopyDirective.mjs +53 -0
- package/esm2022/directive/ClickToSelectDirective.mjs +55 -0
- package/esm2022/directive/FocusDirective.mjs +60 -0
- package/esm2022/directive/HTMLContentTitleDirective.mjs +74 -0
- package/esm2022/directive/HTMLTitleDirective.mjs +73 -0
- package/esm2022/directive/InfiniteScrollDirective.mjs +71 -0
- package/{esm2020 → esm2022}/directive/IsBrowserDirective.mjs +5 -5
- package/{esm2020 → esm2022}/directive/IsServerDirective.mjs +5 -5
- package/esm2022/directive/ResizeDirective.mjs +80 -0
- package/esm2022/directive/ScrollCheckDirective.mjs +104 -0
- package/esm2022/directive/ScrollDirective.mjs +120 -0
- package/esm2022/directive/SelectOnFocusDirective.mjs +48 -0
- package/esm2022/directive/StructureDirective.mjs +80 -0
- package/esm2022/language/LanguageDirective.mjs +102 -0
- package/esm2022/language/LanguageHasDirective.mjs +87 -0
- package/{esm2020 → esm2022}/language/LanguageModule.mjs +5 -5
- package/esm2022/language/LanguagePipe.mjs +88 -0
- package/esm2022/language/LanguagePipeHas.mjs +64 -0
- package/esm2022/language/LanguagePipeHasPure.mjs +41 -0
- package/esm2022/language/LanguagePipePure.mjs +40 -0
- package/esm2022/language/LanguageRequireResolver.mjs +37 -0
- package/{esm2020 → esm2022}/language/LanguageResolver.mjs +5 -5
- package/esm2022/list/ListItem.mjs +148 -0
- package/esm2022/list/ListItems.mjs +107 -0
- package/esm2022/list/select/RouterSelectListItems.mjs +60 -0
- package/esm2022/list/select/SelectListItem.mjs +67 -0
- package/esm2022/list/select/SelectListItems.mjs +130 -0
- package/esm2022/login/LoginBaseService.mjs +191 -0
- package/esm2022/login/LoginGuard.mjs +41 -0
- package/esm2022/login/LoginIfCanGuard.mjs +55 -0
- package/esm2022/login/LoginNotGuard.mjs +41 -0
- package/esm2022/login/LoginRequireResolver.mjs +40 -0
- package/{esm2020 → esm2022}/login/LoginResolver.mjs +6 -6
- package/esm2022/login/LoginTokenStorage.mjs +18 -0
- package/esm2022/manager/FocusManager.mjs +54 -0
- package/esm2022/manager/ResizeManager.mjs +90 -0
- package/esm2022/menu/MenuItem.mjs +20 -0
- package/esm2022/menu/MenuItemBase.mjs +56 -0
- package/esm2022/menu/MenuItems.mjs +111 -0
- package/esm2022/menu/NavigationMenuItem.mjs +20 -0
- package/esm2022/module/LazyModuleLoader.mjs +97 -0
- package/esm2022/notification/INotification.mjs +16 -0
- package/esm2022/notification/INotificationContent.mjs +141 -0
- package/esm2022/notification/NotificationConfig.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/CamelCasePipe.mjs +4 -4
- package/esm2022/pipe/FinancePipe.mjs +53 -0
- package/esm2022/pipe/MomentDateAdaptivePipe.mjs +51 -0
- package/{esm2020 → esm2022}/pipe/MomentDateFromNowPipe.mjs +4 -4
- package/esm2022/pipe/MomentDatePipe.mjs +71 -0
- package/esm2022/pipe/MomentTimePipe.mjs +35 -0
- package/esm2022/pipe/NgModelErrorPipe.mjs +43 -0
- package/esm2022/pipe/PrettifyPipe.mjs +38 -0
- package/esm2022/pipe/SanitizePipe.mjs +48 -0
- package/{esm2020 → esm2022}/pipe/StartCasePipe.mjs +4 -4
- package/esm2022/pipe/TimePipe.mjs +38 -0
- package/{esm2020 → esm2022}/pipe/TruncatePipe.mjs +4 -4
- package/esm2022/public-api.mjs +138 -0
- package/esm2022/question/QuestionManager.mjs +107 -0
- package/esm2022/service/PipeBaseService.mjs +140 -0
- package/esm2022/service/PlatformService.mjs +45 -0
- package/esm2022/service/RouterBaseService.mjs +236 -0
- package/esm2022/storage/DateValueStorage.mjs +46 -0
- package/esm2022/storage/LocalStorageService.mjs +58 -0
- package/esm2022/storage/ValueStorage.mjs +75 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetBackgroundDirective.mjs +5 -5
- package/esm2022/theme/ThemeAssetDirective.mjs +251 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetIconDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeAssetImageDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeModule.mjs +15 -15
- package/esm2022/theme/ThemeStyleDirective.mjs +125 -0
- package/esm2022/theme/ThemeStyleHoverDirective.mjs +107 -0
- package/esm2022/theme/ThemeToggleDirective.mjs +63 -0
- package/esm2022/transport/TransportLazy.mjs +93 -0
- package/esm2022/transport/TransportLazyModule.mjs +30 -0
- package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
- package/esm2022/user/IUser.mjs +9 -0
- package/esm2022/user/UserBaseService.mjs +124 -0
- package/esm2022/util/ViewUtil.mjs +589 -0
- package/esm2022/window/IWindow.mjs +31 -0
- package/esm2022/window/IWindowContent.mjs +142 -0
- package/esm2022/window/WindowBase.mjs +177 -0
- package/esm2022/window/WindowClosedError.mjs +19 -0
- package/esm2022/window/WindowConfig.mjs +218 -0
- package/{fesm2020 → fesm2022}/ts-core-angular.mjs +1118 -958
- package/fesm2022/ts-core-angular.mjs.map +1 -0
- package/language/LanguageDirective.d.ts +1 -1
- package/language/LanguageHasDirective.d.ts +1 -1
- package/module/LazyModuleLoader.d.ts +1 -1
- package/notification/INotificationContent.d.ts +1 -1
- package/notification/NotificationConfig.d.ts +1 -1
- package/notification/NotificationService.d.ts +1 -1
- package/package.json +19 -26
- package/pipe/MomentDatePipe.d.ts +1 -1
- package/public-api.d.ts +0 -2
- package/theme/ThemeAssetBackgroundDirective.d.ts +1 -1
- package/theme/ThemeAssetDirective.d.ts +1 -1
- package/theme/ThemeAssetIconDirective.d.ts +1 -1
- package/theme/ThemeAssetImageDirective.d.ts +1 -1
- package/theme/ThemeStyleDirective.d.ts +1 -1
- package/theme/ThemeStyleHoverDirective.d.ts +1 -1
- package/user/IUser.d.ts +1 -1
- package/util/ViewUtil.d.ts +1 -1
- package/window/IWindowContent.d.ts +2 -2
- package/window/WindowConfig.d.ts +1 -1
- package/window/WindowService.d.ts +1 -1
- package/esm2020/VIModule.mjs +0 -187
- package/esm2020/application/ApplicationBaseComponent.mjs +0 -88
- package/esm2020/application/ApplicationComponent.mjs +0 -58
- package/esm2020/application/MessageBaseComponent.mjs +0 -52
- package/esm2020/asset/AssetBackgroundDirective.mjs +0 -150
- package/esm2020/cookie/CookieService.mjs +0 -79
- package/esm2020/directive/AspectRatioResizeDirective.mjs +0 -131
- package/esm2020/directive/AutoScrollBottomDirective.mjs +0 -122
- package/esm2020/directive/ClickToCopyDirective.mjs +0 -49
- package/esm2020/directive/ClickToSelectDirective.mjs +0 -49
- package/esm2020/directive/FocusDirective.mjs +0 -54
- package/esm2020/directive/HTMLContentTitleDirective.mjs +0 -67
- package/esm2020/directive/HTMLTitleDirective.mjs +0 -66
- package/esm2020/directive/InfiniteScrollDirective.mjs +0 -74
- package/esm2020/directive/ResizeDirective.mjs +0 -79
- package/esm2020/directive/ScrollCheckDirective.mjs +0 -102
- package/esm2020/directive/ScrollDirective.mjs +0 -118
- package/esm2020/directive/SelectOnFocusDirective.mjs +0 -47
- package/esm2020/directive/StructureDirective.mjs +0 -71
- package/esm2020/form/FormElementAsync.mjs +0 -27
- package/esm2020/form/FormElementSync.mjs +0 -69
- package/esm2020/form/ValueAccessor.mjs +0 -62
- package/esm2020/form/validate.mjs +0 -59
- package/esm2020/language/LanguageDirective.mjs +0 -92
- package/esm2020/language/LanguageHasDirective.mjs +0 -80
- package/esm2020/language/LanguagePipe.mjs +0 -78
- package/esm2020/language/LanguagePipeHas.mjs +0 -56
- package/esm2020/language/LanguagePipeHasPure.mjs +0 -40
- package/esm2020/language/LanguagePipePure.mjs +0 -39
- package/esm2020/language/LanguageRequireResolver.mjs +0 -36
- package/esm2020/list/ListItem.mjs +0 -134
- package/esm2020/list/ListItems.mjs +0 -97
- package/esm2020/list/select/RouterSelectListItems.mjs +0 -53
- package/esm2020/list/select/SelectListItem.mjs +0 -59
- package/esm2020/list/select/SelectListItems.mjs +0 -121
- package/esm2020/login/LoginBaseService.mjs +0 -184
- package/esm2020/login/LoginGuard.mjs +0 -40
- package/esm2020/login/LoginIfCanGuard.mjs +0 -54
- package/esm2020/login/LoginNotGuard.mjs +0 -40
- package/esm2020/login/LoginRequireResolver.mjs +0 -39
- package/esm2020/login/LoginTokenStorage.mjs +0 -18
- package/esm2020/manager/FocusManager.mjs +0 -46
- package/esm2020/manager/ResizeManager.mjs +0 -81
- package/esm2020/menu/MenuItem.mjs +0 -13
- package/esm2020/menu/MenuItemBase.mjs +0 -46
- package/esm2020/menu/MenuItems.mjs +0 -102
- package/esm2020/menu/NavigationMenuItem.mjs +0 -14
- package/esm2020/module/LazyModuleLoader.mjs +0 -89
- package/esm2020/notification/INotification.mjs +0 -7
- package/esm2020/notification/INotificationContent.mjs +0 -132
- package/esm2020/notification/NotificationConfig.mjs +0 -16
- package/esm2020/pipe/FinancePipe.mjs +0 -53
- package/esm2020/pipe/MomentDateAdaptivePipe.mjs +0 -51
- package/esm2020/pipe/MomentDatePipe.mjs +0 -71
- package/esm2020/pipe/MomentTimePipe.mjs +0 -35
- package/esm2020/pipe/NgModelErrorPipe.mjs +0 -42
- package/esm2020/pipe/PrettifyPipe.mjs +0 -38
- package/esm2020/pipe/SanitizePipe.mjs +0 -47
- package/esm2020/pipe/TimePipe.mjs +0 -38
- package/esm2020/public-api.mjs +0 -141
- package/esm2020/question/QuestionManager.mjs +0 -93
- package/esm2020/service/PipeBaseService.mjs +0 -132
- package/esm2020/service/PlatformService.mjs +0 -38
- package/esm2020/service/RouterBaseService.mjs +0 -224
- package/esm2020/storage/DateValueStorage.mjs +0 -49
- package/esm2020/storage/LocalStorageService.mjs +0 -57
- package/esm2020/storage/ValueStorage.mjs +0 -67
- package/esm2020/theme/ThemeAssetDirective.mjs +0 -240
- package/esm2020/theme/ThemeStyleDirective.mjs +0 -115
- package/esm2020/theme/ThemeStyleHoverDirective.mjs +0 -107
- package/esm2020/theme/ThemeToggleDirective.mjs +0 -62
- package/esm2020/transport/TransportLazy.mjs +0 -92
- package/esm2020/transport/TransportLazyModule.mjs +0 -28
- package/esm2020/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
- package/esm2020/user/IUser.mjs +0 -3
- package/esm2020/user/UserBaseService.mjs +0 -116
- package/esm2020/util/ViewUtil.mjs +0 -589
- package/esm2020/window/IWindow.mjs +0 -33
- package/esm2020/window/IWindowContent.mjs +0 -135
- package/esm2020/window/WindowBase.mjs +0 -177
- package/esm2020/window/WindowClosedError.mjs +0 -19
- package/esm2020/window/WindowConfig.mjs +0 -197
- package/fesm2015/ts-core-angular.mjs +0 -7015
- package/fesm2015/ts-core-angular.mjs.map +0 -1
- package/fesm2020/ts-core-angular.mjs.map +0 -1
- package/form/FormElementAsync.d.ts +0 -13
- package/form/FormElementSync.d.ts +0 -22
- package/form/ValueAccessor.d.ts +0 -16
- package/form/validate.d.ts +0 -9
- /package/{esm2020 → esm2022}/ApplicationInjector.mjs +0 -0
- /package/{esm2020 → esm2022}/bottomSheet/BottomSheetService.mjs +0 -0
- /package/{esm2020 → esm2022}/list/IListItem.mjs +0 -0
- /package/{esm2020 → esm2022}/list/select/ISelectListItem.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/INotificationConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/NotificationService.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/NotificationServiceEvent.mjs +0 -0
- /package/{esm2020 → esm2022}/question/IQuestion.mjs +0 -0
- /package/{esm2020 → esm2022}/service/route/CanDeactivateGuard.mjs +0 -0
- /package/{esm2020 → esm2022}/service/route/IRouterDeactivatable.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/BooleanValueStorage.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/IValueStorage.mjs +0 -0
- /package/{esm2020 → esm2022}/ts-core-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/window/IWindowConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/window/WindowService.mjs +0 -0
- /package/{esm2020 → esm2022}/window/WindowServiceEvent.mjs +0 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { LoadableEvent, Loadable, LoadableStatus } from '@ts-core/common';
|
|
2
|
+
import { ExtendedError } from '@ts-core/common';
|
|
3
|
+
import { ObservableData } from '@ts-core/common';
|
|
4
|
+
import { TransportNoConnectionError, TransportTimeoutError } from '@ts-core/common';
|
|
5
|
+
import { map, filter } from 'rxjs';
|
|
6
|
+
import * as _ from 'lodash';
|
|
7
|
+
export class LoginBaseService extends Loadable {
|
|
8
|
+
// --------------------------------------------------------------------------
|
|
9
|
+
//
|
|
10
|
+
// Properties
|
|
11
|
+
//
|
|
12
|
+
// --------------------------------------------------------------------------
|
|
13
|
+
_sid;
|
|
14
|
+
_loginData;
|
|
15
|
+
_isLoggedIn = false;
|
|
16
|
+
// --------------------------------------------------------------------------
|
|
17
|
+
//
|
|
18
|
+
// Constructor
|
|
19
|
+
//
|
|
20
|
+
// --------------------------------------------------------------------------
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------
|
|
25
|
+
//
|
|
26
|
+
// Protected Methods
|
|
27
|
+
//
|
|
28
|
+
// --------------------------------------------------------------------------
|
|
29
|
+
async loginByParam(param) {
|
|
30
|
+
return this.loginByFunction(() => this.loginRequest(param));
|
|
31
|
+
}
|
|
32
|
+
async loginByFunction(sidReturnFunction) {
|
|
33
|
+
if (this.isLoggedIn || this.isLoading) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
let response;
|
|
37
|
+
this.status = LoadableStatus.LOADING;
|
|
38
|
+
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
39
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));
|
|
40
|
+
try {
|
|
41
|
+
response = await sidReturnFunction();
|
|
42
|
+
this.parseLoginResponse(response);
|
|
43
|
+
if (!this.isCanLoginWithSid()) {
|
|
44
|
+
this.status = LoadableStatus.LOADED;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.loginBySid();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
let extendedError = ExtendedError.create(error);
|
|
52
|
+
this.status = LoadableStatus.ERROR;
|
|
53
|
+
this.parseLoginErrorResponse(extendedError);
|
|
54
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));
|
|
55
|
+
}
|
|
56
|
+
if (!this.isLoading) {
|
|
57
|
+
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
58
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));
|
|
59
|
+
}
|
|
60
|
+
return response;
|
|
61
|
+
}
|
|
62
|
+
async loginBySid() {
|
|
63
|
+
if (_.isNil(this.sid)) {
|
|
64
|
+
this._sid = this.getSavedSid();
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
let response = await this.loginSidRequest();
|
|
68
|
+
this.parseLoginSidResponse(response);
|
|
69
|
+
this._isLoggedIn = true;
|
|
70
|
+
this.status = LoadableStatus.LOADED;
|
|
71
|
+
this.observer.next(new ObservableData(LoadableEvent.COMPLETE, response));
|
|
72
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_COMPLETE, response));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
let extendedError = ExtendedError.create(error);
|
|
76
|
+
this.parseLoginSidErrorResponse(extendedError);
|
|
77
|
+
this._isLoggedIn = false;
|
|
78
|
+
this.status = LoadableStatus.ERROR;
|
|
79
|
+
this.observer.next(new ObservableData(LoadableEvent.ERROR, null, extendedError));
|
|
80
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));
|
|
81
|
+
}
|
|
82
|
+
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
83
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));
|
|
84
|
+
}
|
|
85
|
+
reset() {
|
|
86
|
+
this._sid = null;
|
|
87
|
+
this._loginData = null;
|
|
88
|
+
}
|
|
89
|
+
parseLoginErrorResponse(error) { }
|
|
90
|
+
parseLogoutErrorResponse(error) { }
|
|
91
|
+
parseLoginSidResponse(response) {
|
|
92
|
+
this._loginData = response;
|
|
93
|
+
}
|
|
94
|
+
parseLoginSidErrorResponse(error) {
|
|
95
|
+
if (error instanceof TransportTimeoutError || error instanceof TransportNoConnectionError) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.reset();
|
|
99
|
+
}
|
|
100
|
+
async loginByResponse(param) {
|
|
101
|
+
if (this.isLoggedIn || this.isLoading) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.status = LoadableStatus.LOADING;
|
|
105
|
+
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
106
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));
|
|
107
|
+
this.parseLoginResponse(param);
|
|
108
|
+
this.status = !this.isCanLoginWithSid() ? LoadableStatus.LOADED : LoadableStatus.LOADING;
|
|
109
|
+
if (this.isLoading) {
|
|
110
|
+
await this.loginBySid();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
loginBySidIfCan() {
|
|
114
|
+
if (!this.isCanLoginWithSid()) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
if (this.isLoggedIn || this.isLoading) {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
this.status = LoadableStatus.LOADING;
|
|
121
|
+
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
122
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));
|
|
123
|
+
this.loginBySid();
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
async logout() {
|
|
127
|
+
if (!this.isLoggedIn) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
131
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_STARTED));
|
|
132
|
+
try {
|
|
133
|
+
await this.logoutRequest();
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
let extendedError = ExtendedError.create(error);
|
|
137
|
+
this.parseLogoutErrorResponse(extendedError);
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
this.reset();
|
|
141
|
+
this._isLoggedIn = false;
|
|
142
|
+
this.status = LoadableStatus.NOT_LOADED;
|
|
143
|
+
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
144
|
+
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_FINISHED));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
isCanLoginWithSid() {
|
|
148
|
+
return !_.isNil(this.sid) || !_.isNil(this.getSavedSid());
|
|
149
|
+
}
|
|
150
|
+
destroy() {
|
|
151
|
+
if (this.isDestroyed) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
super.destroy();
|
|
155
|
+
this.reset();
|
|
156
|
+
}
|
|
157
|
+
// --------------------------------------------------------------------------
|
|
158
|
+
//
|
|
159
|
+
// Public Properties
|
|
160
|
+
//
|
|
161
|
+
// --------------------------------------------------------------------------
|
|
162
|
+
get logined() {
|
|
163
|
+
return this.events.pipe(filter(item => item.type === LoginBaseServiceEvent.LOGIN_COMPLETE), map(item => item.data));
|
|
164
|
+
}
|
|
165
|
+
get logouted() {
|
|
166
|
+
return this.events.pipe(filter(item => item.type === LoginBaseServiceEvent.LOGOUT_FINISHED), map(() => null));
|
|
167
|
+
}
|
|
168
|
+
get sid() {
|
|
169
|
+
return this._sid;
|
|
170
|
+
}
|
|
171
|
+
get loginData() {
|
|
172
|
+
return this._loginData;
|
|
173
|
+
}
|
|
174
|
+
get isLoggedIn() {
|
|
175
|
+
return this._isLoggedIn;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
export var LoginBaseServiceEvent;
|
|
179
|
+
(function (LoginBaseServiceEvent) {
|
|
180
|
+
LoginBaseServiceEvent["LOGIN_ERROR"] = "LOGIN_ERROR";
|
|
181
|
+
LoginBaseServiceEvent["LOGIN_STARTED"] = "LOGIN_STARTED";
|
|
182
|
+
LoginBaseServiceEvent["LOGIN_COMPLETE"] = "LOGIN_COMPLETE";
|
|
183
|
+
LoginBaseServiceEvent["LOGIN_FINISHED"] = "LOGIN_FINISHED";
|
|
184
|
+
LoginBaseServiceEvent["LOGOUT_STARTED"] = "LOGOUT_STARTED";
|
|
185
|
+
LoginBaseServiceEvent["LOGOUT_FINISHED"] = "LOGOUT_FINISHED";
|
|
186
|
+
LoginBaseServiceEvent["REGISTRATION_ERROR"] = "REGISTRATION_ERROR";
|
|
187
|
+
LoginBaseServiceEvent["REGISTRATION_STARTED"] = "REGISTRATION_STARTED";
|
|
188
|
+
LoginBaseServiceEvent["REGISTRATION_COMPLETE"] = "REGISTRATION_COMPLETE";
|
|
189
|
+
LoginBaseServiceEvent["REGISTRATION_FINISHED"] = "REGISTRATION_FINISHED";
|
|
190
|
+
})(LoginBaseServiceEvent || (LoginBaseServiceEvent = {}));
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5CYXNlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2dpbi9Mb2dpbkJhc2VTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFnQixnQkFBNEMsU0FBUSxRQUEwRDtJQUNoSSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLElBQUksQ0FBUztJQUNiLFVBQVUsQ0FBSTtJQUNkLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFdkMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RTtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsS0FBSyxDQUFDLFlBQVksQ0FBVSxLQUFTO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQTRDO1FBQ3hFLElBQUksSUFBSSxD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dGF0dXMgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgRXh0ZW5kZWRFcnJvciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlRGF0YSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc3BvcnROb0Nvbm5lY3Rpb25FcnJvciwgVHJhbnNwb3J0VGltZW91dEVycm9yIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2dpbkJhc2VTZXJ2aWNlPEUgPSBhbnksIFUgPSBhbnksIFYgPSBhbnk+IGV4dGVuZHMgTG9hZGFibGU8RSB8IExvZ2luQmFzZVNlcnZpY2VFdmVudCwgVSB8IFYgfCBFeHRlbmRlZEVycm9yPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBfc2lkOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9sb2dpbkRhdGE6IFY7XG4gICAgcHJvdGVjdGVkIF9pc0xvZ2dlZEluOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGxvZ2luQnlQYXJhbTxUID0gYW55PihwYXJhbT86IFQpOiBQcm9taXNlPFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9naW5CeUZ1bmN0aW9uKCgpID0+IHRoaXMubG9naW5SZXF1ZXN0KHBhcmFtKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGxvZ2luQnlGdW5jdGlvbihzaWRSZXR1cm5GdW5jdGlvbjogKC4uLnBhcmFtcykgPT4gUHJvbWlzZTxVPik6IFByb21pc2U8VT4ge1xuICAgICAgICBpZiAodGhpcy5pc0xvZ2dlZEluIHx8IHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZXNwb25zZTogVTtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkYWJsZVN0YXR1cy5MT0FESU5HO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvYWRhYmxlRXZlbnQuU1RBUlRFRCkpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9TVEFSVEVEKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgc2lkUmV0dXJuRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMucGFyc2VMb2dpblJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0NhbkxvZ2luV2l0aFNpZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkYWJsZVN0YXR1cy5MT0FERUQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9naW5CeVNpZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbGV0IGV4dGVuZGVkRXJyb3IgPSBFeHRlbmRlZEVycm9yLmNyZWF0ZTxhbnksIG51bWJlcj4oZXJyb3IgYXMgYW55KTtcblxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkYWJsZVN0YXR1cy5FUlJPUjtcbiAgICAgICAgICAgIHRoaXMucGFyc2VMb2dpbkVycm9yUmVzcG9uc2UoZXh0ZW5kZWRFcnJvcik7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9FUlJPUiwgbnVsbCwgZXh0ZW5kZWRFcnJvcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkZJTklTSEVEKSk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9GSU5JU0hFRCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbG9naW5CeVNpZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKF8uaXNOaWwodGhpcy5zaWQpKSB7XG4gICAgICAgICAgICB0aGlzLl9zaWQgPSB0aGlzLmdldFNhdmVkU2lkKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5sb2dpblNpZFJlcXVlc3QoKTtcbiAgICAgICAgICAgIHRoaXMucGFyc2VMb2dpblNpZFJlc3BvbnNlKHJlc3BvbnNlKTtcblxuICAgICAgICAgICAgdGhpcy5faXNMb2dnZWRJbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURFRDtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5DT01QTEVURSwgcmVzcG9uc2UpKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0NPTVBMRVRFLCByZXNwb25zZSkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbGV0IGV4dGVuZGVkRXJyb3IgPSBFeHRlbmRlZEVycm9yLmNyZWF0ZTxhbnksIG51bWJlcj4oZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5wYXJzZUxvZ2luU2lkRXJyb3JSZXNwb25zZShleHRlbmRlZEVycm9yKTtcblxuICAgICAgICAgICAgdGhpcy5faXNMb2dnZWRJbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkYWJsZVN0YXR1cy5FUlJPUjtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5FUlJPUiwgbnVsbCwgZXh0ZW5kZWRFcnJvcikpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5fRVJST1IsIG51bGwsIGV4dGVuZGVkRXJyb3IpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5GSU5JU0hFRCkpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9GSU5JU0hFRCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2lkID0gbnVsbDtcbiAgICAgICAgdGhpcy5fbG9naW5EYXRhID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9naW5SZXF1ZXN0KC4uLnBhcmFtcyk6IFByb21pc2U8VT47XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvZ2luU2lkUmVxdWVzdCgpOiBQcm9taXNlPFY+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvZ291dFJlcXVlc3QoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0U2F2ZWRTaWQoKTogc3RyaW5nO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UGFyc2UgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBwYXJzZUxvZ2luUmVzcG9uc2UocmVzcG9uc2U6IFUpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIHBhcnNlTG9naW5FcnJvclJlc3BvbnNlKGVycm9yOiBFeHRlbmRlZEVycm9yKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlTG9nb3V0RXJyb3JSZXNwb25zZShlcnJvcjogRXh0ZW5kZWRFcnJvcik6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBwYXJzZUxvZ2luU2lkUmVzcG9uc2UocmVzcG9uc2U6IFYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbG9naW5EYXRhID0gcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlTG9naW5TaWRFcnJvclJlc3BvbnNlKGVycm9yOiBFeHRlbmRlZEVycm9yKTogdm9pZCB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFRyYW5zcG9ydFRpbWVvdXRFcnJvciB8fCBlcnJvciBpbnN0YW5jZW9mIFRyYW5zcG9ydE5vQ29ubmVjdGlvbkVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGFic3RyYWN0IGxvZ2luKHBhcmFtOiBhbnkpOiB2b2lkO1xuXG4gICAgcHVibGljIGFzeW5jIGxvZ2luQnlSZXNwb25zZShwYXJhbTogVSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc0xvZ2dlZEluIHx8IHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURJTkc7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5TVEFSVEVEKSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX1NUQVJURUQpKTtcblxuICAgICAgICB0aGlzLnBhcnNlTG9naW5SZXNwb25zZShwYXJhbSk7XG4gICAgICAgIHRoaXMuc3RhdHVzID0gIXRoaXMuaXNDYW5Mb2dpbldpdGhTaWQoKSA/IExvYWRhYmxlU3RhdHVzLkxPQURFRCA6IExvYWRhYmxlU3RhdHVzLkxPQURJTkc7XG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2dpbkJ5U2lkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbG9naW5CeVNpZElmQ2FuKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNDYW5Mb2dpbldpdGhTaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMb2dnZWRJbiB8fCB0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURJTkc7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5TVEFSVEVEKSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX1NUQVJURUQpKTtcbiAgICAgICAgdGhpcy5sb2dpbkJ5U2lkKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2dvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvZ2dlZEluKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvYWRhYmxlRXZlbnQuU1RBUlRFRCkpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRfU1RBUlRFRCkpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvZ291dFJlcXVlc3QoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGxldCBleHRlbmRlZEVycm9yID0gRXh0ZW5kZWRFcnJvci5jcmVhdGU8YW55LCBudW1iZXI+KGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMucGFyc2VMb2dvdXRFcnJvclJlc3BvbnNlKGV4dGVuZGVkRXJyb3IpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy5faXNMb2dnZWRJbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkYWJsZVN0YXR1cy5OT1RfTE9BREVEO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkZJTklTSEVEKSk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRfRklOSVNIRUQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc0NhbkxvZ2luV2l0aFNpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuc2lkKSB8fCAhXy5pc05pbCh0aGlzLmdldFNhdmVkU2lkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBsb2dpbmVkKCk6IE9ic2VydmFibGU8Vj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihpdGVtID0+IGl0ZW0udHlwZSA9PT0gTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0NPTVBMRVRFKSxcbiAgICAgICAgICAgIG1hcChpdGVtID0+IGl0ZW0uZGF0YSBhcyBWKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9nb3V0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlID09PSBMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HT1VUX0ZJTklTSEVEKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2lkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2dpbkRhdGEoKTogViB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2dpbkRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2dnZWRJbjtcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIExvZ2luQmFzZVNlcnZpY2VFdmVudCB7XG4gICAgTE9HSU5fRVJST1IgPSAnTE9HSU5fRVJST1InLFxuICAgIExPR0lOX1NUQVJURUQgPSAnTE9HSU5fU1RBUlRFRCcsXG4gICAgTE9HSU5fQ09NUExFVEUgPSAnTE9HSU5fQ09NUExFVEUnLFxuICAgIExPR0lOX0ZJTklTSEVEID0gJ0xPR0lOX0ZJTklTSEVEJyxcbiAgICBMT0dPVVRfU1RBUlRFRCA9ICdMT0dPVVRfU1RBUlRFRCcsXG4gICAgTE9HT1VUX0ZJTklTSEVEID0gJ0xPR09VVF9GSU5JU0hFRCcsXG5cbiAgICBSRUdJU1RSQVRJT05fRVJST1IgPSAnUkVHSVNUUkFUSU9OX0VSUk9SJyxcbiAgICBSRUdJU1RSQVRJT05fU1RBUlRFRCA9ICdSRUdJU1RSQVRJT05fU1RBUlRFRCcsXG4gICAgUkVHSVNUUkFUSU9OX0NPTVBMRVRFID0gJ1JFR0lTVFJBVElPTl9DT01QTEVURScsXG4gICAgUkVHSVNUUkFUSU9OX0ZJTklTSEVEID0gJ1JFR0lTVFJBVElPTl9GSU5JU0hFRCdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { LoginBaseService } from './LoginBaseService';
|
|
3
|
+
import { LoginRequireResolver } from './LoginRequireResolver';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
export class LoginGuard extends LoginRequireResolver {
|
|
7
|
+
router;
|
|
8
|
+
// --------------------------------------------------------------------------
|
|
9
|
+
//
|
|
10
|
+
// Properties
|
|
11
|
+
//
|
|
12
|
+
// --------------------------------------------------------------------------
|
|
13
|
+
static redirectUrl = '/login';
|
|
14
|
+
// --------------------------------------------------------------------------
|
|
15
|
+
//
|
|
16
|
+
// Constructor
|
|
17
|
+
//
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
constructor(login, router) {
|
|
20
|
+
super(login);
|
|
21
|
+
this.router = router;
|
|
22
|
+
}
|
|
23
|
+
// --------------------------------------------------------------------------
|
|
24
|
+
//
|
|
25
|
+
// Public Methods
|
|
26
|
+
//
|
|
27
|
+
// --------------------------------------------------------------------------
|
|
28
|
+
canActivate(route, state) {
|
|
29
|
+
return this.isLoggedIn() ? true : this.router.parseUrl(LoginGuard.redirectUrl);
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginGuard, deps: [{ token: LoginBaseService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginGuard, providedIn: 'root' });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginGuard, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{ providedIn: 'root' }]
|
|
37
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
38
|
+
type: Inject,
|
|
39
|
+
args: [LoginBaseService]
|
|
40
|
+
}] }, { type: i1.Router }] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5HdWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2dpbi9Mb2dpbkd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFJOUQsTUFBTSxPQUFPLFVBQTBELFNBQVEsb0JBQXVCO0lBZXhDO0lBZDFELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsTUFBTSxDQUFDLFdBQVcsR0FBVyxRQUFRLENBQUM7SUFFN0MsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQyxLQUFRLEVBQVksTUFBYztRQUNwRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEeUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUV4RSxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUN4RSxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkYsQ0FBQzt1R0EzQlEsVUFBVSxrQkFlQyxnQkFBZ0I7MkdBZjNCLFVBQVUsY0FERyxNQUFNOzsyRkFDbkIsVUFBVTtrQkFEdEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWdCakIsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9naW5CYXNlU2VydmljZSB9IGZyb20gJy4vTG9naW5CYXNlU2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblJlcXVpcmVSZXNvbHZlciB9IGZyb20gJy4vTG9naW5SZXF1aXJlUmVzb2x2ZXInO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvZ2luR3VhcmQ8VCBleHRlbmRzIExvZ2luQmFzZVNlcnZpY2UgPSBMb2dpbkJhc2VTZXJ2aWNlPiBleHRlbmRzIExvZ2luUmVxdWlyZVJlc29sdmVyPFQ+IGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgc3RhdGljIHJlZGlyZWN0VXJsOiBzdHJpbmcgPSAnL2xvZ2luJztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMb2dpbkJhc2VTZXJ2aWNlKSBsb2dpbjogVCwgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHN1cGVyKGxvZ2luKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZSB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMb2dnZWRJbigpID8gdHJ1ZSA6IHRoaXMucm91dGVyLnBhcnNlVXJsKExvZ2luR3VhcmQucmVkaXJlY3RVcmwpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { LoginBaseService } from './LoginBaseService';
|
|
3
|
+
import { LoginGuard } from './LoginGuard';
|
|
4
|
+
import { LoginNotGuard } from './LoginNotGuard';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
export class LoginIfCanGuard extends LoginGuard {
|
|
8
|
+
router;
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Constructor
|
|
12
|
+
//
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
constructor(login, router) {
|
|
15
|
+
super(login, router);
|
|
16
|
+
this.router = router;
|
|
17
|
+
}
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
//
|
|
20
|
+
// Private Methods
|
|
21
|
+
//
|
|
22
|
+
// --------------------------------------------------------------------------
|
|
23
|
+
async loginIfCan() {
|
|
24
|
+
if (this.login.loginBySidIfCan()) {
|
|
25
|
+
try {
|
|
26
|
+
await this.resolve();
|
|
27
|
+
}
|
|
28
|
+
catch (error) { }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// --------------------------------------------------------------------------
|
|
32
|
+
//
|
|
33
|
+
// Public Methods
|
|
34
|
+
//
|
|
35
|
+
// --------------------------------------------------------------------------
|
|
36
|
+
async canActivate(route, state) {
|
|
37
|
+
if (state.url !== LoginGuard.redirectUrl) {
|
|
38
|
+
LoginNotGuard.redirectUrl = state.url;
|
|
39
|
+
}
|
|
40
|
+
if (!this.isLoggedIn()) {
|
|
41
|
+
await this.loginIfCan();
|
|
42
|
+
}
|
|
43
|
+
return super.canActivate(route, state);
|
|
44
|
+
}
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginIfCanGuard, deps: [{ token: LoginBaseService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginIfCanGuard, providedIn: 'root' });
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginIfCanGuard, decorators: [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{ providedIn: 'root' }]
|
|
51
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
52
|
+
type: Inject,
|
|
53
|
+
args: [LoginBaseService]
|
|
54
|
+
}] }, { type: i1.Router }] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5JZkNhbkd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2luL0xvZ2luSWZDYW5HdWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBR2hELE1BQU0sT0FBTyxlQUErRCxTQUFRLFVBQWE7SUFPbkM7SUFOMUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQyxLQUFRLEVBQVksTUFBYztRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRGlDLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFeEUsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsbUJBQW1CO0lBQ25CLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsS0FBSyxDQUFDLFVBQVU7UUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzlCLElBQUk7Z0JBQ0EsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDeEI7WUFBQyxPQUFPLEtBQUssRUFBRSxHQUFFO1NBQ3JCO0lBQ0wsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQzlFLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsV0FBVyxFQUFFO1lBQ3RDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDM0I7UUFDRCxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBdkNRLGVBQWUsa0JBT0osZ0JBQWdCOzJHQVAzQixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRakIsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMb2dpbkJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9Mb2dpbkJhc2VTZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luR3VhcmQgfSBmcm9tICcuL0xvZ2luR3VhcmQnO1xuaW1wb3J0IHsgTG9naW5Ob3RHdWFyZCB9IGZyb20gJy4vTG9naW5Ob3RHdWFyZCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9naW5JZkNhbkd1YXJkPFQgZXh0ZW5kcyBMb2dpbkJhc2VTZXJ2aWNlID0gTG9naW5CYXNlU2VydmljZT4gZXh0ZW5kcyBMb2dpbkd1YXJkPFQ+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTG9naW5CYXNlU2VydmljZSkgbG9naW46IFQsIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcihsb2dpbiwgcm91dGVyKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbG9naW5JZkNhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMubG9naW4ubG9naW5CeVNpZElmQ2FuKCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge31cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGFzeW5jIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICAgICAgaWYgKHN0YXRlLnVybCAhPT0gTG9naW5HdWFyZC5yZWRpcmVjdFVybCkge1xuICAgICAgICAgICAgTG9naW5Ob3RHdWFyZC5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvZ2luSWZDYW4oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuY2FuQWN0aXZhdGUocm91dGUsIHN0YXRlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { LoginBaseService } from './LoginBaseService';
|
|
3
|
+
import { LoginRequireResolver } from './LoginRequireResolver';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
export class LoginNotGuard extends LoginRequireResolver {
|
|
7
|
+
router;
|
|
8
|
+
// --------------------------------------------------------------------------
|
|
9
|
+
//
|
|
10
|
+
// Properties
|
|
11
|
+
//
|
|
12
|
+
// --------------------------------------------------------------------------
|
|
13
|
+
static redirectUrl = '/';
|
|
14
|
+
// --------------------------------------------------------------------------
|
|
15
|
+
//
|
|
16
|
+
// Constructor
|
|
17
|
+
//
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
constructor(login, router) {
|
|
20
|
+
super(login);
|
|
21
|
+
this.router = router;
|
|
22
|
+
}
|
|
23
|
+
// --------------------------------------------------------------------------
|
|
24
|
+
//
|
|
25
|
+
// Public Methods
|
|
26
|
+
//
|
|
27
|
+
// --------------------------------------------------------------------------
|
|
28
|
+
canActivate(route, state) {
|
|
29
|
+
return !this.isLoggedIn() ? true : this.router.parseUrl(LoginNotGuard.redirectUrl);
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginNotGuard, deps: [{ token: LoginBaseService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginNotGuard, providedIn: 'root' });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginNotGuard, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{ providedIn: 'root' }]
|
|
37
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
38
|
+
type: Inject,
|
|
39
|
+
args: [LoginBaseService]
|
|
40
|
+
}] }, { type: i1.Router }] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5Ob3RHdWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2dpbi9Mb2dpbk5vdEd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFJOUQsTUFBTSxPQUFPLGFBQTZELFNBQVEsb0JBQXVCO0lBZTNDO0lBZDFELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsTUFBTSxDQUFDLFdBQVcsR0FBVyxHQUFHLENBQUM7SUFFeEMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQyxLQUFRLEVBQVksTUFBYztRQUNwRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEeUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUV4RSxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUN4RSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RixDQUFDO3VHQTNCUSxhQUFhLGtCQWVGLGdCQUFnQjsyR0FmM0IsYUFBYSxjQURBLE1BQU07OzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBZ0JqQixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2dpbkJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9Mb2dpbkJhc2VTZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luUmVxdWlyZVJlc29sdmVyIH0gZnJvbSAnLi9Mb2dpblJlcXVpcmVSZXNvbHZlcic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9naW5Ob3RHdWFyZDxUIGV4dGVuZHMgTG9naW5CYXNlU2VydmljZSA9IExvZ2luQmFzZVNlcnZpY2U+IGV4dGVuZHMgTG9naW5SZXF1aXJlUmVzb2x2ZXI8VD4gaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVkaXJlY3RVcmw6IHN0cmluZyA9ICcvJztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMb2dpbkJhc2VTZXJ2aWNlKSBsb2dpbjogVCwgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHN1cGVyKGxvZ2luKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xvZ2dlZEluKCkgPyB0cnVlIDogdGhpcy5yb3V0ZXIucGFyc2VVcmwoTG9naW5Ob3RHdWFyZC5yZWRpcmVjdFVybCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { LoginBaseServiceEvent } from './LoginBaseService';
|
|
2
|
+
import { PromiseHandler } from '@ts-core/common';
|
|
3
|
+
export class LoginRequireResolver {
|
|
4
|
+
login;
|
|
5
|
+
// --------------------------------------------------------------------------
|
|
6
|
+
//
|
|
7
|
+
// Constructor
|
|
8
|
+
//
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
constructor(login) {
|
|
11
|
+
this.login = login;
|
|
12
|
+
}
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
//
|
|
15
|
+
// Public Methods
|
|
16
|
+
//
|
|
17
|
+
// --------------------------------------------------------------------------
|
|
18
|
+
resolve(...params) {
|
|
19
|
+
if (this.isLoggedIn()) {
|
|
20
|
+
return Promise.resolve(null);
|
|
21
|
+
}
|
|
22
|
+
let promise = PromiseHandler.create();
|
|
23
|
+
let subscription = this.login.events.subscribe(data => {
|
|
24
|
+
if (data.type === LoginBaseServiceEvent.LOGIN_ERROR) {
|
|
25
|
+
promise.reject(data.error.toString());
|
|
26
|
+
}
|
|
27
|
+
else if (data.type === LoginBaseServiceEvent.LOGIN_COMPLETE) {
|
|
28
|
+
promise.resolve();
|
|
29
|
+
}
|
|
30
|
+
else if (data.type === LoginBaseServiceEvent.LOGIN_FINISHED) {
|
|
31
|
+
subscription.unsubscribe();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return promise.promise;
|
|
35
|
+
}
|
|
36
|
+
isLoggedIn() {
|
|
37
|
+
return this.login.isLoggedIn;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5SZXF1aXJlUmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9naW4vTG9naW5SZXF1aXJlUmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFvQixxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sb0JBQW9CO0lBT1A7SUFOdEIsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQixLQUFRO1FBQVIsVUFBSyxHQUFMLEtBQUssQ0FBRztJQUFHLENBQUM7SUFFbEMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxPQUFPLENBQUMsR0FBRyxNQUFNO1FBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25CLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztRQUVELElBQUksT0FBTyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQVEsQ0FBQztRQUM1QyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLFdBQVcsRUFBRTtnQkFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDekM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLGNBQWMsRUFBRTtnQkFDM0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JCO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUU7Z0JBQzNELFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFTSxVQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvbHZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvZ2luQmFzZVNlcnZpY2UsIExvZ2luQmFzZVNlcnZpY2VFdmVudCB9IGZyb20gJy4vTG9naW5CYXNlU2VydmljZSc7XG5pbXBvcnQgeyBQcm9taXNlSGFuZGxlciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5cbmV4cG9ydCBjbGFzcyBMb2dpblJlcXVpcmVSZXNvbHZlcjxVIGV4dGVuZHMgTG9naW5CYXNlU2VydmljZSA9IExvZ2luQmFzZVNlcnZpY2UsIFYgPSB2b2lkPiBpbXBsZW1lbnRzIFJlc29sdmU8Vj4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2luOiBVKSB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgcmVzb2x2ZSguLi5wYXJhbXMpOiBQcm9taXNlPFY+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2dnZWRJbigpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb21pc2UgPSBQcm9taXNlSGFuZGxlci5jcmVhdGU8bnVsbD4oKTtcbiAgICAgICAgbGV0IHN1YnNjcmlwdGlvbiA9IHRoaXMubG9naW4uZXZlbnRzLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09IExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9FUlJPUikge1xuICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KGRhdGEuZXJyb3IudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0NPTVBMRVRFKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0ZJTklTSEVEKSB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvbWlzZS5wcm9taXNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2dpbi5pc0xvZ2dlZEluO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -11,14 +11,14 @@ export class LoginResolver extends LoginRequireResolver {
|
|
|
11
11
|
constructor(login) {
|
|
12
12
|
super(login);
|
|
13
13
|
}
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginResolver, deps: [{ token: LoginBaseService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginResolver, providedIn: 'root' });
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
LoginResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LoginResolver, providedIn: 'root' });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LoginResolver, decorators: [{
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: LoginResolver, decorators: [{
|
|
18
18
|
type: Injectable,
|
|
19
19
|
args: [{ providedIn: 'root' }]
|
|
20
|
-
}], ctorParameters:
|
|
20
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
21
21
|
type: Inject,
|
|
22
22
|
args: [LoginBaseService]
|
|
23
|
-
}] }]
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
}] }] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5SZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2dpbi9Mb2dpblJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc5RCxNQUFNLE9BQU8sYUFBMEMsU0FBUSxvQkFBdUI7SUFDbEYsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQyxLQUFRO1FBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDO3VHQVRRLGFBQWEsa0JBT0YsZ0JBQWdCOzJHQVAzQixhQUFhLGNBREEsTUFBTTs7MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRakIsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ2luQmFzZVNlcnZpY2UgfSBmcm9tICcuL0xvZ2luQmFzZVNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5SZXF1aXJlUmVzb2x2ZXIgfSBmcm9tICcuL0xvZ2luUmVxdWlyZVJlc29sdmVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMb2dpblJlc29sdmVyPFQgZXh0ZW5kcyBMb2dpbkJhc2VTZXJ2aWNlPiBleHRlbmRzIExvZ2luUmVxdWlyZVJlc29sdmVyPFQ+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTG9naW5CYXNlU2VydmljZSkgbG9naW46IFQpIHtcbiAgICAgICAgc3VwZXIobG9naW4pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ValueStorage } from '../storage/ValueStorage';
|
|
2
|
+
export class LoginTokenStorage extends ValueStorage {
|
|
3
|
+
//--------------------------------------------------------------------------
|
|
4
|
+
//
|
|
5
|
+
// Properties
|
|
6
|
+
//
|
|
7
|
+
//--------------------------------------------------------------------------
|
|
8
|
+
static TOKEN_KEY = 'sid';
|
|
9
|
+
//--------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Constructor
|
|
12
|
+
//
|
|
13
|
+
//--------------------------------------------------------------------------
|
|
14
|
+
constructor(localStorage, cookies) {
|
|
15
|
+
super(LoginTokenStorage.TOKEN_KEY, localStorage, cookies);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5Ub2tlblN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9naW4vTG9naW5Ub2tlblN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxZQUFZO0lBQy9DLDRFQUE0RTtJQUM1RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw0RUFBNEU7SUFFckUsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFaEMsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDRFQUE0RTtJQUU1RSxZQUFZLFlBQWlDLEVBQUUsT0FBc0I7UUFDakUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi9jb29raWUvQ29va2llU2VydmljZSc7XG5pbXBvcnQgeyBWYWx1ZVN0b3JhZ2UgfSBmcm9tICcuLi9zdG9yYWdlL1ZhbHVlU3RvcmFnZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9Mb2NhbFN0b3JhZ2VTZXJ2aWNlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIExvZ2luVG9rZW5TdG9yYWdlIGV4dGVuZHMgVmFsdWVTdG9yYWdlIHtcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgVE9LRU5fS0VZID0gJ3NpZCc7XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIGNvb2tpZXM6IENvb2tpZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoTG9naW5Ub2tlblN0b3JhZ2UuVE9LRU5fS0VZLCBsb2NhbFN0b3JhZ2UsIGNvb2tpZXMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Destroyable } from '@ts-core/common';
|
|
2
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
export class FocusManager extends Destroyable {
|
|
5
|
+
// --------------------------------------------------------------------------
|
|
6
|
+
//
|
|
7
|
+
// Properties
|
|
8
|
+
//
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
timer;
|
|
11
|
+
delay;
|
|
12
|
+
element;
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
//
|
|
15
|
+
// Constructor
|
|
16
|
+
//
|
|
17
|
+
// --------------------------------------------------------------------------
|
|
18
|
+
constructor(element, delay = 100) {
|
|
19
|
+
super();
|
|
20
|
+
this.delay = delay;
|
|
21
|
+
this.element = ViewUtil.parseElement(element);
|
|
22
|
+
}
|
|
23
|
+
// --------------------------------------------------------------------------
|
|
24
|
+
//
|
|
25
|
+
// Private Methods
|
|
26
|
+
//
|
|
27
|
+
// --------------------------------------------------------------------------
|
|
28
|
+
focusElement = () => {
|
|
29
|
+
if (!_.isNil(this.element)) {
|
|
30
|
+
ViewUtil.focusInput(this.element);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
// --------------------------------------------------------------------------
|
|
34
|
+
//
|
|
35
|
+
// Public Methods
|
|
36
|
+
//
|
|
37
|
+
// --------------------------------------------------------------------------
|
|
38
|
+
focus() {
|
|
39
|
+
clearTimeout(this.timer);
|
|
40
|
+
this.timer = setTimeout(this.focusElement, this.delay);
|
|
41
|
+
}
|
|
42
|
+
destroy() {
|
|
43
|
+
if (this.isDestroyed) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
super.destroy();
|
|
47
|
+
if (!_.isNil(this.timer)) {
|
|
48
|
+
clearTimeout(this.timer);
|
|
49
|
+
this.timer = null;
|
|
50
|
+
}
|
|
51
|
+
this.element = null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9jdXNNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21hbmFnZXIvRm9jdXNNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBQ3pDLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsS0FBSyxDQUFNO0lBQ1gsS0FBSyxDQUFTO0lBQ2QsT0FBTyxDQUFjO0lBRS9CLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxPQUFtQixFQUFFLFFBQWdCLEdBQUc7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsbUJBQW1CO0lBQ25CLEVBQUU7SUFDRiw2RUFBNkU7SUFFckUsWUFBWSxHQUFHLEdBQVMsRUFBRTtRQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBYyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDLENBQUM7SUFFRiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLEtBQUs7UUFDUixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE9BQU87U0FDVjtRQUNELEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vdXRpbC9WaWV3VXRpbCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBGb2N1c01hbmFnZXIgZXh0ZW5kcyBEZXN0cm95YWJsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHRpbWVyOiBhbnk7XG4gICAgcHJvdGVjdGVkIGRlbGF5OiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIGRlbGF5OiBudW1iZXIgPSAxMDApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5O1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBWaWV3VXRpbC5wYXJzZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIGZvY3VzRWxlbWVudCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIFZpZXdVdGlsLmZvY3VzSW5wdXQodGhpcy5lbGVtZW50IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCh0aGlzLmZvY3VzRWxlbWVudCwgdGhpcy5kZWxheSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLnRpbWVyKSkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|