@ts-core/angular 18.0.1 → 19.0.1
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/application/ApplicationBaseComponent.d.ts +1 -1
- package/fesm2022/ts-core-angular.mjs +310 -271
- package/fesm2022/ts-core-angular.mjs.map +1 -1
- package/login/LoginTokenStorage.d.ts +1 -1
- package/notification/INotificationContent.d.ts +1 -1
- package/package.json +13 -15
- package/public-api.d.ts +1 -0
- package/service/RouterBaseService.d.ts +0 -4
- package/service/ServiceWorkerService.d.ts +3 -1
- package/storage/JSONValueStorage.d.ts +5 -0
- package/theme/ThemeAssetDirective.d.ts +1 -1
- package/theme/ThemeToggleDirective.d.ts +1 -1
- package/window/IWindowContent.d.ts +1 -1
- package/esm2022/ApplicationInjector.mjs +0 -9
- package/esm2022/VIModule.mjs +0 -190
- package/esm2022/application/ApplicationBaseComponent.mjs +0 -96
- package/esm2022/application/ApplicationComponent.mjs +0 -64
- package/esm2022/application/MessageBaseComponent.mjs +0 -60
- package/esm2022/asset/AssetBackgroundDirective.mjs +0 -155
- package/esm2022/asset/AssetBackgroundPipe.mjs +0 -22
- package/esm2022/asset/AssetFilePipe.mjs +0 -22
- package/esm2022/asset/AssetIconPipe.mjs +0 -22
- package/esm2022/asset/AssetImagePipe.mjs +0 -22
- package/esm2022/asset/AssetModule.mjs +0 -25
- package/esm2022/asset/AssetSoundPipe.mjs +0 -22
- package/esm2022/asset/AssetVideoPipe.mjs +0 -22
- package/esm2022/bottomSheet/BottomSheetService.mjs +0 -4
- package/esm2022/cookie/CookieModule.mjs +0 -47
- package/esm2022/cookie/CookieOptions.mjs +0 -9
- package/esm2022/cookie/CookieService.mjs +0 -69
- package/esm2022/directive/AspectRatioResizeDirective.mjs +0 -135
- package/esm2022/directive/AutoScrollBottomDirective.mjs +0 -122
- package/esm2022/directive/ClickToCopyDirective.mjs +0 -53
- package/esm2022/directive/ClickToSelectDirective.mjs +0 -55
- package/esm2022/directive/FocusDirective.mjs +0 -60
- package/esm2022/directive/HTMLContentTitleDirective.mjs +0 -74
- package/esm2022/directive/HTMLTitleDirective.mjs +0 -73
- package/esm2022/directive/InfiniteScrollDirective.mjs +0 -72
- package/esm2022/directive/IsBrowserDirective.mjs +0 -24
- package/esm2022/directive/IsServerDirective.mjs +0 -24
- package/esm2022/directive/ResizeDirective.mjs +0 -84
- package/esm2022/directive/ScrollCheckDirective.mjs +0 -106
- package/esm2022/directive/ScrollDirective.mjs +0 -121
- package/esm2022/directive/SelectOnFocusDirective.mjs +0 -48
- package/esm2022/directive/StructureDirective.mjs +0 -80
- package/esm2022/language/LanguageDirective.mjs +0 -103
- package/esm2022/language/LanguageHasDirective.mjs +0 -87
- package/esm2022/language/LanguageModule.mjs +0 -61
- package/esm2022/language/LanguagePipe.mjs +0 -88
- package/esm2022/language/LanguagePipeHas.mjs +0 -64
- package/esm2022/language/LanguagePipeHasPure.mjs +0 -41
- package/esm2022/language/LanguagePipePure.mjs +0 -40
- package/esm2022/language/LanguageRequireResolver.mjs +0 -37
- package/esm2022/language/LanguageResolver.mjs +0 -21
- package/esm2022/list/IListItem.mjs +0 -2
- package/esm2022/list/ListItem.mjs +0 -148
- package/esm2022/list/ListItems.mjs +0 -107
- package/esm2022/list/select/ISelectListItem.mjs +0 -2
- package/esm2022/list/select/RouterSelectListItems.mjs +0 -60
- package/esm2022/list/select/SelectListItem.mjs +0 -67
- package/esm2022/list/select/SelectListItems.mjs +0 -130
- package/esm2022/login/LoginBaseService.mjs +0 -191
- package/esm2022/login/LoginGuard.mjs +0 -41
- package/esm2022/login/LoginIfCanGuard.mjs +0 -55
- package/esm2022/login/LoginNotGuard.mjs +0 -41
- package/esm2022/login/LoginRequireResolver.mjs +0 -40
- package/esm2022/login/LoginResolver.mjs +0 -24
- package/esm2022/login/LoginTokenStorage.mjs +0 -18
- package/esm2022/manager/FocusManager.mjs +0 -54
- package/esm2022/manager/ResizeManager.mjs +0 -90
- package/esm2022/menu/MenuItem.mjs +0 -20
- package/esm2022/menu/MenuItemBase.mjs +0 -56
- package/esm2022/menu/MenuItems.mjs +0 -111
- package/esm2022/menu/NavigationMenuItem.mjs +0 -20
- package/esm2022/module/LazyModuleLoader.mjs +0 -97
- package/esm2022/notification/INotification.mjs +0 -16
- package/esm2022/notification/INotificationConfig.mjs +0 -2
- package/esm2022/notification/INotificationContent.mjs +0 -141
- package/esm2022/notification/NotificationConfig.mjs +0 -27
- package/esm2022/notification/NotificationService.mjs +0 -4
- package/esm2022/notification/NotificationServiceEvent.mjs +0 -8
- package/esm2022/pipe/CamelCasePipe.mjs +0 -23
- package/esm2022/pipe/FinancePipe.mjs +0 -53
- package/esm2022/pipe/MomentDateAdaptivePipe.mjs +0 -51
- package/esm2022/pipe/MomentDateFromNowPipe.mjs +0 -22
- package/esm2022/pipe/MomentDatePipe.mjs +0 -71
- package/esm2022/pipe/MomentTimePipe.mjs +0 -35
- package/esm2022/pipe/NgModelErrorPipe.mjs +0 -43
- package/esm2022/pipe/PrettifyPipe.mjs +0 -38
- package/esm2022/pipe/SanitizePipe.mjs +0 -48
- package/esm2022/pipe/StartCasePipe.mjs +0 -23
- package/esm2022/pipe/TimePipe.mjs +0 -38
- package/esm2022/pipe/TruncatePipe.mjs +0 -23
- package/esm2022/public-api.mjs +0 -139
- package/esm2022/question/IQuestion.mjs +0 -14
- package/esm2022/question/QuestionManager.mjs +0 -107
- package/esm2022/service/PipeBaseService.mjs +0 -140
- package/esm2022/service/PlatformService.mjs +0 -44
- package/esm2022/service/RouterBaseService.mjs +0 -244
- package/esm2022/service/ServiceWorkerService.mjs +0 -107
- package/esm2022/service/route/CanDeactivateGuard.mjs +0 -11
- package/esm2022/service/route/IRouterDeactivatable.mjs +0 -2
- package/esm2022/storage/BooleanValueStorage.mjs +0 -15
- package/esm2022/storage/DateValueStorage.mjs +0 -46
- package/esm2022/storage/IValueStorage.mjs +0 -2
- package/esm2022/storage/LocalStorageService.mjs +0 -73
- package/esm2022/storage/ValueStorage.mjs +0 -84
- package/esm2022/theme/ThemeAssetBackgroundDirective.mjs +0 -51
- package/esm2022/theme/ThemeAssetDirective.mjs +0 -253
- package/esm2022/theme/ThemeAssetIconDirective.mjs +0 -48
- package/esm2022/theme/ThemeAssetImageDirective.mjs +0 -49
- package/esm2022/theme/ThemeModule.mjs +0 -81
- package/esm2022/theme/ThemeStyleDirective.mjs +0 -125
- package/esm2022/theme/ThemeStyleHoverDirective.mjs +0 -107
- package/esm2022/theme/ThemeToggleDirective.mjs +0 -63
- package/esm2022/transport/TransportLazy.mjs +0 -93
- package/esm2022/transport/TransportLazyModule.mjs +0 -30
- package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
- package/esm2022/ts-core-angular.mjs +0 -5
- package/esm2022/user/IUser.mjs +0 -9
- package/esm2022/user/UserBaseService.mjs +0 -124
- package/esm2022/util/ViewUtil.mjs +0 -589
- package/esm2022/window/IWindow.mjs +0 -31
- package/esm2022/window/IWindowConfig.mjs +0 -7
- package/esm2022/window/IWindowContent.mjs +0 -143
- package/esm2022/window/WindowBase.mjs +0 -177
- package/esm2022/window/WindowClosedError.mjs +0 -19
- package/esm2022/window/WindowConfig.mjs +0 -218
- package/esm2022/window/WindowService.mjs +0 -4
- package/esm2022/window/WindowServiceEvent.mjs +0 -9
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Injectable, PLATFORM_ID, Inject } from '@angular/core';
|
|
2
|
-
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
3
|
-
import { DestroyableContainer } from '@ts-core/common';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class PlatformService extends DestroyableContainer {
|
|
6
|
-
// --------------------------------------------------------------------------
|
|
7
|
-
//
|
|
8
|
-
// Constants
|
|
9
|
-
//
|
|
10
|
-
// --------------------------------------------------------------------------
|
|
11
|
-
_isPlatformServer;
|
|
12
|
-
_isPlatformBrowser;
|
|
13
|
-
// --------------------------------------------------------------------------
|
|
14
|
-
//
|
|
15
|
-
// Constructor
|
|
16
|
-
//
|
|
17
|
-
// --------------------------------------------------------------------------
|
|
18
|
-
constructor(platformId) {
|
|
19
|
-
super();
|
|
20
|
-
this._isPlatformServer = isPlatformServer(platformId);
|
|
21
|
-
this._isPlatformBrowser = isPlatformBrowser(platformId);
|
|
22
|
-
}
|
|
23
|
-
// --------------------------------------------------------------------------
|
|
24
|
-
//
|
|
25
|
-
// Public Properties
|
|
26
|
-
//
|
|
27
|
-
// --------------------------------------------------------------------------
|
|
28
|
-
get isPlatformServer() {
|
|
29
|
-
return this._isPlatformServer;
|
|
30
|
-
}
|
|
31
|
-
get isPlatformBrowser() {
|
|
32
|
-
return this._isPlatformBrowser;
|
|
33
|
-
}
|
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PlatformService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PlatformService, providedIn: 'root' });
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: PlatformService, decorators: [{
|
|
38
|
-
type: Injectable,
|
|
39
|
-
args: [{ providedIn: 'root' }]
|
|
40
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
41
|
-
type: Inject,
|
|
42
|
-
args: [PLATFORM_ID]
|
|
43
|
-
}] }] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxhdGZvcm1TZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2UvUGxhdGZvcm1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsb0JBQW9CO0lBQ3JELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsYUFBYTtJQUNiLEVBQUU7SUFDRiw2RUFBNkU7SUFFckUsaUJBQWlCLENBQVU7SUFDM0Isa0JBQWtCLENBQVU7SUFFcEMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFpQyxVQUFrQjtRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7d0dBbENRLGVBQWUsa0JBZ0JKLFdBQVc7NEdBaEJ0QixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFpQmpCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlQ29udGFpbmVyIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVNlcnZpY2UgZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RhbnRzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfaXNQbGF0Zm9ybVNlcnZlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9pc1BsYXRmb3JtQnJvd3NlcjogYm9vbGVhbjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2lzUGxhdGZvcm1TZXJ2ZXIgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xuICAgICAgICB0aGlzLl9pc1BsYXRmb3JtQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBpc1BsYXRmb3JtU2VydmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNQbGF0Zm9ybVNlcnZlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzUGxhdGZvcm1Ccm93c2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNQbGF0Zm9ybUJyb3dzZXI7XG4gICAgfVxufVxuIl19
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
|
|
2
|
-
import { ObservableData, Loadable, LoadableEvent, LoadableStatus } from '@ts-core/common';
|
|
3
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
-
import * as _ from 'lodash';
|
|
5
|
-
export class RouterBaseService extends Loadable {
|
|
6
|
-
_router;
|
|
7
|
-
_route;
|
|
8
|
-
window;
|
|
9
|
-
// --------------------------------------------------------------------------
|
|
10
|
-
//
|
|
11
|
-
// Properties
|
|
12
|
-
//
|
|
13
|
-
// --------------------------------------------------------------------------
|
|
14
|
-
params;
|
|
15
|
-
extrasToApply;
|
|
16
|
-
isNeedUpdateExtras = false;
|
|
17
|
-
_lastUrl;
|
|
18
|
-
_previousUrl;
|
|
19
|
-
_locationHash;
|
|
20
|
-
_locationSearch;
|
|
21
|
-
// --------------------------------------------------------------------------
|
|
22
|
-
//
|
|
23
|
-
// Constructor
|
|
24
|
-
//
|
|
25
|
-
// --------------------------------------------------------------------------
|
|
26
|
-
constructor(_router, _route, window) {
|
|
27
|
-
super();
|
|
28
|
-
this._router = _router;
|
|
29
|
-
this._route = _route;
|
|
30
|
-
this.window = window;
|
|
31
|
-
this.params = new Map();
|
|
32
|
-
this.observer = new Subject();
|
|
33
|
-
this._lastUrl = this.url;
|
|
34
|
-
this._locationHash = this.window.window.location.hash;
|
|
35
|
-
this._locationSearch = this.window.window.location.search;
|
|
36
|
-
this.window.getParams().forEach((value, key) => this.params.set(key, value));
|
|
37
|
-
this.initializeObservers();
|
|
38
|
-
}
|
|
39
|
-
// --------------------------------------------------------------------------
|
|
40
|
-
//
|
|
41
|
-
// Private Methods
|
|
42
|
-
//
|
|
43
|
-
// --------------------------------------------------------------------------
|
|
44
|
-
initializeObservers() {
|
|
45
|
-
this.router.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
|
|
46
|
-
if (event instanceof NavigationStart) {
|
|
47
|
-
this._previousUrl = this.url;
|
|
48
|
-
this.status = LoadableStatus.LOADING;
|
|
49
|
-
}
|
|
50
|
-
else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {
|
|
51
|
-
if (event instanceof NavigationEnd) {
|
|
52
|
-
this._lastUrl = event.url;
|
|
53
|
-
}
|
|
54
|
-
this.status = LoadableStatus.LOADED;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
async applyExtras(extras) {
|
|
59
|
-
let params = {};
|
|
60
|
-
params.queryParams = this.getQueryParams();
|
|
61
|
-
if (!_.isNil(extras)) {
|
|
62
|
-
Object.assign(params, extras);
|
|
63
|
-
}
|
|
64
|
-
if (!this.isLoading) {
|
|
65
|
-
return this.router.navigate([], params);
|
|
66
|
-
}
|
|
67
|
-
this.extrasToApply = extras;
|
|
68
|
-
this.isNeedUpdateExtras = true;
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
getQueryParams() {
|
|
72
|
-
let params = {};
|
|
73
|
-
this.params.forEach((value, key) => (params[key] = value));
|
|
74
|
-
return params;
|
|
75
|
-
}
|
|
76
|
-
commitStatusChangedProperties(oldStatus, newStatus) {
|
|
77
|
-
super.commitStatusChangedProperties(oldStatus, newStatus);
|
|
78
|
-
switch (newStatus) {
|
|
79
|
-
case LoadableStatus.LOADING:
|
|
80
|
-
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
81
|
-
break;
|
|
82
|
-
case LoadableStatus.LOADED:
|
|
83
|
-
if (this.isNeedUpdateExtras) {
|
|
84
|
-
this.isNeedUpdateExtras = false;
|
|
85
|
-
this.applyExtras(this.extrasToApply);
|
|
86
|
-
}
|
|
87
|
-
this.observer.next(new ObservableData(LoadableEvent.COMPLETE, { url: this.url, previousUrl: this.previousUrl }));
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
if (newStatus === LoadableStatus.LOADED || newStatus === LoadableStatus.ERROR) {
|
|
91
|
-
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// --------------------------------------------------------------------------
|
|
95
|
-
//
|
|
96
|
-
// Navigate Methods
|
|
97
|
-
//
|
|
98
|
-
// --------------------------------------------------------------------------
|
|
99
|
-
async navigate(url, extras, isClearParams) {
|
|
100
|
-
if (isClearParams) {
|
|
101
|
-
this.params.clear();
|
|
102
|
-
}
|
|
103
|
-
let params = {};
|
|
104
|
-
params.queryParams = this.getQueryParams();
|
|
105
|
-
if (!_.isNil(extras)) {
|
|
106
|
-
Object.assign(params, extras);
|
|
107
|
-
}
|
|
108
|
-
return this.router.navigateByUrl(url, params);
|
|
109
|
-
}
|
|
110
|
-
navigateToExternalUrl(url, target = '_blank') {
|
|
111
|
-
this.window.open(url, target);
|
|
112
|
-
}
|
|
113
|
-
navigateToLast(extras) {
|
|
114
|
-
return this.navigate(this.lastUrl, extras);
|
|
115
|
-
}
|
|
116
|
-
async navigateIfNotLoading(url, extras) {
|
|
117
|
-
return !this.isLoading ? this.navigate(url, extras) : false;
|
|
118
|
-
}
|
|
119
|
-
reload() {
|
|
120
|
-
location.reload();
|
|
121
|
-
}
|
|
122
|
-
// --------------------------------------------------------------------------
|
|
123
|
-
//
|
|
124
|
-
// Public Methods
|
|
125
|
-
//
|
|
126
|
-
// --------------------------------------------------------------------------
|
|
127
|
-
isUrlActive(item, isExact = false) {
|
|
128
|
-
if (isExact) {
|
|
129
|
-
return this.router.isActive(item, isExact);
|
|
130
|
-
}
|
|
131
|
-
if (_.isString(item)) {
|
|
132
|
-
item = this.router.parseUrl(item);
|
|
133
|
-
}
|
|
134
|
-
let current = this.router.parseUrl(this.urlTree.toString());
|
|
135
|
-
item.fragment = current.fragment = null;
|
|
136
|
-
item.queryParams = current.queryParams = {};
|
|
137
|
-
return item.toString() === current.toString();
|
|
138
|
-
}
|
|
139
|
-
// --------------------------------------------------------------------------
|
|
140
|
-
//
|
|
141
|
-
// Public Param Methods
|
|
142
|
-
//
|
|
143
|
-
// --------------------------------------------------------------------------
|
|
144
|
-
getParams() {
|
|
145
|
-
let params = {};
|
|
146
|
-
this.params.forEach((value, key) => (params[key] = value));
|
|
147
|
-
return params;
|
|
148
|
-
}
|
|
149
|
-
hasParam(name) {
|
|
150
|
-
return this.params.has(name);
|
|
151
|
-
}
|
|
152
|
-
getParam(name, defaultValue) {
|
|
153
|
-
return this.hasParam(name) ? this.params.get(name) : defaultValue;
|
|
154
|
-
}
|
|
155
|
-
setParam(name, value, extras) {
|
|
156
|
-
if (!_.isNil(value)) {
|
|
157
|
-
value = value.toString().trim();
|
|
158
|
-
if (_.isEmpty(value)) {
|
|
159
|
-
value = null;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (!_.isNil(value)) {
|
|
163
|
-
this.params.set(name, value);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
this.params.delete(name);
|
|
167
|
-
}
|
|
168
|
-
if (!_.isNil(extras)) {
|
|
169
|
-
extras = { replaceUrl: true };
|
|
170
|
-
}
|
|
171
|
-
this.applyExtras(extras);
|
|
172
|
-
}
|
|
173
|
-
removeParam(name, extras) {
|
|
174
|
-
if (this.hasParam(name)) {
|
|
175
|
-
this.setParam(name, null, extras);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
clearParams(extras) {
|
|
179
|
-
this.params.clear();
|
|
180
|
-
if (!_.isNil(extras)) {
|
|
181
|
-
extras = { replaceUrl: true };
|
|
182
|
-
}
|
|
183
|
-
this.applyExtras(extras);
|
|
184
|
-
}
|
|
185
|
-
get hasParams() {
|
|
186
|
-
return this.params.size > 0;
|
|
187
|
-
}
|
|
188
|
-
// --------------------------------------------------------------------------
|
|
189
|
-
//
|
|
190
|
-
// Fragment Methods
|
|
191
|
-
//
|
|
192
|
-
// --------------------------------------------------------------------------
|
|
193
|
-
getFragment(snapshot, defaultValue) {
|
|
194
|
-
if (_.isNil(snapshot)) {
|
|
195
|
-
snapshot = this.route.snapshot;
|
|
196
|
-
}
|
|
197
|
-
if (_.isNil(defaultValue)) {
|
|
198
|
-
defaultValue = null;
|
|
199
|
-
}
|
|
200
|
-
return !_.isNil(snapshot.fragment) ? snapshot.fragment : defaultValue;
|
|
201
|
-
}
|
|
202
|
-
hasFragment(snapshot) {
|
|
203
|
-
return !_.isNil(this.getFragment(snapshot));
|
|
204
|
-
}
|
|
205
|
-
async setFragment(value) {
|
|
206
|
-
return value !== this.getFragment() ? this.applyExtras({ fragment: value }) : false;
|
|
207
|
-
}
|
|
208
|
-
// --------------------------------------------------------------------------
|
|
209
|
-
//
|
|
210
|
-
// Public Url Methods
|
|
211
|
-
//
|
|
212
|
-
// --------------------------------------------------------------------------
|
|
213
|
-
get url() {
|
|
214
|
-
return this.router.url;
|
|
215
|
-
}
|
|
216
|
-
get urlTree() {
|
|
217
|
-
return this.router.parseUrl(this.url);
|
|
218
|
-
}
|
|
219
|
-
get lastUrl() {
|
|
220
|
-
return this._lastUrl;
|
|
221
|
-
}
|
|
222
|
-
get lastUrlTree() {
|
|
223
|
-
return this.router.parseUrl(this.lastUrl);
|
|
224
|
-
}
|
|
225
|
-
get previousUrl() {
|
|
226
|
-
return this._previousUrl;
|
|
227
|
-
}
|
|
228
|
-
get previousUrlTree() {
|
|
229
|
-
return this.router.parseUrl(this.previousUrl);
|
|
230
|
-
}
|
|
231
|
-
get locationHash() {
|
|
232
|
-
return this._locationHash;
|
|
233
|
-
}
|
|
234
|
-
get locationSearch() {
|
|
235
|
-
return this._locationSearch;
|
|
236
|
-
}
|
|
237
|
-
get route() {
|
|
238
|
-
return this._route;
|
|
239
|
-
}
|
|
240
|
-
get router() {
|
|
241
|
-
return this._router;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyQmFzZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9Sb3V0ZXJCYXNlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixlQUFlLEVBRWYsZUFBZSxFQUdsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLE9BQU8saUJBQWtCLFNBQVEsUUFBMEM7SUF1QnZEO0lBQTJCO0lBQWtDO0lBdEJuRiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLE1BQU0sQ0FBc0I7SUFFNUIsYUFBYSxDQUFtQjtJQUNoQyxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFcEMsUUFBUSxDQUFTO0lBQ2pCLFlBQVksQ0FBUztJQUNyQixhQUFhLENBQVM7SUFDdEIsZUFBZSxDQUFTO0lBRWxDLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBc0IsT0FBZSxFQUFZLE1BQXNCLEVBQVksTUFBMkI7UUFDMUcsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUUxRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlC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SSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFjdGl2YXRlZFJvdXRlLFxuICAgIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgTmF2aWdhdGlvbkNhbmNlbCxcbiAgICBOYXZpZ2F0aW9uRW5kLFxuICAgIE5hdmlnYXRpb25FcnJvcixcbiAgICBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgIE5hdmlnYXRpb25TdGFydCxcbiAgICBSb3V0ZXIsXG4gICAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZURhdGEsIExvYWRhYmxlLCBMb2FkYWJsZUV2ZW50LCBMb2FkYWJsZVN0YXR1cyB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBOYXRpdmVXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZXJCYXNlU2VydmljZSBleHRlbmRzIExvYWRhYmxlPHZvaWQsIFJvdXRlckJhc2VTZXJ2aWNlRXZlbnREYXRhPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBwYXJhbXM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgZXh0cmFzVG9BcHBseTogTmF2aWdhdGlvbkV4dHJhcztcbiAgICBwcm90ZWN0ZWQgaXNOZWVkVXBkYXRlRXh0cmFzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2xhc3RVcmw6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3ByZXZpb3VzVXJsOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9sb2NhdGlvbkhhc2g6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2xvY2F0aW9uU2VhcmNoOiBzdHJpbmc7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcm90ZWN0ZWQgd2luZG93OiBOYXRpdmVXaW5kb3dTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucGFyYW1zID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICB0aGlzLl9sYXN0VXJsID0gdGhpcy51cmw7XG4gICAgICAgIHRoaXMuX2xvY2F0aW9uSGFzaCA9IHRoaXMud2luZG93LndpbmRvdy5sb2NhdGlvbi5oYXNoO1xuICAgICAgICB0aGlzLl9sb2NhdGlvblNlYXJjaCA9IHRoaXMud2luZG93LndpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG5cbiAgICAgICAgdGhpcy53aW5kb3cuZ2V0UGFyYW1zKCkuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gdGhpcy5wYXJhbXMuc2V0KGtleSwgdmFsdWUpKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT2JzZXJ2ZXJzKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJpdmF0ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVPYnNlcnZlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c1VybCA9IHRoaXMudXJsO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGFibGVTdGF0dXMuTE9BRElORztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdFVybCA9IGV2ZW50LnVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBMb2FkYWJsZVN0YXR1cy5MT0FERUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBhcHBseUV4dHJhcyhleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyBOYXZpZ2F0aW9uRXh0cmFzO1xuICAgICAgICBwYXJhbXMucXVlcnlQYXJhbXMgPSB0aGlzLmdldFF1ZXJ5UGFyYW1zKCk7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKGV4dHJhcykpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBleHRyYXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCBwYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFzVG9BcHBseSA9IGV4dHJhcztcbiAgICAgICAgdGhpcy5pc05lZWRVcGRhdGVFeHRyYXMgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFF1ZXJ5UGFyYW1zKCk6IGFueSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyBhbnk7XG4gICAgICAgIHRoaXMucGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IChwYXJhbXNba2V5XSA9IHZhbHVlKSk7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdFN0YXR1c0NoYW5nZWRQcm9wZXJ0aWVzKG9sZFN0YXR1czogTG9hZGFibGVTdGF0dXMsIG5ld1N0YXR1czogTG9hZGFibGVTdGF0dXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuY29tbWl0U3RhdHVzQ2hhbmdlZFByb3BlcnRpZXMob2xkU3RhdHVzLCBuZXdTdGF0dXMpO1xuXG4gICAgICAgIHN3aXRjaCAobmV3U3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIExvYWRhYmxlU3RhdHVzLkxPQURJTkc6XG4gICAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LlNUQVJURUQpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTG9hZGFibGVTdGF0dXMuTE9BREVEOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTmVlZFVwZGF0ZUV4dHJhcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTmVlZFVwZGF0ZUV4dHJhcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RXh0cmFzKHRoaXMuZXh0cmFzVG9BcHBseSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5DT01QTEVURSwgeyB1cmw6IHRoaXMudXJsLCBwcmV2aW91c1VybDogdGhpcy5wcmV2aW91c1VybCB9KSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3U3RhdHVzID09PSBMb2FkYWJsZVN0YXR1cy5MT0FERUQgfHwgbmV3U3RhdHVzID09PSBMb2FkYWJsZVN0YXR1cy5FUlJPUikge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkZJTklTSEVEKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHROYXZpZ2F0ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGFzeW5jIG5hdmlnYXRlKHVybDogc3RyaW5nLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLCBpc0NsZWFyUGFyYW1zPzogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAoaXNDbGVhclBhcmFtcykge1xuICAgICAgICAgICAgdGhpcy5wYXJhbXMuY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyBOYXZpZ2F0aW9uRXh0cmFzO1xuICAgICAgICBwYXJhbXMucXVlcnlQYXJhbXMgPSB0aGlzLmdldFF1ZXJ5UGFyYW1zKCk7XG4gICAgICAgIGlmICghXy5pc05pbChleHRyYXMpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgZXh0cmFzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5hdmlnYXRlVG9FeHRlcm5hbFVybCh1cmw6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcgPSAnX2JsYW5rJyk6IHZvaWQge1xuICAgICAgICB0aGlzLndpbmRvdy5vcGVuKHVybCwgdGFyZ2V0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmF2aWdhdGVUb0xhc3QoZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0ZSh0aGlzLmxhc3RVcmwsIGV4dHJhcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG5hdmlnYXRlSWZOb3RMb2FkaW5nKHVybDogc3RyaW5nLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xvYWRpbmcgPyB0aGlzLm5hdmlnYXRlKHVybCwgZXh0cmFzKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWQoKTogdm9pZCB7XG4gICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGlzVXJsQWN0aXZlKGl0ZW06IHN0cmluZyB8IFVybFRyZWUsIGlzRXhhY3Q6IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmlzQWN0aXZlKGl0ZW0sIGlzRXhhY3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzU3RyaW5nKGl0ZW0pKSB7XG4gICAgICAgICAgICBpdGVtID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwoaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMudXJsVHJlZS50b1N0cmluZygpKTtcbiAgICAgICAgaXRlbS5mcmFnbWVudCA9IGN1cnJlbnQuZnJhZ21lbnQgPSBudWxsO1xuICAgICAgICBpdGVtLnF1ZXJ5UGFyYW1zID0gY3VycmVudC5xdWVyeVBhcmFtcyA9IHt9O1xuICAgICAgICByZXR1cm4gaXRlbS50b1N0cmluZygpID09PSBjdXJyZW50LnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFBhcmFtIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1zPFQgPSBhbnk+KCk6IFQge1xuICAgICAgICBsZXQgcGFyYW1zID0ge30gYXMgYW55O1xuICAgICAgICB0aGlzLnBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiAocGFyYW1zW2tleV0gPSB2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNQYXJhbShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1zLmhhcyhuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW08VCA9IHN0cmluZz4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1BhcmFtKG5hbWUpID8gKHRoaXMucGFyYW1zLmdldChuYW1lKSBhcyBhbnkpIDogZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXJhbShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmIChfLmlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLnNldChuYW1lLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5kZWxldGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmlsKGV4dHJhcykpIHtcbiAgICAgICAgICAgIGV4dHJhcyA9IHsgcmVwbGFjZVVybDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlFeHRyYXMoZXh0cmFzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlUGFyYW0obmFtZTogc3RyaW5nLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhhc1BhcmFtKG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBhcmFtKG5hbWUsIG51bGwsIGV4dHJhcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJQYXJhbXMoZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFtcy5jbGVhcigpO1xuICAgICAgICBpZiAoIV8uaXNOaWwoZXh0cmFzKSkge1xuICAgICAgICAgICAgZXh0cmFzID0geyByZXBsYWNlVXJsOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcHBseUV4dHJhcyhleHRyYXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUGFyYW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJhbXMuc2l6ZSA+IDA7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0RnJhZ21lbnQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRGcmFnbWVudChzbmFwc2hvdD86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChfLmlzTmlsKHNuYXBzaG90KSkge1xuICAgICAgICAgICAgc25hcHNob3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90O1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzTmlsKGRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHNuYXBzaG90LmZyYWdtZW50KSA/IHNuYXBzaG90LmZyYWdtZW50IDogZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNGcmFnbWVudChzbmFwc2hvdD86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuZ2V0RnJhZ21lbnQoc25hcHNob3QpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0RnJhZ21lbnQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgIT09IHRoaXMuZ2V0RnJhZ21lbnQoKSA/IHRoaXMuYXBwbHlFeHRyYXMoeyBmcmFnbWVudDogdmFsdWUgfSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgVXJsIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHVybFRyZWUoKTogVXJsVHJlZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsYXN0VXJsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0VXJsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGxhc3RVcmxUcmVlKCk6IFVybFRyZWUge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5sYXN0VXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByZXZpb3VzVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcmV2aW91c1VybDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwcmV2aW91c1VybFRyZWUoKTogVXJsVHJlZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnByZXZpb3VzVXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvY2F0aW9uSGFzaCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYXRpb25IYXNoO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGxvY2F0aW9uU2VhcmNoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhdGlvblNlYXJjaDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvdXRlKCk6IEFjdGl2YXRlZFJvdXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJvdXRlcigpOiBSb3V0ZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91dGVyO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJCYXNlU2VydmljZUV2ZW50RGF0YSB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgcHJldmlvdXNVcmw6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Loadable, LoadableEvent, LoadableStatus, ObservableData } from '@ts-core/common';
|
|
3
|
-
import { takeUntil, filter } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/service-worker";
|
|
6
|
-
import * as i2 from "@ts-core/common";
|
|
7
|
-
export class ServiceWorkerService extends Loadable {
|
|
8
|
-
updates;
|
|
9
|
-
logger;
|
|
10
|
-
//--------------------------------------------------------------------------
|
|
11
|
-
//
|
|
12
|
-
// Constructor
|
|
13
|
-
//
|
|
14
|
-
//--------------------------------------------------------------------------
|
|
15
|
-
constructor(updates, logger) {
|
|
16
|
-
super();
|
|
17
|
-
this.updates = updates;
|
|
18
|
-
this.logger = logger;
|
|
19
|
-
updates.unrecoverable.pipe(takeUntil(this.destroyed)).subscribe(event => this.unrecoverableHandler(event));
|
|
20
|
-
updates.versionUpdates
|
|
21
|
-
.pipe(filter(event => event.type === 'VERSION_READY'), takeUntil(this.destroyed))
|
|
22
|
-
.subscribe(event => this.readyHandler(event));
|
|
23
|
-
updates.versionUpdates
|
|
24
|
-
.pipe(filter(event => event.type === 'VERSION_DETECTED'), takeUntil(this.destroyed))
|
|
25
|
-
.subscribe(event => this.detectedHandler(event));
|
|
26
|
-
updates.versionUpdates
|
|
27
|
-
.pipe(filter(event => event.type === 'NO_NEW_VERSION_DETECTED'), takeUntil(this.destroyed))
|
|
28
|
-
.subscribe(event => this.noNewVersionDetectedHandler(event));
|
|
29
|
-
updates.versionUpdates
|
|
30
|
-
.pipe(filter(event => event.type === 'VERSION_INSTALLATION_FAILED'), takeUntil(this.destroyed))
|
|
31
|
-
.subscribe(event => this.installationFailedHandler(event));
|
|
32
|
-
}
|
|
33
|
-
//--------------------------------------------------------------------------
|
|
34
|
-
//
|
|
35
|
-
// Protected Methods
|
|
36
|
-
//
|
|
37
|
-
//--------------------------------------------------------------------------
|
|
38
|
-
start(value) {
|
|
39
|
-
if (value === this.status) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.status = value;
|
|
43
|
-
this.observer.next(new ObservableData(LoadableEvent.STARTED));
|
|
44
|
-
}
|
|
45
|
-
finish(value) {
|
|
46
|
-
if (value === this.status) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
this.status = value;
|
|
50
|
-
this.observer.next(new ObservableData(LoadableEvent.FINISHED));
|
|
51
|
-
}
|
|
52
|
-
//--------------------------------------------------------------------------
|
|
53
|
-
//
|
|
54
|
-
// Event Handlers
|
|
55
|
-
//
|
|
56
|
-
//--------------------------------------------------------------------------
|
|
57
|
-
async readyHandler(event) {
|
|
58
|
-
this.start(LoadableStatus.LOADING);
|
|
59
|
-
try {
|
|
60
|
-
await this.updates.activateUpdate();
|
|
61
|
-
this.finish(LoadableStatus.LOADED);
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
this.finish(LoadableStatus.ERROR);
|
|
65
|
-
this.logger.error(`Unable to activate version: ${error}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async unrecoverableHandler(event) {
|
|
69
|
-
this.finish(LoadableStatus.ERROR);
|
|
70
|
-
this.logger.error(`Unable to update version: ${event.reason}`);
|
|
71
|
-
}
|
|
72
|
-
async detectedHandler(event) {
|
|
73
|
-
this.start(LoadableStatus.LOADING);
|
|
74
|
-
}
|
|
75
|
-
async installationFailedHandler(event) {
|
|
76
|
-
this.finish(LoadableStatus.ERROR);
|
|
77
|
-
}
|
|
78
|
-
async noNewVersionDetectedHandler(event) {
|
|
79
|
-
this.finish(LoadableStatus.NOT_LOADED);
|
|
80
|
-
}
|
|
81
|
-
//--------------------------------------------------------------------------
|
|
82
|
-
//
|
|
83
|
-
// Public Methods
|
|
84
|
-
//
|
|
85
|
-
//--------------------------------------------------------------------------
|
|
86
|
-
activateUpdate() {
|
|
87
|
-
return this.updates.activateUpdate();
|
|
88
|
-
}
|
|
89
|
-
checkForUpdate() {
|
|
90
|
-
return this.updates.checkForUpdate();
|
|
91
|
-
}
|
|
92
|
-
//--------------------------------------------------------------------------
|
|
93
|
-
//
|
|
94
|
-
// Public Properties
|
|
95
|
-
//
|
|
96
|
-
//--------------------------------------------------------------------------
|
|
97
|
-
get isEnabled() {
|
|
98
|
-
return this.updates.isEnabled;
|
|
99
|
-
}
|
|
100
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ServiceWorkerService, deps: [{ token: i1.SwUpdate }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
101
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ServiceWorkerService, providedIn: 'root' });
|
|
102
|
-
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ServiceWorkerService, decorators: [{
|
|
104
|
-
type: Injectable,
|
|
105
|
-
args: [{ providedIn: 'root' }]
|
|
106
|
-
}], ctorParameters: () => [{ type: i1.SwUpdate }, { type: i2.Logger }] });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZVdvcmtlclNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9TZXJ2aWNlV29ya2VyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBVSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUl6QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsUUFBUTtJQU94QjtJQUE2QjtJQU5uRCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNEVBQTRFO0lBRTVFLFlBQXNCLE9BQWlCLEVBQVksTUFBYztRQUM3RCxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRzdELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRyxPQUFPLENBQUMsY0FBYzthQUNqQixJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsRUFDL0MsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDNUI7YUFDQSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxjQUFjO2FBQ2pC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QztJQUN2QyxDQUFDO0lBRVMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLEtBQXFDO1FBQzNFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxLQUFLLENBQUMsMkJBQTJCLENBQUMsS0FBZ0M7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRiw0RUFBNEU7SUFFckUsY0FBYztRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVNLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNEVBQTRFO0lBRTVFLElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7d0dBbkhRLG9CQUFvQjs0R0FBcEIsb0JBQW9CLGNBRFAsTUFBTTs7NEZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE5vTmV3VmVyc2lvbkRldGVjdGVkRXZlbnQsXG4gICAgU3dVcGRhdGUsXG4gICAgVW5yZWNvdmVyYWJsZVN0YXRlRXZlbnQsXG4gICAgVmVyc2lvbkRldGVjdGVkRXZlbnQsXG4gICAgVmVyc2lvbkV2ZW50LFxuICAgIFZlcnNpb25JbnN0YWxsYXRpb25GYWlsZWRFdmVudCxcbiAgICBWZXJzaW9uUmVhZHlFdmVudFxufSBmcm9tICdAYW5ndWxhci9zZXJ2aWNlLXdvcmtlcic7XG5pbXBvcnQgeyBMb2FkYWJsZSwgTG9hZGFibGVFdmVudCwgTG9hZGFibGVTdGF0dXMsIExvZ2dlciwgT2JzZXJ2YWJsZURhdGEgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlV29ya2VyU2VydmljZSBleHRlbmRzIExvYWRhYmxlIHtcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdXBkYXRlczogU3dVcGRhdGUsIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlcikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHVwZGF0ZXMudW5yZWNvdmVyYWJsZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB0aGlzLnVucmVjb3ZlcmFibGVIYW5kbGVyKGV2ZW50KSk7XG4gICAgICAgIHVwZGF0ZXMudmVyc2lvblVwZGF0ZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC50eXBlID09PSAnVkVSU0lPTl9SRUFEWScpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy5yZWFkeUhhbmRsZXIoZXZlbnQgYXMgVmVyc2lvblJlYWR5RXZlbnQpKTtcbiAgICAgICAgdXBkYXRlcy52ZXJzaW9uVXBkYXRlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50LnR5cGUgPT09ICdWRVJTSU9OX0RFVEVDVEVEJyksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLmRldGVjdGVkSGFuZGxlcihldmVudCBhcyBWZXJzaW9uRGV0ZWN0ZWRFdmVudCkpO1xuICAgICAgICB1cGRhdGVzLnZlcnNpb25VcGRhdGVzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQudHlwZSA9PT0gJ05PX05FV19WRVJTSU9OX0RFVEVDVEVEJyksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLm5vTmV3VmVyc2lvbkRldGVjdGVkSGFuZGxlcihldmVudCBhcyBOb05ld1ZlcnNpb25EZXRlY3RlZEV2ZW50KSk7XG4gICAgICAgIHVwZGF0ZXMudmVyc2lvblVwZGF0ZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC50eXBlID09PSAnVkVSU0lPTl9JTlNUQUxMQVRJT05fRkFJTEVEJyksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB0aGlzLmluc3RhbGxhdGlvbkZhaWxlZEhhbmRsZXIoZXZlbnQgYXMgVmVyc2lvbkluc3RhbGxhdGlvbkZhaWxlZEV2ZW50KSk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHN0YXJ0KHZhbHVlOiBMb2FkYWJsZVN0YXR1cyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuc3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0dXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LlNUQVJURUQpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZmluaXNoKHZhbHVlOiBMb2FkYWJsZVN0YXR1cyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuc3RhdHVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0dXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LkZJTklTSEVEKSk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRFdmVudCBIYW5kbGVyc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIHJlYWR5SGFuZGxlcihldmVudDogVmVyc2lvblJlYWR5RXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zdGFydChMb2FkYWJsZVN0YXR1cy5MT0FESU5HKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlcy5hY3RpdmF0ZVVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goTG9hZGFibGVTdGF0dXMuTE9BREVEKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKExvYWRhYmxlU3RhdHVzLkVSUk9SKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBVbmFibGUgdG8gYWN0aXZhdGUgdmVyc2lvbjogJHtlcnJvcn1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyB1bnJlY292ZXJhYmxlSGFuZGxlcihldmVudDogVW5yZWNvdmVyYWJsZVN0YXRlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5maW5pc2goTG9hZGFibGVTdGF0dXMuRVJST1IpO1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgVW5hYmxlIHRvIHVwZGF0ZSB2ZXJzaW9uOiAke2V2ZW50LnJlYXNvbn1gKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgZGV0ZWN0ZWRIYW5kbGVyKGV2ZW50OiBWZXJzaW9uRGV0ZWN0ZWRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0YXJ0KExvYWRhYmxlU3RhdHVzLkxPQURJTkcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBpbnN0YWxsYXRpb25GYWlsZWRIYW5kbGVyKGV2ZW50OiBWZXJzaW9uSW5zdGFsbGF0aW9uRmFpbGVkRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5maW5pc2goTG9hZGFibGVTdGF0dXMuRVJST1IpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBub05ld1ZlcnNpb25EZXRlY3RlZEhhbmRsZXIoZXZlbnQ6IE5vTmV3VmVyc2lvbkRldGVjdGVkRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5maW5pc2goTG9hZGFibGVTdGF0dXMuTk9UX0xPQURFRCk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGFjdGl2YXRlVXBkYXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVzLmFjdGl2YXRlVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrRm9yVXBkYXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVzLmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZXMuaXNFbmFibGVkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export class CanDeactivateGuard {
|
|
2
|
-
// --------------------------------------------------------------------------
|
|
3
|
-
//
|
|
4
|
-
// Public Methods
|
|
5
|
-
//
|
|
6
|
-
// --------------------------------------------------------------------------
|
|
7
|
-
canDeactivate(component, currentRoute, currentState, nextState) {
|
|
8
|
-
return !component.isForceDeactivate ? component.isCanDeactivate(currentRoute, currentState, nextState) : true;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuRGVhY3RpdmF0ZUd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2Uvcm91dGUvQ2FuRGVhY3RpdmF0ZUd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxhQUFhLENBQ2hCLFNBQVksRUFDWixZQUFvQyxFQUNwQyxZQUFpQyxFQUNqQyxTQUErQjtRQUUvQixPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsSCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYW5EZWFjdGl2YXRlLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElSb3V0ZXJEZWFjdGl2YXRhYmxlIH0gZnJvbSAnLi9JUm91dGVyRGVhY3RpdmF0YWJsZSc7XG5cbmV4cG9ydCBjbGFzcyBDYW5EZWFjdGl2YXRlR3VhcmQ8VCBleHRlbmRzIElSb3V0ZXJEZWFjdGl2YXRhYmxlID0gSVJvdXRlckRlYWN0aXZhdGFibGU+IGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxUPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgY2FuRGVhY3RpdmF0ZShcbiAgICAgICAgY29tcG9uZW50OiBULFxuICAgICAgICBjdXJyZW50Um91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgICAgIGN1cnJlbnRTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgICAgICAgbmV4dFN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdFxuICAgICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIHJldHVybiAhY29tcG9uZW50LmlzRm9yY2VEZWFjdGl2YXRlID8gY29tcG9uZW50LmlzQ2FuRGVhY3RpdmF0ZShjdXJyZW50Um91dGUsIGN1cnJlbnRTdGF0ZSwgbmV4dFN0YXRlKSA6IHRydWU7XG4gICAgfVxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVJvdXRlckRlYWN0aXZhdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZS9yb3V0ZS9JUm91dGVyRGVhY3RpdmF0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlckRlYWN0aXZhdGFibGUge1xuICAgIGlzRm9yY2VEZWFjdGl2YXRlOiBib29sZWFuO1xuXG4gICAgaXNDYW5EZWFjdGl2YXRlKFxuICAgICAgICBjdXJyZW50Um91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgICAgIGN1cnJlbnRTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgICAgICAgbmV4dFN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdFxuICAgICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZTtcbn1cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ValueStorage } from './ValueStorage';
|
|
2
|
-
export class BooleanValueStorage extends ValueStorage {
|
|
3
|
-
//--------------------------------------------------------------------------
|
|
4
|
-
//
|
|
5
|
-
// Protected Methods
|
|
6
|
-
//
|
|
7
|
-
//--------------------------------------------------------------------------
|
|
8
|
-
serialize(value) {
|
|
9
|
-
return value === 'true';
|
|
10
|
-
}
|
|
11
|
-
deserialize(value) {
|
|
12
|
-
return value ? 'true' : 'false';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vbGVhblZhbHVlU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL0Jvb2xlYW5WYWx1ZVN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFxQjtJQUMxRCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNEVBQTRFO0lBRWxFLFNBQVMsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQWM7UUFDaEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3BDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbHVlU3RvcmFnZSB9IGZyb20gJy4vVmFsdWVTdG9yYWdlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIEJvb2xlYW5WYWx1ZVN0b3JhZ2UgZXh0ZW5kcyBWYWx1ZVN0b3JhZ2U8Ym9vbGVhbj4ge1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXJpYWxpemUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemUodmFsdWU6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { DateUtil } from '@ts-core/common';
|
|
2
|
-
import { ValueStorage } from './ValueStorage';
|
|
3
|
-
import * as _ from 'lodash';
|
|
4
|
-
export class DateValueStorage extends ValueStorage {
|
|
5
|
-
//--------------------------------------------------------------------------
|
|
6
|
-
//
|
|
7
|
-
// Public Methods
|
|
8
|
-
//
|
|
9
|
-
//--------------------------------------------------------------------------
|
|
10
|
-
defaultExpirationDelta = 0;
|
|
11
|
-
//--------------------------------------------------------------------------
|
|
12
|
-
//
|
|
13
|
-
// Protected Methods
|
|
14
|
-
//
|
|
15
|
-
//--------------------------------------------------------------------------
|
|
16
|
-
serialize(value) {
|
|
17
|
-
return new Date(value);
|
|
18
|
-
}
|
|
19
|
-
deserialize(value) {
|
|
20
|
-
return value.toISOString();
|
|
21
|
-
}
|
|
22
|
-
//--------------------------------------------------------------------------
|
|
23
|
-
//
|
|
24
|
-
// Public Methods
|
|
25
|
-
//
|
|
26
|
-
//--------------------------------------------------------------------------
|
|
27
|
-
isMore(item) {
|
|
28
|
-
return this.has() ? this.get().getTime() > item.getTime() : false;
|
|
29
|
-
}
|
|
30
|
-
isLess(item) {
|
|
31
|
-
return this.has() ? this.get().getTime() < item.getTime() : false;
|
|
32
|
-
}
|
|
33
|
-
isEqual(item) {
|
|
34
|
-
return this.has() ? this.get().getTime() === item.getTime() : false;
|
|
35
|
-
}
|
|
36
|
-
isExpired(item) {
|
|
37
|
-
return this.has() ? this.isLess(item) : true;
|
|
38
|
-
}
|
|
39
|
-
isExpiredFromNow(delta) {
|
|
40
|
-
if (_.isNil(delta)) {
|
|
41
|
-
delta = this.defaultExpirationDelta;
|
|
42
|
-
}
|
|
43
|
-
return this.isExpired(DateUtil.getDate(Date.now() + delta));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVZhbHVlU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL0RhdGVWYWx1ZVN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBa0I7SUFDcEQsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDRFQUE0RTtJQUVyRSxzQkFBc0IsR0FBVyxDQUFDLENBQUM7SUFFMUMsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDRFQUE0RTtJQUVsRSxTQUFTLENBQUMsS0FBYTtRQUM3QixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFUyxXQUFXLENBQUMsS0FBVztRQUM3QixPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDRFQUE0RTtJQUVyRSxNQUFNLENBQUMsSUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pCLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVVdGlsIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFZhbHVlU3RvcmFnZSB9IGZyb20gJy4vVmFsdWVTdG9yYWdlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIERhdGVWYWx1ZVN0b3JhZ2UgZXh0ZW5kcyBWYWx1ZVN0b3JhZ2U8RGF0ZT4ge1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBkZWZhdWx0RXhwaXJhdGlvbkRlbHRhOiBudW1iZXIgPSAwO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc2VyaWFsaXplKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGlzTW9yZShpdGVtOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhcygpID8gdGhpcy5nZXQoKS5nZXRUaW1lKCkgPiBpdGVtLmdldFRpbWUoKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0xlc3MoaXRlbTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXMoKSA/IHRoaXMuZ2V0KCkuZ2V0VGltZSgpIDwgaXRlbS5nZXRUaW1lKCkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFcXVhbChpdGVtOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhcygpID8gdGhpcy5nZXQoKS5nZXRUaW1lKCkgPT09IGl0ZW0uZ2V0VGltZSgpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXhwaXJlZChpdGVtOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhcygpID8gdGhpcy5pc0xlc3MoaXRlbSkgOiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0V4cGlyZWRGcm9tTm93KGRlbHRhPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChfLmlzTmlsKGRlbHRhKSkge1xuICAgICAgICAgICAgZGVsdGEgPSB0aGlzLmRlZmF1bHRFeHBpcmF0aW9uRGVsdGE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFeHBpcmVkKERhdGVVdGlsLmdldERhdGUoRGF0ZS5ub3coKSArIGRlbHRhKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVZhbHVlU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL0lWYWx1ZVN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEZXN0cm95YWJsZSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbHVlU3RvcmFnZTxUPiBleHRlbmRzIElEZXN0cm95YWJsZSB7XG4gICAgZ2V0KGRlZmF1bHRWYWx1ZT86IFQpOiBUO1xuICAgIHNldCh2YWx1ZTogVCk6IFQ7XG4gICAgaGFzKCk6IGJvb2xlYW47XG4gICAgZGVzdHJveSgpOiB2b2lkO1xuXG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { DestroyableContainer } from '@ts-core/common';
|
|
2
|
-
import * as _ from 'lodash';
|
|
3
|
-
export class LocalStorageService extends DestroyableContainer {
|
|
4
|
-
//--------------------------------------------------------------------------
|
|
5
|
-
//
|
|
6
|
-
// Properties
|
|
7
|
-
//
|
|
8
|
-
//--------------------------------------------------------------------------
|
|
9
|
-
storage;
|
|
10
|
-
//--------------------------------------------------------------------------
|
|
11
|
-
//
|
|
12
|
-
// Constructor
|
|
13
|
-
//
|
|
14
|
-
//--------------------------------------------------------------------------
|
|
15
|
-
constructor(storage) {
|
|
16
|
-
super();
|
|
17
|
-
this.storage = storage;
|
|
18
|
-
}
|
|
19
|
-
//--------------------------------------------------------------------------
|
|
20
|
-
//
|
|
21
|
-
// Public Methods
|
|
22
|
-
//
|
|
23
|
-
//--------------------------------------------------------------------------
|
|
24
|
-
get(key, defaultValue) {
|
|
25
|
-
if (_.isNil(this.storage)) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
return this.has(key) ? this.storage.getItem(key) : defaultValue;
|
|
29
|
-
}
|
|
30
|
-
has(key) {
|
|
31
|
-
if (_.isNil(this.storage)) {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
return !_.isNil(this.storage.getItem(key));
|
|
35
|
-
}
|
|
36
|
-
set(key, value) {
|
|
37
|
-
if (_.isNil(this.storage)) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
if (!_.isNil(value)) {
|
|
41
|
-
this.storage.setItem(key, value);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this.remove(key);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
remove(key) {
|
|
48
|
-
if (!_.isNil(this.storage)) {
|
|
49
|
-
this.storage.removeItem(key);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
clear() {
|
|
53
|
-
if (!_.isNil(this.storage)) {
|
|
54
|
-
this.storage.clear();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
destroy() {
|
|
58
|
-
if (this.isDestroyed) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
super.destroy();
|
|
62
|
-
this.storage = null;
|
|
63
|
-
}
|
|
64
|
-
//--------------------------------------------------------------------------
|
|
65
|
-
//
|
|
66
|
-
// Protected Properties
|
|
67
|
-
//
|
|
68
|
-
//--------------------------------------------------------------------------
|
|
69
|
-
get length() {
|
|
70
|
-
return this.storage.length;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL0xvY2FsU3RvcmFnZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG9CQUFvQjtJQUN6RCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNEVBQTRFO0lBRWxFLE9BQU8sQ0FBVTtJQUUzQiw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNEVBQTRFO0lBRTVFLFlBQVksT0FBZ0I7UUFDeEIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDRFQUE0RTtJQUVyRSxHQUFHLENBQUMsR0FBVyxFQUFFLFlBQXFCO1FBQ3pDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3BFLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNqQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBVztRQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDWCxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLHdCQUF3QjtJQUN4QixFQUFFO0lBQ0YsNEVBQTRFO0lBRTVFLElBQWMsTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lhYmxlQ29udGFpbmVyIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2UgZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciB7XG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgc3RvcmFnZTogU3RvcmFnZTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gc3RvcmFnZTtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoXy5pc05pbCh0aGlzLnN0b3JhZ2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5oYXMoa2V5KSA/IHRoaXMuc3RvcmFnZS5nZXRJdGVtKGtleSkgOiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoXy5pc05pbCh0aGlzLnN0b3JhZ2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuc3RvcmFnZS5nZXRJdGVtKGtleSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKF8uaXNOaWwodGhpcy5zdG9yYWdlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuc3RvcmFnZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLnN0b3JhZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmxlbmd0aDtcbiAgICB9XG59XG4iXX0=
|