@ts-core/angular 15.0.59 → 17.0.9
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 +20 -27
- 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
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { ArrayUtil } from '@ts-core/common';
|
|
2
|
-
import * as _ from 'lodash';
|
|
3
|
-
import { FilterableMapCollection } from '@ts-core/common';
|
|
4
|
-
export class ListItems extends FilterableMapCollection {
|
|
5
|
-
// --------------------------------------------------------------------------
|
|
6
|
-
//
|
|
7
|
-
// Constructor
|
|
8
|
-
//
|
|
9
|
-
// --------------------------------------------------------------------------
|
|
10
|
-
constructor(language, isAutoTranslate = true) {
|
|
11
|
-
super('uid');
|
|
12
|
-
this.language = language;
|
|
13
|
-
// --------------------------------------------------------------------------
|
|
14
|
-
//
|
|
15
|
-
// Private Methods
|
|
16
|
-
//
|
|
17
|
-
// --------------------------------------------------------------------------
|
|
18
|
-
this.translate = (item) => {
|
|
19
|
-
item.label = this.language.translate(item.translationId);
|
|
20
|
-
};
|
|
21
|
-
this.translateItems = () => {
|
|
22
|
-
this.collection.forEach(this.translate);
|
|
23
|
-
};
|
|
24
|
-
this.translateIfNeed = (item) => {
|
|
25
|
-
if (_.isNil(item.label) && !_.isNil(item.translationId)) {
|
|
26
|
-
this.translate(item);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
this.translateItemsIfNeed = () => {
|
|
30
|
-
this.collection.forEach(this.translateIfNeed);
|
|
31
|
-
};
|
|
32
|
-
this.lastRefreshParams = new Array();
|
|
33
|
-
if (isAutoTranslate) {
|
|
34
|
-
this.languageSubscription = language.completed.subscribe(this.translateItems);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
sort() {
|
|
38
|
-
ArrayUtil.sort(this.collection);
|
|
39
|
-
}
|
|
40
|
-
// --------------------------------------------------------------------------
|
|
41
|
-
//
|
|
42
|
-
// Public Methods
|
|
43
|
-
//
|
|
44
|
-
// --------------------------------------------------------------------------
|
|
45
|
-
complete() {
|
|
46
|
-
this.translateItemsIfNeed();
|
|
47
|
-
this.sort();
|
|
48
|
-
}
|
|
49
|
-
refresh(...params) {
|
|
50
|
-
ArrayUtil.clear(this._filtered);
|
|
51
|
-
this.lastRefreshParams = params;
|
|
52
|
-
if (_.isEmpty(this.collection)) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this._isAllEnabled = true;
|
|
56
|
-
this._isLeastOneEnabled = false;
|
|
57
|
-
for (let item of this._collection) {
|
|
58
|
-
item.isEnabled = !_.isNil(item.checkEnabled) ? item.checkEnabled(item, ...params) : true;
|
|
59
|
-
if (!item.isEnabled) {
|
|
60
|
-
this._isAllEnabled = false;
|
|
61
|
-
}
|
|
62
|
-
else if (this.filter(item)) {
|
|
63
|
-
this._filtered.push(item);
|
|
64
|
-
this._isLeastOneEnabled = true;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
actionItem(item) {
|
|
69
|
-
if (!_.isNil(item) && item.isEnabled && !_.isNil(item.action)) {
|
|
70
|
-
item.action(item, ...this.lastRefreshParams);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
destroy() {
|
|
74
|
-
if (this.isDestroyed) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
super.destroy();
|
|
78
|
-
this.language = null;
|
|
79
|
-
this.lastRefreshParams = null;
|
|
80
|
-
if (!_.isNil(this.languageSubscription)) {
|
|
81
|
-
this.languageSubscription.unsubscribe();
|
|
82
|
-
this.languageSubscription = null;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// --------------------------------------------------------------------------
|
|
86
|
-
//
|
|
87
|
-
// Public Properties
|
|
88
|
-
//
|
|
89
|
-
// --------------------------------------------------------------------------
|
|
90
|
-
get isAllEnabled() {
|
|
91
|
-
return this._isAllEnabled;
|
|
92
|
-
}
|
|
93
|
-
get isLeastOneEnabled() {
|
|
94
|
-
return this._isLeastOneEnabled;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdEl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpc3QvTGlzdEl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRCxNQUFNLE9BQU8sU0FBMkMsU0FBUSx1QkFBMEI7SUFhdEYsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFvQixRQUF5QixFQUFFLGtCQUEyQixJQUFJO1FBQzFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURHLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBUzdDLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsbUJBQW1CO1FBQ25CLEVBQUU7UUFDRiw2RUFBNkU7UUFFbkUsY0FBUyxHQUFHLENBQUMsSUFBTyxFQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDO1FBRVEsbUJBQWMsR0FBRyxHQUFTLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztRQUVRLG9CQUFlLEdBQUcsQ0FBQyxJQUFPLEVBQVEsRUFBRTtZQUMxQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENB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SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJyYXlVdGlsIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElMaXN0SXRlbSB9IGZyb20gJy4vSUxpc3RJdGVtJztcbmltcG9ydCB7IEZpbHRlcmFibGVNYXBDb2xsZWN0aW9uIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1zPFUgZXh0ZW5kcyBJTGlzdEl0ZW08Vj4sIFYgPSBhbnk+IGV4dGVuZHMgRmlsdGVyYWJsZU1hcENvbGxlY3Rpb248VT4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgbGFzdFJlZnJlc2hQYXJhbXM6IEFycmF5PGFueT47XG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcm90ZWN0ZWQgX2lzQWxsRW5hYmxlZDogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX2lzTGVhc3RPbmVFbmFibGVkOiBib29sZWFuO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmd1YWdlOiBMYW5ndWFnZVNlcnZpY2UsIGlzQXV0b1RyYW5zbGF0ZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoJ3VpZCcpO1xuXG4gICAgICAgIHRoaXMubGFzdFJlZnJlc2hQYXJhbXMgPSBuZXcgQXJyYXkoKTtcbiAgICAgICAgaWYgKGlzQXV0b1RyYW5zbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IGxhbmd1YWdlLmNvbXBsZXRlZC5zdWJzY3JpYmUodGhpcy50cmFuc2xhdGVJdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlID0gKGl0ZW06IFUpOiB2b2lkID0+IHtcbiAgICAgICAgaXRlbS5sYWJlbCA9IHRoaXMubGFuZ3VhZ2UudHJhbnNsYXRlKGl0ZW0udHJhbnNsYXRpb25JZCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVJdGVtcyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2godGhpcy50cmFuc2xhdGUpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlSWZOZWVkID0gKGl0ZW06IFUpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKF8uaXNOaWwoaXRlbS5sYWJlbCkgJiYgIV8uaXNOaWwoaXRlbS50cmFuc2xhdGlvbklkKSkge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUoaXRlbSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZUl0ZW1zSWZOZWVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaCh0aGlzLnRyYW5zbGF0ZUlmTmVlZCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBzb3J0KCk6IHZvaWQge1xuICAgICAgICBBcnJheVV0aWwuc29ydCh0aGlzLmNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZUl0ZW1zSWZOZWVkKCk7XG4gICAgICAgIHRoaXMuc29ydCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoKC4uLnBhcmFtcyk6IHZvaWQge1xuICAgICAgICBBcnJheVV0aWwuY2xlYXIodGhpcy5fZmlsdGVyZWQpO1xuICAgICAgICB0aGlzLmxhc3RSZWZyZXNoUGFyYW1zID0gcGFyYW1zO1xuXG4gICAgICAgIGlmIChfLmlzRW1wdHkodGhpcy5jb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNBbGxFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5faXNMZWFzdE9uZUVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLl9jb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICBpdGVtLmlzRW5hYmxlZCA9ICFfLmlzTmlsKGl0ZW0uY2hlY2tFbmFibGVkKSA/IGl0ZW0uY2hlY2tFbmFibGVkKGl0ZW0sIC4uLnBhcmFtcykgOiB0cnVlO1xuICAgICAgICAgICAgaWYgKCFpdGVtLmlzRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzQWxsRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlcihpdGVtKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNMZWFzdE9uZUVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFjdGlvbkl0ZW0oaXRlbTogVSk6IHZvaWQge1xuICAgICAgICBpZiAoIV8uaXNOaWwoaXRlbSkgJiYgaXRlbS5pc0VuYWJsZWQgJiYgIV8uaXNOaWwoaXRlbS5hY3Rpb24pKSB7XG4gICAgICAgICAgICBpdGVtLmFjdGlvbihpdGVtLCAuLi50aGlzLmxhc3RSZWZyZXNoUGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLmxhbmd1YWdlID0gbnVsbDtcbiAgICAgICAgdGhpcy5sYXN0UmVmcmVzaFBhcmFtcyA9IG51bGw7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24pKSB7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBpc0FsbEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0FsbEVuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0xlYXN0T25lRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTGVhc3RPbmVFbmFibGVkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { SelectListItems } from './SelectListItems';
|
|
2
|
-
import { filter, takeUntil } from 'rxjs';
|
|
3
|
-
import * as _ from 'lodash';
|
|
4
|
-
export class RouterSelectListItems extends SelectListItems {
|
|
5
|
-
//--------------------------------------------------------------------------
|
|
6
|
-
//
|
|
7
|
-
// Constructor
|
|
8
|
-
//
|
|
9
|
-
//--------------------------------------------------------------------------
|
|
10
|
-
constructor(router, language) {
|
|
11
|
-
super(language, true);
|
|
12
|
-
this.router = router;
|
|
13
|
-
this.changed
|
|
14
|
-
.pipe(filter(() => !this.isDisabled), takeUntil(this.destroyed))
|
|
15
|
-
.subscribe(item => this.setFragment(item));
|
|
16
|
-
this.router.completed
|
|
17
|
-
.pipe(filter(() => !this.isDisabled), takeUntil(this.destroyed))
|
|
18
|
-
.subscribe(() => this.setData());
|
|
19
|
-
}
|
|
20
|
-
//--------------------------------------------------------------------------
|
|
21
|
-
//
|
|
22
|
-
// Protected Methods
|
|
23
|
-
//
|
|
24
|
-
//--------------------------------------------------------------------------
|
|
25
|
-
setData() {
|
|
26
|
-
let item = this.getRouterSelectedItem();
|
|
27
|
-
this.selectedItem = !_.isNil(item) ? item : _.first(this.collection);
|
|
28
|
-
}
|
|
29
|
-
setFragment(item) {
|
|
30
|
-
let index = _.indexOf(this.collection, item);
|
|
31
|
-
this.router.setFragment(index > 0 ? item.data.toString() : null);
|
|
32
|
-
}
|
|
33
|
-
getRouterSelectedItem() {
|
|
34
|
-
return _.find(this.collection, { data: this.router.getFragment() });
|
|
35
|
-
}
|
|
36
|
-
//--------------------------------------------------------------------------
|
|
37
|
-
//
|
|
38
|
-
// Public Methods
|
|
39
|
-
//
|
|
40
|
-
//--------------------------------------------------------------------------
|
|
41
|
-
complete() {
|
|
42
|
-
let item = this.getRouterSelectedItem();
|
|
43
|
-
super.complete(!_.isNil(item) ? item.data : 0);
|
|
44
|
-
}
|
|
45
|
-
destroy() {
|
|
46
|
-
if (this.isDestroyed) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
super.destroy();
|
|
50
|
-
this.router = null;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyU2VsZWN0TGlzdEl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpc3Qvc2VsZWN0L1JvdXRlclNlbGVjdExpc3RJdGVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLHFCQUFrQyxTQUFRLGVBQXNDO0lBU3pGLDRFQUE0RTtJQUM1RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw0RUFBNEU7SUFFNUUsWUFBc0IsTUFBeUIsRUFBRSxRQUF5QjtRQUN0RSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBREosV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFFM0MsSUFBSSxDQUFDLE9BQU87YUFDUCxJQUFJLENBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM1QjthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7YUFDaEIsSUFBSSxDQUNELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDNUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw0RUFBNEU7SUFFbEUsT0FBTztRQUNiLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFUyxXQUFXLENBQUMsSUFBd0I7UUFDMUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFUyxxQkFBcUI7UUFDM0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUF1QixDQUFDO0lBQzlGLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNEVBQTRFO0lBRXJFLFFBQVE7UUFDWCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN4QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kJztcbmltcG9ydCB7IFNlbGVjdExpc3RJdGVtcyB9IGZyb20gJy4vU2VsZWN0TGlzdEl0ZW1zJztcbmltcG9ydCB7IElTZWxlY3RMaXN0SXRlbSB9IGZyb20gJy4vSVNlbGVjdExpc3RJdGVtJztcbmltcG9ydCB7IFJvdXRlckJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9Sb3V0ZXJCYXNlU2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgUm91dGVyU2VsZWN0TGlzdEl0ZW1zPFUgPSBzdHJpbmc+IGV4dGVuZHMgU2VsZWN0TGlzdEl0ZW1zPElTZWxlY3RMaXN0SXRlbTxVPiwgVT4ge1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJvdXRlcjogUm91dGVyQmFzZVNlcnZpY2UsIGxhbmd1YWdlOiBMYW5ndWFnZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIobGFuZ3VhZ2UsIHRydWUpO1xuICAgICAgICB0aGlzLmNoYW5nZWRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5pc0Rpc2FibGVkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGl0ZW0gPT4gdGhpcy5zZXRGcmFnbWVudChpdGVtKSk7XG4gICAgICAgIHRoaXMucm91dGVyLmNvbXBsZXRlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmlzRGlzYWJsZWQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXREYXRhKCkpO1xuICAgIH1cblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXREYXRhKCk6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbSA9IHRoaXMuZ2V0Um91dGVyU2VsZWN0ZWRJdGVtKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gIV8uaXNOaWwoaXRlbSkgPyBpdGVtIDogXy5maXJzdCh0aGlzLmNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRGcmFnbWVudChpdGVtOiBJU2VsZWN0TGlzdEl0ZW08VT4pOiB2b2lkIHtcbiAgICAgICAgbGV0IGluZGV4ID0gXy5pbmRleE9mKHRoaXMuY29sbGVjdGlvbiwgaXRlbSk7XG4gICAgICAgIHRoaXMucm91dGVyLnNldEZyYWdtZW50KGluZGV4ID4gMCA/IGl0ZW0uZGF0YS50b1N0cmluZygpIDogbnVsbCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFJvdXRlclNlbGVjdGVkSXRlbSgpOiBJU2VsZWN0TGlzdEl0ZW08VT4ge1xuICAgICAgICByZXR1cm4gXy5maW5kKHRoaXMuY29sbGVjdGlvbiwgeyBkYXRhOiB0aGlzLnJvdXRlci5nZXRGcmFnbWVudCgpIH0pIGFzIElTZWxlY3RMaXN0SXRlbTxVPjtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgY29tcGxldGUoKTogdm9pZCB7XG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5nZXRSb3V0ZXJTZWxlY3RlZEl0ZW0oKTtcbiAgICAgICAgc3VwZXIuY29tcGxldGUoIV8uaXNOaWwoaXRlbSkgPyBpdGVtLmRhdGEgOiAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMucm91dGVyID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import * as _ from 'lodash';
|
|
2
|
-
import { ListItem } from '../ListItem';
|
|
3
|
-
export class SelectListItem extends ListItem {
|
|
4
|
-
// --------------------------------------------------------------------------
|
|
5
|
-
//
|
|
6
|
-
// Constructor
|
|
7
|
-
//
|
|
8
|
-
// --------------------------------------------------------------------------
|
|
9
|
-
constructor(translationId, sortIndex, data, checkEnabled) {
|
|
10
|
-
super(translationId, sortIndex, data);
|
|
11
|
-
this.checkEnabled = checkEnabled;
|
|
12
|
-
}
|
|
13
|
-
// --------------------------------------------------------------------------
|
|
14
|
-
//
|
|
15
|
-
// Protected Methods
|
|
16
|
-
//
|
|
17
|
-
// --------------------------------------------------------------------------
|
|
18
|
-
commitIsSelectProperties() { }
|
|
19
|
-
commitSelectedClassNameProperties() { }
|
|
20
|
-
// --------------------------------------------------------------------------
|
|
21
|
-
//
|
|
22
|
-
// Public Methods
|
|
23
|
-
//
|
|
24
|
-
// --------------------------------------------------------------------------
|
|
25
|
-
destroy() {
|
|
26
|
-
super.destroy();
|
|
27
|
-
this.checkSelected = null;
|
|
28
|
-
}
|
|
29
|
-
// --------------------------------------------------------------------------
|
|
30
|
-
//
|
|
31
|
-
// Public Properties
|
|
32
|
-
//
|
|
33
|
-
// --------------------------------------------------------------------------
|
|
34
|
-
get isSelected() {
|
|
35
|
-
return this._isSelected;
|
|
36
|
-
}
|
|
37
|
-
set isSelected(value) {
|
|
38
|
-
if (value === this._isSelected) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
this._isSelected = value;
|
|
42
|
-
if (!_.isNil(value)) {
|
|
43
|
-
this.commitIsSelectProperties();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
get selectedClassName() {
|
|
47
|
-
return this._selectedClassName;
|
|
48
|
-
}
|
|
49
|
-
set selectedClassName(value) {
|
|
50
|
-
if (value === this._selectedClassName) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this._selectedClassName = value;
|
|
54
|
-
if (!_.isNil(value)) {
|
|
55
|
-
this.commitSelectedClassNameProperties();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TGlzdEl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlzdC9zZWxlY3QvU2VsZWN0TGlzdEl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd2QyxNQUFNLE9BQU8sY0FBd0IsU0FBUSxRQUFXO0lBWXBELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxhQUFxQixFQUFFLFNBQWlCLEVBQUUsSUFBTyxFQUFFLFlBQXNEO1FBQ2pILEtBQUssQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLHdCQUF3QixLQUFVLENBQUM7SUFFbkMsaUNBQWlDLEtBQVUsQ0FBQztJQUV0RCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLE9BQU87UUFDVixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFXLGlCQUFpQixDQUFDLEtBQWE7UUFDdEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ25DLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7U0FDNUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU2VsZWN0TGlzdEl0ZW0gfSBmcm9tICcuL0lTZWxlY3RMaXN0SXRlbSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL0xpc3RJdGVtJztcbmltcG9ydCB7IElMaXN0SXRlbSB9IGZyb20gJy4uL0lMaXN0SXRlbSc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RMaXN0SXRlbTxUID0gYW55PiBleHRlbmRzIExpc3RJdGVtPFQ+IGltcGxlbWVudHMgSVNlbGVjdExpc3RJdGVtPFQ+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIF9pc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfc2VsZWN0ZWRDbGFzc05hbWU6IHN0cmluZztcblxuICAgIHB1YmxpYyBjaGVja1NlbGVjdGVkPzogKGl0ZW06IElTZWxlY3RMaXN0SXRlbSwgLi4ucGFyYW1zKSA9PiBib29sZWFuO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGlvbklkOiBzdHJpbmcsIHNvcnRJbmRleDogbnVtYmVyLCBkYXRhOiBULCBjaGVja0VuYWJsZWQ/OiAoaXRlbTogSUxpc3RJdGVtLCAuLi5wYXJhbXMpID0+IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIodHJhbnNsYXRpb25JZCwgc29ydEluZGV4LCBkYXRhKTtcbiAgICAgICAgdGhpcy5jaGVja0VuYWJsZWQgPSBjaGVja0VuYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNTZWxlY3RQcm9wZXJ0aWVzKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBjb21taXRTZWxlY3RlZENsYXNzTmFtZVByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNoZWNrU2VsZWN0ZWQgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTZWxlY3RlZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc1NlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzU2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jb21taXRJc1NlbGVjdFByb3BlcnRpZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRDbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkQ2xhc3NOYW1lO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGVkQ2xhc3NOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9zZWxlY3RlZENsYXNzTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2xhc3NOYW1lID0gdmFsdWU7XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0U2VsZWN0ZWRDbGFzc05hbWVQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import * as _ from 'lodash';
|
|
2
|
-
import { ListItems } from '../ListItems';
|
|
3
|
-
import { EventEmitter } from '@angular/core';
|
|
4
|
-
export class SelectListItems extends ListItems {
|
|
5
|
-
// --------------------------------------------------------------------------
|
|
6
|
-
//
|
|
7
|
-
// Constructor
|
|
8
|
-
//
|
|
9
|
-
// --------------------------------------------------------------------------
|
|
10
|
-
constructor(language, isAutoTranslate = true) {
|
|
11
|
-
super(language, isAutoTranslate);
|
|
12
|
-
this._changed = new EventEmitter();
|
|
13
|
-
}
|
|
14
|
-
// --------------------------------------------------------------------------
|
|
15
|
-
//
|
|
16
|
-
// Protected Methods
|
|
17
|
-
//
|
|
18
|
-
// --------------------------------------------------------------------------
|
|
19
|
-
commitSelectedItemProperties() {
|
|
20
|
-
this.selectedData = !_.isNil(this.selectedItem) ? this.selectedItem.data : null;
|
|
21
|
-
this.selectedIndex = !_.isNil(this.selectedItem) ? this.selectedItem.sortIndex : null;
|
|
22
|
-
if (!_.isNil(this.changed)) {
|
|
23
|
-
this.changed.emit(this.selectedItem);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
commitSelectedDataProperties() {
|
|
27
|
-
this.selectedItem = !_.isNil(this.selectedData) ? _.find(this.collection, item => item.data === this.selectedData) : null;
|
|
28
|
-
}
|
|
29
|
-
commitSelectedIndexProperties() {
|
|
30
|
-
this.selectedItem = !_.isNil(this.selectedIndex) ? _.find(this.collection, item => item.sortIndex === this.selectedIndex) : null;
|
|
31
|
-
}
|
|
32
|
-
selectIndexOrData(indexOrDataToSelect) {
|
|
33
|
-
if (_.isNumber(indexOrDataToSelect)) {
|
|
34
|
-
this.selectedIndex = indexOrDataToSelect;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.selectedItem = _.find(this.collection, item => item.data === indexOrDataToSelect);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// --------------------------------------------------------------------------
|
|
41
|
-
//
|
|
42
|
-
// Public Properties
|
|
43
|
-
//
|
|
44
|
-
// --------------------------------------------------------------------------
|
|
45
|
-
get selectedItem() {
|
|
46
|
-
return this._selectedItem;
|
|
47
|
-
}
|
|
48
|
-
set selectedItem(value) {
|
|
49
|
-
if (value === this._selectedItem) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this._selectedItem = value;
|
|
53
|
-
this.commitSelectedItemProperties();
|
|
54
|
-
}
|
|
55
|
-
get selectedIndex() {
|
|
56
|
-
return this._selectedIndex;
|
|
57
|
-
}
|
|
58
|
-
set selectedIndex(value) {
|
|
59
|
-
if (value === this._selectedIndex) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
this._selectedIndex = value;
|
|
63
|
-
this.commitSelectedIndexProperties();
|
|
64
|
-
}
|
|
65
|
-
get selectedData() {
|
|
66
|
-
return this._selectedData;
|
|
67
|
-
}
|
|
68
|
-
set selectedData(value) {
|
|
69
|
-
if (value === this._selectedData) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
this._selectedData = value;
|
|
73
|
-
this.commitSelectedDataProperties();
|
|
74
|
-
}
|
|
75
|
-
// --------------------------------------------------------------------------
|
|
76
|
-
//
|
|
77
|
-
// Public Methods
|
|
78
|
-
//
|
|
79
|
-
// --------------------------------------------------------------------------
|
|
80
|
-
complete(indexOrDataToSelect) {
|
|
81
|
-
super.complete();
|
|
82
|
-
if (!_.isNil(indexOrDataToSelect)) {
|
|
83
|
-
this.selectIndexOrData(indexOrDataToSelect);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
refresh(...params) {
|
|
87
|
-
super.refresh(...params);
|
|
88
|
-
this.refreshSelection(...params);
|
|
89
|
-
}
|
|
90
|
-
refreshSelection(...params) {
|
|
91
|
-
if (_.isEmpty(this.collection)) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
for (let item of this._collection) {
|
|
95
|
-
item.isSelected = !_.isNil(item.checkSelected) ? item.checkSelected(item, ...params) : false;
|
|
96
|
-
if (item.isSelected) {
|
|
97
|
-
this.selectedItem = item;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
destroy() {
|
|
102
|
-
if (this.isDestroyed) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
super.destroy();
|
|
106
|
-
if (!_.isNil(this._changed)) {
|
|
107
|
-
this._changed.complete();
|
|
108
|
-
this._changed = null;
|
|
109
|
-
}
|
|
110
|
-
this.selectedIndex = null;
|
|
111
|
-
}
|
|
112
|
-
// --------------------------------------------------------------------------
|
|
113
|
-
//
|
|
114
|
-
// Public Properties
|
|
115
|
-
//
|
|
116
|
-
// --------------------------------------------------------------------------
|
|
117
|
-
get changed() {
|
|
118
|
-
return this._changed;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TGlzdEl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpc3Qvc2VsZWN0L1NlbGVjdExpc3RJdGVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxPQUFPLGVBQXVELFNBQVEsU0FBZTtJQWF2Riw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQVksUUFBeUIsRUFBRSxrQkFBMkIsSUFBSTtRQUNsRSxLQUFLLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSw0QkFBNEI7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUV0RixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9B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U2VsZWN0TGlzdEl0ZW0gfSBmcm9tICcuL0lTZWxlY3RMaXN0SXRlbSc7XG5pbXBvcnQgeyBMaXN0SXRlbXMgfSBmcm9tICcuLi9MaXN0SXRlbXMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RMaXN0SXRlbXM8VSBleHRlbmRzIElTZWxlY3RMaXN0SXRlbTxWPiwgViA9IGFueT4gZXh0ZW5kcyBMaXN0SXRlbXM8VSwgVj4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkSXRlbTogVTtcbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkRGF0YTogVjtcbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkSW5kZXg6IG51bWJlcjtcblxuICAgIHByb3RlY3RlZCBfY2hhbmdlZDogRXZlbnRFbWl0dGVyPFU+O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcihsYW5ndWFnZTogTGFuZ3VhZ2VTZXJ2aWNlLCBpc0F1dG9UcmFuc2xhdGU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKGxhbmd1YWdlLCBpc0F1dG9UcmFuc2xhdGUpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdFNlbGVjdGVkSXRlbVByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gIV8uaXNOaWwodGhpcy5zZWxlY3RlZEl0ZW0pID8gdGhpcy5zZWxlY3RlZEl0ZW0uZGF0YSA6IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9ICFfLmlzTmlsKHRoaXMuc2VsZWN0ZWRJdGVtKSA/IHRoaXMuc2VsZWN0ZWRJdGVtLnNvcnRJbmRleCA6IG51bGw7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuY2hhbmdlZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRTZWxlY3RlZERhdGFQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9ICFfLmlzTmlsKHRoaXMuc2VsZWN0ZWREYXRhKSA/IF8uZmluZCh0aGlzLmNvbGxlY3Rpb24sIGl0ZW0gPT4gaXRlbS5kYXRhID09PSB0aGlzLnNlbGVjdGVkRGF0YSkgOiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRTZWxlY3RlZEluZGV4UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSAhXy5pc05pbCh0aGlzLnNlbGVjdGVkSW5kZXgpID8gXy5maW5kKHRoaXMuY29sbGVjdGlvbiwgaXRlbSA9PiBpdGVtLnNvcnRJbmRleCA9PT0gdGhpcy5zZWxlY3RlZEluZGV4KSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlbGVjdEluZGV4T3JEYXRhKGluZGV4T3JEYXRhVG9TZWxlY3Q6IG51bWJlciB8IFYpOiB2b2lkIHtcbiAgICAgICAgaWYgKF8uaXNOdW1iZXIoaW5kZXhPckRhdGFUb1NlbGVjdCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4T3JEYXRhVG9TZWxlY3Q7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IF8uZmluZCh0aGlzLmNvbGxlY3Rpb24sIGl0ZW0gPT4gaXRlbS5kYXRhID09PSBpbmRleE9yRGF0YVRvU2VsZWN0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBzZWxlY3RlZEl0ZW0oKTogVSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtKHZhbHVlOiBVKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0U2VsZWN0ZWRJdGVtUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgICB9XG4gICAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9zZWxlY3RlZEluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdFNlbGVjdGVkSW5kZXhQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3RlZERhdGEoKTogViB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZERhdGE7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRhKHZhbHVlOiBWKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fc2VsZWN0ZWREYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRhID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0U2VsZWN0ZWREYXRhUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGNvbXBsZXRlKGluZGV4T3JEYXRhVG9TZWxlY3Q/OiBudW1iZXIgfCBWKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmNvbXBsZXRlKCk7XG4gICAgICAgIGlmICghXy5pc05pbChpbmRleE9yRGF0YVRvU2VsZWN0KSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RJbmRleE9yRGF0YShpbmRleE9yRGF0YVRvU2VsZWN0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoKC4uLnBhcmFtcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5yZWZyZXNoKC4uLnBhcmFtcyk7XG4gICAgICAgIHRoaXMucmVmcmVzaFNlbGVjdGlvbiguLi5wYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoU2VsZWN0aW9uKC4uLnBhcmFtcyk6IHZvaWQge1xuICAgICAgICBpZiAoXy5pc0VtcHR5KHRoaXMuY29sbGVjdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuX2NvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9ICFfLmlzTmlsKGl0ZW0uY2hlY2tTZWxlY3RlZCkgPyBpdGVtLmNoZWNrU2VsZWN0ZWQoaXRlbSwgLi4ucGFyYW1zKSA6IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGl0ZW0uaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5fY2hhbmdlZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZWQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGNoYW5nZWQoKTogRXZlbnRFbWl0dGVyPFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWQ7XG4gICAgfVxufVxuIl19
|
|
@@ -1,184 +0,0 @@
|
|
|
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
|
-
// Constructor
|
|
11
|
-
//
|
|
12
|
-
// --------------------------------------------------------------------------
|
|
13
|
-
constructor() {
|
|
14
|
-
super();
|
|
15
|
-
this._isLoggedIn = false;
|
|
16
|
-
}
|
|
17
|
-
// --------------------------------------------------------------------------
|
|
18
|
-
//
|
|
19
|
-
// Protected Methods
|
|
20
|
-
//
|
|
21
|
-
// --------------------------------------------------------------------------
|
|
22
|
-
async loginByParam(param) {
|
|
23
|
-
return this.loginByFunction(() => this.loginRequest(param));
|
|
24
|
-
}
|
|
25
|
-
async loginByFunction(sidReturnFunction) {
|
|
26
|
-
if (this.isLoggedIn || this.isLoading) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
let response;
|
|
30
|
-
this.status = LoadableStatus.LOADING;
|
|
31
|
-
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
32
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));
|
|
33
|
-
try {
|
|
34
|
-
response = await sidReturnFunction();
|
|
35
|
-
this.parseLoginResponse(response);
|
|
36
|
-
if (!this.isCanLoginWithSid()) {
|
|
37
|
-
this.status = LoadableStatus.LOADED;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.loginBySid();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
let extendedError = ExtendedError.create(error);
|
|
45
|
-
this.status = LoadableStatus.ERROR;
|
|
46
|
-
this.parseLoginErrorResponse(extendedError);
|
|
47
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));
|
|
48
|
-
}
|
|
49
|
-
if (!this.isLoading) {
|
|
50
|
-
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
51
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));
|
|
52
|
-
}
|
|
53
|
-
return response;
|
|
54
|
-
}
|
|
55
|
-
async loginBySid() {
|
|
56
|
-
if (_.isNil(this.sid)) {
|
|
57
|
-
this._sid = this.getSavedSid();
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
let response = await this.loginSidRequest();
|
|
61
|
-
this.parseLoginSidResponse(response);
|
|
62
|
-
this._isLoggedIn = true;
|
|
63
|
-
this.status = LoadableStatus.LOADED;
|
|
64
|
-
this.observer.next(new ObservableData(LoadableEvent.COMPLETE, response));
|
|
65
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_COMPLETE, response));
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
let extendedError = ExtendedError.create(error);
|
|
69
|
-
this.parseLoginSidErrorResponse(extendedError);
|
|
70
|
-
this._isLoggedIn = false;
|
|
71
|
-
this.status = LoadableStatus.ERROR;
|
|
72
|
-
this.observer.next(new ObservableData(LoadableEvent.ERROR, null, extendedError));
|
|
73
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));
|
|
74
|
-
}
|
|
75
|
-
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
76
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));
|
|
77
|
-
}
|
|
78
|
-
reset() {
|
|
79
|
-
this._sid = null;
|
|
80
|
-
this._loginData = null;
|
|
81
|
-
}
|
|
82
|
-
parseLoginErrorResponse(error) { }
|
|
83
|
-
parseLogoutErrorResponse(error) { }
|
|
84
|
-
parseLoginSidResponse(response) {
|
|
85
|
-
this._loginData = response;
|
|
86
|
-
}
|
|
87
|
-
parseLoginSidErrorResponse(error) {
|
|
88
|
-
if (error instanceof TransportTimeoutError || error instanceof TransportNoConnectionError) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
this.reset();
|
|
92
|
-
}
|
|
93
|
-
async loginByResponse(param) {
|
|
94
|
-
if (this.isLoggedIn || this.isLoading) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
this.status = LoadableStatus.LOADING;
|
|
98
|
-
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
99
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));
|
|
100
|
-
this.parseLoginResponse(param);
|
|
101
|
-
this.status = !this.isCanLoginWithSid() ? LoadableStatus.LOADED : LoadableStatus.LOADING;
|
|
102
|
-
if (this.isLoading) {
|
|
103
|
-
await this.loginBySid();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
loginBySidIfCan() {
|
|
107
|
-
if (!this.isCanLoginWithSid()) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
if (this.isLoggedIn || this.isLoading) {
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
this.status = LoadableStatus.LOADING;
|
|
114
|
-
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
115
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));
|
|
116
|
-
this.loginBySid();
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
async logout() {
|
|
120
|
-
if (!this.isLoggedIn) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
124
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_STARTED));
|
|
125
|
-
try {
|
|
126
|
-
await this.logoutRequest();
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
let extendedError = ExtendedError.create(error);
|
|
130
|
-
this.parseLogoutErrorResponse(extendedError);
|
|
131
|
-
}
|
|
132
|
-
finally {
|
|
133
|
-
this.reset();
|
|
134
|
-
this._isLoggedIn = false;
|
|
135
|
-
this.status = LoadableStatus.NOT_LOADED;
|
|
136
|
-
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
137
|
-
this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_FINISHED));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
isCanLoginWithSid() {
|
|
141
|
-
return !_.isNil(this.sid) || !_.isNil(this.getSavedSid());
|
|
142
|
-
}
|
|
143
|
-
destroy() {
|
|
144
|
-
if (this.isDestroyed) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
super.destroy();
|
|
148
|
-
this.reset();
|
|
149
|
-
}
|
|
150
|
-
// --------------------------------------------------------------------------
|
|
151
|
-
//
|
|
152
|
-
// Public Properties
|
|
153
|
-
//
|
|
154
|
-
// --------------------------------------------------------------------------
|
|
155
|
-
get logined() {
|
|
156
|
-
return this.events.pipe(filter(item => item.type === LoginBaseServiceEvent.LOGIN_COMPLETE), map(item => item.data));
|
|
157
|
-
}
|
|
158
|
-
get logouted() {
|
|
159
|
-
return this.events.pipe(filter(item => item.type === LoginBaseServiceEvent.LOGOUT_FINISHED), map(() => null));
|
|
160
|
-
}
|
|
161
|
-
get sid() {
|
|
162
|
-
return this._sid;
|
|
163
|
-
}
|
|
164
|
-
get loginData() {
|
|
165
|
-
return this._loginData;
|
|
166
|
-
}
|
|
167
|
-
get isLoggedIn() {
|
|
168
|
-
return this._isLoggedIn;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
export var LoginBaseServiceEvent;
|
|
172
|
-
(function (LoginBaseServiceEvent) {
|
|
173
|
-
LoginBaseServiceEvent["LOGIN_ERROR"] = "LOGIN_ERROR";
|
|
174
|
-
LoginBaseServiceEvent["LOGIN_STARTED"] = "LOGIN_STARTED";
|
|
175
|
-
LoginBaseServiceEvent["LOGIN_COMPLETE"] = "LOGIN_COMPLETE";
|
|
176
|
-
LoginBaseServiceEvent["LOGIN_FINISHED"] = "LOGIN_FINISHED";
|
|
177
|
-
LoginBaseServiceEvent["LOGOUT_STARTED"] = "LOGOUT_STARTED";
|
|
178
|
-
LoginBaseServiceEvent["LOGOUT_FINISHED"] = "LOGOUT_FINISHED";
|
|
179
|
-
LoginBaseServiceEvent["REGISTRATION_ERROR"] = "REGISTRATION_ERROR";
|
|
180
|
-
LoginBaseServiceEvent["REGISTRATION_STARTED"] = "REGISTRATION_STARTED";
|
|
181
|
-
LoginBaseServiceEvent["REGISTRATION_COMPLETE"] = "REGISTRATION_COMPLETE";
|
|
182
|
-
LoginBaseServiceEvent["REGISTRATION_FINISHED"] = "REGISTRATION_FINISHED";
|
|
183
|
-
})(LoginBaseServiceEvent || (LoginBaseServiceEvent = {}));
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9naW5CYXNlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2dpbi9Mb2dpbkJhc2VTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFnQixnQkFBNEMsU0FBUSxRQUEwRDtJQVdoSSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFURixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQVV2QyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxLQUFLLENBQUMsWUFBWSxDQUFVLEtBQVM7UUFDM0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxpQkFBNEM7UUFDeEUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksUUFBVyxDQUFDO1FBQ2hC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QUMsSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsRUFDbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQVMsQ0FBQyxDQUM5QixDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsZUFBZSxDQUFDLEVBQ25FLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDbEIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFXLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFOLElBQVkscUJBWVg7QUFaRCxXQUFZLHFCQUFxQjtJQUM3QixvREFBMkIsQ0FBQTtJQUMzQix3REFBK0IsQ0FBQTtJQUMvQiwwREFBaUMsQ0FBQTtJQUNqQywwREFBaUMsQ0FBQTtJQUNqQywwREFBaUMsQ0FBQTtJQUNqQyw0REFBbUMsQ0FBQTtJQUVuQyxrRUFBeUMsQ0FBQTtJQUN6QyxzRUFBNkMsQ0FBQTtJQUM3Qyx3RUFBK0MsQ0FBQTtJQUMvQyx3RUFBK0MsQ0FBQTtBQUNuRCxDQUFDLEVBWlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQVloQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRhYmxlRXZlbnQsIExvYWRhYmxlLCBMb2FkYWJsZVN0YXR1cyB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBFeHRlbmRlZEVycm9yIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVEYXRhIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zcG9ydE5vQ29ubmVjdGlvbkVycm9yLCBUcmFuc3BvcnRUaW1lb3V0RXJyb3IgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvZ2luQmFzZVNlcnZpY2U8RSA9IGFueSwgVSA9IGFueSwgViA9IGFueT4gZXh0ZW5kcyBMb2FkYWJsZTxFIHwgTG9naW5CYXNlU2VydmljZUV2ZW50LCBVIHwgViB8IEV4dGVuZGVkRXJyb3I+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIF9zaWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2xvZ2luRGF0YTogVjtcbiAgICBwcm90ZWN0ZWQgX2lzTG9nZ2VkSW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbG9naW5CeVBhcmFtPFQgPSBhbnk+KHBhcmFtPzogVCk6IFByb21pc2U8VT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2dpbkJ5RnVuY3Rpb24oKCkgPT4gdGhpcy5sb2dpblJlcXVlc3QocGFyYW0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbG9naW5CeUZ1bmN0aW9uKHNpZFJldHVybkZ1bmN0aW9uOiAoLi4ucGFyYW1zKSA9PiBQcm9taXNlPFU+KTogUHJvbWlzZTxVPiB7XG4gICAgICAgIGlmICh0aGlzLmlzTG9nZ2VkSW4gfHwgdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlOiBVO1xuICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURJTkc7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5TVEFSVEVEKSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX1NUQVJURUQpKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBzaWRSZXR1cm5GdW5jdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5wYXJzZUxvZ2luUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ2FuTG9naW5XaXRoU2lkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURFRDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkJ5U2lkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBsZXQgZXh0ZW5kZWRFcnJvciA9IEV4dGVuZGVkRXJyb3IuY3JlYXRlPGFueSwgbnVtYmVyPihlcnJvciBhcyBhbnkpO1xuXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkVSUk9SO1xuICAgICAgICAgICAgdGhpcy5wYXJzZUxvZ2luRXJyb3JSZXNwb25zZShleHRlbmRlZEVycm9yKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0VSUk9SLCBudWxsLCBleHRlbmRlZEVycm9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvYWRhYmxlRXZlbnQuRklOSVNIRUQpKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0ZJTklTSEVEKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBsb2dpbkJ5U2lkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoXy5pc05pbCh0aGlzLnNpZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpZCA9IHRoaXMuZ2V0U2F2ZWRTaWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmxvZ2luU2lkUmVxdWVzdCgpO1xuICAgICAgICAgICAgdGhpcy5wYXJzZUxvZ2luU2lkUmVzcG9uc2UocmVzcG9uc2UpO1xuXG4gICAgICAgICAgICB0aGlzLl9pc0xvZ2dlZEluID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGFibGVTdGF0dXMuTE9BREVEO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkNPTVBMRVRFLCByZXNwb25zZSkpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5fQ09NUExFVEUsIHJlc3BvbnNlKSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBsZXQgZXh0ZW5kZWRFcnJvciA9IEV4dGVuZGVkRXJyb3IuY3JlYXRlPGFueSwgbnVtYmVyPihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLnBhcnNlTG9naW5TaWRFcnJvclJlc3BvbnNlKGV4dGVuZGVkRXJyb3IpO1xuXG4gICAgICAgICAgICB0aGlzLl9pc0xvZ2dlZEluID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkVSUk9SO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkVSUk9SLCBudWxsLCBleHRlbmRlZEVycm9yKSk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9FUlJPUiwgbnVsbCwgZXh0ZW5kZWRFcnJvcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkZJTklTSEVEKSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0ZJTklTSEVEKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zaWQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sb2dpbkRhdGEgPSBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2dpblJlcXVlc3QoLi4ucGFyYW1zKTogUHJvbWlzZTxVPjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9naW5TaWRSZXF1ZXN0KCk6IFByb21pc2U8Vj47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9nb3V0UmVxdWVzdCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTYXZlZFNpZCgpOiBzdHJpbmc7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQYXJzZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHBhcnNlTG9naW5SZXNwb25zZShyZXNwb25zZTogVSk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgcGFyc2VMb2dpbkVycm9yUmVzcG9uc2UoZXJyb3I6IEV4dGVuZGVkRXJyb3IpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgcGFyc2VMb2dvdXRFcnJvclJlc3BvbnNlKGVycm9yOiBFeHRlbmRlZEVycm9yKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlTG9naW5TaWRSZXNwb25zZShyZXNwb25zZTogVik6IHZvaWQge1xuICAgICAgICB0aGlzLl9sb2dpbkRhdGEgPSByZXNwb25zZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcGFyc2VMb2dpblNpZEVycm9yUmVzcG9uc2UoZXJyb3I6IEV4dGVuZGVkRXJyb3IpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHJhbnNwb3J0VGltZW91dEVycm9yIHx8IGVycm9yIGluc3RhbmNlb2YgVHJhbnNwb3J0Tm9Db25uZWN0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgbG9naW4ocGFyYW06IGFueSk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9naW5CeVJlc3BvbnNlKHBhcmFtOiBVKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzTG9nZ2VkSW4gfHwgdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGFibGVTdGF0dXMuTE9BRElORztcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LlNUQVJURUQpKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5fU1RBUlRFRCkpO1xuXG4gICAgICAgIHRoaXMucGFyc2VMb2dpblJlc3BvbnNlKHBhcmFtKTtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAhdGhpcy5pc0NhbkxvZ2luV2l0aFNpZCgpID8gTG9hZGFibGVTdGF0dXMuTE9BREVEIDogTG9hZGFibGVTdGF0dXMuTE9BRElORztcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvZ2luQnlTaWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBsb2dpbkJ5U2lkSWZDYW4oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5pc0NhbkxvZ2luV2l0aFNpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0xvZ2dlZEluIHx8IHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGFibGVTdGF0dXMuTE9BRElORztcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LlNUQVJURUQpKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5fU1RBUlRFRCkpO1xuICAgICAgICB0aGlzLmxvZ2luQnlTaWQoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvZ291dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5TVEFSVEVEKSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR09VVF9TVEFSVEVEKSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9nb3V0UmVxdWVzdCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbGV0IGV4dGVuZGVkRXJyb3IgPSBFeHRlbmRlZEVycm9yLmNyZWF0ZTxhbnksIG51bWJlcj4oZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5wYXJzZUxvZ291dEVycm9yUmVzcG9uc2UoZXh0ZW5kZWRFcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLl9pc0xvZ2dlZEluID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLk5PVF9MT0FERUQ7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvYWRhYmxlRXZlbnQuRklOSVNIRUQpKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR09VVF9GSU5JU0hFRCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ2FuTG9naW5XaXRoU2lkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5zaWQpIHx8ICFfLmlzTmlsKHRoaXMuZ2V0U2F2ZWRTaWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGxvZ2luZWQoKTogT2JzZXJ2YWJsZTxWPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlID09PSBMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5fQ09NUExFVEUpLFxuICAgICAgICAgICAgbWFwKGl0ZW0gPT4gaXRlbS5kYXRhIGFzIFYpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2dvdXRlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXRlbSA9PiBpdGVtLnR5cGUgPT09IExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRfRklOSVNIRUQpLFxuICAgICAgICAgICAgbWFwKCgpID0+IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvZ2luRGF0YSgpOiBWIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvZ2luRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvZ2dlZEluO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTG9naW5CYXNlU2VydmljZUV2ZW50IHtcbiAgICBMT0dJTl9FUlJPUiA9ICdMT0dJTl9FUlJPUicsXG4gICAgTE9HSU5fU1RBUlRFRCA9ICdMT0dJTl9TVEFSVEVEJyxcbiAgICBMT0dJTl9DT01QTEVURSA9ICdMT0dJTl9DT01QTEVURScsXG4gICAgTE9HSU5fRklOSVNIRUQgPSAnTE9HSU5fRklOSVNIRUQnLFxuICAgIExPR09VVF9TVEFSVEVEID0gJ0xPR09VVF9TVEFSVEVEJyxcbiAgICBMT0dPVVRfRklOSVNIRUQgPSAnTE9HT1VUX0ZJTklTSEVEJyxcblxuICAgIFJFR0lTVFJBVElPTl9FUlJPUiA9ICdSRUdJU1RSQVRJT05fRVJST1InLFxuICAgIFJFR0lTVFJBVElPTl9TVEFSVEVEID0gJ1JFR0lTVFJBVElPTl9TVEFSVEVEJyxcbiAgICBSRUdJU1RSQVRJT05fQ09NUExFVEUgPSAnUkVHSVNUUkFUSU9OX0NPTVBMRVRFJyxcbiAgICBSRUdJU1RSQVRJT05fRklOSVNIRUQgPSAnUkVHSVNUUkFUSU9OX0ZJTklTSEVEJ1xufVxuIl19
|