@ts-core/angular 18.0.1 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/application/ApplicationBaseComponent.d.ts +1 -1
  2. package/fesm2022/ts-core-angular.mjs +310 -271
  3. package/fesm2022/ts-core-angular.mjs.map +1 -1
  4. package/login/LoginTokenStorage.d.ts +1 -1
  5. package/notification/INotificationContent.d.ts +1 -1
  6. package/package.json +13 -15
  7. package/public-api.d.ts +1 -0
  8. package/service/RouterBaseService.d.ts +0 -4
  9. package/service/ServiceWorkerService.d.ts +3 -1
  10. package/storage/JSONValueStorage.d.ts +5 -0
  11. package/theme/ThemeAssetDirective.d.ts +1 -1
  12. package/theme/ThemeToggleDirective.d.ts +1 -1
  13. package/window/IWindowContent.d.ts +1 -1
  14. package/esm2022/ApplicationInjector.mjs +0 -9
  15. package/esm2022/VIModule.mjs +0 -190
  16. package/esm2022/application/ApplicationBaseComponent.mjs +0 -96
  17. package/esm2022/application/ApplicationComponent.mjs +0 -64
  18. package/esm2022/application/MessageBaseComponent.mjs +0 -60
  19. package/esm2022/asset/AssetBackgroundDirective.mjs +0 -155
  20. package/esm2022/asset/AssetBackgroundPipe.mjs +0 -22
  21. package/esm2022/asset/AssetFilePipe.mjs +0 -22
  22. package/esm2022/asset/AssetIconPipe.mjs +0 -22
  23. package/esm2022/asset/AssetImagePipe.mjs +0 -22
  24. package/esm2022/asset/AssetModule.mjs +0 -25
  25. package/esm2022/asset/AssetSoundPipe.mjs +0 -22
  26. package/esm2022/asset/AssetVideoPipe.mjs +0 -22
  27. package/esm2022/bottomSheet/BottomSheetService.mjs +0 -4
  28. package/esm2022/cookie/CookieModule.mjs +0 -47
  29. package/esm2022/cookie/CookieOptions.mjs +0 -9
  30. package/esm2022/cookie/CookieService.mjs +0 -69
  31. package/esm2022/directive/AspectRatioResizeDirective.mjs +0 -135
  32. package/esm2022/directive/AutoScrollBottomDirective.mjs +0 -122
  33. package/esm2022/directive/ClickToCopyDirective.mjs +0 -53
  34. package/esm2022/directive/ClickToSelectDirective.mjs +0 -55
  35. package/esm2022/directive/FocusDirective.mjs +0 -60
  36. package/esm2022/directive/HTMLContentTitleDirective.mjs +0 -74
  37. package/esm2022/directive/HTMLTitleDirective.mjs +0 -73
  38. package/esm2022/directive/InfiniteScrollDirective.mjs +0 -72
  39. package/esm2022/directive/IsBrowserDirective.mjs +0 -24
  40. package/esm2022/directive/IsServerDirective.mjs +0 -24
  41. package/esm2022/directive/ResizeDirective.mjs +0 -84
  42. package/esm2022/directive/ScrollCheckDirective.mjs +0 -106
  43. package/esm2022/directive/ScrollDirective.mjs +0 -121
  44. package/esm2022/directive/SelectOnFocusDirective.mjs +0 -48
  45. package/esm2022/directive/StructureDirective.mjs +0 -80
  46. package/esm2022/language/LanguageDirective.mjs +0 -103
  47. package/esm2022/language/LanguageHasDirective.mjs +0 -87
  48. package/esm2022/language/LanguageModule.mjs +0 -61
  49. package/esm2022/language/LanguagePipe.mjs +0 -88
  50. package/esm2022/language/LanguagePipeHas.mjs +0 -64
  51. package/esm2022/language/LanguagePipeHasPure.mjs +0 -41
  52. package/esm2022/language/LanguagePipePure.mjs +0 -40
  53. package/esm2022/language/LanguageRequireResolver.mjs +0 -37
  54. package/esm2022/language/LanguageResolver.mjs +0 -21
  55. package/esm2022/list/IListItem.mjs +0 -2
  56. package/esm2022/list/ListItem.mjs +0 -148
  57. package/esm2022/list/ListItems.mjs +0 -107
  58. package/esm2022/list/select/ISelectListItem.mjs +0 -2
  59. package/esm2022/list/select/RouterSelectListItems.mjs +0 -60
  60. package/esm2022/list/select/SelectListItem.mjs +0 -67
  61. package/esm2022/list/select/SelectListItems.mjs +0 -130
  62. package/esm2022/login/LoginBaseService.mjs +0 -191
  63. package/esm2022/login/LoginGuard.mjs +0 -41
  64. package/esm2022/login/LoginIfCanGuard.mjs +0 -55
  65. package/esm2022/login/LoginNotGuard.mjs +0 -41
  66. package/esm2022/login/LoginRequireResolver.mjs +0 -40
  67. package/esm2022/login/LoginResolver.mjs +0 -24
  68. package/esm2022/login/LoginTokenStorage.mjs +0 -18
  69. package/esm2022/manager/FocusManager.mjs +0 -54
  70. package/esm2022/manager/ResizeManager.mjs +0 -90
  71. package/esm2022/menu/MenuItem.mjs +0 -20
  72. package/esm2022/menu/MenuItemBase.mjs +0 -56
  73. package/esm2022/menu/MenuItems.mjs +0 -111
  74. package/esm2022/menu/NavigationMenuItem.mjs +0 -20
  75. package/esm2022/module/LazyModuleLoader.mjs +0 -97
  76. package/esm2022/notification/INotification.mjs +0 -16
  77. package/esm2022/notification/INotificationConfig.mjs +0 -2
  78. package/esm2022/notification/INotificationContent.mjs +0 -141
  79. package/esm2022/notification/NotificationConfig.mjs +0 -27
  80. package/esm2022/notification/NotificationService.mjs +0 -4
  81. package/esm2022/notification/NotificationServiceEvent.mjs +0 -8
  82. package/esm2022/pipe/CamelCasePipe.mjs +0 -23
  83. package/esm2022/pipe/FinancePipe.mjs +0 -53
  84. package/esm2022/pipe/MomentDateAdaptivePipe.mjs +0 -51
  85. package/esm2022/pipe/MomentDateFromNowPipe.mjs +0 -22
  86. package/esm2022/pipe/MomentDatePipe.mjs +0 -71
  87. package/esm2022/pipe/MomentTimePipe.mjs +0 -35
  88. package/esm2022/pipe/NgModelErrorPipe.mjs +0 -43
  89. package/esm2022/pipe/PrettifyPipe.mjs +0 -38
  90. package/esm2022/pipe/SanitizePipe.mjs +0 -48
  91. package/esm2022/pipe/StartCasePipe.mjs +0 -23
  92. package/esm2022/pipe/TimePipe.mjs +0 -38
  93. package/esm2022/pipe/TruncatePipe.mjs +0 -23
  94. package/esm2022/public-api.mjs +0 -139
  95. package/esm2022/question/IQuestion.mjs +0 -14
  96. package/esm2022/question/QuestionManager.mjs +0 -107
  97. package/esm2022/service/PipeBaseService.mjs +0 -140
  98. package/esm2022/service/PlatformService.mjs +0 -44
  99. package/esm2022/service/RouterBaseService.mjs +0 -244
  100. package/esm2022/service/ServiceWorkerService.mjs +0 -107
  101. package/esm2022/service/route/CanDeactivateGuard.mjs +0 -11
  102. package/esm2022/service/route/IRouterDeactivatable.mjs +0 -2
  103. package/esm2022/storage/BooleanValueStorage.mjs +0 -15
  104. package/esm2022/storage/DateValueStorage.mjs +0 -46
  105. package/esm2022/storage/IValueStorage.mjs +0 -2
  106. package/esm2022/storage/LocalStorageService.mjs +0 -73
  107. package/esm2022/storage/ValueStorage.mjs +0 -84
  108. package/esm2022/theme/ThemeAssetBackgroundDirective.mjs +0 -51
  109. package/esm2022/theme/ThemeAssetDirective.mjs +0 -253
  110. package/esm2022/theme/ThemeAssetIconDirective.mjs +0 -48
  111. package/esm2022/theme/ThemeAssetImageDirective.mjs +0 -49
  112. package/esm2022/theme/ThemeModule.mjs +0 -81
  113. package/esm2022/theme/ThemeStyleDirective.mjs +0 -125
  114. package/esm2022/theme/ThemeStyleHoverDirective.mjs +0 -107
  115. package/esm2022/theme/ThemeToggleDirective.mjs +0 -63
  116. package/esm2022/transport/TransportLazy.mjs +0 -93
  117. package/esm2022/transport/TransportLazyModule.mjs +0 -30
  118. package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
  119. package/esm2022/ts-core-angular.mjs +0 -5
  120. package/esm2022/user/IUser.mjs +0 -9
  121. package/esm2022/user/UserBaseService.mjs +0 -124
  122. package/esm2022/util/ViewUtil.mjs +0 -589
  123. package/esm2022/window/IWindow.mjs +0 -31
  124. package/esm2022/window/IWindowConfig.mjs +0 -7
  125. package/esm2022/window/IWindowContent.mjs +0 -143
  126. package/esm2022/window/WindowBase.mjs +0 -177
  127. package/esm2022/window/WindowClosedError.mjs +0 -19
  128. package/esm2022/window/WindowConfig.mjs +0 -218
  129. package/esm2022/window/WindowService.mjs +0 -4
  130. package/esm2022/window/WindowServiceEvent.mjs +0 -9
@@ -1,124 +0,0 @@
1
- import { DestroyableContainer } from '@ts-core/common';
2
- import { ObservableData } from '@ts-core/common';
3
- import * as _ from 'lodash';
4
- import { takeUntil, Subject, filter, map } from 'rxjs';
5
- import { LoginBaseServiceEvent } from '../login/LoginBaseService';
6
- export class UserBaseService extends DestroyableContainer {
7
- login;
8
- // --------------------------------------------------------------------------
9
- //
10
- // Properties
11
- //
12
- // --------------------------------------------------------------------------
13
- _user;
14
- observer;
15
- // --------------------------------------------------------------------------
16
- //
17
- // Constructor
18
- //
19
- // --------------------------------------------------------------------------
20
- constructor(login) {
21
- super();
22
- this.login = login;
23
- this.observer = new Subject();
24
- }
25
- // --------------------------------------------------------------------------
26
- //
27
- // Protected Methods
28
- //
29
- // --------------------------------------------------------------------------
30
- initialize() {
31
- if (this.login.isLoggedIn) {
32
- this.loginedHandler();
33
- }
34
- this.login.events.pipe(takeUntil(this.destroyed)).subscribe(data => {
35
- if (data.type === LoginBaseServiceEvent.LOGIN_COMPLETE) {
36
- this.loginedHandler();
37
- }
38
- else if (data.type === LoginBaseServiceEvent.LOGOUT_FINISHED) {
39
- this.logoutedHandler();
40
- }
41
- });
42
- }
43
- initializeUser(data) {
44
- this._user = this.createUser(data);
45
- }
46
- deinitializeUser() {
47
- this._user = null;
48
- }
49
- loginedHandler() {
50
- this.initializeUser(this.login.loginData);
51
- this.observer.next(new ObservableData(UserBaseServiceEvent.LOGINED, this.user));
52
- }
53
- logoutedHandler() {
54
- this.deinitializeUser();
55
- this.observer.next(new ObservableData(UserBaseServiceEvent.LOGOUTED));
56
- }
57
- // --------------------------------------------------------------------------
58
- //
59
- // Public Methods
60
- //
61
- // --------------------------------------------------------------------------
62
- isUser(value) {
63
- if (_.isNil(value) || _.isNil(this.user)) {
64
- return false;
65
- }
66
- if (_.isString(value) || _.isNumber(value)) {
67
- return value === this.user.id;
68
- }
69
- return value.id === this.user.id;
70
- }
71
- userUpdate(data) {
72
- if (!this.hasUser) {
73
- return;
74
- }
75
- this.user.update(data);
76
- this.observer.next(new ObservableData(UserBaseServiceEvent.CHANGED, data));
77
- }
78
- destroy() {
79
- if (this.isDestroyed) {
80
- return;
81
- }
82
- super.destroy();
83
- if (!_.isNil(this.observer)) {
84
- this.observer.complete();
85
- this.observer = null;
86
- }
87
- }
88
- // --------------------------------------------------------------------------
89
- //
90
- // Public Properties
91
- //
92
- // --------------------------------------------------------------------------
93
- get events() {
94
- return this.observer.asObservable();
95
- }
96
- get logined() {
97
- return this.events.pipe(filter(item => item.type === UserBaseServiceEvent.LOGINED), map(item => item.data));
98
- }
99
- get changed() {
100
- return this.events.pipe(filter(item => item.type === UserBaseServiceEvent.CHANGED), map(item => item.data));
101
- }
102
- get logouted() {
103
- return this.events.pipe(filter(item => item.type === UserBaseServiceEvent.LOGOUTED), map(() => null));
104
- }
105
- get hasUser() {
106
- return !_.isNil(this._user);
107
- }
108
- get isLogined() {
109
- return this.hasUser;
110
- }
111
- get user() {
112
- return this._user;
113
- }
114
- get id() {
115
- return this.hasUser ? this.user.id : null;
116
- }
117
- }
118
- export var UserBaseServiceEvent;
119
- (function (UserBaseServiceEvent) {
120
- UserBaseServiceEvent["LOGINED"] = "LOGINED";
121
- UserBaseServiceEvent["CHANGED"] = "CHANGED";
122
- UserBaseServiceEvent["LOGOUTED"] = "LOGOUTED";
123
- })(UserBaseServiceEvent || (UserBaseServiceEvent = {}));
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckJhc2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VzZXIvVXNlckJhc2VTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQWMsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUdwRixNQUFNLE9BQWdCLGVBQWlELFNBQVEsb0JBQW9CO0lBZ0J6RTtJQWZ0Qiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLEtBQUssQ0FBSTtJQUNULFFBQVEsQ0FBb0U7SUFFdEYsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQixLQUF1QjtRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBRXpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFD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SSxDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIsMkNBQW1CLENBQUE7SUFDbkIsMkNBQW1CLENBQUE7SUFDbkIsNkNBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFJL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95YWJsZUNvbnRhaW5lciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlRGF0YSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwsIFN1YmplY3QsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2dpbkJhc2VTZXJ2aWNlLCBMb2dpbkJhc2VTZXJ2aWNlRXZlbnQgfSBmcm9tICcuLi9sb2dpbi9Mb2dpbkJhc2VTZXJ2aWNlJztcbmltcG9ydCB7IElVc2VyLCBVc2VyVWlkIH0gZnJvbSAnLi9JVXNlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyQmFzZVNlcnZpY2U8VSBleHRlbmRzIElVc2VyID0gYW55LCBWID0gdm9pZD4gZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBfdXNlcjogVTtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8T2JzZXJ2YWJsZURhdGE8ViB8IFVzZXJCYXNlU2VydmljZUV2ZW50LCBVIHwgUGFydGlhbDxVPj4+O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9naW46IExvZ2luQmFzZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9naW4uaXNMb2dnZWRJbikge1xuICAgICAgICAgICAgdGhpcy5sb2dpbmVkSGFuZGxlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2dpbi5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YS50eXBlID09PSBMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5fQ09NUExFVEUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luZWRIYW5kbGVyKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR09VVF9GSU5JU0hFRCkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3V0ZWRIYW5kbGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplVXNlcihkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXNlciA9IHRoaXMuY3JlYXRlVXNlcihkYXRhKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVpbml0aWFsaXplVXNlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXNlciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvZ2luZWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVVc2VyKHRoaXMubG9naW4ubG9naW5EYXRhKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShVc2VyQmFzZVNlcnZpY2VFdmVudC5MT0dJTkVELCB0aGlzLnVzZXIpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9nb3V0ZWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlaW5pdGlhbGl6ZVVzZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShVc2VyQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRFRCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVVc2VyKGRhdGE6IGFueSk6IFU7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBpc1VzZXIodmFsdWU6IFBhcnRpYWw8VT4gfCBVc2VyVWlkKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChfLmlzTmlsKHZhbHVlKSB8fCBfLmlzTmlsKHRoaXMudXNlcikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkgfHwgXy5pc051bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdGhpcy51c2VyLmlkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZS5pZCA9PT0gdGhpcy51c2VyLmlkO1xuICAgIH1cblxuICAgIHB1YmxpYyB1c2VyVXBkYXRlKGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVXNlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlci51cGRhdGUoZGF0YSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoVXNlckJhc2VTZXJ2aWNlRXZlbnQuQ0hBTkdFRCwgZGF0YSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5vYnNlcnZlcikpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGV2ZW50cygpOiBPYnNlcnZhYmxlPE9ic2VydmFibGVEYXRhPFYgfCBVc2VyQmFzZVNlcnZpY2VFdmVudCwgVSB8IFBhcnRpYWw8VT4+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9ic2VydmVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9naW5lZCgpOiBPYnNlcnZhYmxlPFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXRlbSA9PiBpdGVtLnR5cGUgPT09IFVzZXJCYXNlU2VydmljZUV2ZW50LkxPR0lORUQpLFxuICAgICAgICAgICAgbWFwKGl0ZW0gPT4gaXRlbS5kYXRhIGFzIFUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjaGFuZ2VkKCk6IE9ic2VydmFibGU8UGFydGlhbDxVPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihpdGVtID0+IGl0ZW0udHlwZSA9PT0gVXNlckJhc2VTZXJ2aWNlRXZlbnQuQ0hBTkdFRCksXG4gICAgICAgICAgICBtYXAoaXRlbSA9PiBpdGVtLmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2dvdXRlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXRlbSA9PiBpdGVtLnR5cGUgPT09IFVzZXJCYXNlU2VydmljZUV2ZW50LkxPR09VVEVEKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzVXNlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuX3VzZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNMb2dpbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNVc2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdXNlcigpOiBVIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZCgpOiBVc2VyVWlkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVXNlciA/IHRoaXMudXNlci5pZCA6IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBVc2VyQmFzZVNlcnZpY2VFdmVudCB7XG4gICAgTE9HSU5FRCA9ICdMT0dJTkVEJyxcbiAgICBDSEFOR0VEID0gJ0NIQU5HRUQnLFxuICAgIExPR09VVEVEID0gJ0xPR09VVEVEJ1xufVxuIl19