@ts-core/angular 15.0.60 → 17.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset/AssetBackgroundDirective.d.ts +1 -1
- package/cookie/CookieService.d.ts +1 -3
- package/directive/AspectRatioResizeDirective.d.ts +1 -1
- package/directive/AutoScrollBottomDirective.d.ts +1 -1
- package/directive/ClickToCopyDirective.d.ts +1 -1
- package/directive/FocusDirective.d.ts +1 -1
- package/directive/HTMLContentTitleDirective.d.ts +1 -1
- package/directive/HTMLTitleDirective.d.ts +1 -1
- package/directive/InfiniteScrollDirective.d.ts +1 -1
- package/directive/ResizeDirective.d.ts +1 -1
- package/directive/ScrollCheckDirective.d.ts +1 -1
- package/directive/ScrollDirective.d.ts +1 -1
- package/esm2022/VIModule.mjs +190 -0
- package/esm2022/application/ApplicationBaseComponent.mjs +96 -0
- package/esm2022/application/ApplicationComponent.mjs +64 -0
- package/esm2022/application/MessageBaseComponent.mjs +60 -0
- package/esm2022/asset/AssetBackgroundDirective.mjs +152 -0
- package/{esm2020 → esm2022}/asset/AssetBackgroundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetFilePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetIconPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetImagePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetModule.mjs +5 -5
- package/{esm2020 → esm2022}/asset/AssetSoundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetVideoPipe.mjs +4 -4
- package/{esm2020 → esm2022}/cookie/CookieModule.mjs +5 -5
- package/{esm2020 → esm2022}/cookie/CookieOptions.mjs +7 -1
- package/esm2022/cookie/CookieService.mjs +71 -0
- package/esm2022/directive/AspectRatioResizeDirective.mjs +134 -0
- package/esm2022/directive/AutoScrollBottomDirective.mjs +122 -0
- package/esm2022/directive/ClickToCopyDirective.mjs +53 -0
- package/esm2022/directive/ClickToSelectDirective.mjs +55 -0
- package/esm2022/directive/FocusDirective.mjs +60 -0
- package/esm2022/directive/HTMLContentTitleDirective.mjs +74 -0
- package/esm2022/directive/HTMLTitleDirective.mjs +73 -0
- package/esm2022/directive/InfiniteScrollDirective.mjs +71 -0
- package/{esm2020 → esm2022}/directive/IsBrowserDirective.mjs +5 -5
- package/{esm2020 → esm2022}/directive/IsServerDirective.mjs +5 -5
- package/esm2022/directive/ResizeDirective.mjs +80 -0
- package/esm2022/directive/ScrollCheckDirective.mjs +104 -0
- package/esm2022/directive/ScrollDirective.mjs +120 -0
- package/esm2022/directive/SelectOnFocusDirective.mjs +48 -0
- package/esm2022/directive/StructureDirective.mjs +80 -0
- package/esm2022/language/LanguageDirective.mjs +102 -0
- package/esm2022/language/LanguageHasDirective.mjs +87 -0
- package/{esm2020 → esm2022}/language/LanguageModule.mjs +5 -5
- package/esm2022/language/LanguagePipe.mjs +88 -0
- package/esm2022/language/LanguagePipeHas.mjs +64 -0
- package/esm2022/language/LanguagePipeHasPure.mjs +41 -0
- package/esm2022/language/LanguagePipePure.mjs +40 -0
- package/esm2022/language/LanguageRequireResolver.mjs +37 -0
- package/{esm2020 → esm2022}/language/LanguageResolver.mjs +5 -5
- package/esm2022/list/ListItem.mjs +148 -0
- package/esm2022/list/ListItems.mjs +107 -0
- package/esm2022/list/select/RouterSelectListItems.mjs +60 -0
- package/esm2022/list/select/SelectListItem.mjs +67 -0
- package/esm2022/list/select/SelectListItems.mjs +130 -0
- package/esm2022/login/LoginBaseService.mjs +191 -0
- package/esm2022/login/LoginGuard.mjs +41 -0
- package/esm2022/login/LoginIfCanGuard.mjs +55 -0
- package/esm2022/login/LoginNotGuard.mjs +41 -0
- package/esm2022/login/LoginRequireResolver.mjs +40 -0
- package/{esm2020 → esm2022}/login/LoginResolver.mjs +6 -6
- package/esm2022/login/LoginTokenStorage.mjs +18 -0
- package/esm2022/manager/FocusManager.mjs +54 -0
- package/esm2022/manager/ResizeManager.mjs +90 -0
- package/esm2022/menu/MenuItem.mjs +20 -0
- package/esm2022/menu/MenuItemBase.mjs +56 -0
- package/esm2022/menu/MenuItems.mjs +111 -0
- package/esm2022/menu/NavigationMenuItem.mjs +20 -0
- package/esm2022/module/LazyModuleLoader.mjs +97 -0
- package/esm2022/notification/INotification.mjs +16 -0
- package/esm2022/notification/INotificationContent.mjs +141 -0
- package/esm2022/notification/NotificationConfig.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/CamelCasePipe.mjs +4 -4
- package/esm2022/pipe/FinancePipe.mjs +53 -0
- package/esm2022/pipe/MomentDateAdaptivePipe.mjs +51 -0
- package/{esm2020 → esm2022}/pipe/MomentDateFromNowPipe.mjs +4 -4
- package/esm2022/pipe/MomentDatePipe.mjs +71 -0
- package/esm2022/pipe/MomentTimePipe.mjs +35 -0
- package/esm2022/pipe/NgModelErrorPipe.mjs +43 -0
- package/esm2022/pipe/PrettifyPipe.mjs +38 -0
- package/esm2022/pipe/SanitizePipe.mjs +48 -0
- package/{esm2020 → esm2022}/pipe/StartCasePipe.mjs +4 -4
- package/esm2022/pipe/TimePipe.mjs +38 -0
- package/{esm2020 → esm2022}/pipe/TruncatePipe.mjs +4 -4
- package/esm2022/public-api.mjs +138 -0
- package/esm2022/question/QuestionManager.mjs +107 -0
- package/esm2022/service/PipeBaseService.mjs +140 -0
- package/esm2022/service/PlatformService.mjs +45 -0
- package/esm2022/service/RouterBaseService.mjs +236 -0
- package/esm2022/storage/DateValueStorage.mjs +46 -0
- package/esm2022/storage/LocalStorageService.mjs +58 -0
- package/esm2022/storage/ValueStorage.mjs +75 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetBackgroundDirective.mjs +5 -5
- package/esm2022/theme/ThemeAssetDirective.mjs +251 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetIconDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeAssetImageDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeModule.mjs +15 -15
- package/esm2022/theme/ThemeStyleDirective.mjs +125 -0
- package/esm2022/theme/ThemeStyleHoverDirective.mjs +107 -0
- package/esm2022/theme/ThemeToggleDirective.mjs +63 -0
- package/esm2022/transport/TransportLazy.mjs +93 -0
- package/esm2022/transport/TransportLazyModule.mjs +30 -0
- package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
- package/esm2022/user/IUser.mjs +9 -0
- package/esm2022/user/UserBaseService.mjs +124 -0
- package/esm2022/util/ViewUtil.mjs +589 -0
- package/esm2022/window/IWindow.mjs +31 -0
- package/esm2022/window/IWindowContent.mjs +142 -0
- package/esm2022/window/WindowBase.mjs +177 -0
- package/esm2022/window/WindowClosedError.mjs +19 -0
- package/esm2022/window/WindowConfig.mjs +218 -0
- package/{fesm2020 → fesm2022}/ts-core-angular.mjs +1118 -958
- package/fesm2022/ts-core-angular.mjs.map +1 -0
- package/language/LanguageDirective.d.ts +1 -1
- package/language/LanguageHasDirective.d.ts +1 -1
- package/module/LazyModuleLoader.d.ts +1 -1
- package/notification/INotificationContent.d.ts +1 -1
- package/notification/NotificationConfig.d.ts +1 -1
- package/notification/NotificationService.d.ts +1 -1
- package/package.json +19 -26
- package/pipe/MomentDatePipe.d.ts +1 -1
- package/public-api.d.ts +0 -2
- package/theme/ThemeAssetBackgroundDirective.d.ts +1 -1
- package/theme/ThemeAssetDirective.d.ts +1 -1
- package/theme/ThemeAssetIconDirective.d.ts +1 -1
- package/theme/ThemeAssetImageDirective.d.ts +1 -1
- package/theme/ThemeStyleDirective.d.ts +1 -1
- package/theme/ThemeStyleHoverDirective.d.ts +1 -1
- package/user/IUser.d.ts +1 -1
- package/util/ViewUtil.d.ts +1 -1
- package/window/IWindowContent.d.ts +2 -2
- package/window/WindowConfig.d.ts +1 -1
- package/window/WindowService.d.ts +1 -1
- package/esm2020/VIModule.mjs +0 -187
- package/esm2020/application/ApplicationBaseComponent.mjs +0 -88
- package/esm2020/application/ApplicationComponent.mjs +0 -58
- package/esm2020/application/MessageBaseComponent.mjs +0 -52
- package/esm2020/asset/AssetBackgroundDirective.mjs +0 -150
- package/esm2020/cookie/CookieService.mjs +0 -79
- package/esm2020/directive/AspectRatioResizeDirective.mjs +0 -131
- package/esm2020/directive/AutoScrollBottomDirective.mjs +0 -122
- package/esm2020/directive/ClickToCopyDirective.mjs +0 -49
- package/esm2020/directive/ClickToSelectDirective.mjs +0 -49
- package/esm2020/directive/FocusDirective.mjs +0 -54
- package/esm2020/directive/HTMLContentTitleDirective.mjs +0 -67
- package/esm2020/directive/HTMLTitleDirective.mjs +0 -66
- package/esm2020/directive/InfiniteScrollDirective.mjs +0 -74
- package/esm2020/directive/ResizeDirective.mjs +0 -79
- package/esm2020/directive/ScrollCheckDirective.mjs +0 -102
- package/esm2020/directive/ScrollDirective.mjs +0 -118
- package/esm2020/directive/SelectOnFocusDirective.mjs +0 -47
- package/esm2020/directive/StructureDirective.mjs +0 -71
- package/esm2020/form/FormElementAsync.mjs +0 -27
- package/esm2020/form/FormElementSync.mjs +0 -69
- package/esm2020/form/ValueAccessor.mjs +0 -62
- package/esm2020/form/validate.mjs +0 -59
- package/esm2020/language/LanguageDirective.mjs +0 -92
- package/esm2020/language/LanguageHasDirective.mjs +0 -80
- package/esm2020/language/LanguagePipe.mjs +0 -78
- package/esm2020/language/LanguagePipeHas.mjs +0 -56
- package/esm2020/language/LanguagePipeHasPure.mjs +0 -40
- package/esm2020/language/LanguagePipePure.mjs +0 -39
- package/esm2020/language/LanguageRequireResolver.mjs +0 -36
- package/esm2020/list/ListItem.mjs +0 -134
- package/esm2020/list/ListItems.mjs +0 -97
- package/esm2020/list/select/RouterSelectListItems.mjs +0 -53
- package/esm2020/list/select/SelectListItem.mjs +0 -59
- package/esm2020/list/select/SelectListItems.mjs +0 -121
- package/esm2020/login/LoginBaseService.mjs +0 -184
- package/esm2020/login/LoginGuard.mjs +0 -40
- package/esm2020/login/LoginIfCanGuard.mjs +0 -54
- package/esm2020/login/LoginNotGuard.mjs +0 -40
- package/esm2020/login/LoginRequireResolver.mjs +0 -39
- package/esm2020/login/LoginTokenStorage.mjs +0 -18
- package/esm2020/manager/FocusManager.mjs +0 -46
- package/esm2020/manager/ResizeManager.mjs +0 -81
- package/esm2020/menu/MenuItem.mjs +0 -13
- package/esm2020/menu/MenuItemBase.mjs +0 -46
- package/esm2020/menu/MenuItems.mjs +0 -102
- package/esm2020/menu/NavigationMenuItem.mjs +0 -14
- package/esm2020/module/LazyModuleLoader.mjs +0 -89
- package/esm2020/notification/INotification.mjs +0 -7
- package/esm2020/notification/INotificationContent.mjs +0 -132
- package/esm2020/notification/NotificationConfig.mjs +0 -16
- package/esm2020/pipe/FinancePipe.mjs +0 -53
- package/esm2020/pipe/MomentDateAdaptivePipe.mjs +0 -51
- package/esm2020/pipe/MomentDatePipe.mjs +0 -71
- package/esm2020/pipe/MomentTimePipe.mjs +0 -35
- package/esm2020/pipe/NgModelErrorPipe.mjs +0 -42
- package/esm2020/pipe/PrettifyPipe.mjs +0 -38
- package/esm2020/pipe/SanitizePipe.mjs +0 -47
- package/esm2020/pipe/TimePipe.mjs +0 -38
- package/esm2020/public-api.mjs +0 -141
- package/esm2020/question/QuestionManager.mjs +0 -93
- package/esm2020/service/PipeBaseService.mjs +0 -132
- package/esm2020/service/PlatformService.mjs +0 -38
- package/esm2020/service/RouterBaseService.mjs +0 -224
- package/esm2020/storage/DateValueStorage.mjs +0 -49
- package/esm2020/storage/LocalStorageService.mjs +0 -57
- package/esm2020/storage/ValueStorage.mjs +0 -67
- package/esm2020/theme/ThemeAssetDirective.mjs +0 -240
- package/esm2020/theme/ThemeStyleDirective.mjs +0 -115
- package/esm2020/theme/ThemeStyleHoverDirective.mjs +0 -107
- package/esm2020/theme/ThemeToggleDirective.mjs +0 -62
- package/esm2020/transport/TransportLazy.mjs +0 -92
- package/esm2020/transport/TransportLazyModule.mjs +0 -28
- package/esm2020/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
- package/esm2020/user/IUser.mjs +0 -3
- package/esm2020/user/UserBaseService.mjs +0 -116
- package/esm2020/util/ViewUtil.mjs +0 -589
- package/esm2020/window/IWindow.mjs +0 -33
- package/esm2020/window/IWindowContent.mjs +0 -135
- package/esm2020/window/WindowBase.mjs +0 -177
- package/esm2020/window/WindowClosedError.mjs +0 -19
- package/esm2020/window/WindowConfig.mjs +0 -197
- package/fesm2015/ts-core-angular.mjs +0 -7015
- package/fesm2015/ts-core-angular.mjs.map +0 -1
- package/fesm2020/ts-core-angular.mjs.map +0 -1
- package/form/FormElementAsync.d.ts +0 -13
- package/form/FormElementSync.d.ts +0 -22
- package/form/ValueAccessor.d.ts +0 -16
- package/form/validate.d.ts +0 -9
- /package/{esm2020 → esm2022}/ApplicationInjector.mjs +0 -0
- /package/{esm2020 → esm2022}/bottomSheet/BottomSheetService.mjs +0 -0
- /package/{esm2020 → esm2022}/list/IListItem.mjs +0 -0
- /package/{esm2020 → esm2022}/list/select/ISelectListItem.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/INotificationConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/NotificationService.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/NotificationServiceEvent.mjs +0 -0
- /package/{esm2020 → esm2022}/question/IQuestion.mjs +0 -0
- /package/{esm2020 → esm2022}/service/route/CanDeactivateGuard.mjs +0 -0
- /package/{esm2020 → esm2022}/service/route/IRouterDeactivatable.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/BooleanValueStorage.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/IValueStorage.mjs +0 -0
- /package/{esm2020 → esm2022}/ts-core-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/window/IWindowConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/window/WindowService.mjs +0 -0
- /package/{esm2020 → esm2022}/window/WindowServiceEvent.mjs +0 -0
|
@@ -16,5 +16,5 @@ export declare class LanguageDirective extends Destroyable {
|
|
|
16
16
|
set params(value: any);
|
|
17
17
|
get params(): any;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<LanguageDirective, never>;
|
|
19
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<LanguageDirective, "[vi-translate]", never, { "isNeedTitle": "isNeedTitle"; "key": "vi-translate"; "params": "params"; }, {}, never, never, false, never>;
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LanguageDirective, "[vi-translate]", never, { "isNeedTitle": { "alias": "isNeedTitle"; "required": false; }; "key": { "alias": "vi-translate"; "required": false; }; "params": { "alias": "params"; "required": false; }; }, {}, never, never, false, never>;
|
|
20
20
|
}
|
|
@@ -14,5 +14,5 @@ export declare class LanguageHasDirective<T = any> extends StructureDirective<T>
|
|
|
14
14
|
set viTranslateHasIsOnlyIfNotEmpty(value: boolean);
|
|
15
15
|
get viTranslateHasIsOnlyIfNotEmpty(): boolean;
|
|
16
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<LanguageHasDirective<any>, never>;
|
|
17
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<LanguageHasDirective<any>, "[viTranslateHas]", never, { "viTranslateHas": "viTranslateHas"; "viTranslateHasIsOnlyIfNotEmpty": "viTranslateHasIsOnlyIfNotEmpty"; }, {}, never, never, false, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LanguageHasDirective<any>, "[viTranslateHas]", never, { "viTranslateHas": { "alias": "viTranslateHas"; "required": false; }; "viTranslateHasIsOnlyIfNotEmpty": { "alias": "viTranslateHasIsOnlyIfNotEmpty"; "required": false; }; }, {}, never, never, false, never>;
|
|
18
18
|
}
|
|
@@ -21,4 +21,4 @@ export interface ILazyModuleData<T = any> {
|
|
|
21
21
|
path?: LazyModulePath<T>;
|
|
22
22
|
reference?: NgModuleRef<T>;
|
|
23
23
|
}
|
|
24
|
-
export
|
|
24
|
+
export type LazyModulePath<T> = () => Promise<NgModuleFactory<T> | Type<T>>;
|
|
@@ -27,5 +27,5 @@ export declare abstract class INotificationContent<T = any> extends DestroyableC
|
|
|
27
27
|
set config(value: INotificationConfig<T>);
|
|
28
28
|
get config(): INotificationConfig<T>;
|
|
29
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<INotificationContent<any>, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<INotificationContent<any>, "ng-component", never, { "config": "config"; }, {}, never, never, false, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<INotificationContent<any>, "ng-component", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
|
|
31
31
|
}
|
|
@@ -9,6 +9,6 @@ export declare class NotificationConfig<T = any> extends WindowConfig<T> impleme
|
|
|
9
9
|
isRemoveAfterClose: boolean;
|
|
10
10
|
constructor(data?: T);
|
|
11
11
|
}
|
|
12
|
-
export
|
|
12
|
+
export type NotificationConfigOptions<T = any> = {
|
|
13
13
|
[P in keyof NotificationConfig<T>]?: any;
|
|
14
14
|
};
|
|
@@ -20,4 +20,4 @@ export declare abstract class NotificationService extends Destroyable {
|
|
|
20
20
|
abstract get closedConfigs(): Array<INotificationConfig>;
|
|
21
21
|
abstract get notifications(): Map<INotificationConfig, INotificationContent>;
|
|
22
22
|
}
|
|
23
|
-
export
|
|
23
|
+
export type NotificationId<T> = string | INotificationConfig<T> | NotificationConfigOptions<T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-core/angular",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.10",
|
|
4
4
|
"description": "Modules for frontend based on angular",
|
|
5
5
|
"main": "public-api.js",
|
|
6
6
|
"author": {
|
|
@@ -9,24 +9,23 @@
|
|
|
9
9
|
},
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"peerDependencies": {
|
|
12
|
-
"@angular/animations": "^
|
|
13
|
-
"@angular/common": "^
|
|
14
|
-
"@angular/compiler": "^
|
|
15
|
-
"@angular/core": "^
|
|
16
|
-
"@angular/forms": "^
|
|
17
|
-
"@angular/platform-browser": "^
|
|
18
|
-
"@angular/platform-browser-dynamic": "^
|
|
19
|
-
"@angular/router": "^
|
|
20
|
-
"@
|
|
21
|
-
"@ts-core/common": "~3.0.47",
|
|
12
|
+
"@angular/animations": "^17.0.8",
|
|
13
|
+
"@angular/common": "^17.0.8",
|
|
14
|
+
"@angular/compiler": "^17.0.8",
|
|
15
|
+
"@angular/core": "^17.0.8",
|
|
16
|
+
"@angular/forms": "^17.0.8",
|
|
17
|
+
"@angular/platform-browser": "^17.0.8",
|
|
18
|
+
"@angular/platform-browser-dynamic": "^17.0.8",
|
|
19
|
+
"@angular/router": "^17.0.8",
|
|
20
|
+
"@ts-core/common": "~3.0.48",
|
|
22
21
|
"@ts-core/frontend": "~3.0.14",
|
|
23
|
-
"@types/numeral": "^2.0.
|
|
22
|
+
"@types/numeral": "^2.0.5",
|
|
24
23
|
"interactjs": "1.10.11",
|
|
25
|
-
"moment": "^2.
|
|
26
|
-
"ngx-cookie": "^
|
|
24
|
+
"moment": "^2.30.1",
|
|
25
|
+
"ngx-cookie": "^6.0.1",
|
|
27
26
|
"numeral": "^2.0.6",
|
|
28
27
|
"rxjs": "^7.8.0",
|
|
29
|
-
"zone.js": "^0.
|
|
28
|
+
"zone.js": "^0.14.2"
|
|
30
29
|
},
|
|
31
30
|
"repository": {
|
|
32
31
|
"type": "git",
|
|
@@ -39,11 +38,7 @@
|
|
|
39
38
|
"url": "https://github.com/ManhattanDoctor/ts-core-frontend-angular/issues"
|
|
40
39
|
},
|
|
41
40
|
"homepage": "https://github.com/ManhattanDoctor/ts-core-frontend-angular#readme",
|
|
42
|
-
"module": "
|
|
43
|
-
"es2020": "fesm2020/ts-core-angular.mjs",
|
|
44
|
-
"esm2020": "esm2020/ts-core-angular.mjs",
|
|
45
|
-
"fesm2020": "fesm2020/ts-core-angular.mjs",
|
|
46
|
-
"fesm2015": "fesm2015/ts-core-angular.mjs",
|
|
41
|
+
"module": "fesm2022/ts-core-angular.mjs",
|
|
47
42
|
"typings": "index.d.ts",
|
|
48
43
|
"exports": {
|
|
49
44
|
"./package.json": {
|
|
@@ -51,15 +46,13 @@
|
|
|
51
46
|
},
|
|
52
47
|
".": {
|
|
53
48
|
"types": "./index.d.ts",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"node": "./fesm2015/ts-core-angular.mjs",
|
|
58
|
-
"default": "./fesm2020/ts-core-angular.mjs"
|
|
49
|
+
"esm2022": "./esm2022/ts-core-angular.mjs",
|
|
50
|
+
"esm": "./esm2022/ts-core-angular.mjs",
|
|
51
|
+
"default": "./fesm2022/ts-core-angular.mjs"
|
|
59
52
|
}
|
|
60
53
|
},
|
|
61
54
|
"sideEffects": false,
|
|
62
55
|
"dependencies": {
|
|
63
|
-
"tslib": "^2.
|
|
56
|
+
"tslib": "^2.6.0"
|
|
64
57
|
}
|
|
65
58
|
}
|
package/pipe/MomentDatePipe.d.ts
CHANGED
|
@@ -10,4 +10,4 @@ export declare class MomentDatePipe implements PipeTransform {
|
|
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<MomentDatePipe, never>;
|
|
11
11
|
static ɵpipe: i0.ɵɵPipeDeclaration<MomentDatePipe, "viMomentDate", false>;
|
|
12
12
|
}
|
|
13
|
-
export
|
|
13
|
+
export type MomentAvailableType = Date | Moment | string | number;
|
package/public-api.d.ts
CHANGED
|
@@ -28,8 +28,6 @@ export * from './directive/HTMLTitleDirective';
|
|
|
28
28
|
export * from './directive/HTMLContentTitleDirective';
|
|
29
29
|
export * from './directive/IsBrowserDirective';
|
|
30
30
|
export * from './directive/IsServerDirective';
|
|
31
|
-
export * from './form/FormElementAsync';
|
|
32
|
-
export * from './form/FormElementSync';
|
|
33
31
|
export * from './language/LanguageModule';
|
|
34
32
|
export * from './language/LanguagePipe';
|
|
35
33
|
export * from './language/LanguagePipePure';
|
|
@@ -9,5 +9,5 @@ export declare class ThemeAssetBackgroundDirective extends ThemeAssetDirective {
|
|
|
9
9
|
set name(value: string);
|
|
10
10
|
get name(): string;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeAssetBackgroundDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetBackgroundDirective, "[vi-theme-background]", never, { "name": "vi-theme-background"; }, {}, never, never, false, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetBackgroundDirective, "[vi-theme-background]", never, { "name": { "alias": "vi-theme-background"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
13
|
}
|
|
@@ -46,5 +46,5 @@ export declare abstract class ThemeAssetDirective<T extends HTMLElement = HTMLEl
|
|
|
46
46
|
get extension(): string;
|
|
47
47
|
set extension(value: string);
|
|
48
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeAssetDirective<any>, never>;
|
|
49
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetDirective<any>, never, never, { "isSound": "isSound"; "isVideo": "isVideo"; "isFile": "isFile"; "isImage": "isImage"; "isBackground": "isBackground"; "isIgnoreTheme": "isIgnoreTheme"; "name": "name"; "extension": "extension"; }, {}, never, never, false, never>;
|
|
49
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetDirective<any>, never, never, { "isSound": { "alias": "isSound"; "required": false; }; "isVideo": { "alias": "isVideo"; "required": false; }; "isFile": { "alias": "isFile"; "required": false; }; "isImage": { "alias": "isImage"; "required": false; }; "isBackground": { "alias": "isBackground"; "required": false; }; "isIgnoreTheme": { "alias": "isIgnoreTheme"; "required": false; }; "name": { "alias": "name"; "required": false; }; "extension": { "alias": "extension"; "required": false; }; }, {}, never, never, false, never>;
|
|
50
50
|
}
|
|
@@ -9,5 +9,5 @@ export declare class ThemeAssetIconDirective extends ThemeAssetDirective<HTMLIma
|
|
|
9
9
|
set name(value: string);
|
|
10
10
|
get name(): string;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeAssetIconDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetIconDirective, "[vi-theme-icon]", never, { "name": "vi-theme-icon"; }, {}, never, never, false, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetIconDirective, "[vi-theme-icon]", never, { "name": { "alias": "vi-theme-icon"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
13
|
}
|
|
@@ -9,5 +9,5 @@ export declare class ThemeAssetImageDirective extends ThemeAssetDirective<HTMLIm
|
|
|
9
9
|
set name(value: string);
|
|
10
10
|
get name(): string;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeAssetImageDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetImageDirective, "[vi-theme-image]", never, { "name": "vi-theme-image"; }, {}, never, never, false, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeAssetImageDirective, "[vi-theme-image]", never, { "name": { "alias": "vi-theme-image"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
13
|
}
|
|
@@ -23,5 +23,5 @@ export declare class ThemeStyleDirective extends Destroyable {
|
|
|
23
23
|
get key(): string;
|
|
24
24
|
set key(value: string);
|
|
25
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeStyleDirective, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeStyleDirective, "[vi-theme-style]", never, { "flags": "flags"; "styleName": "styleName"; "key": "vi-theme-style"; }, {}, never, never, false, never>;
|
|
26
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeStyleDirective, "[vi-theme-style]", never, { "flags": { "alias": "flags"; "required": false; }; "styleName": { "alias": "styleName"; "required": false; }; "key": { "alias": "vi-theme-style"; "required": false; }; }, {}, never, never, false, never>;
|
|
27
27
|
}
|
|
@@ -19,5 +19,5 @@ export declare class ThemeStyleHoverDirective extends ThemeStyleDirective {
|
|
|
19
19
|
get flags(): RendererStyleFlags2;
|
|
20
20
|
set flags(value: RendererStyleFlags2);
|
|
21
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeStyleHoverDirective, never>;
|
|
22
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeStyleHoverDirective, "[vi-theme-style-hover]", never, { "key": "vi-theme-style-hover"; "styleName": "styleName"; "flags": "flags"; }, {}, never, never, false, never>;
|
|
22
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThemeStyleHoverDirective, "[vi-theme-style-hover]", never, { "key": { "alias": "vi-theme-style-hover"; "required": false; }; "styleName": { "alias": "styleName"; "required": false; }; "flags": { "alias": "flags"; "required": false; }; }, {}, never, never, false, never>;
|
|
23
23
|
}
|
package/user/IUser.d.ts
CHANGED
package/util/ViewUtil.d.ts
CHANGED
|
@@ -68,4 +68,4 @@ export declare class ViewUtil {
|
|
|
68
68
|
static disposeObjects(container: IViewElement, isIEBrowser?: boolean): void;
|
|
69
69
|
static disposeObject(object: HTMLObjectElement, isIEBrowser?: boolean): void;
|
|
70
70
|
}
|
|
71
|
-
export
|
|
71
|
+
export type IViewElement<T extends HTMLElement = HTMLElement> = HTMLElement | ElementRef<T> | ViewContainerRef;
|
|
@@ -28,7 +28,7 @@ export declare abstract class IWindowContent<T = any> extends DestroyableContain
|
|
|
28
28
|
get window(): IWindow<T>;
|
|
29
29
|
set window(value: IWindow<T>);
|
|
30
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<IWindowContent<any>, [{ optional: true; }]>;
|
|
31
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IWindowContent<any>, "ng-component", never, { "isDisabled": "isDisabled"; "window": "window"; }, {}, never, never, false, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IWindowContent<any>, "ng-component", never, { "isDisabled": { "alias": "isDisabled"; "required": false; }; "window": { "alias": "window"; "required": false; }; }, {}, never, never, false, never>;
|
|
32
32
|
}
|
|
33
|
-
export
|
|
33
|
+
export type WindowContentContainer = ElementRef | ViewContainerRef;
|
|
34
34
|
export declare const WINDOW_CONTENT_CONTAINER: InjectionToken<WindowContentContainer>;
|
package/window/WindowConfig.d.ts
CHANGED
|
@@ -57,6 +57,6 @@ export declare class WindowConfig<T = any> implements IWindowConfig<T>, IDestroy
|
|
|
57
57
|
get elementMinHeight(): number;
|
|
58
58
|
get elementMaxHeight(): number;
|
|
59
59
|
}
|
|
60
|
-
export
|
|
60
|
+
export type WindowConfigOptions<T = any> = {
|
|
61
61
|
[P in keyof WindowConfig<T>]?: any;
|
|
62
62
|
};
|
|
@@ -18,4 +18,4 @@ export declare abstract class WindowService extends Destroyable {
|
|
|
18
18
|
abstract get events(): Observable<ObservableData<WindowServiceEvent, IWindow>>;
|
|
19
19
|
abstract get windows(): Map<IWindowConfig, IWindowContent>;
|
|
20
20
|
}
|
|
21
|
-
export
|
|
21
|
+
export type WindowId<T> = string | IWindowConfig<T>;
|
package/esm2020/VIModule.mjs
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { APP_INITIALIZER, InjectionToken, NgModule, RendererFactory2 } from '@angular/core';
|
|
2
|
-
import { Logger, LoggerLevel } from '@ts-core/common';
|
|
3
|
-
import { ICookieOptions } from '@ts-core/frontend';
|
|
4
|
-
import { DefaultLogger } from '@ts-core/frontend';
|
|
5
|
-
import { LoadingService, NativeWindowService } from '@ts-core/frontend';
|
|
6
|
-
import { AssetModule } from './asset/AssetModule';
|
|
7
|
-
import { CookieModule } from './cookie/CookieModule';
|
|
8
|
-
import { CanDeactivateGuard } from './service/route/CanDeactivateGuard';
|
|
9
|
-
import { AspectRatioResizeDirective } from './directive/AspectRatioResizeDirective';
|
|
10
|
-
import { AutoScrollBottomDirective } from './directive/AutoScrollBottomDirective';
|
|
11
|
-
import { ClickToCopyDirective } from './directive/ClickToCopyDirective';
|
|
12
|
-
import { ClickToSelectDirective } from './directive/ClickToSelectDirective';
|
|
13
|
-
import { FocusDirective } from './directive/FocusDirective';
|
|
14
|
-
import { SelectOnFocusDirective } from './directive/SelectOnFocusDirective';
|
|
15
|
-
import { HTMLTitleDirective } from './directive/HTMLTitleDirective';
|
|
16
|
-
import { HTMLContentTitleDirective } from './directive/HTMLContentTitleDirective';
|
|
17
|
-
import { InfiniteScrollDirective } from './directive/InfiniteScrollDirective';
|
|
18
|
-
import { ResizeDirective } from './directive/ResizeDirective';
|
|
19
|
-
import { ScrollCheckDirective } from './directive/ScrollCheckDirective';
|
|
20
|
-
import { ScrollDirective } from './directive/ScrollDirective';
|
|
21
|
-
import { LanguageModule } from './language/LanguageModule';
|
|
22
|
-
import { CamelCasePipe } from './pipe/CamelCasePipe';
|
|
23
|
-
import { FinancePipe } from './pipe/FinancePipe';
|
|
24
|
-
import { MomentDateAdaptivePipe } from './pipe/MomentDateAdaptivePipe';
|
|
25
|
-
import { MomentDateFromNowPipe } from './pipe/MomentDateFromNowPipe';
|
|
26
|
-
import { MomentDatePipe } from './pipe/MomentDatePipe';
|
|
27
|
-
import { MomentTimePipe } from './pipe/MomentTimePipe';
|
|
28
|
-
import { NgModelErrorPipe } from './pipe/NgModelErrorPipe';
|
|
29
|
-
import { SanitizePipe } from './pipe/SanitizePipe';
|
|
30
|
-
import { StartCasePipe } from './pipe/StartCasePipe';
|
|
31
|
-
import { TimePipe } from './pipe/TimePipe';
|
|
32
|
-
import { TruncatePipe } from './pipe/TruncatePipe';
|
|
33
|
-
import { PrettifyPipe } from './pipe/PrettifyPipe';
|
|
34
|
-
import { ThemeModule } from './theme/ThemeModule';
|
|
35
|
-
import { IsServerDirective } from './directive/IsServerDirective';
|
|
36
|
-
import { IsBrowserDirective } from './directive/IsBrowserDirective';
|
|
37
|
-
import { DOCUMENT } from '@angular/common';
|
|
38
|
-
import { PlatformService } from './service/PlatformService';
|
|
39
|
-
import { ViewUtil } from './util/ViewUtil';
|
|
40
|
-
import { CookieService } from './cookie/CookieService';
|
|
41
|
-
import { LoginTokenStorage } from './login/LoginTokenStorage';
|
|
42
|
-
import { LocalStorageService } from './storage/LocalStorageService';
|
|
43
|
-
import * as _ from 'lodash';
|
|
44
|
-
import * as i0 from "@angular/core";
|
|
45
|
-
let imports = [CookieModule, ThemeModule, LanguageModule, AssetModule];
|
|
46
|
-
let declarations = [
|
|
47
|
-
TimePipe,
|
|
48
|
-
FinancePipe,
|
|
49
|
-
SanitizePipe,
|
|
50
|
-
TruncatePipe,
|
|
51
|
-
PrettifyPipe,
|
|
52
|
-
CamelCasePipe,
|
|
53
|
-
StartCasePipe,
|
|
54
|
-
NgModelErrorPipe,
|
|
55
|
-
IsServerDirective,
|
|
56
|
-
IsBrowserDirective,
|
|
57
|
-
MomentDatePipe,
|
|
58
|
-
MomentTimePipe,
|
|
59
|
-
MomentDateFromNowPipe,
|
|
60
|
-
MomentDateAdaptivePipe,
|
|
61
|
-
FocusDirective,
|
|
62
|
-
ResizeDirective,
|
|
63
|
-
ScrollDirective,
|
|
64
|
-
ScrollCheckDirective,
|
|
65
|
-
ClickToCopyDirective,
|
|
66
|
-
SelectOnFocusDirective,
|
|
67
|
-
ClickToSelectDirective,
|
|
68
|
-
InfiniteScrollDirective,
|
|
69
|
-
HTMLTitleDirective,
|
|
70
|
-
HTMLContentTitleDirective,
|
|
71
|
-
AutoScrollBottomDirective,
|
|
72
|
-
AspectRatioResizeDirective
|
|
73
|
-
];
|
|
74
|
-
let exports = [...imports, ...declarations];
|
|
75
|
-
export class VIModule {
|
|
76
|
-
// --------------------------------------------------------------------------
|
|
77
|
-
//
|
|
78
|
-
// Static Methods
|
|
79
|
-
//
|
|
80
|
-
// --------------------------------------------------------------------------
|
|
81
|
-
static forRoot(options) {
|
|
82
|
-
return {
|
|
83
|
-
ngModule: VIModule,
|
|
84
|
-
providers: [
|
|
85
|
-
{
|
|
86
|
-
provide: APP_INITIALIZER,
|
|
87
|
-
deps: [NativeWindowService, RendererFactory2],
|
|
88
|
-
useFactory: initializerFactory,
|
|
89
|
-
multi: true
|
|
90
|
-
},
|
|
91
|
-
LoadingService,
|
|
92
|
-
PlatformService,
|
|
93
|
-
CanDeactivateGuard,
|
|
94
|
-
{ provide: VI_ANGULAR_OPTIONS, useValue: options || {} },
|
|
95
|
-
{ provide: Logger, deps: [VI_ANGULAR_OPTIONS], useFactory: loggerServiceFactory },
|
|
96
|
-
{ provide: NativeWindowService, deps: [DOCUMENT], useFactory: nativeWindowServiceFactory },
|
|
97
|
-
{ provide: LocalStorageService, deps: [NativeWindowService], useFactory: localStorageServiceFactory },
|
|
98
|
-
{ provide: LoginTokenStorage, deps: [LocalStorageService, CookieService], useFactory: loginTokenStorageServiceFactory },
|
|
99
|
-
...CookieModule.forRoot(options).providers,
|
|
100
|
-
...ThemeModule.forRoot(options ? options.themeOptions : null).providers,
|
|
101
|
-
...LanguageModule.forRoot(options ? options.languageOptions : null).providers
|
|
102
|
-
]
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
VIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: VIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
107
|
-
VIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: VIModule, declarations: [TimePipe,
|
|
108
|
-
FinancePipe,
|
|
109
|
-
SanitizePipe,
|
|
110
|
-
TruncatePipe,
|
|
111
|
-
PrettifyPipe,
|
|
112
|
-
CamelCasePipe,
|
|
113
|
-
StartCasePipe,
|
|
114
|
-
NgModelErrorPipe,
|
|
115
|
-
IsServerDirective,
|
|
116
|
-
IsBrowserDirective,
|
|
117
|
-
MomentDatePipe,
|
|
118
|
-
MomentTimePipe,
|
|
119
|
-
MomentDateFromNowPipe,
|
|
120
|
-
MomentDateAdaptivePipe,
|
|
121
|
-
FocusDirective,
|
|
122
|
-
ResizeDirective,
|
|
123
|
-
ScrollDirective,
|
|
124
|
-
ScrollCheckDirective,
|
|
125
|
-
ClickToCopyDirective,
|
|
126
|
-
SelectOnFocusDirective,
|
|
127
|
-
ClickToSelectDirective,
|
|
128
|
-
InfiniteScrollDirective,
|
|
129
|
-
HTMLTitleDirective,
|
|
130
|
-
HTMLContentTitleDirective,
|
|
131
|
-
AutoScrollBottomDirective,
|
|
132
|
-
AspectRatioResizeDirective], imports: [CookieModule, ThemeModule, LanguageModule, AssetModule], exports: [CookieModule, ThemeModule, LanguageModule, AssetModule, TimePipe,
|
|
133
|
-
FinancePipe,
|
|
134
|
-
SanitizePipe,
|
|
135
|
-
TruncatePipe,
|
|
136
|
-
PrettifyPipe,
|
|
137
|
-
CamelCasePipe,
|
|
138
|
-
StartCasePipe,
|
|
139
|
-
NgModelErrorPipe,
|
|
140
|
-
IsServerDirective,
|
|
141
|
-
IsBrowserDirective,
|
|
142
|
-
MomentDatePipe,
|
|
143
|
-
MomentTimePipe,
|
|
144
|
-
MomentDateFromNowPipe,
|
|
145
|
-
MomentDateAdaptivePipe,
|
|
146
|
-
FocusDirective,
|
|
147
|
-
ResizeDirective,
|
|
148
|
-
ScrollDirective,
|
|
149
|
-
ScrollCheckDirective,
|
|
150
|
-
ClickToCopyDirective,
|
|
151
|
-
SelectOnFocusDirective,
|
|
152
|
-
ClickToSelectDirective,
|
|
153
|
-
InfiniteScrollDirective,
|
|
154
|
-
HTMLTitleDirective,
|
|
155
|
-
HTMLContentTitleDirective,
|
|
156
|
-
AutoScrollBottomDirective,
|
|
157
|
-
AspectRatioResizeDirective] });
|
|
158
|
-
VIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: VIModule, imports: [imports, CookieModule, ThemeModule, LanguageModule, AssetModule] });
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: VIModule, decorators: [{
|
|
160
|
-
type: NgModule,
|
|
161
|
-
args: [{
|
|
162
|
-
imports,
|
|
163
|
-
declarations,
|
|
164
|
-
exports
|
|
165
|
-
}]
|
|
166
|
-
}] });
|
|
167
|
-
export class IVIOptions extends ICookieOptions {
|
|
168
|
-
}
|
|
169
|
-
export function initializerFactory(nativeWindow, rendererFactory2) {
|
|
170
|
-
ViewUtil.renderer = rendererFactory2.createRenderer(null, null);
|
|
171
|
-
ViewUtil.document = nativeWindow.document;
|
|
172
|
-
return () => Promise.resolve();
|
|
173
|
-
}
|
|
174
|
-
export function loggerServiceFactory(options) {
|
|
175
|
-
return new DefaultLogger(!_.isNil(options.loggerLevel) ? options.loggerLevel : LoggerLevel.ALL);
|
|
176
|
-
}
|
|
177
|
-
export function nativeWindowServiceFactory(document) {
|
|
178
|
-
return new NativeWindowService(document);
|
|
179
|
-
}
|
|
180
|
-
export function localStorageServiceFactory(nativeWindow) {
|
|
181
|
-
return new LocalStorageService(nativeWindow);
|
|
182
|
-
}
|
|
183
|
-
export function loginTokenStorageServiceFactory(storage, cookies) {
|
|
184
|
-
return new LoginTokenStorage(storage, cookies);
|
|
185
|
-
}
|
|
186
|
-
export const VI_ANGULAR_OPTIONS = new InjectionToken(`VI_ANGULAR_OPTIONS`);
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVklNb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVklNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQXVCLFFBQVEsRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQVcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFD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QyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEUsUUFBUSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzFDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBbUI7SUFDcEQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEcsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFrQjtJQUN6RCxPQUFPLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxZQUFpQztJQUN4RSxPQUFPLElBQUksbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxPQUE0QixFQUFFLE9BQXNCO0lBQ2hHLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFhLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdGlvblRva2VuLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTG9nZ2VyLCBMb2dnZXIsIExvZ2dlckxldmVsIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IElDb29raWVPcHRpb25zIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQnO1xuaW1wb3J0IHsgSUxhbmd1YWdlU2VydmljZU9wdGlvbnMgfSBmcm9tICdAdHMtY29yZS9mcm9udGVuZCc7XG5pbXBvcnQgeyBEZWZhdWx0TG9nZ2VyIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQnO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UsIE5hdGl2ZVdpbmRvd1NlcnZpY2UgfSBmcm9tICdAdHMtY29yZS9mcm9udGVuZCc7XG5pbXBvcnQgeyBJVGhlbWVTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kJztcbmltcG9ydCB7IEFzc2V0TW9kdWxlIH0gZnJvbSAnLi9hc3NldC9Bc3NldE1vZHVsZSc7XG5pbXBvcnQgeyBDb29raWVNb2R1bGUgfSBmcm9tICcuL2Nvb2tpZS9Db29raWVNb2R1bGUnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZUd1YXJkIH0gZnJvbSAnLi9zZXJ2aWNlL3JvdXRlL0NhbkRlYWN0aXZhdGVHdWFyZCc7XG5pbXBvcnQgeyBBc3BlY3RSYXRpb1Jlc2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL0FzcGVjdFJhdGlvUmVzaXplRGlyZWN0aXZlJztcbmltcG9ydCB7IEF1dG9TY3JvbGxCb3R0b21EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9BdXRvU2Nyb2xsQm90dG9tRGlyZWN0aXZlJztcbmltcG9ydCB7IENsaWNrVG9Db3B5RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvQ2xpY2tUb0NvcHlEaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xpY2tUb1NlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL0NsaWNrVG9TZWxlY3REaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9Gb2N1c0RpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTZWxlY3RPbkZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvU2VsZWN0T25Gb2N1c0RpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIVE1MVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9IVE1MVGl0bGVEaXJlY3RpdmUnO1xuaW1wb3J0IHsgSFRNTENvbnRlbnRUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL0hUTUxDb250ZW50VGl0bGVEaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9JbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZXNpemVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9SZXNpemVEaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2Nyb2xsQ2hlY2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9TY3JvbGxDaGVja0RpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS9TY3JvbGxEaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICcuL2xhbmd1YWdlL0xhbmd1YWdlTW9kdWxlJztcbmltcG9ydCB7IENhbWVsQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGUvQ2FtZWxDYXNlUGlwZSc7XG5pbXBvcnQgeyBGaW5hbmNlUGlwZSB9IGZyb20gJy4vcGlwZS9GaW5hbmNlUGlwZSc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRpdmVQaXBlIH0gZnJvbSAnLi9waXBlL01vbWVudERhdGVBZGFwdGl2ZVBpcGUnO1xuaW1wb3J0IHsgTW9tZW50RGF0ZUZyb21Ob3dQaXBlIH0gZnJvbSAnLi9waXBlL01vbWVudERhdGVGcm9tTm93UGlwZSc7XG5pbXBvcnQgeyBNb21lbnREYXRlUGlwZSB9IGZyb20gJy4vcGlwZS9Nb21lbnREYXRlUGlwZSc7XG5pbXBvcnQgeyBNb21lbnRUaW1lUGlwZSB9IGZyb20gJy4vcGlwZS9Nb21lbnRUaW1lUGlwZSc7XG5pbXBvcnQgeyBOZ01vZGVsRXJyb3JQaXBlIH0gZnJvbSAnLi9waXBlL05nTW9kZWxFcnJvclBpcGUnO1xuaW1wb3J0IHsgU2FuaXRpemVQaXBlIH0gZnJvbSAnLi9waXBlL1Nhbml0aXplUGlwZSc7XG5pbXBvcnQgeyBTdGFydENhc2VQaXBlIH0gZnJvbSAnLi9waXBlL1N0YXJ0Q2FzZVBpcGUnO1xuaW1wb3J0IHsgVGltZVBpcGUgfSBmcm9tICcuL3BpcGUvVGltZVBpcGUnO1xuaW1wb3J0IHsgVHJ1bmNhdGVQaXBlIH0gZnJvbSAnLi9waXBlL1RydW5jYXRlUGlwZSc7XG5pbXBvcnQgeyBQcmV0dGlmeVBpcGUgfSBmcm9tICcuL3BpcGUvUHJldHRpZnlQaXBlJztcbmltcG9ydCB7IFRoZW1lTW9kdWxlIH0gZnJvbSAnLi90aGVtZS9UaGVtZU1vZHVsZSc7XG5pbXBvcnQgeyBJc1NlcnZlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL0lzU2VydmVyRGlyZWN0aXZlJztcbmltcG9ydCB7IElzQnJvd3NlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL0lzQnJvd3NlckRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvUGxhdGZvcm1TZXJ2aWNlJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi91dGlsL1ZpZXdVdGlsJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICcuL2Nvb2tpZS9Db29raWVTZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luVG9rZW5TdG9yYWdlIH0gZnJvbSAnLi9sb2dpbi9Mb2dpblRva2VuU3RvcmFnZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlL0xvY2FsU3RvcmFnZVNlcnZpY2UnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5sZXQgaW1wb3J0cyA9IFtDb29raWVNb2R1bGUsIFRoZW1lTW9kdWxlLCBMYW5ndWFnZU1vZHVsZSwgQXNzZXRNb2R1bGVdO1xuXG5sZXQgZGVjbGFyYXRpb25zID0gW1xuICAgIFRpbWVQaXBlLFxuICAgIEZpbmFuY2VQaXBlLFxuICAgIFNhbml0aXplUGlwZSxcbiAgICBUcnVuY2F0ZVBpcGUsXG4gICAgUHJldHRpZnlQaXBlLFxuICAgIENhbWVsQ2FzZVBpcGUsXG4gICAgU3RhcnRDYXNlUGlwZSxcbiAgICBOZ01vZGVsRXJyb3JQaXBlLFxuXG4gICAgSXNTZXJ2ZXJEaXJlY3RpdmUsXG4gICAgSXNCcm93c2VyRGlyZWN0aXZlLFxuXG4gICAgTW9tZW50RGF0ZVBpcGUsXG4gICAgTW9tZW50VGltZVBpcGUsXG4gICAgTW9tZW50RGF0ZUZyb21Ob3dQaXBlLFxuICAgIE1vbWVudERhdGVBZGFwdGl2ZVBpcGUsXG5cbiAgICBGb2N1c0RpcmVjdGl2ZSxcbiAgICBSZXNpemVEaXJlY3RpdmUsXG4gICAgU2Nyb2xsRGlyZWN0aXZlLFxuICAgIFNjcm9sbENoZWNrRGlyZWN0aXZlLFxuICAgIENsaWNrVG9Db3B5RGlyZWN0aXZlLFxuICAgIFNlbGVjdE9uRm9jdXNEaXJlY3RpdmUsXG4gICAgQ2xpY2tUb1NlbGVjdERpcmVjdGl2ZSxcbiAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICBIVE1MVGl0bGVEaXJlY3RpdmUsXG4gICAgSFRNTENvbnRlbnRUaXRsZURpcmVjdGl2ZSxcbiAgICBBdXRvU2Nyb2xsQm90dG9tRGlyZWN0aXZlLFxuICAgIEFzcGVjdFJhdGlvUmVzaXplRGlyZWN0aXZlXG5dO1xuXG5sZXQgZXhwb3J0cyA9IFsuLi5pbXBvcnRzLCAuLi5kZWNsYXJhdGlvbnNdO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHMsXG4gICAgZGVjbGFyYXRpb25zLFxuICAgIGV4cG9ydHNcbn0pXG5leHBvcnQgY2xhc3MgVklNb2R1bGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFN0YXRpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KG9wdGlvbnM/OiBJVklPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxWSU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFZJTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtOYXRpdmVXaW5kb3dTZXJ2aWNlLCBSZW5kZXJlckZhY3RvcnkyXSxcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZXJGYWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBMb2FkaW5nU2VydmljZSxcbiAgICAgICAgICAgICAgICBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQ2FuRGVhY3RpdmF0ZUd1YXJkLFxuXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBWSV9BTkdVTEFSX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIHx8IHt9IH0sXG4gICAgICAgICAgICAgICAgeyBwcm92aWRlOiBMb2dnZXIsIGRlcHM6IFtWSV9BTkdVTEFSX09QVElPTlNdLCB1c2VGYWN0b3J5OiBsb2dnZXJTZXJ2aWNlRmFjdG9yeSB9LFxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTmF0aXZlV2luZG93U2VydmljZSwgZGVwczogW0RPQ1VNRU5UXSwgdXNlRmFjdG9yeTogbmF0aXZlV2luZG93U2VydmljZUZhY3RvcnkgfSxcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IExvY2FsU3RvcmFnZVNlcnZpY2UsIGRlcHM6IFtOYXRpdmVXaW5kb3dTZXJ2aWNlXSwgdXNlRmFjdG9yeTogbG9jYWxTdG9yYWdlU2VydmljZUZhY3RvcnkgfSxcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IExvZ2luVG9rZW5TdG9yYWdlLCBkZXBzOiBbTG9jYWxTdG9yYWdlU2VydmljZSwgQ29va2llU2VydmljZV0sIHVzZUZhY3Rvcnk6IGxvZ2luVG9rZW5TdG9yYWdlU2VydmljZUZhY3RvcnkgfSxcblxuICAgICAgICAgICAgICAgIC4uLkNvb2tpZU1vZHVsZS5mb3JSb290KG9wdGlvbnMpLnByb3ZpZGVycyxcbiAgICAgICAgICAgICAgICAuLi5UaGVtZU1vZHVsZS5mb3JSb290KG9wdGlvbnMgPyBvcHRpb25zLnRoZW1lT3B0aW9ucyA6IG51bGwpLnByb3ZpZGVycyxcbiAgICAgICAgICAgICAgICAuLi5MYW5ndWFnZU1vZHVsZS5mb3JSb290KG9wdGlvbnMgPyBvcHRpb25zLmxhbmd1YWdlT3B0aW9ucyA6IG51bGwpLnByb3ZpZGVyc1xuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIElWSU9wdGlvbnMgZXh0ZW5kcyBJQ29va2llT3B0aW9ucyB7XG4gICAgbG9nZ2VyTGV2ZWw/OiBMb2dnZXJMZXZlbDtcbiAgICB0aGVtZU9wdGlvbnM/OiBJVGhlbWVTZXJ2aWNlT3B0aW9ucztcbiAgICBsYW5ndWFnZU9wdGlvbnM/OiBJTGFuZ3VhZ2VTZXJ2aWNlT3B0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVyRmFjdG9yeShuYXRpdmVXaW5kb3c6IE5hdGl2ZVdpbmRvd1NlcnZpY2UsIHJlbmRlcmVyRmFjdG9yeTI6IFJlbmRlcmVyRmFjdG9yeTIpOiBWaWV3VXRpbCB7XG4gICAgVmlld1V0aWwucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkyLmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAgIFZpZXdVdGlsLmRvY3VtZW50ID0gbmF0aXZlV2luZG93LmRvY3VtZW50O1xuICAgIHJldHVybiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ2dlclNlcnZpY2VGYWN0b3J5KG9wdGlvbnM6IElWSU9wdGlvbnMpOiBJTG9nZ2VyIHtcbiAgICByZXR1cm4gbmV3IERlZmF1bHRMb2dnZXIoIV8uaXNOaWwob3B0aW9ucy5sb2dnZXJMZXZlbCkgPyBvcHRpb25zLmxvZ2dlckxldmVsIDogTG9nZ2VyTGV2ZWwuQUxMKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5hdGl2ZVdpbmRvd1NlcnZpY2VGYWN0b3J5KGRvY3VtZW50OiBEb2N1bWVudCk6IE5hdGl2ZVdpbmRvd1NlcnZpY2Uge1xuICAgIHJldHVybiBuZXcgTmF0aXZlV2luZG93U2VydmljZShkb2N1bWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeShuYXRpdmVXaW5kb3c6IE5hdGl2ZVdpbmRvd1NlcnZpY2UpOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcbiAgICByZXR1cm4gbmV3IExvY2FsU3RvcmFnZVNlcnZpY2UobmF0aXZlV2luZG93KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luVG9rZW5TdG9yYWdlU2VydmljZUZhY3Rvcnkoc3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSwgY29va2llczogQ29va2llU2VydmljZSk6IExvZ2luVG9rZW5TdG9yYWdlIHtcbiAgICByZXR1cm4gbmV3IExvZ2luVG9rZW5TdG9yYWdlKHN0b3JhZ2UsIGNvb2tpZXMpO1xufVxuXG5leHBvcnQgY29uc3QgVklfQU5HVUxBUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPElWSU9wdGlvbnM+KGBWSV9BTkdVTEFSX09QVElPTlNgKTtcbiJdfQ==
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { DestroyableContainer } from '@ts-core/common';
|
|
3
|
-
import { PromiseHandler } from '@ts-core/common';
|
|
4
|
-
import * as _ from 'lodash';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ApplicationBaseComponent extends DestroyableContainer {
|
|
7
|
-
// --------------------------------------------------------------------------
|
|
8
|
-
//
|
|
9
|
-
// Constructor
|
|
10
|
-
//
|
|
11
|
-
// --------------------------------------------------------------------------
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
14
|
-
this.viewReadyDelay = NaN;
|
|
15
|
-
// --------------------------------------------------------------------------
|
|
16
|
-
//
|
|
17
|
-
// Private Methods
|
|
18
|
-
//
|
|
19
|
-
// --------------------------------------------------------------------------
|
|
20
|
-
this.makeViewReady = () => {
|
|
21
|
-
this.viewReadyPromise.resolve();
|
|
22
|
-
this.viewReadyHandler();
|
|
23
|
-
this.checkReady();
|
|
24
|
-
};
|
|
25
|
-
this.viewReadyPromise = PromiseHandler.create();
|
|
26
|
-
}
|
|
27
|
-
// --------------------------------------------------------------------------
|
|
28
|
-
//
|
|
29
|
-
// Protected Methods
|
|
30
|
-
//
|
|
31
|
-
// --------------------------------------------------------------------------
|
|
32
|
-
checkReady() {
|
|
33
|
-
if (this.isReadyAlreadyCalled || !this.isReady()) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
this.isReadyAlreadyCalled = true;
|
|
37
|
-
this.readyHandler();
|
|
38
|
-
}
|
|
39
|
-
isReady() {
|
|
40
|
-
return this.isViewReady;
|
|
41
|
-
}
|
|
42
|
-
viewReadyHandler() { }
|
|
43
|
-
// --------------------------------------------------------------------------
|
|
44
|
-
//
|
|
45
|
-
// Public Methods
|
|
46
|
-
//
|
|
47
|
-
// --------------------------------------------------------------------------
|
|
48
|
-
ngAfterViewInit() {
|
|
49
|
-
if (this.viewReadyDelay > 0) {
|
|
50
|
-
PromiseHandler.delay(this.viewReadyDelay).then(this.makeViewReady);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.makeViewReady();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
destroy() {
|
|
57
|
-
if (this.isDestroyed) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
super.destroy();
|
|
61
|
-
if (!_.isNil(this.viewReadyPromise)) {
|
|
62
|
-
this.viewReadyPromise.reject();
|
|
63
|
-
this.viewReadyPromise = null;
|
|
64
|
-
}
|
|
65
|
-
if (!_.isNil(this.timeout)) {
|
|
66
|
-
clearTimeout(this.timeout);
|
|
67
|
-
this.timeout = null;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// --------------------------------------------------------------------------
|
|
71
|
-
//
|
|
72
|
-
// Public Properties
|
|
73
|
-
//
|
|
74
|
-
// --------------------------------------------------------------------------
|
|
75
|
-
get isViewReady() {
|
|
76
|
-
return !_.isNil(this.viewReadyPromise) ? this.viewReadyPromise.isResolved : false;
|
|
77
|
-
}
|
|
78
|
-
get viewReady() {
|
|
79
|
-
return !_.isNil(this.viewReadyPromise) ? this.viewReadyPromise.promise : null;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
ApplicationBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
ApplicationBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ApplicationBaseComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationBaseComponent, decorators: [{
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ template: '' }]
|
|
87
|
-
}], ctorParameters: function () { return []; } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25CYXNlQ29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL0FwcGxpY2F0aW9uQmFzZUNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7O0FBRzVCLE1BQU0sT0FBZ0Isd0JBQXlCLFNBQVEsb0JBQW9CO0lBYXZFLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0U7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVZGLG1CQUFjLEdBQVcsR0FBRyxDQUFDO1FBY3ZDLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsbUJBQW1CO1FBQ25CLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsa0JBQWEsR0FBRyxHQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUM7UUFiRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFjRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLFVBQVU7UUFDaEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVTLGdCQUFnQixLQUFVLENBQUM7SUFJckMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUU7WUFDekIsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN0RTthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxJQUFXLFdBQVc7UUFDbEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RixDQUFDO0lBQ0QsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEYsQ0FBQzs7c0hBcEdpQix3QkFBd0I7MEdBQXhCLHdCQUF3QiwyRUFEdkIsRUFBRTs0RkFDSCx3QkFBd0I7a0JBRDdDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZUNvbnRhaW5lciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9taXNlSGFuZGxlciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBsaWNhdGlvbkJhc2VDb21wb25lbnQgZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgdGltZW91dDogYW55O1xuICAgIHByb3RlY3RlZCBpc1JlYWR5QWxyZWFkeUNhbGxlZDogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCB2aWV3UmVhZHlEZWxheTogbnVtYmVyID0gTmFOO1xuICAgIHByb3RlY3RlZCB2aWV3UmVhZHlQcm9taXNlOiBQcm9taXNlSGFuZGxlcjx2b2lkLCB2b2lkPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmlld1JlYWR5UHJvbWlzZSA9IFByb21pc2VIYW5kbGVyLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByaXZhdGUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgbWFrZVZpZXdSZWFkeSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy52aWV3UmVhZHlQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgdGhpcy52aWV3UmVhZHlIYW5kbGVyKCk7XG4gICAgICAgIHRoaXMuY2hlY2tSZWFkeSgpO1xuICAgIH07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjaGVja1JlYWR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1JlYWR5QWxyZWFkeUNhbGxlZCB8fCAhdGhpcy5pc1JlYWR5KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzUmVhZHlBbHJlYWR5Q2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZWFkeUhhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNSZWFkeSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaWV3UmVhZHk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZpZXdSZWFkeUhhbmRsZXIoKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWR5SGFuZGxlcigpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlld1JlYWR5RGVsYXkgPiAwKSB7XG4gICAgICAgICAgICBQcm9taXNlSGFuZGxlci5kZWxheSh0aGlzLnZpZXdSZWFkeURlbGF5KS50aGVuKHRoaXMubWFrZVZpZXdSZWFkeSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1ha2VWaWV3UmVhZHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy52aWV3UmVhZHlQcm9taXNlKSkge1xuICAgICAgICAgICAgdGhpcy52aWV3UmVhZHlQcm9taXNlLnJlamVjdCgpO1xuICAgICAgICAgICAgdGhpcy52aWV3UmVhZHlQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLnRpbWVvdXQpKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgaXNWaWV3UmVhZHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnZpZXdSZWFkeVByb21pc2UpID8gdGhpcy52aWV3UmVhZHlQcm9taXNlLmlzUmVzb2x2ZWQgOiBmYWxzZTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2aWV3UmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnZpZXdSZWFkeVByb21pc2UpID8gdGhpcy52aWV3UmVhZHlQcm9taXNlLnByb21pc2UgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|