@ts-core/angular 15.0.60 → 17.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/asset/AssetBackgroundDirective.d.ts +1 -1
  2. package/cookie/CookieService.d.ts +1 -3
  3. package/directive/AspectRatioResizeDirective.d.ts +1 -1
  4. package/directive/AutoScrollBottomDirective.d.ts +1 -1
  5. package/directive/ClickToCopyDirective.d.ts +1 -1
  6. package/directive/FocusDirective.d.ts +1 -1
  7. package/directive/HTMLContentTitleDirective.d.ts +1 -1
  8. package/directive/HTMLTitleDirective.d.ts +1 -1
  9. package/directive/InfiniteScrollDirective.d.ts +1 -1
  10. package/directive/ResizeDirective.d.ts +1 -1
  11. package/directive/ScrollCheckDirective.d.ts +1 -1
  12. package/directive/ScrollDirective.d.ts +1 -1
  13. package/esm2022/VIModule.mjs +190 -0
  14. package/esm2022/application/ApplicationBaseComponent.mjs +96 -0
  15. package/esm2022/application/ApplicationComponent.mjs +64 -0
  16. package/esm2022/application/MessageBaseComponent.mjs +60 -0
  17. package/esm2022/asset/AssetBackgroundDirective.mjs +152 -0
  18. package/{esm2020 → esm2022}/asset/AssetBackgroundPipe.mjs +4 -4
  19. package/{esm2020 → esm2022}/asset/AssetFilePipe.mjs +4 -4
  20. package/{esm2020 → esm2022}/asset/AssetIconPipe.mjs +4 -4
  21. package/{esm2020 → esm2022}/asset/AssetImagePipe.mjs +4 -4
  22. package/{esm2020 → esm2022}/asset/AssetModule.mjs +5 -5
  23. package/{esm2020 → esm2022}/asset/AssetSoundPipe.mjs +4 -4
  24. package/{esm2020 → esm2022}/asset/AssetVideoPipe.mjs +4 -4
  25. package/{esm2020 → esm2022}/cookie/CookieModule.mjs +5 -5
  26. package/{esm2020 → esm2022}/cookie/CookieOptions.mjs +7 -1
  27. package/esm2022/cookie/CookieService.mjs +71 -0
  28. package/esm2022/directive/AspectRatioResizeDirective.mjs +134 -0
  29. package/esm2022/directive/AutoScrollBottomDirective.mjs +122 -0
  30. package/esm2022/directive/ClickToCopyDirective.mjs +53 -0
  31. package/esm2022/directive/ClickToSelectDirective.mjs +55 -0
  32. package/esm2022/directive/FocusDirective.mjs +60 -0
  33. package/esm2022/directive/HTMLContentTitleDirective.mjs +74 -0
  34. package/esm2022/directive/HTMLTitleDirective.mjs +73 -0
  35. package/esm2022/directive/InfiniteScrollDirective.mjs +71 -0
  36. package/{esm2020 → esm2022}/directive/IsBrowserDirective.mjs +5 -5
  37. package/{esm2020 → esm2022}/directive/IsServerDirective.mjs +5 -5
  38. package/esm2022/directive/ResizeDirective.mjs +80 -0
  39. package/esm2022/directive/ScrollCheckDirective.mjs +104 -0
  40. package/esm2022/directive/ScrollDirective.mjs +120 -0
  41. package/esm2022/directive/SelectOnFocusDirective.mjs +48 -0
  42. package/esm2022/directive/StructureDirective.mjs +80 -0
  43. package/esm2022/language/LanguageDirective.mjs +102 -0
  44. package/esm2022/language/LanguageHasDirective.mjs +87 -0
  45. package/{esm2020 → esm2022}/language/LanguageModule.mjs +5 -5
  46. package/esm2022/language/LanguagePipe.mjs +88 -0
  47. package/esm2022/language/LanguagePipeHas.mjs +64 -0
  48. package/esm2022/language/LanguagePipeHasPure.mjs +41 -0
  49. package/esm2022/language/LanguagePipePure.mjs +40 -0
  50. package/esm2022/language/LanguageRequireResolver.mjs +37 -0
  51. package/{esm2020 → esm2022}/language/LanguageResolver.mjs +5 -5
  52. package/esm2022/list/ListItem.mjs +148 -0
  53. package/esm2022/list/ListItems.mjs +107 -0
  54. package/esm2022/list/select/RouterSelectListItems.mjs +60 -0
  55. package/esm2022/list/select/SelectListItem.mjs +67 -0
  56. package/esm2022/list/select/SelectListItems.mjs +130 -0
  57. package/esm2022/login/LoginBaseService.mjs +191 -0
  58. package/esm2022/login/LoginGuard.mjs +41 -0
  59. package/esm2022/login/LoginIfCanGuard.mjs +55 -0
  60. package/esm2022/login/LoginNotGuard.mjs +41 -0
  61. package/esm2022/login/LoginRequireResolver.mjs +40 -0
  62. package/{esm2020 → esm2022}/login/LoginResolver.mjs +6 -6
  63. package/esm2022/login/LoginTokenStorage.mjs +18 -0
  64. package/esm2022/manager/FocusManager.mjs +54 -0
  65. package/esm2022/manager/ResizeManager.mjs +90 -0
  66. package/esm2022/menu/MenuItem.mjs +20 -0
  67. package/esm2022/menu/MenuItemBase.mjs +56 -0
  68. package/esm2022/menu/MenuItems.mjs +111 -0
  69. package/esm2022/menu/NavigationMenuItem.mjs +20 -0
  70. package/esm2022/module/LazyModuleLoader.mjs +97 -0
  71. package/esm2022/notification/INotification.mjs +16 -0
  72. package/esm2022/notification/INotificationContent.mjs +141 -0
  73. package/esm2022/notification/NotificationConfig.mjs +27 -0
  74. package/{esm2020 → esm2022}/pipe/CamelCasePipe.mjs +4 -4
  75. package/esm2022/pipe/FinancePipe.mjs +53 -0
  76. package/esm2022/pipe/MomentDateAdaptivePipe.mjs +51 -0
  77. package/{esm2020 → esm2022}/pipe/MomentDateFromNowPipe.mjs +4 -4
  78. package/esm2022/pipe/MomentDatePipe.mjs +71 -0
  79. package/esm2022/pipe/MomentTimePipe.mjs +35 -0
  80. package/esm2022/pipe/NgModelErrorPipe.mjs +43 -0
  81. package/esm2022/pipe/PrettifyPipe.mjs +38 -0
  82. package/esm2022/pipe/SanitizePipe.mjs +48 -0
  83. package/{esm2020 → esm2022}/pipe/StartCasePipe.mjs +4 -4
  84. package/esm2022/pipe/TimePipe.mjs +38 -0
  85. package/{esm2020 → esm2022}/pipe/TruncatePipe.mjs +4 -4
  86. package/esm2022/public-api.mjs +138 -0
  87. package/esm2022/question/QuestionManager.mjs +107 -0
  88. package/esm2022/service/PipeBaseService.mjs +140 -0
  89. package/esm2022/service/PlatformService.mjs +45 -0
  90. package/esm2022/service/RouterBaseService.mjs +236 -0
  91. package/esm2022/storage/DateValueStorage.mjs +46 -0
  92. package/esm2022/storage/LocalStorageService.mjs +58 -0
  93. package/esm2022/storage/ValueStorage.mjs +75 -0
  94. package/{esm2020 → esm2022}/theme/ThemeAssetBackgroundDirective.mjs +5 -5
  95. package/esm2022/theme/ThemeAssetDirective.mjs +251 -0
  96. package/{esm2020 → esm2022}/theme/ThemeAssetIconDirective.mjs +5 -5
  97. package/{esm2020 → esm2022}/theme/ThemeAssetImageDirective.mjs +5 -5
  98. package/{esm2020 → esm2022}/theme/ThemeModule.mjs +15 -15
  99. package/esm2022/theme/ThemeStyleDirective.mjs +125 -0
  100. package/esm2022/theme/ThemeStyleHoverDirective.mjs +107 -0
  101. package/esm2022/theme/ThemeToggleDirective.mjs +63 -0
  102. package/esm2022/transport/TransportLazy.mjs +93 -0
  103. package/esm2022/transport/TransportLazyModule.mjs +30 -0
  104. package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
  105. package/esm2022/user/IUser.mjs +9 -0
  106. package/esm2022/user/UserBaseService.mjs +124 -0
  107. package/esm2022/util/ViewUtil.mjs +589 -0
  108. package/esm2022/window/IWindow.mjs +31 -0
  109. package/esm2022/window/IWindowContent.mjs +142 -0
  110. package/esm2022/window/WindowBase.mjs +177 -0
  111. package/esm2022/window/WindowClosedError.mjs +19 -0
  112. package/esm2022/window/WindowConfig.mjs +218 -0
  113. package/{fesm2020 → fesm2022}/ts-core-angular.mjs +1118 -958
  114. package/fesm2022/ts-core-angular.mjs.map +1 -0
  115. package/language/LanguageDirective.d.ts +1 -1
  116. package/language/LanguageHasDirective.d.ts +1 -1
  117. package/module/LazyModuleLoader.d.ts +1 -1
  118. package/notification/INotificationContent.d.ts +1 -1
  119. package/notification/NotificationConfig.d.ts +1 -1
  120. package/notification/NotificationService.d.ts +1 -1
  121. package/package.json +19 -26
  122. package/pipe/MomentDatePipe.d.ts +1 -1
  123. package/public-api.d.ts +0 -2
  124. package/theme/ThemeAssetBackgroundDirective.d.ts +1 -1
  125. package/theme/ThemeAssetDirective.d.ts +1 -1
  126. package/theme/ThemeAssetIconDirective.d.ts +1 -1
  127. package/theme/ThemeAssetImageDirective.d.ts +1 -1
  128. package/theme/ThemeStyleDirective.d.ts +1 -1
  129. package/theme/ThemeStyleHoverDirective.d.ts +1 -1
  130. package/user/IUser.d.ts +1 -1
  131. package/util/ViewUtil.d.ts +1 -1
  132. package/window/IWindowContent.d.ts +2 -2
  133. package/window/WindowConfig.d.ts +1 -1
  134. package/window/WindowService.d.ts +1 -1
  135. package/esm2020/VIModule.mjs +0 -187
  136. package/esm2020/application/ApplicationBaseComponent.mjs +0 -88
  137. package/esm2020/application/ApplicationComponent.mjs +0 -58
  138. package/esm2020/application/MessageBaseComponent.mjs +0 -52
  139. package/esm2020/asset/AssetBackgroundDirective.mjs +0 -150
  140. package/esm2020/cookie/CookieService.mjs +0 -79
  141. package/esm2020/directive/AspectRatioResizeDirective.mjs +0 -131
  142. package/esm2020/directive/AutoScrollBottomDirective.mjs +0 -122
  143. package/esm2020/directive/ClickToCopyDirective.mjs +0 -49
  144. package/esm2020/directive/ClickToSelectDirective.mjs +0 -49
  145. package/esm2020/directive/FocusDirective.mjs +0 -54
  146. package/esm2020/directive/HTMLContentTitleDirective.mjs +0 -67
  147. package/esm2020/directive/HTMLTitleDirective.mjs +0 -66
  148. package/esm2020/directive/InfiniteScrollDirective.mjs +0 -74
  149. package/esm2020/directive/ResizeDirective.mjs +0 -79
  150. package/esm2020/directive/ScrollCheckDirective.mjs +0 -102
  151. package/esm2020/directive/ScrollDirective.mjs +0 -118
  152. package/esm2020/directive/SelectOnFocusDirective.mjs +0 -47
  153. package/esm2020/directive/StructureDirective.mjs +0 -71
  154. package/esm2020/form/FormElementAsync.mjs +0 -27
  155. package/esm2020/form/FormElementSync.mjs +0 -69
  156. package/esm2020/form/ValueAccessor.mjs +0 -62
  157. package/esm2020/form/validate.mjs +0 -59
  158. package/esm2020/language/LanguageDirective.mjs +0 -92
  159. package/esm2020/language/LanguageHasDirective.mjs +0 -80
  160. package/esm2020/language/LanguagePipe.mjs +0 -78
  161. package/esm2020/language/LanguagePipeHas.mjs +0 -56
  162. package/esm2020/language/LanguagePipeHasPure.mjs +0 -40
  163. package/esm2020/language/LanguagePipePure.mjs +0 -39
  164. package/esm2020/language/LanguageRequireResolver.mjs +0 -36
  165. package/esm2020/list/ListItem.mjs +0 -134
  166. package/esm2020/list/ListItems.mjs +0 -97
  167. package/esm2020/list/select/RouterSelectListItems.mjs +0 -53
  168. package/esm2020/list/select/SelectListItem.mjs +0 -59
  169. package/esm2020/list/select/SelectListItems.mjs +0 -121
  170. package/esm2020/login/LoginBaseService.mjs +0 -184
  171. package/esm2020/login/LoginGuard.mjs +0 -40
  172. package/esm2020/login/LoginIfCanGuard.mjs +0 -54
  173. package/esm2020/login/LoginNotGuard.mjs +0 -40
  174. package/esm2020/login/LoginRequireResolver.mjs +0 -39
  175. package/esm2020/login/LoginTokenStorage.mjs +0 -18
  176. package/esm2020/manager/FocusManager.mjs +0 -46
  177. package/esm2020/manager/ResizeManager.mjs +0 -81
  178. package/esm2020/menu/MenuItem.mjs +0 -13
  179. package/esm2020/menu/MenuItemBase.mjs +0 -46
  180. package/esm2020/menu/MenuItems.mjs +0 -102
  181. package/esm2020/menu/NavigationMenuItem.mjs +0 -14
  182. package/esm2020/module/LazyModuleLoader.mjs +0 -89
  183. package/esm2020/notification/INotification.mjs +0 -7
  184. package/esm2020/notification/INotificationContent.mjs +0 -132
  185. package/esm2020/notification/NotificationConfig.mjs +0 -16
  186. package/esm2020/pipe/FinancePipe.mjs +0 -53
  187. package/esm2020/pipe/MomentDateAdaptivePipe.mjs +0 -51
  188. package/esm2020/pipe/MomentDatePipe.mjs +0 -71
  189. package/esm2020/pipe/MomentTimePipe.mjs +0 -35
  190. package/esm2020/pipe/NgModelErrorPipe.mjs +0 -42
  191. package/esm2020/pipe/PrettifyPipe.mjs +0 -38
  192. package/esm2020/pipe/SanitizePipe.mjs +0 -47
  193. package/esm2020/pipe/TimePipe.mjs +0 -38
  194. package/esm2020/public-api.mjs +0 -141
  195. package/esm2020/question/QuestionManager.mjs +0 -93
  196. package/esm2020/service/PipeBaseService.mjs +0 -132
  197. package/esm2020/service/PlatformService.mjs +0 -38
  198. package/esm2020/service/RouterBaseService.mjs +0 -224
  199. package/esm2020/storage/DateValueStorage.mjs +0 -49
  200. package/esm2020/storage/LocalStorageService.mjs +0 -57
  201. package/esm2020/storage/ValueStorage.mjs +0 -67
  202. package/esm2020/theme/ThemeAssetDirective.mjs +0 -240
  203. package/esm2020/theme/ThemeStyleDirective.mjs +0 -115
  204. package/esm2020/theme/ThemeStyleHoverDirective.mjs +0 -107
  205. package/esm2020/theme/ThemeToggleDirective.mjs +0 -62
  206. package/esm2020/transport/TransportLazy.mjs +0 -92
  207. package/esm2020/transport/TransportLazyModule.mjs +0 -28
  208. package/esm2020/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
  209. package/esm2020/user/IUser.mjs +0 -3
  210. package/esm2020/user/UserBaseService.mjs +0 -116
  211. package/esm2020/util/ViewUtil.mjs +0 -589
  212. package/esm2020/window/IWindow.mjs +0 -33
  213. package/esm2020/window/IWindowContent.mjs +0 -135
  214. package/esm2020/window/WindowBase.mjs +0 -177
  215. package/esm2020/window/WindowClosedError.mjs +0 -19
  216. package/esm2020/window/WindowConfig.mjs +0 -197
  217. package/fesm2015/ts-core-angular.mjs +0 -7015
  218. package/fesm2015/ts-core-angular.mjs.map +0 -1
  219. package/fesm2020/ts-core-angular.mjs.map +0 -1
  220. package/form/FormElementAsync.d.ts +0 -13
  221. package/form/FormElementSync.d.ts +0 -22
  222. package/form/ValueAccessor.d.ts +0 -16
  223. package/form/validate.d.ts +0 -9
  224. /package/{esm2020 → esm2022}/ApplicationInjector.mjs +0 -0
  225. /package/{esm2020 → esm2022}/bottomSheet/BottomSheetService.mjs +0 -0
  226. /package/{esm2020 → esm2022}/list/IListItem.mjs +0 -0
  227. /package/{esm2020 → esm2022}/list/select/ISelectListItem.mjs +0 -0
  228. /package/{esm2020 → esm2022}/notification/INotificationConfig.mjs +0 -0
  229. /package/{esm2020 → esm2022}/notification/NotificationService.mjs +0 -0
  230. /package/{esm2020 → esm2022}/notification/NotificationServiceEvent.mjs +0 -0
  231. /package/{esm2020 → esm2022}/question/IQuestion.mjs +0 -0
  232. /package/{esm2020 → esm2022}/service/route/CanDeactivateGuard.mjs +0 -0
  233. /package/{esm2020 → esm2022}/service/route/IRouterDeactivatable.mjs +0 -0
  234. /package/{esm2020 → esm2022}/storage/BooleanValueStorage.mjs +0 -0
  235. /package/{esm2020 → esm2022}/storage/IValueStorage.mjs +0 -0
  236. /package/{esm2020 → esm2022}/ts-core-angular.mjs +0 -0
  237. /package/{esm2020 → esm2022}/window/IWindowConfig.mjs +0 -0
  238. /package/{esm2020 → esm2022}/window/WindowService.mjs +0 -0
  239. /package/{esm2020 → esm2022}/window/WindowServiceEvent.mjs +0 -0
@@ -0,0 +1,218 @@
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
+ // Properties
8
+ //
9
+ // --------------------------------------------------------------------------
10
+ id;
11
+ isModal = false;
12
+ isExpandable = false;
13
+ isResizeable = false;
14
+ isMinimizable = false;
15
+ isDisableClose = false;
16
+ isContentDragable = true;
17
+ x = NaN;
18
+ y = NaN;
19
+ data;
20
+ propertiesId;
21
+ width;
22
+ minWidth;
23
+ maxWidth;
24
+ defaultWidth = NaN;
25
+ defaultMinWidth = NaN;
26
+ defaultMaxWidth = NaN;
27
+ height;
28
+ minHeight;
29
+ maxHeight;
30
+ defaultHeight = NaN;
31
+ defaultMinHeight = NaN;
32
+ defaultMaxHeight = NaN;
33
+ paddingTop = NaN;
34
+ paddingLeft = NaN;
35
+ paddingRight = NaN;
36
+ paddingBottom = NaN;
37
+ autoFocus;
38
+ restoreFocus;
39
+ delayFocusTrap;
40
+ verticalAlign;
41
+ horizontalAlign;
42
+ _elementMaxX = NaN;
43
+ _elementMinX = NaN;
44
+ _elementMaxY = NaN;
45
+ _elementMinY = NaN;
46
+ _elementWidth;
47
+ _elementMinWidth = NaN;
48
+ _elementMaxWidth = NaN;
49
+ _elementHeight;
50
+ _elementMinHeight = NaN;
51
+ _elementMaxHeight = NaN;
52
+ // --------------------------------------------------------------------------
53
+ //
54
+ // Constructor
55
+ //
56
+ // --------------------------------------------------------------------------
57
+ constructor(isModal = false, isResizeable = false, width = NaN, height = NaN) {
58
+ this.isModal = isModal;
59
+ this.isResizeable = isResizeable;
60
+ if (!_.isNaN(width)) {
61
+ this.defaultWidth = width;
62
+ }
63
+ if (!_.isNaN(height)) {
64
+ this.defaultHeight = height;
65
+ }
66
+ }
67
+ // --------------------------------------------------------------------------
68
+ //
69
+ // Public Methods
70
+ //
71
+ // --------------------------------------------------------------------------
72
+ setDefaultProperties() {
73
+ this.width = this.elementWidth;
74
+ this.maxWidth = this.elementMaxWidth;
75
+ this.minWidth = this.elementMinWidth;
76
+ this.height = this.elementHeight;
77
+ this.maxHeight = this.elementMaxHeight;
78
+ this.minHeight = this.elementMinHeight;
79
+ }
80
+ destroy() {
81
+ if (!_.isNil(this.data) && IDestroyable.instanceOf(this.data)) {
82
+ this.data.destroy();
83
+ }
84
+ this.data = null;
85
+ }
86
+ // --------------------------------------------------------------------------
87
+ //
88
+ // Public Properties
89
+ //
90
+ // --------------------------------------------------------------------------
91
+ get elementMinY() {
92
+ if (!_.isNaN(this._elementMinY)) {
93
+ return this._elementMinY;
94
+ }
95
+ this._elementMinY = 0 - ViewUtil.getStageHeight();
96
+ if (!_.isNaN(this.paddingTop)) {
97
+ this._elementMinY += this.paddingTop;
98
+ }
99
+ return this._elementMinY;
100
+ }
101
+ get elementMaxY() {
102
+ if (!_.isNaN(this._elementMaxY)) {
103
+ return this._elementMaxY;
104
+ }
105
+ this._elementMaxY = ViewUtil.getStageHeight();
106
+ if (!_.isNaN(this.paddingBottom)) {
107
+ this._elementMaxY -= this.paddingBottom;
108
+ }
109
+ return this._elementMaxY;
110
+ }
111
+ get elementMinX() {
112
+ if (!_.isNaN(this._elementMinX)) {
113
+ return this._elementMinX;
114
+ }
115
+ this._elementMinX = -ViewUtil.getStageWidth();
116
+ if (!_.isNaN(this.paddingLeft)) {
117
+ this._elementMinX += this.paddingLeft;
118
+ }
119
+ return this._elementMinX;
120
+ }
121
+ get elementMaxX() {
122
+ if (!_.isNaN(this._elementMaxX)) {
123
+ return this._elementMaxX;
124
+ }
125
+ this._elementMaxX = ViewUtil.getStageWidth();
126
+ if (!_.isNaN(this.paddingRight)) {
127
+ this._elementMaxX -= this.paddingRight;
128
+ }
129
+ return this._elementMaxX;
130
+ }
131
+ get elementWidth() {
132
+ if (this._elementWidth) {
133
+ return this._elementWidth;
134
+ }
135
+ this._elementWidth = 'auto';
136
+ if (this.defaultWidth) {
137
+ this._elementWidth = this.defaultWidth + 'px';
138
+ }
139
+ return this._elementWidth;
140
+ }
141
+ get elementMinWidth() {
142
+ if (!_.isNaN(this._elementMinWidth)) {
143
+ return this._elementMinWidth;
144
+ }
145
+ this._elementMinWidth = 0;
146
+ if (!_.isNaN(this.defaultMinWidth)) {
147
+ let value = ViewUtil.getStageWidth();
148
+ if (!_.isNaN(this.paddingLeft)) {
149
+ value -= this.paddingLeft;
150
+ }
151
+ if (!_.isNaN(this.paddingRight)) {
152
+ value -= this.paddingRight;
153
+ }
154
+ this._elementMinWidth = Math.min(this.defaultMinWidth, value);
155
+ }
156
+ return this._elementMinWidth;
157
+ }
158
+ get elementMaxWidth() {
159
+ if (!_.isNaN(this._elementMaxWidth)) {
160
+ return this._elementMaxWidth;
161
+ }
162
+ this._elementMaxWidth = ViewUtil.getStageWidth();
163
+ if (!_.isNaN(this.paddingLeft)) {
164
+ this._elementMaxWidth -= this.paddingLeft;
165
+ }
166
+ if (!_.isNaN(this.paddingRight)) {
167
+ this._elementMaxWidth -= this.paddingRight;
168
+ }
169
+ if (!_.isNaN(this.defaultMaxWidth)) {
170
+ this._elementMaxWidth = Math.min(this.defaultMaxWidth, this._elementMaxWidth);
171
+ }
172
+ return this._elementMaxWidth;
173
+ }
174
+ get elementHeight() {
175
+ if (this._elementHeight) {
176
+ return this._elementHeight;
177
+ }
178
+ this._elementHeight = 'auto';
179
+ if (this.defaultHeight) {
180
+ this._elementHeight = this.defaultHeight + 'px';
181
+ }
182
+ return this._elementHeight;
183
+ }
184
+ get elementMinHeight() {
185
+ if (!_.isNaN(this._elementMinHeight)) {
186
+ return this._elementMinHeight;
187
+ }
188
+ this._elementMinHeight = 0;
189
+ if (!_.isNaN(this.defaultMinHeight)) {
190
+ let value = ViewUtil.getStageHeight();
191
+ if (!_.isNaN(this.paddingTop)) {
192
+ value -= this.paddingTop;
193
+ }
194
+ if (!_.isNaN(this.paddingBottom)) {
195
+ value -= this.paddingBottom;
196
+ }
197
+ this._elementMinHeight = Math.min(this.defaultMinHeight, value);
198
+ }
199
+ return this._elementMinHeight;
200
+ }
201
+ get elementMaxHeight() {
202
+ if (!_.isNaN(this._elementMaxHeight)) {
203
+ return this._elementMaxHeight;
204
+ }
205
+ this._elementMaxHeight = ViewUtil.getStageHeight();
206
+ if (!_.isNaN(this.paddingTop)) {
207
+ this._elementMaxHeight -= this.paddingTop;
208
+ }
209
+ if (!_.isNaN(this.paddingBottom)) {
210
+ this._elementMaxHeight -= this.paddingBottom;
211
+ }
212
+ if (!_.isNaN(this.defaultMaxHeight)) {
213
+ this._elementMaxHeight = Math.min(this.defaultMaxHeight, this._elementMaxHeight);
214
+ }
215
+ return this._elementMaxHeight;
216
+ }
217
+ }
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dpbmRvdy9XaW5kb3dDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxNQUFNLE9BQU8sWUFBWTtJQUNyQiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLEVBQUUsQ0FBUztJQUNYLE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUM5QixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFDL0IsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxpQkFBaUIsR0FBWSxJQUFJLENBQUM7SUFFbEMsQ0FBQyxHQUFXLEdBQUcsQ0FBQztJQUNoQixDQUFDLEdBQVcsR0FBRyxDQUFDO0lBQ2hCLElBQUksQ0FBSTtJQUNSLFlBQVksQ0FBUztJQUVyQixLQUFLLENBQVM7SUFDZCxRQUFRLENBQVM7SUFDakIsUUFBUSxDQUFTO0lBQ2pCLFlBQVksR0FBVyxHQUFHLENBQUM7SUFDM0IsZUFBZSxHQUFXLEdBQUcsQ0FBQztJQUM5QixlQUFlLEdBQVcsR0FBRyxDQUFDO0lBRTlCLE1BQU0sQ0FBUztJQUNmLFNBQVMsQ0FBUztJQUNsQixTQUFTLENBQVM7SUFDbEIsYUFBYSxHQUFXLEdBQUcsQ0FBQztJQUM1QixnQkFBZ0IsR0FBVyxHQUFHLENBQUM7SUFDL0IsZ0JBQWdCLEdBQVcsR0FBRyxDQUFDO0lBRS9CLFVBQVUsR0FBVyxHQUFHLENBQUM7SUFDekIsV0FBVyxHQUFXLEdBQUcsQ0FBQztJQUMxQixZQUFZLEdB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QyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEY7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSVdpbmRvd0NvbmZpZywgV2luZG93QWxpZ24gfSBmcm9tICcuL0lXaW5kb3dDb25maWcnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcblxuZXhwb3J0IGNsYXNzIFdpbmRvd0NvbmZpZzxUID0gYW55PiBpbXBsZW1lbnRzIElXaW5kb3dDb25maWc8VD4sIElEZXN0cm95YWJsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuICAgIHB1YmxpYyBpc01vZGFsOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzRXhwYW5kYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1Jlc2l6ZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNNaW5pbWl6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Rpc2FibGVDbG9zZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0NvbnRlbnREcmFnYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgeDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyB5OiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIGRhdGE6IFQ7XG4gICAgcHVibGljIHByb3BlcnRpZXNJZDogc3RyaW5nO1xuXG4gICAgcHVibGljIHdpZHRoOiBzdHJpbmc7XG4gICAgcHVibGljIG1pbldpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIG1heFdpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIGRlZmF1bHRXaWR0aDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyBkZWZhdWx0TWluV2lkdGg6IG51bWJlciA9IE5hTjtcbiAgICBwdWJsaWMgZGVmYXVsdE1heFdpZHRoOiBudW1iZXIgPSBOYU47XG5cbiAgICBwdWJsaWMgaGVpZ2h0OiBzdHJpbmc7XG4gICAgcHVibGljIG1pbkhlaWdodDogbnVtYmVyO1xuICAgIHB1YmxpYyBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgICBwdWJsaWMgZGVmYXVsdEhlaWdodDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyBkZWZhdWx0TWluSGVpZ2h0OiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIGRlZmF1bHRNYXhIZWlnaHQ6IG51bWJlciA9IE5hTjtcblxuICAgIHB1YmxpYyBwYWRkaW5nVG9wOiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIHBhZGRpbmdMZWZ0OiBudW1iZXIgPSBOYU47XG4gICAgcHVibGljIHBhZGRpbmdSaWdodDogbnVtYmVyID0gTmFOO1xuICAgIHB1YmxpYyBwYWRkaW5nQm90dG9tOiBudW1iZXIgPSBOYU47XG5cbiAgICBwdWJsaWMgYXV0b0ZvY3VzOiBzdHJpbmc7XG4gICAgcHVibGljIHJlc3RvcmVGb2N1czogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGVsYXlGb2N1c1RyYXA6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgdmVydGljYWxBbGlnbjogV2luZG93QWxpZ247XG4gICAgcHVibGljIGhvcml6b250YWxBbGlnbjogV2luZG93QWxpZ247XG5cbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRNYXhYOiBudW1iZXIgPSBOYU47XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWluWDogbnVtYmVyID0gTmFOO1xuXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWF4WTogbnVtYmVyID0gTmFOO1xuICAgIHByb3RlY3RlZCBfZWxlbWVudE1pblk6IG51bWJlciA9IE5hTjtcblxuICAgIHByb3RlY3RlZCBfZWxlbWVudFdpZHRoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWluV2lkdGg6IG51bWJlciA9IE5hTjtcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRNYXhXaWR0aDogbnVtYmVyID0gTmFOO1xuXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50SGVpZ2h0OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWluSGVpZ2h0OiBudW1iZXIgPSBOYU47XG4gICAgcHJvdGVjdGVkIF9lbGVtZW50TWF4SGVpZ2h0OiBudW1iZXIgPSBOYU47XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGlzTW9kYWw6IGJvb2xlYW4gPSBmYWxzZSwgaXNSZXNpemVhYmxlOiBib29sZWFuID0gZmFsc2UsIHdpZHRoOiBudW1iZXIgPSBOYU4sIGhlaWdodDogbnVtYmVyID0gTmFOKSB7XG4gICAgICAgIHRoaXMuaXNNb2RhbCA9IGlzTW9kYWw7XG4gICAgICAgIHRoaXMuaXNSZXNpemVhYmxlID0gaXNSZXNpemVhYmxlO1xuICAgICAgICBpZiAoIV8uaXNOYU4od2lkdGgpKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IHdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05hTihoZWlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRIZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzZXREZWZhdWx0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuZWxlbWVudFdpZHRoO1xuICAgICAgICB0aGlzLm1heFdpZHRoID0gdGhpcy5lbGVtZW50TWF4V2lkdGg7XG4gICAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLmVsZW1lbnRNaW5XaWR0aDtcblxuICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMuZWxlbWVudEhlaWdodDtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmVsZW1lbnRNYXhIZWlnaHQ7XG4gICAgICAgIHRoaXMubWluSGVpZ2h0ID0gdGhpcy5lbGVtZW50TWluSGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5kYXRhKSAmJiBJRGVzdHJveWFibGUuaW5zdGFuY2VPZih0aGlzLmRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRNaW5ZKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWluWSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluWTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50TWluWSA9IDAgLSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1pblkgKz0gdGhpcy5wYWRkaW5nVG9wO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluWTtcbiAgICB9XG4gICAgcHVibGljIGdldCBlbGVtZW50TWF4WSgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5fZWxlbWVudE1heFkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heFk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZWxlbWVudE1heFkgPSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nQm90dG9tKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1heFkgLT0gdGhpcy5wYWRkaW5nQm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWF4WTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRNaW5YKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWluWCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluWDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50TWluWCA9IC1WaWV3VXRpbC5nZXRTdGFnZVdpZHRoKCk7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLnBhZGRpbmdMZWZ0KSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1pblggKz0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1pblg7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1heFgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuX2VsZW1lbnRNYXhYKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRNYXhYO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNYXhYID0gVmlld1V0aWwuZ2V0U3RhZ2VXaWR0aCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nUmlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4WCAtPSB0aGlzLnBhZGRpbmdSaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heFg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbGVtZW50V2lkdGgoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50V2lkdGggPSAnYXV0byc7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFdpZHRoID0gdGhpcy5kZWZhdWx0V2lkdGggKyAncHgnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50V2lkdGg7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1pbldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWluV2lkdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1pbldpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNaW5XaWR0aCA9IDA7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLmRlZmF1bHRNaW5XaWR0aCkpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IFZpZXdVdGlsLmdldFN0YWdlV2lkdGgoKTtcbiAgICAgICAgICAgIGlmICghXy5pc05hTih0aGlzLnBhZGRpbmdMZWZ0KSkge1xuICAgICAgICAgICAgICAgIHZhbHVlIC09IHRoaXMucGFkZGluZ0xlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nUmlnaHQpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgLT0gdGhpcy5wYWRkaW5nUmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWluV2lkdGggPSBNYXRoLm1pbih0aGlzLmRlZmF1bHRNaW5XaWR0aCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluV2lkdGg7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1heFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLl9lbGVtZW50TWF4V2lkdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNYXhXaWR0aCA9IFZpZXdVdGlsLmdldFN0YWdlV2lkdGgoKTtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMucGFkZGluZ0xlZnQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4V2lkdGggLT0gdGhpcy5wYWRkaW5nTGVmdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nUmlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4V2lkdGggLT0gdGhpcy5wYWRkaW5nUmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuZGVmYXVsdE1heFdpZHRoKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1heFdpZHRoID0gTWF0aC5taW4odGhpcy5kZWZhdWx0TWF4V2lkdGgsIHRoaXMuX2VsZW1lbnRNYXhXaWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRNYXhXaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRIZWlnaHQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRIZWlnaHQgPSAnYXV0byc7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRIZWlnaHQgPSB0aGlzLmRlZmF1bHRIZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50SGVpZ2h0O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnRNaW5IZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuX2VsZW1lbnRNaW5IZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1pbkhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbGVtZW50TWluSGVpZ2h0ID0gMDtcbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMuZGVmYXVsdE1pbkhlaWdodCkpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IFZpZXdVdGlsLmdldFN0YWdlSGVpZ2h0KCk7XG4gICAgICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlIC09IHRoaXMucGFkZGluZ1RvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghXy5pc05hTih0aGlzLnBhZGRpbmdCb3R0b20pKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgLT0gdGhpcy5wYWRkaW5nQm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1pbkhlaWdodCA9IE1hdGgubWluKHRoaXMuZGVmYXVsdE1pbkhlaWdodCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWluSGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudE1heEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5fZWxlbWVudE1heEhlaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50TWF4SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRNYXhIZWlnaHQgPSBWaWV3VXRpbC5nZXRTdGFnZUhlaWdodCgpO1xuICAgICAgICBpZiAoIV8uaXNOYU4odGhpcy5wYWRkaW5nVG9wKSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudE1heEhlaWdodCAtPSB0aGlzLnBhZGRpbmdUb3A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmFOKHRoaXMucGFkZGluZ0JvdHRvbSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRNYXhIZWlnaHQgLT0gdGhpcy5wYWRkaW5nQm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05hTih0aGlzLmRlZmF1bHRNYXhIZWlnaHQpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50TWF4SGVpZ2h0ID0gTWF0aC5taW4odGhpcy5kZWZhdWx0TWF4SGVpZ2h0LCB0aGlzLl9lbGVtZW50TWF4SGVpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudE1heEhlaWdodDtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFdpbmRvd0NvbmZpZ09wdGlvbnM8VCA9IGFueT4gPSB7IFtQIGluIGtleW9mIFdpbmRvd0NvbmZpZzxUPl0/OiBhbnkgfTtcbiJdfQ==