@ts-core/angular 15.0.60 → 17.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset/AssetBackgroundDirective.d.ts +1 -1
- package/cookie/CookieService.d.ts +1 -3
- package/directive/AspectRatioResizeDirective.d.ts +1 -1
- package/directive/AutoScrollBottomDirective.d.ts +1 -1
- package/directive/ClickToCopyDirective.d.ts +1 -1
- package/directive/FocusDirective.d.ts +1 -1
- package/directive/HTMLContentTitleDirective.d.ts +1 -1
- package/directive/HTMLTitleDirective.d.ts +1 -1
- package/directive/InfiniteScrollDirective.d.ts +1 -1
- package/directive/ResizeDirective.d.ts +1 -1
- package/directive/ScrollCheckDirective.d.ts +1 -1
- package/directive/ScrollDirective.d.ts +1 -1
- package/esm2022/VIModule.mjs +190 -0
- package/esm2022/application/ApplicationBaseComponent.mjs +96 -0
- package/esm2022/application/ApplicationComponent.mjs +64 -0
- package/esm2022/application/MessageBaseComponent.mjs +60 -0
- package/esm2022/asset/AssetBackgroundDirective.mjs +152 -0
- package/{esm2020 → esm2022}/asset/AssetBackgroundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetFilePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetIconPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetImagePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetModule.mjs +5 -5
- package/{esm2020 → esm2022}/asset/AssetSoundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetVideoPipe.mjs +4 -4
- package/{esm2020 → esm2022}/cookie/CookieModule.mjs +5 -5
- package/{esm2020 → esm2022}/cookie/CookieOptions.mjs +7 -1
- package/esm2022/cookie/CookieService.mjs +71 -0
- package/esm2022/directive/AspectRatioResizeDirective.mjs +134 -0
- package/esm2022/directive/AutoScrollBottomDirective.mjs +122 -0
- package/esm2022/directive/ClickToCopyDirective.mjs +53 -0
- package/esm2022/directive/ClickToSelectDirective.mjs +55 -0
- package/esm2022/directive/FocusDirective.mjs +60 -0
- package/esm2022/directive/HTMLContentTitleDirective.mjs +74 -0
- package/esm2022/directive/HTMLTitleDirective.mjs +73 -0
- package/esm2022/directive/InfiniteScrollDirective.mjs +71 -0
- package/{esm2020 → esm2022}/directive/IsBrowserDirective.mjs +5 -5
- package/{esm2020 → esm2022}/directive/IsServerDirective.mjs +5 -5
- package/esm2022/directive/ResizeDirective.mjs +80 -0
- package/esm2022/directive/ScrollCheckDirective.mjs +104 -0
- package/esm2022/directive/ScrollDirective.mjs +120 -0
- package/esm2022/directive/SelectOnFocusDirective.mjs +48 -0
- package/esm2022/directive/StructureDirective.mjs +80 -0
- package/esm2022/language/LanguageDirective.mjs +102 -0
- package/esm2022/language/LanguageHasDirective.mjs +87 -0
- package/{esm2020 → esm2022}/language/LanguageModule.mjs +5 -5
- package/esm2022/language/LanguagePipe.mjs +88 -0
- package/esm2022/language/LanguagePipeHas.mjs +64 -0
- package/esm2022/language/LanguagePipeHasPure.mjs +41 -0
- package/esm2022/language/LanguagePipePure.mjs +40 -0
- package/esm2022/language/LanguageRequireResolver.mjs +37 -0
- package/{esm2020 → esm2022}/language/LanguageResolver.mjs +5 -5
- package/esm2022/list/ListItem.mjs +148 -0
- package/esm2022/list/ListItems.mjs +107 -0
- package/esm2022/list/select/RouterSelectListItems.mjs +60 -0
- package/esm2022/list/select/SelectListItem.mjs +67 -0
- package/esm2022/list/select/SelectListItems.mjs +130 -0
- package/esm2022/login/LoginBaseService.mjs +191 -0
- package/esm2022/login/LoginGuard.mjs +41 -0
- package/esm2022/login/LoginIfCanGuard.mjs +55 -0
- package/esm2022/login/LoginNotGuard.mjs +41 -0
- package/esm2022/login/LoginRequireResolver.mjs +40 -0
- package/{esm2020 → esm2022}/login/LoginResolver.mjs +6 -6
- package/esm2022/login/LoginTokenStorage.mjs +18 -0
- package/esm2022/manager/FocusManager.mjs +54 -0
- package/esm2022/manager/ResizeManager.mjs +90 -0
- package/esm2022/menu/MenuItem.mjs +20 -0
- package/esm2022/menu/MenuItemBase.mjs +56 -0
- package/esm2022/menu/MenuItems.mjs +111 -0
- package/esm2022/menu/NavigationMenuItem.mjs +20 -0
- package/esm2022/module/LazyModuleLoader.mjs +97 -0
- package/esm2022/notification/INotification.mjs +16 -0
- package/esm2022/notification/INotificationContent.mjs +141 -0
- package/esm2022/notification/NotificationConfig.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/CamelCasePipe.mjs +4 -4
- package/esm2022/pipe/FinancePipe.mjs +53 -0
- package/esm2022/pipe/MomentDateAdaptivePipe.mjs +51 -0
- package/{esm2020 → esm2022}/pipe/MomentDateFromNowPipe.mjs +4 -4
- package/esm2022/pipe/MomentDatePipe.mjs +71 -0
- package/esm2022/pipe/MomentTimePipe.mjs +35 -0
- package/esm2022/pipe/NgModelErrorPipe.mjs +43 -0
- package/esm2022/pipe/PrettifyPipe.mjs +38 -0
- package/esm2022/pipe/SanitizePipe.mjs +48 -0
- package/{esm2020 → esm2022}/pipe/StartCasePipe.mjs +4 -4
- package/esm2022/pipe/TimePipe.mjs +38 -0
- package/{esm2020 → esm2022}/pipe/TruncatePipe.mjs +4 -4
- package/esm2022/public-api.mjs +138 -0
- package/esm2022/question/QuestionManager.mjs +107 -0
- package/esm2022/service/PipeBaseService.mjs +140 -0
- package/esm2022/service/PlatformService.mjs +45 -0
- package/esm2022/service/RouterBaseService.mjs +236 -0
- package/esm2022/storage/DateValueStorage.mjs +46 -0
- package/esm2022/storage/LocalStorageService.mjs +58 -0
- package/esm2022/storage/ValueStorage.mjs +75 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetBackgroundDirective.mjs +5 -5
- package/esm2022/theme/ThemeAssetDirective.mjs +251 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetIconDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeAssetImageDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeModule.mjs +15 -15
- package/esm2022/theme/ThemeStyleDirective.mjs +125 -0
- package/esm2022/theme/ThemeStyleHoverDirective.mjs +107 -0
- package/esm2022/theme/ThemeToggleDirective.mjs +63 -0
- package/esm2022/transport/TransportLazy.mjs +93 -0
- package/esm2022/transport/TransportLazyModule.mjs +30 -0
- package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
- package/esm2022/user/IUser.mjs +9 -0
- package/esm2022/user/UserBaseService.mjs +124 -0
- package/esm2022/util/ViewUtil.mjs +589 -0
- package/esm2022/window/IWindow.mjs +31 -0
- package/esm2022/window/IWindowContent.mjs +142 -0
- package/esm2022/window/WindowBase.mjs +177 -0
- package/esm2022/window/WindowClosedError.mjs +19 -0
- package/esm2022/window/WindowConfig.mjs +218 -0
- package/{fesm2020 → fesm2022}/ts-core-angular.mjs +1118 -958
- package/fesm2022/ts-core-angular.mjs.map +1 -0
- package/language/LanguageDirective.d.ts +1 -1
- package/language/LanguageHasDirective.d.ts +1 -1
- package/module/LazyModuleLoader.d.ts +1 -1
- package/notification/INotificationContent.d.ts +1 -1
- package/notification/NotificationConfig.d.ts +1 -1
- package/notification/NotificationService.d.ts +1 -1
- package/package.json +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
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Destroyable } from '@ts-core/common';
|
|
2
|
-
export class IWindow extends Destroyable {
|
|
3
|
-
constructor() {
|
|
4
|
-
// --------------------------------------------------------------------------
|
|
5
|
-
//
|
|
6
|
-
// Public Methods
|
|
7
|
-
//
|
|
8
|
-
// --------------------------------------------------------------------------
|
|
9
|
-
super(...arguments);
|
|
10
|
-
// --------------------------------------------------------------------------
|
|
11
|
-
//
|
|
12
|
-
// Public Properties
|
|
13
|
-
//
|
|
14
|
-
// --------------------------------------------------------------------------
|
|
15
|
-
this.isOnTop = false;
|
|
16
|
-
this.isDisabled = false;
|
|
17
|
-
this.isMinimized = false;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export var WindowEvent;
|
|
21
|
-
(function (WindowEvent) {
|
|
22
|
-
WindowEvent["OPENED"] = "OPENED";
|
|
23
|
-
WindowEvent["CLOSED"] = "CLOSED";
|
|
24
|
-
WindowEvent["CONTENT_READY"] = "CONTENT_READY";
|
|
25
|
-
WindowEvent["MOVED"] = "MOVED";
|
|
26
|
-
WindowEvent["RESIZED"] = "RESIZED";
|
|
27
|
-
WindowEvent["DISABLED_CHANGED"] = "DISABLED_CHANGED";
|
|
28
|
-
WindowEvent["MINIMIZED_CHANGED"] = "MINIMIZED_CHANGED";
|
|
29
|
-
WindowEvent["IS_ON_TOP_CHANGED"] = "IS_ON_TOP_CHANGED";
|
|
30
|
-
WindowEvent["EXPAND"] = "EXPAND";
|
|
31
|
-
WindowEvent["SET_ON_TOP"] = "SET_ON_TOP";
|
|
32
|
-
})(WindowEvent || (WindowEvent = {}));
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVdpbmRvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvSVdpbmRvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUMsTUFBTSxPQUFnQixPQUFpQixTQUFRLFdBQVc7SUFBMUQ7UUFDSSw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLGtCQUFrQjtRQUNsQixFQUFFO1FBQ0YsNkVBQTZFOztRQXNCN0UsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUV0RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFTeEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFOLElBQVksV0FhWDtBQWJELFdBQVksV0FBVztJQUNuQixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtJQUNqQiw4Q0FBK0IsQ0FBQTtJQUUvQiw4QkFBZSxDQUFBO0lBQ2Ysa0NBQW1CLENBQUE7SUFDbkIsb0RBQXFDLENBQUE7SUFDckMsc0RBQXVDLENBQUE7SUFDdkMsc0RBQXVDLENBQUE7SUFFdkMsZ0NBQWlCLENBQUE7SUFDakIsd0NBQXlCLENBQUE7QUFDN0IsQ0FBQyxFQWJXLFdBQVcsS0FBWCxXQUFXLFFBYXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuL0lXaW5kb3dDb250ZW50JztcbmltcG9ydCB7IElXaW5kb3dDb25maWcgfSBmcm9tICcuL0lXaW5kb3dDb25maWcnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSVdpbmRvdzxUID0gYW55PiBleHRlbmRzIERlc3Ryb3lhYmxlIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcblxuICAgIGFic3RyYWN0IGJsaW5rKCk6IHZvaWQ7XG4gICAgYWJzdHJhY3Qgc2hha2UoKTogdm9pZDtcbiAgICBhYnN0cmFjdCBzZXRPblRvcCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgZ2V0V2lkdGgoKTogbnVtYmVyO1xuICAgIGFic3RyYWN0IGdldEhlaWdodCgpOiBudW1iZXI7XG4gICAgYWJzdHJhY3Qgc2V0V2lkdGgodmFsdWU6IG51bWJlcik6IHZvaWQ7XG4gICAgYWJzdHJhY3Qgc2V0SGVpZ2h0KHZhbHVlOiBudW1iZXIpOiB2b2lkO1xuICAgIGFic3RyYWN0IHNldFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgZ2V0WCgpOiBudW1iZXI7XG4gICAgYWJzdHJhY3QgZ2V0WSgpOiBudW1iZXI7XG4gICAgYWJzdHJhY3Qgc2V0WCh2YWx1ZTogbnVtYmVyKTogdm9pZDtcbiAgICBhYnN0cmFjdCBzZXRZKHZhbHVlOiBudW1iZXIpOiB2b2lkO1xuICAgIGFic3RyYWN0IG1vdmUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgZW1pdChldmVudDogc3RyaW5nKTogdm9pZDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgaXNPblRvcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzTWluaW1pemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBldmVudHM6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICByZWFkb25seSBjb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIHJlYWRvbmx5IHdyYXBwZXI6IEhUTUxFbGVtZW50O1xuICAgIHJlYWRvbmx5IGJhY2tkcm9wOiBIVE1MRWxlbWVudDtcblxuICAgIHJlYWRvbmx5IGNvbmZpZzogSVdpbmRvd0NvbmZpZzxUPjtcbiAgICByZWFkb25seSBjb250ZW50OiBJV2luZG93Q29udGVudDxUPjtcbn1cblxuZXhwb3J0IGVudW0gV2luZG93RXZlbnQge1xuICAgIE9QRU5FRCA9ICdPUEVORUQnLFxuICAgIENMT1NFRCA9ICdDTE9TRUQnLFxuICAgIENPTlRFTlRfUkVBRFkgPSAnQ09OVEVOVF9SRUFEWScsXG5cbiAgICBNT1ZFRCA9ICdNT1ZFRCcsXG4gICAgUkVTSVpFRCA9ICdSRVNJWkVEJyxcbiAgICBESVNBQkxFRF9DSEFOR0VEID0gJ0RJU0FCTEVEX0NIQU5HRUQnLFxuICAgIE1JTklNSVpFRF9DSEFOR0VEID0gJ01JTklNSVpFRF9DSEFOR0VEJyxcbiAgICBJU19PTl9UT1BfQ0hBTkdFRCA9ICdJU19PTl9UT1BfQ0hBTkdFRCcsXG5cbiAgICBFWFBBTkQgPSAnRVhQQU5EJyxcbiAgICBTRVRfT05fVE9QID0gJ1NFVF9PTl9UT1AnXG59XG4iXX0=
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { ViewContainerRef, Inject, Optional, Component, InjectionToken, Input } from '@angular/core';
|
|
2
|
-
import { DestroyableContainer } from '@ts-core/common';
|
|
3
|
-
import { WindowEvent } from './IWindow';
|
|
4
|
-
import * as _ from 'lodash';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class IWindowContent extends DestroyableContainer {
|
|
7
|
-
// --------------------------------------------------------------------------
|
|
8
|
-
//
|
|
9
|
-
// Constructor
|
|
10
|
-
//
|
|
11
|
-
// --------------------------------------------------------------------------
|
|
12
|
-
constructor(container) {
|
|
13
|
-
super();
|
|
14
|
-
this.container = container;
|
|
15
|
-
}
|
|
16
|
-
// --------------------------------------------------------------------------
|
|
17
|
-
//
|
|
18
|
-
// Private Methods
|
|
19
|
-
//
|
|
20
|
-
// --------------------------------------------------------------------------
|
|
21
|
-
commitWindowProperties() {
|
|
22
|
-
this.commitConfigProperties();
|
|
23
|
-
}
|
|
24
|
-
commitConfigProperties() { }
|
|
25
|
-
// --------------------------------------------------------------------------
|
|
26
|
-
//
|
|
27
|
-
// Public Methods
|
|
28
|
-
//
|
|
29
|
-
// --------------------------------------------------------------------------
|
|
30
|
-
ngAfterViewInit() {
|
|
31
|
-
this.emit(WindowEvent.CONTENT_READY);
|
|
32
|
-
}
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
// do nothing, window will destroy content after closing
|
|
35
|
-
if (_.isNil(this.window)) {
|
|
36
|
-
super.ngOnDestroy();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
blink() {
|
|
40
|
-
if (!_.isNil(this.window)) {
|
|
41
|
-
this.window.blink();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
shake() {
|
|
45
|
-
if (!_.isNil(this.window)) {
|
|
46
|
-
this.window.shake();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
emit(event) {
|
|
50
|
-
if (!_.isNil(this.window)) {
|
|
51
|
-
this.window.emit(event);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
close() {
|
|
55
|
-
if (!_.isNil(this.window)) {
|
|
56
|
-
this.window.close();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
destroy() {
|
|
60
|
-
if (this.isDestroyed) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
super.destroy();
|
|
64
|
-
this.window = null;
|
|
65
|
-
this.container = null;
|
|
66
|
-
}
|
|
67
|
-
// --------------------------------------------------------------------------
|
|
68
|
-
//
|
|
69
|
-
// Proxy Public Properties
|
|
70
|
-
//
|
|
71
|
-
// --------------------------------------------------------------------------
|
|
72
|
-
get data() {
|
|
73
|
-
return !_.isNil(this.config) ? this.config.data : null;
|
|
74
|
-
}
|
|
75
|
-
get isOnTop() {
|
|
76
|
-
return !_.isNil(this.window) ? this.window.isOnTop : false;
|
|
77
|
-
}
|
|
78
|
-
get isMinimized() {
|
|
79
|
-
return !_.isNil(this.window) ? this.window.isMinimized : false;
|
|
80
|
-
}
|
|
81
|
-
get events() {
|
|
82
|
-
return !_.isNil(this.window) ? this.window.events : null;
|
|
83
|
-
}
|
|
84
|
-
get isDisabled() {
|
|
85
|
-
return !_.isNil(this.window) ? this.window.isDisabled : false;
|
|
86
|
-
}
|
|
87
|
-
set isDisabled(value) {
|
|
88
|
-
if (!_.isNil(this.window)) {
|
|
89
|
-
this.window.isDisabled = value;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// --------------------------------------------------------------------------
|
|
93
|
-
//
|
|
94
|
-
// Public Properties
|
|
95
|
-
//
|
|
96
|
-
// --------------------------------------------------------------------------
|
|
97
|
-
get element() {
|
|
98
|
-
if (_.isNil(this.container)) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
return this.container instanceof ViewContainerRef ? this.container.element : this.container;
|
|
102
|
-
}
|
|
103
|
-
get config() {
|
|
104
|
-
return !_.isNil(this.window) ? this.window.config : null;
|
|
105
|
-
}
|
|
106
|
-
get window() {
|
|
107
|
-
return this._window;
|
|
108
|
-
}
|
|
109
|
-
set window(value) {
|
|
110
|
-
if (value === this._window) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
this._window = value;
|
|
114
|
-
if (!_.isNil(value)) {
|
|
115
|
-
this.commitWindowProperties();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
IWindowContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IWindowContent, deps: [{ token: WINDOW_CONTENT_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
-
IWindowContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: IWindowContent, selector: "ng-component", inputs: { isDisabled: "isDisabled", window: "window" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IWindowContent, decorators: [{
|
|
122
|
-
type: Component,
|
|
123
|
-
args: [{ template: '' }]
|
|
124
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
125
|
-
type: Optional
|
|
126
|
-
}, {
|
|
127
|
-
type: Inject,
|
|
128
|
-
args: [WINDOW_CONTENT_CONTAINER]
|
|
129
|
-
}] }]; }, propDecorators: { isDisabled: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], window: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}] } });
|
|
134
|
-
export const WINDOW_CONTENT_CONTAINER = new InjectionToken('WINDOW_CONTENT_CONTAINER');
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVdpbmRvd0NvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2luZG93L0lXaW5kb3dDb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUc1QixNQUFNLE9BQWdCLGNBQXdCLFNBQVEsb0JBQW9CO0lBU3RFLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBaUUsU0FBaUM7UUFDOUYsS0FBSyxFQUFFLENBQUM7UUFEcUQsY0FBUyxHQUFULFNBQVMsQ0FBd0I7SUFFbEcsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsbUJBQW1CO0lBQ25CLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxzQkFBc0IsS0FBVSxDQUFDO0lBRTNDLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsZUFBZTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sV0FBVztRQUNkLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QjtJ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O1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQ1csTUFBTSxDQUFDLEtBQWlCO1FBQy9CLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDeEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDOzs0R0EvSWlCLGNBQWMsa0JBZUEsd0JBQXdCO2dHQWZ0QyxjQUFjLG1JQURiLEVBQUU7NEZBQ0gsY0FBYztrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OzBCQWdCVixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHdCQUF3Qjs0Q0E2RjdDLFVBQVU7c0JBRHBCLEtBQUs7Z0JBNEJLLE1BQU07c0JBRGhCLEtBQUs7O0FBYVYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXlCLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3QsIE9wdGlvbmFsLCBDb21wb25lbnQsIEluamVjdGlvblRva2VuLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVzdHJveWFibGVDb250YWluZXIgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSVdpbmRvdywgV2luZG93RXZlbnQgfSBmcm9tICcuL0lXaW5kb3cnO1xuaW1wb3J0IHsgSVdpbmRvd0NvbmZpZyB9IGZyb20gJy4vSVdpbmRvd0NvbmZpZyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJV2luZG93Q29udGVudDxUID0gYW55PiBleHRlbmRzIERlc3Ryb3lhYmxlQ29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzPVxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBfd2luZG93OiBJV2luZG93PFQ+O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XX0NPTlRFTlRfQ09OVEFJTkVSKSBwdWJsaWMgY29udGFpbmVyOiBXaW5kb3dDb250ZW50Q29udGFpbmVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0V2luZG93UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21taXRDb25maWdQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdENvbmZpZ1Byb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5DT05URU5UX1JFQURZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIGRvIG5vdGhpbmcsIHdpbmRvdyB3aWxsIGRlc3Ryb3kgY29udGVudCBhZnRlciBjbG9zaW5nXG4gICAgICAgIGlmIChfLmlzTmlsKHRoaXMud2luZG93KSkge1xuICAgICAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBibGluaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMud2luZG93KSkge1xuICAgICAgICAgICAgdGhpcy53aW5kb3cuYmxpbmsoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzaGFrZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMud2luZG93KSkge1xuICAgICAgICAgICAgdGhpcy53aW5kb3cuc2hha2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMud2luZG93KSkge1xuICAgICAgICAgICAgdGhpcy53aW5kb3cuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLndpbmRvdykpIHtcbiAgICAgICAgICAgIHRoaXMud2luZG93LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy53aW5kb3cgPSBudWxsO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm94eSBQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgZGF0YSgpOiBUIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuY29uZmlnKSA/IHRoaXMuY29uZmlnLmRhdGEgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPblRvcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMud2luZG93KSA/IHRoaXMud2luZG93LmlzT25Ub3AgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy53aW5kb3cpID8gdGhpcy53aW5kb3cuaXNNaW5pbWl6ZWQgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV2ZW50cygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy53aW5kb3cpID8gdGhpcy53aW5kb3cuZXZlbnRzIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLndpbmRvdykgPyB0aGlzLndpbmRvdy5pc0Rpc2FibGVkIDogZmFsc2U7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLndpbmRvdykpIHtcbiAgICAgICAgICAgIHRoaXMud2luZG93LmlzRGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIGlmIChfLmlzTmlsKHRoaXMuY29udGFpbmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgVmlld0NvbnRhaW5lclJlZiA/IHRoaXMuY29udGFpbmVyLmVsZW1lbnQgOiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBJV2luZG93Q29uZmlnPFQ+IHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMud2luZG93KSA/IHRoaXMud2luZG93LmNvbmZpZyA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3aW5kb3coKTogSVdpbmRvdzxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aW5kb3c7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB3aW5kb3codmFsdWU6IElXaW5kb3c8VD4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl93aW5kb3cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl93aW5kb3cgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jb21taXRXaW5kb3dQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFdpbmRvd0NvbnRlbnRDb250YWluZXIgPSBFbGVtZW50UmVmIHwgVmlld0NvbnRhaW5lclJlZjtcbmV4cG9ydCBjb25zdCBXSU5ET1dfQ09OVEVOVF9DT05UQUlORVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48V2luZG93Q29udGVudENvbnRhaW5lcj4oJ1dJTkRPV19DT05URU5UX0NPTlRBSU5FUicpO1xuIl19
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import * as _ from 'lodash';
|
|
2
|
-
import { DestroyableContainer } from '@ts-core/common';
|
|
3
|
-
import { WindowAlign } from './IWindowConfig';
|
|
4
|
-
import { ViewUtil } from '../util/ViewUtil';
|
|
5
|
-
export class WindowBase extends DestroyableContainer {
|
|
6
|
-
// --------------------------------------------------------------------------
|
|
7
|
-
//
|
|
8
|
-
// Constructor
|
|
9
|
-
//
|
|
10
|
-
// --------------------------------------------------------------------------
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
13
|
-
// --------------------------------------------------------------------------
|
|
14
|
-
//
|
|
15
|
-
// Properties
|
|
16
|
-
//
|
|
17
|
-
// --------------------------------------------------------------------------
|
|
18
|
-
this._x = NaN;
|
|
19
|
-
this._width = NaN;
|
|
20
|
-
this._y = NaN;
|
|
21
|
-
this._height = NaN;
|
|
22
|
-
this.updatePosition = () => this.setPosition();
|
|
23
|
-
}
|
|
24
|
-
// --------------------------------------------------------------------------
|
|
25
|
-
//
|
|
26
|
-
// Static Methods
|
|
27
|
-
//
|
|
28
|
-
// --------------------------------------------------------------------------
|
|
29
|
-
static parseX(value, config) {
|
|
30
|
-
value = Math.max(value, config.elementMinX);
|
|
31
|
-
value = Math.min(value, config.elementMaxX);
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
|
-
static parseY(value, config) {
|
|
35
|
-
value = Math.max(value, config.elementMinY);
|
|
36
|
-
value = Math.min(value, config.elementMaxY);
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
static parseWidth(value, config) {
|
|
40
|
-
value = Math.max(value, config.elementMinWidth);
|
|
41
|
-
value = Math.min(value, config.elementMaxWidth);
|
|
42
|
-
return value;
|
|
43
|
-
}
|
|
44
|
-
static parseHeight(value, config) {
|
|
45
|
-
value = Math.max(value, config.elementMinHeight);
|
|
46
|
-
value = Math.min(value, config.elementMaxHeight);
|
|
47
|
-
return value;
|
|
48
|
-
}
|
|
49
|
-
setProperties() {
|
|
50
|
-
let config = this.getConfig();
|
|
51
|
-
if (!_.isNaN(config.defaultWidth)) {
|
|
52
|
-
this.width = config.defaultWidth;
|
|
53
|
-
}
|
|
54
|
-
if (!_.isNaN(config.defaultHeight)) {
|
|
55
|
-
this.height = config.defaultHeight;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
setPosition() {
|
|
59
|
-
let config = this.getConfig();
|
|
60
|
-
switch (config.horizontalAlign) {
|
|
61
|
-
case WindowAlign.START:
|
|
62
|
-
this.x = !_.isNaN(this.paddingLeft) ? this.paddingLeft : 0;
|
|
63
|
-
break;
|
|
64
|
-
case WindowAlign.END:
|
|
65
|
-
let value = ViewUtil.getStageWidth() - this.calculateWidth();
|
|
66
|
-
if (!_.isNaN(this.paddingRight)) {
|
|
67
|
-
value -= this.paddingRight;
|
|
68
|
-
}
|
|
69
|
-
this.x = value;
|
|
70
|
-
break;
|
|
71
|
-
default:
|
|
72
|
-
this.x = (ViewUtil.getStageWidth() - this.calculateWidth()) / 2;
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
switch (config.verticalAlign) {
|
|
76
|
-
case WindowAlign.START:
|
|
77
|
-
this.y = !_.isNaN(this.paddingTop) ? this.paddingTop : 0;
|
|
78
|
-
break;
|
|
79
|
-
case WindowAlign.END:
|
|
80
|
-
let value = ViewUtil.getStageHeight() - this.calculateHeight();
|
|
81
|
-
if (!_.isNaN(this.paddingBottom)) {
|
|
82
|
-
value -= this.paddingBottom;
|
|
83
|
-
}
|
|
84
|
-
this.y = value;
|
|
85
|
-
break;
|
|
86
|
-
default:
|
|
87
|
-
this.y = (ViewUtil.getStageHeight() - this.calculateHeight()) / 2;
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
clearSize() {
|
|
92
|
-
this._x = NaN;
|
|
93
|
-
this._y = NaN;
|
|
94
|
-
this._width = NaN;
|
|
95
|
-
this._height = NaN;
|
|
96
|
-
}
|
|
97
|
-
commitSizeProperties() { }
|
|
98
|
-
commitPositionProperties() { }
|
|
99
|
-
// --------------------------------------------------------------------------
|
|
100
|
-
//
|
|
101
|
-
// Public Methods
|
|
102
|
-
//
|
|
103
|
-
// --------------------------------------------------------------------------
|
|
104
|
-
calculateWidth() {
|
|
105
|
-
return !_.isNaN(this.width) ? this.width : ViewUtil.getWidth(this.getContainer());
|
|
106
|
-
}
|
|
107
|
-
calculateHeight() {
|
|
108
|
-
return !_.isNaN(this.height) ? this.height : ViewUtil.getHeight(this.getContainer());
|
|
109
|
-
}
|
|
110
|
-
// --------------------------------------------------------------------------
|
|
111
|
-
//
|
|
112
|
-
// Private Properties
|
|
113
|
-
//
|
|
114
|
-
// --------------------------------------------------------------------------
|
|
115
|
-
get width() {
|
|
116
|
-
return this._width;
|
|
117
|
-
}
|
|
118
|
-
set width(value) {
|
|
119
|
-
value = WindowBase.parseWidth(value, this.getConfig());
|
|
120
|
-
if (value === this._width) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
this._width = value;
|
|
124
|
-
this.commitSizeProperties();
|
|
125
|
-
}
|
|
126
|
-
get height() {
|
|
127
|
-
return this._height;
|
|
128
|
-
}
|
|
129
|
-
set height(value) {
|
|
130
|
-
value = WindowBase.parseWidth(value, this.getConfig());
|
|
131
|
-
if (value === this._height) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
this._height = value;
|
|
135
|
-
this.commitSizeProperties();
|
|
136
|
-
}
|
|
137
|
-
// --------------------------------------------------------------------------
|
|
138
|
-
//
|
|
139
|
-
// Public Properties
|
|
140
|
-
//
|
|
141
|
-
// --------------------------------------------------------------------------
|
|
142
|
-
get x() {
|
|
143
|
-
return this._x;
|
|
144
|
-
}
|
|
145
|
-
set x(value) {
|
|
146
|
-
value = WindowBase.parseX(value, this.getConfig());
|
|
147
|
-
if (value === this._x) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
this._x = value;
|
|
151
|
-
this.commitPositionProperties();
|
|
152
|
-
}
|
|
153
|
-
get y() {
|
|
154
|
-
return this._y;
|
|
155
|
-
}
|
|
156
|
-
set y(value) {
|
|
157
|
-
value = WindowBase.parseY(value, this.getConfig());
|
|
158
|
-
if (value === this._y) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
this._y = value;
|
|
162
|
-
this.commitPositionProperties();
|
|
163
|
-
}
|
|
164
|
-
get paddingTop() {
|
|
165
|
-
return this.getConfig().paddingTop;
|
|
166
|
-
}
|
|
167
|
-
get paddingLeft() {
|
|
168
|
-
return this.getConfig().paddingLeft;
|
|
169
|
-
}
|
|
170
|
-
get paddingRight() {
|
|
171
|
-
return this.getConfig().paddingRight;
|
|
172
|
-
}
|
|
173
|
-
get paddingBottom() {
|
|
174
|
-
return this.getConfig().paddingBottom;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93QmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93QmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxNQUFNLE9BQWdCLFVBQW9CLFNBQVEsb0JBQW9CO0lBMkNsRSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFuQlosNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixjQUFjO1FBQ2QsRUFBRTtRQUNGLDZFQUE2RTtRQUVuRSxPQUFFLEdBQVcsR0FBRyxDQUFDO1FBQ2pCLFdBQU0sR0FBVyxHQUFHLENBQUM7UUFFckIsT0FBRSxHQUFXLEdBQUcsQ0FBQztRQUNqQixZQUFPLEdBQVcsR0FBRyxDQUFDO1FBOEV0QixtQkFBYyxHQUFHLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQXBFMUQsQ0FBQztJQWxERCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLE1BQU0sQ0FBQyxNQUFNLENBQUksS0FBYSxFQUFFLE1BQXdCO1FBQzlELEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FB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U0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLENBQUM7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsQ0FBQyxDQUFDLEtBQWE7UUFDdEIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRGVzdHJveWFibGVDb250YWluZXIgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSVdpbmRvd0NvbmZpZywgV2luZG93QWxpZ24gfSBmcm9tICcuL0lXaW5kb3dDb25maWcnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdpbmRvd0Jhc2U8VCA9IGFueT4gZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0U3RhdGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIHBhcnNlWDxUPih2YWx1ZTogbnVtYmVyLCBjb25maWc6IElXaW5kb3dDb25maWc8VD4pOiBudW1iZXIge1xuICAgICAgICB2YWx1ZSA9IE1hdGgubWF4KHZhbHVlLCBjb25maWcuZWxlbWVudE1pblgpO1xuICAgICAgICB2YWx1ZSA9IE1hdGgubWluKHZhbHVlLCBjb25maWcuZWxlbWVudE1heFgpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBwYXJzZVk8VD4odmFsdWU6IG51bWJlciwgY29uZmlnOiBJV2luZG93Q29uZmlnPFQ+KTogbnVtYmVyIHtcbiAgICAgICAgdmFsdWUgPSBNYXRoLm1heCh2YWx1ZSwgY29uZmlnLmVsZW1lbnRNaW5ZKTtcbiAgICAgICAgdmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgY29uZmlnLmVsZW1lbnRNYXhZKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGF0aWMgcGFyc2VXaWR0aDxUPih2YWx1ZTogbnVtYmVyLCBjb25maWc6IElXaW5kb3dDb25maWc8VD4pOiBudW1iZXIge1xuICAgICAgICB2YWx1ZSA9IE1hdGgubWF4KHZhbHVlLCBjb25maWcuZWxlbWVudE1pbldpZHRoKTtcbiAgICAgICAgdmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgY29uZmlnLmVsZW1lbnRNYXhXaWR0aCk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIHBhcnNlSGVpZ2h0PFQ+KHZhbHVlOiBudW1iZXIsIGNvbmZpZzogSVdpbmRvd0NvbmZpZzxUPik6IG51bWJlciB7XG4gICAgICAgIHZhbHVlID0gTWF0aC5tYXgodmFsdWUsIGNvbmZpZy5lbGVtZW50TWluSGVpZ2h0KTtcbiAgICAgICAgdmFsdWUgPSBNYXRoLm1pbih2YWx1ZSwgY29uZmlnLmVsZW1lbnRNYXhIZWlnaHQpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBfeDogbnVtYmVyID0gTmFOO1xuICAgIHByb3RlY3RlZCBfd2lkdGg6IG51bWJlciA9IE5hTjtcblxuICAgIHByb3RlY3RlZCBfeTogbnVtYmVyID0gTmFOO1xuICAgIHByb3RlY3RlZCBfaGVpZ2h0OiBudW1iZXIgPSBOYU47XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldENvbmZpZygpOiBJV2luZG93Q29uZmlnPFQ+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnKCk7XG4gICAgICAgIGlmICghXy5pc05hTihjb25maWcuZGVmYXVsdFdpZHRoKSkge1xuICAgICAgICAgICAgdGhpcy53aWR0aCA9IGNvbmZpZy5kZWZhdWx0V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmFOKGNvbmZpZy5kZWZhdWx0SGVpZ2h0KSkge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBjb25maWcuZGVmYXVsdEhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnKCk7XG5cbiAgICAgICAgc3dpdGNoIChjb25maWcuaG9yaXpvbnRhbEFsaWduKSB7XG4gICAgICAgICAgICBjYXNlIFdpbmRvd0FsaWduLlNUQVJUOlxuICAgICAgICAgICAgICAgIHRoaXMueCA9ICFfLmlzTmFOKHRoaXMucGFkZGluZ0xlZnQpID8gdGhpcy5wYWRkaW5nTGVmdCA6IDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFdpbmRvd0FsaWduLkVORDpcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBWaWV3VXRpbC5nZXRTdGFnZVdpZHRoKCkgLSB0aGlzLmNhbGN1bGF0ZVdpZHRoKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMucGFkZGluZ1JpZ2h0KSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAtPSB0aGlzLnBhZGRpbmdSaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy54ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMueCA9IChWaWV3VXRpbC5nZXRTdGFnZVdpZHRoKCkgLSB0aGlzLmNhbGN1bGF0ZVdpZHRoKCkpIC8gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoY29uZmlnLnZlcnRpY2FsQWxpZ24pIHtcbiAgICAgICAgICAgIGNhc2UgV2luZG93QWxpZ24uU1RBUlQ6XG4gICAgICAgICAgICAgICAgdGhpcy55ID0gIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSA/IHRoaXMucGFkZGluZ1RvcCA6IDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFdpbmRvd0FsaWduLkVORDpcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpIC0gdGhpcy5jYWxjdWxhdGVIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nQm90dG9tKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAtPSB0aGlzLnBhZGRpbmdCb3R0b207XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMueSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnkgPSAoVmlld1V0aWwuZ2V0U3RhZ2VIZWlnaHQoKSAtIHRoaXMuY2FsY3VsYXRlSGVpZ2h0KCkpIC8gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbGVhclNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ggPSBOYU47XG4gICAgICAgIHRoaXMuX3kgPSBOYU47XG4gICAgICAgIHRoaXMuX3dpZHRoID0gTmFOO1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSBOYU47XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdFNpemVQcm9wZXJ0aWVzKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBjb21taXRQb3NpdGlvblByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVBvc2l0aW9uID0gKCk6IHZvaWQgPT4gdGhpcy5zZXRQb3NpdGlvbigpO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgY2FsY3VsYXRlV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmFOKHRoaXMud2lkdGgpID8gdGhpcy53aWR0aCA6IFZpZXdVdGlsLmdldFdpZHRoKHRoaXMuZ2V0Q29udGFpbmVyKCkpO1xuICAgIH1cbiAgICBwdWJsaWMgY2FsY3VsYXRlSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAhXy5pc05hTih0aGlzLmhlaWdodCkgPyB0aGlzLmhlaWdodCA6IFZpZXdVdGlsLmdldEhlaWdodCh0aGlzLmdldENvbnRhaW5lcigpKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcml2YXRlIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHZhbHVlID0gV2luZG93QmFzZS5wYXJzZVdpZHRoKHZhbHVlLCB0aGlzLmdldENvbmZpZygpKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl93aWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0U2l6ZVByb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHZhbHVlID0gV2luZG93QmFzZS5wYXJzZVdpZHRoKHZhbHVlLCB0aGlzLmdldENvbmZpZygpKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9oZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRTaXplUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCB4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl94O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgeCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHZhbHVlID0gV2luZG93QmFzZS5wYXJzZVgodmFsdWUsIHRoaXMuZ2V0Q29uZmlnKCkpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3gpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl94ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0UG9zaXRpb25Qcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB5KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl95O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgeSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHZhbHVlID0gV2luZG93QmFzZS5wYXJzZVkodmFsdWUsIHRoaXMuZ2V0Q29uZmlnKCkpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3kpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl95ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0UG9zaXRpb25Qcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYWRkaW5nVG9wKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbmZpZygpLnBhZGRpbmdUb3A7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYWRkaW5nTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb25maWcoKS5wYWRkaW5nTGVmdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhZGRpbmdSaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb25maWcoKS5wYWRkaW5nUmlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYWRkaW5nQm90dG9tKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbmZpZygpLnBhZGRpbmdCb3R0b207XG4gICAgfVxufVxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ExtendedError } from '@ts-core/common';
|
|
2
|
-
export class WindowClosedError extends ExtendedError {
|
|
3
|
-
// --------------------------------------------------------------------------
|
|
4
|
-
//
|
|
5
|
-
// Constructor
|
|
6
|
-
//
|
|
7
|
-
// --------------------------------------------------------------------------
|
|
8
|
-
constructor(message = WindowClosedError.MESSAGE, code = WindowClosedError.CODE) {
|
|
9
|
-
super(message, code);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
// --------------------------------------------------------------------------
|
|
13
|
-
//
|
|
14
|
-
// Static Methods
|
|
15
|
-
//
|
|
16
|
-
// --------------------------------------------------------------------------
|
|
17
|
-
WindowClosedError.CODE = ExtendedError.DEFAULT_ERROR_CODE;
|
|
18
|
-
WindowClosedError.MESSAGE = 'WINDOW_CLOSED';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93Q2xvc2VkRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2luZG93L1dpbmRvd0Nsb3NlZEVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBMkI7SUFVOUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQWtCLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxPQUFlLGlCQUFpQixDQUFDLElBQUk7UUFDMUYsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOztBQWpCRCw2RUFBNkU7QUFDN0UsRUFBRTtBQUNGLGtCQUFrQjtBQUNsQixFQUFFO0FBQ0YsNkVBQTZFO0FBRS9ELHNCQUFJLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDO0FBQ3hDLHlCQUFPLEdBQUcsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXh0ZW5kZWRFcnJvciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dDbG9zZWRFcnJvciBleHRlbmRzIEV4dGVuZGVkRXJyb3I8dm9pZCwgbnVtYmVyPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBTdGF0aWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgQ09ERSA9IEV4dGVuZGVkRXJyb3IuREVGQVVMVF9FUlJPUl9DT0RFO1xuICAgIHB1YmxpYyBzdGF0aWMgTUVTU0FHRSA9ICdXSU5ET1dfQ0xPU0VEJztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBXaW5kb3dDbG9zZWRFcnJvci5NRVNTQUdFLCBjb2RlOiBudW1iZXIgPSBXaW5kb3dDbG9zZWRFcnJvci5DT0RFKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UsIGNvZGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import * as _ from 'lodash';
|
|
2
|
-
import { IDestroyable } from '@ts-core/common';
|
|
3
|
-
import { ViewUtil } from '../util/ViewUtil';
|
|
4
|
-
export class WindowConfig {
|
|
5
|
-
// --------------------------------------------------------------------------
|
|
6
|
-
//
|
|
7
|
-
// Constructor
|
|
8
|
-
//
|
|
9
|
-
// --------------------------------------------------------------------------
|
|
10
|
-
constructor(isModal = false, isResizeable = false, width = NaN, height = NaN) {
|
|
11
|
-
this.isModal = false;
|
|
12
|
-
this.isExpandable = false;
|
|
13
|
-
this.isResizeable = false;
|
|
14
|
-
this.isMinimizable = false;
|
|
15
|
-
this.isDisableClose = false;
|
|
16
|
-
this.isContentDragable = true;
|
|
17
|
-
this.x = NaN;
|
|
18
|
-
this.y = NaN;
|
|
19
|
-
this.defaultWidth = NaN;
|
|
20
|
-
this.defaultMinWidth = NaN;
|
|
21
|
-
this.defaultMaxWidth = NaN;
|
|
22
|
-
this.defaultHeight = NaN;
|
|
23
|
-
this.defaultMinHeight = NaN;
|
|
24
|
-
this.defaultMaxHeight = NaN;
|
|
25
|
-
this.paddingTop = NaN;
|
|
26
|
-
this.paddingLeft = NaN;
|
|
27
|
-
this.paddingRight = NaN;
|
|
28
|
-
this.paddingBottom = NaN;
|
|
29
|
-
this._elementMaxX = NaN;
|
|
30
|
-
this._elementMinX = NaN;
|
|
31
|
-
this._elementMaxY = NaN;
|
|
32
|
-
this._elementMinY = NaN;
|
|
33
|
-
this._elementMinWidth = NaN;
|
|
34
|
-
this._elementMaxWidth = NaN;
|
|
35
|
-
this._elementMinHeight = NaN;
|
|
36
|
-
this._elementMaxHeight = NaN;
|
|
37
|
-
this.isModal = isModal;
|
|
38
|
-
this.isResizeable = isResizeable;
|
|
39
|
-
if (!_.isNaN(width)) {
|
|
40
|
-
this.defaultWidth = width;
|
|
41
|
-
}
|
|
42
|
-
if (!_.isNaN(height)) {
|
|
43
|
-
this.defaultHeight = height;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// --------------------------------------------------------------------------
|
|
47
|
-
//
|
|
48
|
-
// Public Methods
|
|
49
|
-
//
|
|
50
|
-
// --------------------------------------------------------------------------
|
|
51
|
-
setDefaultProperties() {
|
|
52
|
-
this.width = this.elementWidth;
|
|
53
|
-
this.maxWidth = this.elementMaxWidth;
|
|
54
|
-
this.minWidth = this.elementMinWidth;
|
|
55
|
-
this.height = this.elementHeight;
|
|
56
|
-
this.maxHeight = this.elementMaxHeight;
|
|
57
|
-
this.minHeight = this.elementMinHeight;
|
|
58
|
-
}
|
|
59
|
-
destroy() {
|
|
60
|
-
if (!_.isNil(this.data) && IDestroyable.instanceOf(this.data)) {
|
|
61
|
-
this.data.destroy();
|
|
62
|
-
}
|
|
63
|
-
this.data = null;
|
|
64
|
-
}
|
|
65
|
-
// --------------------------------------------------------------------------
|
|
66
|
-
//
|
|
67
|
-
// Public Properties
|
|
68
|
-
//
|
|
69
|
-
// --------------------------------------------------------------------------
|
|
70
|
-
get elementMinY() {
|
|
71
|
-
if (!_.isNaN(this._elementMinY)) {
|
|
72
|
-
return this._elementMinY;
|
|
73
|
-
}
|
|
74
|
-
this._elementMinY = 0 - ViewUtil.getStageHeight();
|
|
75
|
-
if (!_.isNaN(this.paddingTop)) {
|
|
76
|
-
this._elementMinY += this.paddingTop;
|
|
77
|
-
}
|
|
78
|
-
return this._elementMinY;
|
|
79
|
-
}
|
|
80
|
-
get elementMaxY() {
|
|
81
|
-
if (!_.isNaN(this._elementMaxY)) {
|
|
82
|
-
return this._elementMaxY;
|
|
83
|
-
}
|
|
84
|
-
this._elementMaxY = ViewUtil.getStageHeight();
|
|
85
|
-
if (!_.isNaN(this.paddingBottom)) {
|
|
86
|
-
this._elementMaxY -= this.paddingBottom;
|
|
87
|
-
}
|
|
88
|
-
return this._elementMaxY;
|
|
89
|
-
}
|
|
90
|
-
get elementMinX() {
|
|
91
|
-
if (!_.isNaN(this._elementMinX)) {
|
|
92
|
-
return this._elementMinX;
|
|
93
|
-
}
|
|
94
|
-
this._elementMinX = -ViewUtil.getStageWidth();
|
|
95
|
-
if (!_.isNaN(this.paddingLeft)) {
|
|
96
|
-
this._elementMinX += this.paddingLeft;
|
|
97
|
-
}
|
|
98
|
-
return this._elementMinX;
|
|
99
|
-
}
|
|
100
|
-
get elementMaxX() {
|
|
101
|
-
if (!_.isNaN(this._elementMaxX)) {
|
|
102
|
-
return this._elementMaxX;
|
|
103
|
-
}
|
|
104
|
-
this._elementMaxX = ViewUtil.getStageWidth();
|
|
105
|
-
if (!_.isNaN(this.paddingRight)) {
|
|
106
|
-
this._elementMaxX -= this.paddingRight;
|
|
107
|
-
}
|
|
108
|
-
return this._elementMaxX;
|
|
109
|
-
}
|
|
110
|
-
get elementWidth() {
|
|
111
|
-
if (this._elementWidth) {
|
|
112
|
-
return this._elementWidth;
|
|
113
|
-
}
|
|
114
|
-
this._elementWidth = 'auto';
|
|
115
|
-
if (this.defaultWidth) {
|
|
116
|
-
this._elementWidth = this.defaultWidth + 'px';
|
|
117
|
-
}
|
|
118
|
-
return this._elementWidth;
|
|
119
|
-
}
|
|
120
|
-
get elementMinWidth() {
|
|
121
|
-
if (!_.isNaN(this._elementMinWidth)) {
|
|
122
|
-
return this._elementMinWidth;
|
|
123
|
-
}
|
|
124
|
-
this._elementMinWidth = 0;
|
|
125
|
-
if (!_.isNaN(this.defaultMinWidth)) {
|
|
126
|
-
let value = ViewUtil.getStageWidth();
|
|
127
|
-
if (!_.isNaN(this.paddingLeft)) {
|
|
128
|
-
value -= this.paddingLeft;
|
|
129
|
-
}
|
|
130
|
-
if (!_.isNaN(this.paddingRight)) {
|
|
131
|
-
value -= this.paddingRight;
|
|
132
|
-
}
|
|
133
|
-
this._elementMinWidth = Math.min(this.defaultMinWidth, value);
|
|
134
|
-
}
|
|
135
|
-
return this._elementMinWidth;
|
|
136
|
-
}
|
|
137
|
-
get elementMaxWidth() {
|
|
138
|
-
if (!_.isNaN(this._elementMaxWidth)) {
|
|
139
|
-
return this._elementMaxWidth;
|
|
140
|
-
}
|
|
141
|
-
this._elementMaxWidth = ViewUtil.getStageWidth();
|
|
142
|
-
if (!_.isNaN(this.paddingLeft)) {
|
|
143
|
-
this._elementMaxWidth -= this.paddingLeft;
|
|
144
|
-
}
|
|
145
|
-
if (!_.isNaN(this.paddingRight)) {
|
|
146
|
-
this._elementMaxWidth -= this.paddingRight;
|
|
147
|
-
}
|
|
148
|
-
if (!_.isNaN(this.defaultMaxWidth)) {
|
|
149
|
-
this._elementMaxWidth = Math.min(this.defaultMaxWidth, this._elementMaxWidth);
|
|
150
|
-
}
|
|
151
|
-
return this._elementMaxWidth;
|
|
152
|
-
}
|
|
153
|
-
get elementHeight() {
|
|
154
|
-
if (this._elementHeight) {
|
|
155
|
-
return this._elementHeight;
|
|
156
|
-
}
|
|
157
|
-
this._elementHeight = 'auto';
|
|
158
|
-
if (this.defaultHeight) {
|
|
159
|
-
this._elementHeight = this.defaultHeight + 'px';
|
|
160
|
-
}
|
|
161
|
-
return this._elementHeight;
|
|
162
|
-
}
|
|
163
|
-
get elementMinHeight() {
|
|
164
|
-
if (!_.isNaN(this._elementMinHeight)) {
|
|
165
|
-
return this._elementMinHeight;
|
|
166
|
-
}
|
|
167
|
-
this._elementMinHeight = 0;
|
|
168
|
-
if (!_.isNaN(this.defaultMinHeight)) {
|
|
169
|
-
let value = ViewUtil.getStageHeight();
|
|
170
|
-
if (!_.isNaN(this.paddingTop)) {
|
|
171
|
-
value -= this.paddingTop;
|
|
172
|
-
}
|
|
173
|
-
if (!_.isNaN(this.paddingBottom)) {
|
|
174
|
-
value -= this.paddingBottom;
|
|
175
|
-
}
|
|
176
|
-
this._elementMinHeight = Math.min(this.defaultMinHeight, value);
|
|
177
|
-
}
|
|
178
|
-
return this._elementMinHeight;
|
|
179
|
-
}
|
|
180
|
-
get elementMaxHeight() {
|
|
181
|
-
if (!_.isNaN(this._elementMaxHeight)) {
|
|
182
|
-
return this._elementMaxHeight;
|
|
183
|
-
}
|
|
184
|
-
this._elementMaxHeight = ViewUtil.getStageHeight();
|
|
185
|
-
if (!_.isNaN(this.paddingTop)) {
|
|
186
|
-
this._elementMaxHeight -= this.paddingTop;
|
|
187
|
-
}
|
|
188
|
-
if (!_.isNaN(this.paddingBottom)) {
|
|
189
|
-
this._elementMaxHeight -= this.paddingBottom;
|
|
190
|
-
}
|
|
191
|
-
if (!_.isNaN(this.defaultMaxHeight)) {
|
|
192
|
-
this._elementMaxHeight = Math.min(this.defaultMaxHeight, this._elementMaxHeight);
|
|
193
|
-
}
|
|
194
|
-
return this._elementMaxHeight;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dpbmRvdy9XaW5kb3dDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxNQUFNLE9BQU8sWUFBWTtJQTREckIsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQW1CLEtBQUssRUFBRSxlQUF3QixLQUFLLEVBQUUsUUFBZ0IsR0FBRyxFQUFFLFNBQWlCLEdBQUc7UUExRHZHLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBRWxDLE1BQUMsR0FBVyxHQUFHLENBQUM7UUFDaEIsTUFBQyxHQUFXLEdBQUcsQ0FBQztRQU9oQixpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUMzQixvQkFBZSxHQUFXLEdBQUcsQ0FBQztRQUM5QixvQkFBZSxHQUFXLEdBQUcsQ0FBQztRQUs5QixrQkFBYSxHQUFXLEdBQUcsQ0FBQztRQUM1QixxQkFBZ0IsR0FBVyxHQUFHLENBQUM7UUFDL0IscUJBQWdCLEdBQVcsR0FBRyxDQUFDO1FBRS9CLGVBQVUsR0FBVyxHQUFHLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxHQUFHLENBQUM7UUFDMUIsaUJBQVksR0FBVyxHQUFHLENBQUM7UUFDM0Isa0JBQWEsR0FBVyxHQUFHLENBQUM7UUFTekIsaUJBQVksR0FBVyxH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YUFBYSxDQUFDLEVBQUU7Z0JBQzlCLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDN0M7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDaEQ7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEY7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSVdpbmRvd0NvbmZpZywgV2luZG93QWxpZ24gfSBmcm9tICcuL0lXaW5kb3dDb25maWcnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcblxuZXhwb3J0IGNsYXNzIFdpbmRvd0NvbmZpZzxUID0gYW55PiBpbXBsZW1lbnRzIElXaW5kb3dDb25maWc8VD4sIElEZXN0cm95YWJsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuICAgIHB1YmxpYyBpc01vZGFsOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzRXhwYW5kYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1Jlc2l6ZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNNaW5pbWl6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Rpc2FibGVDbG9zZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0NvbnRlbnREcmFnYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgeDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyB5OiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIGRhdGE6IFQ7XG4gICAgcHVibGljIHByb3BlcnRpZXNJZDogc3RyaW5nO1xuXG4gICAgcHVibGljIHdpZHRoOiBzdHJpbmc7XG4gICAgcHVibGljIG1pbldpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIG1heFdpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIGRlZmF1bHRXaWR0aDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyBkZWZhdWx0TWluV2lkdGg6IG51bWJlciA9IE5hTjtcbiAgICBwdWJsaWMgZGVmYXVsdE1heFdpZHRoOiBudW1iZXIgPSBOYU47XG5cbiAgICBwdWJsaWMgaGVpZ2h0OiBzdHJpbmc7XG4gICAgcHVibGljIG1pbkhlaWdodDogbnVtYmVyO1xuICAgIHB1YmxpYyBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgICBwdWJsaWMgZGVmYXVsdEhlaWdodDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyBkZWZhdWx0TWluSGVpZ2h0OiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIGRlZmF1bHRNYXhIZWlnaHQ6IG51bWJlciA9IE5hTjtcblxuICAgIHB1YmxpYyBwYWRkaW5nVG9wOiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIHBhZGRpbmdMZWZ0OiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIHBhZGRpbmdSaWdodDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyBwYWRkaW5nQm90dG9tOiBudW1iZXIgPSBOYU47XG5cbiAgICBwdWJsaWMgYXV0b0ZvY3VzOiBzdHJpbmc7XG4gICAgcHVibGljIHJlc3RvcmVGb2N1czogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGVsYXlGb2N1c1RyYXA6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgdmVydGljYWxBbGlnbjogV2luZG93QWxpZ247XG4gICAgcHVibGljIGhvcml6b250YWxBbGlnbjogV2luZG93QWxpZ247XG5cbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRNYXhYOiBudW1iZXIgPSBOYU47XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWluWDogbnVtYmVyID0gTmFOO1xuXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWF4WTogbnVtYmVyID0gTmFOO1xuICAgIHByb3RlY3RlZCBfZWxlbWVudE1pblk6IG51bWJlciA9IE5hTjtcblxuICAgIHByb3RlY3RlZCBfZWxlbWVudFdpZHRoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWluV2lkdGg6IG51bWJlciA9IE5hTjtcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRNYXhXaWR0aDogbnVtYmVyID0gTmFOO1xuXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50SGVpZ2h0OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWluSGVpZ2h0OiBudW1iZXIgPSBOYU47XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWF4SGVpZ2h0OiBudW1iZXIgPSBOYU47XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGlzTW9kYWw6IGJvb2xlYW4gPSBmYWxzZSwgaXNSZXNpemVhYmxlOiBib29sZWFuID0gZmFsc2UsIHdpZHRoOiBudW1iZXIgPSBOYU4sIGhlaWdodDogbnVtYmVyID0gTmFOKSB7XG4gICAgICAgIHRoaXMuaXNNb2RhbCA9IGlzTW9kYWw7XG4gICAgICAgIHRoaXMuaXNSZXNpemVhYmxlID0gaXNSZXNpemVhYmxlO1xuICAgICAgICBpZiAoIV8uaXNOYU4od2lkdGgpKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IHdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05hTihoZWlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRIZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzZXREZWZhdWx0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuZWxlbWVudFdpZHRoO1xuICAgICAgICB0aGlzLm1heFdpZHRoID0gdGhpcy5lbGVtZW50TWF4V2lkdGg7XG4gICAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLmVsZW1lbnRNaW5XaWR0aDtcblxuICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMuZWxlbWVudEhlaWdodDtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmVsZW1lbnRNYXhIZWlnaHQ7XG4gICAgICAgIHRoaXMubWluSGVpZ2h0ID0gdGhpcy5lbGVtZW50TWluSGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5kYXRhKSAmJiBJRGVzdHJveWFibGUuaW5zdGFuY2VPZih0aGlzLmRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRNaW5ZKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWluWSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluWTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50TWluWSA9IDAgLSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1pblkgKz0gdGhpcy5wYWRkaW5nVG9wO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluWTtcbiAgICB9XG4gICAgcHVibGljIGdldCBlbGVtZW50TWF4WSgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5fZWxlbWVudE1heFkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heFk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZWxlbWVudE1heFkgPSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nQm90dG9tKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1heFkgLT0gdGhpcy5wYWRkaW5nQm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWF4WTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRNaW5YKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWluWCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluWDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50TWluWCA9IC1WaWV3VXRpbC5nZXRTdGFnZVdpZHRoKCk7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLnBhZGRpbmdMZWZ0KSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1pblggKz0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1pblg7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1heFgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuX2VsZW1lbnRNYXhYKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRNYXhYO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNYXhYID0gVmlld1V0aWwuZ2V0U3RhZ2VXaWR0aCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nUmlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4WCAtPSB0aGlzLnBhZGRpbmdSaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heFg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbGVtZW50V2lkdGgoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50V2lkdGggPSAnYXV0byc7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFdpZHRoID0gdGhpcy5kZWZhdWx0V2lkdGggKyAncHgnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50V2lkdGg7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1pbldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWluV2lkdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1pbldpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNaW5XaWR0aCA9IDA7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLmRlZmF1bHRNaW5XaWR0aCkpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IFZpZXdVdGlsLmdldFN0YWdlV2lkdGgoKTtcbiAgICAgICAgICAgIGlmICghXy5pc05hTih0aGlzLnBhZGRpbmdMZWZ0KSkge1xuICAgICAgICAgICAgICAgIHZhbHVlIC09IHRoaXMucGFkZGluZ0xlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nUmlnaHQpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgLT0gdGhpcy5wYWRkaW5nUmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWluV2lkdGggPSBNYXRoLm1pbih0aGlzLmRlZmF1bHRNaW5XaWR0aCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluV2lkdGg7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1heFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWF4V2lkdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNYXhXaWR0aCA9IFZpZXdVdGlsLmdldFN0YWdlV2lkdGgoKTtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMucGFkZGluZ0xlZnQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4V2lkdGggLT0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nUmlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4V2lkdGggLT0gdGhpcy5wYWRkaW5nUmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuZGVmYXVsdE1heFdpZHRoKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1heFdpZHRoID0gTWF0aC5taW4odGhpcy5kZWZhdWx0TWF4V2lkdGgsIHRoaXMuX2VsZW1lbnRNYXhXaWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRNYXhXaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRIZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRIZWlnaHQgPSAnYXV0byc7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRIZWlnaHQgPSB0aGlzLmRlZmF1bHRIZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50SGVpZ2h0O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRNaW5IZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuX2VsZW1lbnRNaW5IZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1pbkhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50TWluSGVpZ2h0ID0gMDtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuZGVmYXVsdE1pbkhlaWdodCkpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IFZpZXdVdGlsLmdldFN0YWdlSGVpZ2h0KCk7XG4gICAgICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlIC09IHRoaXMucGFkZGluZ1RvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghXy5pc05hTih0aGlzLnBhZGRpbmdCb3R0b20pKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgLT0gdGhpcy5wYWRkaW5nQm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1pbkhlaWdodCA9IE1hdGgubWluKHRoaXMuZGVmYXVsdE1pbkhlaWdodCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluSGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1heEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5fZWxlbWVudE1heEhlaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWF4SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNYXhIZWlnaHQgPSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1heEhlaWdodCAtPSB0aGlzLnBhZGRpbmdUb3A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMucGFkZGluZ0JvdHRvbSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRNYXhIZWlnaHQgLT0gdGhpcy5wYWRkaW5nQm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLmRlZmF1bHRNYXhIZWlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4SGVpZ2h0ID0gTWF0aC5taW4odGhpcy5kZWZhdWx0TWF4SGVpZ2h0LCB0aGlzLl9lbGVtZW50TWF4SGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heEhlaWdodDtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFdpbmRvd0NvbmZpZ09wdGlvbnM8VCA9IGFueT4gPSB7IFtQIGluIGtleW9mIFdpbmRvd0NvbmZpZzxUPl0/OiBhbnkgfTtcbiJdfQ==
|