@web-atoms/core 2.1.357 → 2.1.369

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 (294) hide show
  1. package/dist/App.sys.js +220 -0
  2. package/dist/App.sys.js.map +1 -0
  3. package/dist/Atom.sys.js +177 -0
  4. package/dist/Atom.sys.js.map +1 -0
  5. package/dist/MockApp.sys.js +45 -0
  6. package/dist/MockApp.sys.js.map +1 -0
  7. package/dist/Pack.sys.js +13 -0
  8. package/dist/Pack.sys.js.map +1 -0
  9. package/dist/core/AtomBinder.sys.js +274 -0
  10. package/dist/core/AtomBinder.sys.js.map +1 -0
  11. package/dist/core/AtomBridge.sys.js +390 -0
  12. package/dist/core/AtomBridge.sys.js.map +1 -0
  13. package/dist/core/AtomComponent.sys.js +703 -0
  14. package/dist/core/AtomComponent.sys.js.map +1 -0
  15. package/dist/core/AtomDispatcher.sys.js +77 -0
  16. package/dist/core/AtomDispatcher.sys.js.map +1 -0
  17. package/dist/core/AtomDisposableList.sys.js +46 -0
  18. package/dist/core/AtomDisposableList.sys.js.map +1 -0
  19. package/dist/core/AtomEnumerator.sys.js +34 -0
  20. package/dist/core/AtomEnumerator.sys.js.map +1 -0
  21. package/dist/core/AtomList.sys.js +238 -0
  22. package/dist/core/AtomList.sys.js.map +1 -0
  23. package/dist/core/AtomLoader.sys.js +178 -0
  24. package/dist/core/AtomLoader.sys.js.map +1 -0
  25. package/dist/core/AtomMap.sys.js +83 -0
  26. package/dist/core/AtomMap.sys.js.map +1 -0
  27. package/dist/core/AtomOnce.sys.js +42 -0
  28. package/dist/core/AtomOnce.sys.js.map +1 -0
  29. package/dist/core/AtomSelectableList.sys.js +336 -0
  30. package/dist/core/AtomSelectableList.sys.js.map +1 -0
  31. package/dist/core/AtomUri.sys.js +110 -0
  32. package/dist/core/AtomUri.sys.js.map +1 -0
  33. package/dist/core/AtomWatcher.sys.js +167 -0
  34. package/dist/core/AtomWatcher.sys.js.map +1 -0
  35. package/dist/core/Bind.sys.js +394 -0
  36. package/dist/core/Bind.sys.js.map +1 -0
  37. package/dist/core/BindableProperty.sys.js +51 -0
  38. package/dist/core/BindableProperty.sys.js.map +1 -0
  39. package/dist/core/CancelTokenFactory.sys.js +57 -0
  40. package/dist/core/CancelTokenFactory.sys.js.map +1 -0
  41. package/dist/core/Color.sys.js +9 -0
  42. package/dist/core/Color.sys.js.map +1 -0
  43. package/dist/core/Colors.sys.js +305 -0
  44. package/dist/core/Colors.sys.js.map +1 -0
  45. package/dist/core/Defer.sys.js +45 -0
  46. package/dist/core/Defer.sys.js.map +1 -0
  47. package/dist/core/ExpressionParser.sys.js +201 -0
  48. package/dist/core/ExpressionParser.sys.js.map +1 -0
  49. package/dist/core/FormattedError.sys.js +23 -0
  50. package/dist/core/FormattedError.sys.js.map +1 -0
  51. package/dist/core/FormattedString.sys.js +20 -0
  52. package/dist/core/FormattedString.sys.js.map +1 -0
  53. package/dist/core/IFetchEvent.sys.js +9 -0
  54. package/dist/core/IFetchEvent.sys.js.map +1 -0
  55. package/dist/core/IScreen.sys.js +9 -0
  56. package/dist/core/IScreen.sys.js.map +1 -0
  57. package/dist/core/IValueConverter.sys.js +9 -0
  58. package/dist/core/IValueConverter.sys.js.map +1 -0
  59. package/dist/core/InheritedProperty.sys.js +61 -0
  60. package/dist/core/InheritedProperty.sys.js.map +1 -0
  61. package/dist/core/InjectProperty.sys.js +25 -0
  62. package/dist/core/InjectProperty.sys.js.map +1 -0
  63. package/dist/core/KeyValuePairs.sys.js +9 -0
  64. package/dist/core/KeyValuePairs.sys.js.map +1 -0
  65. package/dist/core/Markdown.sys.js +37 -0
  66. package/dist/core/Markdown.sys.js.map +1 -0
  67. package/dist/core/MarkdownError.sys.js +26 -0
  68. package/dist/core/MarkdownError.sys.js.map +1 -0
  69. package/dist/core/PropertyBinding.sys.js +11 -0
  70. package/dist/core/PropertyBinding.sys.js.map +1 -0
  71. package/dist/core/PropertyMap.sys.js +53 -0
  72. package/dist/core/PropertyMap.sys.js.map +1 -0
  73. package/dist/core/SingleInvoker.sys.js +71 -0
  74. package/dist/core/SingleInvoker.sys.js.map +1 -0
  75. package/dist/core/StringHelper.sys.js +76 -0
  76. package/dist/core/StringHelper.sys.js.map +1 -0
  77. package/dist/core/TransientDisposable.sys.js +34 -0
  78. package/dist/core/TransientDisposable.sys.js.map +1 -0
  79. package/dist/core/WatchProperty.sys.js +37 -0
  80. package/dist/core/WatchProperty.sys.js.map +1 -0
  81. package/dist/core/WebImage.sys.js +24 -0
  82. package/dist/core/WebImage.sys.js.map +1 -0
  83. package/dist/core/XNode.sys.js +205 -0
  84. package/dist/core/XNode.sys.js.map +1 -0
  85. package/dist/core/sleep.sys.js +30 -0
  86. package/dist/core/sleep.sys.js.map +1 -0
  87. package/dist/core/types.sys.js +130 -0
  88. package/dist/core/types.sys.js.map +1 -0
  89. package/dist/di/DISingleton.sys.js +26 -0
  90. package/dist/di/DISingleton.sys.js.map +1 -0
  91. package/dist/di/DITransient.sys.js +26 -0
  92. package/dist/di/DITransient.sys.js.map +1 -0
  93. package/dist/di/IMockOrInject.sys.js +9 -0
  94. package/dist/di/IMockOrInject.sys.js.map +1 -0
  95. package/dist/di/IServiceProvider.sys.js +9 -0
  96. package/dist/di/IServiceProvider.sys.js.map +1 -0
  97. package/dist/di/Inject.sys.js +111 -0
  98. package/dist/di/Inject.sys.js.map +1 -0
  99. package/dist/di/Register.sys.js +64 -0
  100. package/dist/di/Register.sys.js.map +1 -0
  101. package/dist/di/RegisterScoped.sys.js +23 -0
  102. package/dist/di/RegisterScoped.sys.js.map +1 -0
  103. package/dist/di/RegisterSingleton.sys.js +23 -0
  104. package/dist/di/RegisterSingleton.sys.js.map +1 -0
  105. package/dist/di/ServiceCollection.sys.js +76 -0
  106. package/dist/di/ServiceCollection.sys.js.map +1 -0
  107. package/dist/di/ServiceProvider.sys.js +173 -0
  108. package/dist/di/ServiceProvider.sys.js.map +1 -0
  109. package/dist/di/TypeKey.sys.js +27 -0
  110. package/dist/di/TypeKey.sys.js.map +1 -0
  111. package/dist/services/BusyIndicatorService.sys.js +33 -0
  112. package/dist/services/BusyIndicatorService.sys.js.map +1 -0
  113. package/dist/services/CacheService.sys.js +145 -0
  114. package/dist/services/CacheService.sys.js.map +1 -0
  115. package/dist/services/JsonService.sys.js +181 -0
  116. package/dist/services/JsonService.sys.js.map +1 -0
  117. package/dist/services/MockNavigationService.sys.js +236 -0
  118. package/dist/services/MockNavigationService.sys.js.map +1 -0
  119. package/dist/services/NavigationService.sys.js +175 -0
  120. package/dist/services/NavigationService.sys.js.map +1 -0
  121. package/dist/services/ReferenceService.sys.js +68 -0
  122. package/dist/services/ReferenceService.sys.js.map +1 -0
  123. package/dist/services/http/AjaxOptions.sys.js +15 -0
  124. package/dist/services/http/AjaxOptions.sys.js.map +1 -0
  125. package/dist/services/http/JsonError.sys.js +27 -0
  126. package/dist/services/http/JsonError.sys.js.map +1 -0
  127. package/dist/services/http/RestService.sys.js +524 -0
  128. package/dist/services/http/RestService.sys.js.map +1 -0
  129. package/dist/style/StyleRule.sys.js +3550 -0
  130. package/dist/style/StyleRule.sys.js.map +1 -0
  131. package/dist/test.sys.js +9 -0
  132. package/dist/test.sys.js.map +1 -0
  133. package/dist/tsconfig.tsbuildinfo +1 -1
  134. package/dist/unit/AtomTest.sys.js +67 -0
  135. package/dist/unit/AtomTest.sys.js.map +1 -0
  136. package/dist/unit/AtomWebTest.sys.js +83 -0
  137. package/dist/unit/AtomWebTest.sys.js.map +1 -0
  138. package/dist/view-model/Action.sys.js +147 -0
  139. package/dist/view-model/Action.sys.js.map +1 -0
  140. package/dist/view-model/AtomViewModel.sys.js +435 -0
  141. package/dist/view-model/AtomViewModel.sys.js.map +1 -0
  142. package/dist/view-model/AtomWindowViewModel.sys.js +71 -0
  143. package/dist/view-model/AtomWindowViewModel.sys.js.map +1 -0
  144. package/dist/view-model/BindableUrlParameter.sys.js +28 -0
  145. package/dist/view-model/BindableUrlParameter.sys.js.map +1 -0
  146. package/dist/view-model/Delay.sys.js +41 -0
  147. package/dist/view-model/Delay.sys.js.map +1 -0
  148. package/dist/view-model/Disposable.sys.js +52 -0
  149. package/dist/view-model/Disposable.sys.js.map +1 -0
  150. package/dist/view-model/Load.sys.js +142 -0
  151. package/dist/view-model/Load.sys.js.map +1 -0
  152. package/dist/view-model/Once.sys.js +59 -0
  153. package/dist/view-model/Once.sys.js.map +1 -0
  154. package/dist/view-model/baseTypes.sys.js +17 -0
  155. package/dist/view-model/baseTypes.sys.js.map +1 -0
  156. package/dist/view-model/bindPromise.sys.js +45 -0
  157. package/dist/view-model/bindPromise.sys.js.map +1 -0
  158. package/dist/view-model/bindProperty.sys.js +20 -0
  159. package/dist/view-model/bindProperty.sys.js.map +1 -0
  160. package/dist/view-model/bindUrlParameter.sys.js +70 -0
  161. package/dist/view-model/bindUrlParameter.sys.js.map +1 -0
  162. package/dist/web/WebApp.sys.js +269 -0
  163. package/dist/web/WebApp.sys.js.map +1 -0
  164. package/dist/web/controls/AtomAlertWindow.sys.js +80 -0
  165. package/dist/web/controls/AtomAlertWindow.sys.js.map +1 -0
  166. package/dist/web/controls/AtomComboBox.sys.js +115 -0
  167. package/dist/web/controls/AtomComboBox.sys.js.map +1 -0
  168. package/dist/web/controls/AtomContentControl.sys.js +72 -0
  169. package/dist/web/controls/AtomContentControl.sys.js.map +1 -0
  170. package/dist/web/controls/AtomControl.sys.js +667 -0
  171. package/dist/web/controls/AtomControl.sys.js.map +1 -0
  172. package/dist/web/controls/AtomFrame.sys.js +305 -0
  173. package/dist/web/controls/AtomFrame.sys.js.map +1 -0
  174. package/dist/web/controls/AtomGridSplitter.sys.js +83 -0
  175. package/dist/web/controls/AtomGridSplitter.sys.js.map +1 -0
  176. package/dist/web/controls/AtomGridView.sys.js +301 -0
  177. package/dist/web/controls/AtomGridView.sys.js.map +1 -0
  178. package/dist/web/controls/AtomItemsControl.sys.js +869 -0
  179. package/dist/web/controls/AtomItemsControl.sys.js.map +1 -0
  180. package/dist/web/controls/AtomListBox.sys.js +72 -0
  181. package/dist/web/controls/AtomListBox.sys.js.map +1 -0
  182. package/dist/web/controls/AtomNotification.sys.js +79 -0
  183. package/dist/web/controls/AtomNotification.sys.js.map +1 -0
  184. package/dist/web/controls/AtomPage.sys.js +24 -0
  185. package/dist/web/controls/AtomPage.sys.js.map +1 -0
  186. package/dist/web/controls/AtomPageLink.sys.js +158 -0
  187. package/dist/web/controls/AtomPageLink.sys.js.map +1 -0
  188. package/dist/web/controls/AtomTabbedPage.sys.js +354 -0
  189. package/dist/web/controls/AtomTabbedPage.sys.js.map +1 -0
  190. package/dist/web/controls/AtomTemplate.sys.js +17 -0
  191. package/dist/web/controls/AtomTemplate.sys.js.map +1 -0
  192. package/dist/web/controls/AtomTemplateControl.sys.js +59 -0
  193. package/dist/web/controls/AtomTemplateControl.sys.js.map +1 -0
  194. package/dist/web/controls/AtomToggleButtonBar.sys.js +53 -0
  195. package/dist/web/controls/AtomToggleButtonBar.sys.js.map +1 -0
  196. package/dist/web/controls/AtomViewPager.sys.js +107 -0
  197. package/dist/web/controls/AtomViewPager.sys.js.map +1 -0
  198. package/dist/web/controls/AtomViewStack.sys.js +41 -0
  199. package/dist/web/controls/AtomViewStack.sys.js.map +1 -0
  200. package/dist/web/controls/AtomWindow.sys.js +285 -0
  201. package/dist/web/controls/AtomWindow.sys.js.map +1 -0
  202. package/dist/web/core/AtomUI.sys.js +189 -0
  203. package/dist/web/core/AtomUI.sys.js.map +1 -0
  204. package/dist/web/core/Encoder.sys.js +178 -0
  205. package/dist/web/core/Encoder.sys.js.map +1 -0
  206. package/dist/web/core/HtmlNode.sys.js +206 -0
  207. package/dist/web/core/HtmlNode.sys.js.map +1 -0
  208. package/dist/web/images/Busy.sys.js +14 -0
  209. package/dist/web/images/Busy.sys.js.map +1 -0
  210. package/dist/web/images/BusyDataUrl.sys.js +16 -0
  211. package/dist/web/images/BusyDataUrl.sys.js.map +1 -0
  212. package/dist/web/images/Button.sys.js +14 -0
  213. package/dist/web/images/Button.sys.js.map +1 -0
  214. package/dist/web/images/ButtonDataUrl.sys.js +16 -0
  215. package/dist/web/images/ButtonDataUrl.sys.js.map +1 -0
  216. package/dist/web/images/CloseButton.sys.js +14 -0
  217. package/dist/web/images/CloseButton.sys.js.map +1 -0
  218. package/dist/web/images/CloseButtonDataUrl.sys.js +16 -0
  219. package/dist/web/images/CloseButtonDataUrl.sys.js.map +1 -0
  220. package/dist/web/images/CloseButtonHover.sys.js +14 -0
  221. package/dist/web/images/CloseButtonHover.sys.js.map +1 -0
  222. package/dist/web/images/CloseButtonHoverDataUrl.sys.js +16 -0
  223. package/dist/web/images/CloseButtonHoverDataUrl.sys.js.map +1 -0
  224. package/dist/web/samples/MovieService.sys.js +73 -0
  225. package/dist/web/samples/MovieService.sys.js.map +1 -0
  226. package/dist/web/samples/demo/app.sys.js +30 -0
  227. package/dist/web/samples/demo/app.sys.js.map +1 -0
  228. package/dist/web/samples/demo/views/MovieList.sys.js +77 -0
  229. package/dist/web/samples/demo/views/MovieList.sys.js.map +1 -0
  230. package/dist/web/samples/demo/views/MovieListViewModel.sys.js +128 -0
  231. package/dist/web/samples/demo/views/MovieListViewModel.sys.js.map +1 -0
  232. package/dist/web/samples/tabs/app.sys.js +68 -0
  233. package/dist/web/samples/tabs/app.sys.js.map +1 -0
  234. package/dist/web/samples/tabs/views/List.sys.js +14 -0
  235. package/dist/web/samples/tabs/views/List.sys.js.map +1 -0
  236. package/dist/web/samples/tabs/views/ListDataUrl.sys.js +16 -0
  237. package/dist/web/samples/tabs/views/ListDataUrl.sys.js.map +1 -0
  238. package/dist/web/samples/tabs/views/Page1.sys.js +117 -0
  239. package/dist/web/samples/tabs/views/Page1.sys.js.map +1 -0
  240. package/dist/web/samples/tabs/views/TabHost.sys.js +103 -0
  241. package/dist/web/samples/tabs/views/TabHost.sys.js.map +1 -0
  242. package/dist/web/samples/window/WindowSample.sys.js +33 -0
  243. package/dist/web/samples/window/WindowSample.sys.js.map +1 -0
  244. package/dist/web/services/MarkdownService.sys.js +45 -0
  245. package/dist/web/services/MarkdownService.sys.js.map +1 -0
  246. package/dist/web/services/NotificationPopup.sys.js +44 -0
  247. package/dist/web/services/NotificationPopup.sys.js.map +1 -0
  248. package/dist/web/services/PopupService.sys.js +876 -0
  249. package/dist/web/services/PopupService.sys.js.map +1 -0
  250. package/dist/web/services/WebBusyIndicatorService.sys.js +95 -0
  251. package/dist/web/services/WebBusyIndicatorService.sys.js.map +1 -0
  252. package/dist/web/services/WindowService.sys.js +445 -0
  253. package/dist/web/services/WindowService.sys.js.map +1 -0
  254. package/dist/web/styles/AtomAlertWindowStyle.sys.js +59 -0
  255. package/dist/web/styles/AtomAlertWindowStyle.sys.js.map +1 -0
  256. package/dist/web/styles/AtomFrameStyle.sys.js +33 -0
  257. package/dist/web/styles/AtomFrameStyle.sys.js.map +1 -0
  258. package/dist/web/styles/AtomListBoxStyle.sys.js +49 -0
  259. package/dist/web/styles/AtomListBoxStyle.sys.js.map +1 -0
  260. package/dist/web/styles/AtomNotificationStyle.sys.js +39 -0
  261. package/dist/web/styles/AtomNotificationStyle.sys.js.map +1 -0
  262. package/dist/web/styles/AtomPageLinkStyle.sys.js +30 -0
  263. package/dist/web/styles/AtomPageLinkStyle.sys.js.map +1 -0
  264. package/dist/web/styles/AtomPopupStyle.sys.js +27 -0
  265. package/dist/web/styles/AtomPopupStyle.sys.js.map +1 -0
  266. package/dist/web/styles/AtomStyle.sys.js +105 -0
  267. package/dist/web/styles/AtomStyle.sys.js.map +1 -0
  268. package/dist/web/styles/AtomStyleSheet.sys.js +84 -0
  269. package/dist/web/styles/AtomStyleSheet.sys.js.map +1 -0
  270. package/dist/web/styles/AtomTabbedPageStyle.sys.js +135 -0
  271. package/dist/web/styles/AtomTabbedPageStyle.sys.js.map +1 -0
  272. package/dist/web/styles/AtomTheme.sys.js +70 -0
  273. package/dist/web/styles/AtomTheme.sys.js.map +1 -0
  274. package/dist/web/styles/AtomToggleButtonBarStyle.sys.js +83 -0
  275. package/dist/web/styles/AtomToggleButtonBarStyle.sys.js.map +1 -0
  276. package/dist/web/styles/AtomWindowStyle.sys.js +144 -0
  277. package/dist/web/styles/AtomWindowStyle.sys.js.map +1 -0
  278. package/dist/web/styles/CSS.sys.js +96 -0
  279. package/dist/web/styles/CSS.sys.js.map +1 -0
  280. package/dist/web/styles/CommonStyles.sys.js +79 -0
  281. package/dist/web/styles/CommonStyles.sys.js.map +1 -0
  282. package/dist/web/styles/IStyleDeclaration.sys.js +9 -0
  283. package/dist/web/styles/IStyleDeclaration.sys.js.map +1 -0
  284. package/dist/web/styles/StyleBuilder.sys.js +112 -0
  285. package/dist/web/styles/StyleBuilder.sys.js.map +1 -0
  286. package/dist/xf/XFApp.sys.js +75 -0
  287. package/dist/xf/XFApp.sys.js.map +1 -0
  288. package/dist/xf/controls/AtomXFControl.sys.js +334 -0
  289. package/dist/xf/controls/AtomXFControl.sys.js.map +1 -0
  290. package/dist/xf/services/XFBusyIndicatorService.sys.js +40 -0
  291. package/dist/xf/services/XFBusyIndicatorService.sys.js.map +1 -0
  292. package/dist/xf/services/XFNavigationService.sys.js +204 -0
  293. package/dist/xf/services/XFNavigationService.sys.js.map +1 -0
  294. package/package.json +3 -2
@@ -0,0 +1,876 @@
1
+ System.register(["../../core/AtomDisposableList", "../../core/Bind", "../../core/BindableProperty", "../../core/Colors", "../../core/sleep", "../../core/types", "../../core/XNode", "../../style/StyleRule", "../controls/AtomControl", "../styles/CSS"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var AtomDisposableList, Bind, BindableProperty, Colors, sleep, CancelToken, XNode, StyleRule, AtomControl, CSS, PopupControl, PopupWindow, ConfirmPopup, PopupService, __decorate, __metadata, __awaiter, popupCss, popupId, lastTarget;
5
+
6
+ function getParent(e) {
7
+ var _a;
8
+
9
+ let start = e;
10
+
11
+ while (start) {
12
+ if (start.atomControl) {
13
+ return start.atomControl;
14
+ }
15
+
16
+ start = (_a = start._logicalParent) !== null && _a !== void 0 ? _a : start.parentElement;
17
+ }
18
+ }
19
+
20
+ function findHostAndPosition(opener) {
21
+ let root = opener;
22
+ const body = document.body;
23
+ let rect = opener.getBoundingClientRect();
24
+ const offset = {
25
+ x: rect.left,
26
+ y: rect.top,
27
+ handler: null,
28
+ root
29
+ };
30
+
31
+ do {
32
+ root = root.parentElement;
33
+
34
+ if (root === body) {
35
+ break;
36
+ }
37
+
38
+ if (root.parentElement.classList.contains("page-host")) {
39
+ break;
40
+ }
41
+
42
+ if (root.classList.contains("popup-host")) {
43
+ break;
44
+ }
45
+
46
+ if (root.dataset.popUpHost === "yes") {
47
+ break;
48
+ }
49
+ } while (true);
50
+
51
+ rect = root.getBoundingClientRect();
52
+ offset.x -= rect.x;
53
+ offset.y -= rect.y;
54
+ offset.root = root;
55
+ return offset;
56
+ }
57
+
58
+ function findHost(opener, offset) {
59
+ var _a, _b;
60
+
61
+ let host = opener.offsetParent;
62
+
63
+ while (host) {
64
+ const current = host;
65
+
66
+ if (host === document.body) {
67
+ return host;
68
+ }
69
+
70
+ if (host.classList.contains("popup-host")) {
71
+ return host;
72
+ }
73
+
74
+ if (host.dataset.popUpHost === "yes") {
75
+ return host;
76
+ }
77
+
78
+ host = host.offsetParent;
79
+
80
+ if (host.classList.contains("page-host")) {
81
+ host = current;
82
+ return host;
83
+ }
84
+
85
+ if (!host) {
86
+ continue;
87
+ }
88
+
89
+ if (!offset) {
90
+ continue;
91
+ }
92
+
93
+ offset.x += host.offsetLeft;
94
+ offset.y += host.offsetTop - ((_b = (_a = host.offsetParent) === null || _a === void 0 ? void 0 : _a.scrollTop) !== null && _b !== void 0 ? _b : 0);
95
+ }
96
+
97
+ return host;
98
+ }
99
+
100
+ function closeHandler(host, opener, container, close) {
101
+ let handler = null;
102
+
103
+ handler = e => {
104
+ let start = e.target;
105
+
106
+ if (e.defaultPrevented) {
107
+ return;
108
+ }
109
+
110
+ while (start) {
111
+ if (start === host) {
112
+ break;
113
+ }
114
+
115
+ if (start === opener) {
116
+ return;
117
+ }
118
+
119
+ if (start === container.element) {
120
+ return;
121
+ }
122
+
123
+ start = start.parentElement;
124
+ }
125
+
126
+ close();
127
+ };
128
+
129
+ document.body.addEventListener("click", handler);
130
+ container.registerDisposable(() => document.body.removeEventListener("click", handler));
131
+ }
132
+
133
+ _export({
134
+ PopupControl: void 0,
135
+ PopupWindow: void 0,
136
+ ConfirmPopup: void 0,
137
+ default: void 0
138
+ });
139
+
140
+ return {
141
+ setters: [function (_coreAtomDisposableList) {
142
+ AtomDisposableList = _coreAtomDisposableList.AtomDisposableList;
143
+ }, function (_coreBind) {
144
+ Bind = _coreBind.default;
145
+ }, function (_coreBindableProperty) {
146
+ BindableProperty = _coreBindableProperty.BindableProperty;
147
+ }, function (_coreColors) {
148
+ Colors = _coreColors.default;
149
+ }, function (_coreSleep) {
150
+ sleep = _coreSleep.default;
151
+ }, function (_coreTypes) {
152
+ CancelToken = _coreTypes.CancelToken;
153
+ }, function (_coreXNode) {
154
+ XNode = _coreXNode.default;
155
+ }, function (_styleStyleRule) {
156
+ StyleRule = _styleStyleRule.default;
157
+ }, function (_controlsAtomControl) {
158
+ AtomControl = _controlsAtomControl.AtomControl;
159
+ }, function (_stylesCSS) {
160
+ CSS = _stylesCSS.default;
161
+ }],
162
+ execute: function () {
163
+ __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) {
164
+ var c = arguments.length,
165
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
166
+ d;
167
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
168
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
169
+ };
170
+
171
+ __metadata = void 0 && (void 0).__metadata || function (k, v) {
172
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
173
+ };
174
+
175
+ __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
176
+ function adopt(value) {
177
+ return value instanceof P ? value : new P(function (resolve) {
178
+ resolve(value);
179
+ });
180
+ }
181
+
182
+ return new (P || (P = Promise))(function (resolve, reject) {
183
+ function fulfilled(value) {
184
+ try {
185
+ step(generator.next(value));
186
+ } catch (e) {
187
+ reject(e);
188
+ }
189
+ }
190
+
191
+ function rejected(value) {
192
+ try {
193
+ step(generator["throw"](value));
194
+ } catch (e) {
195
+ reject(e);
196
+ }
197
+ }
198
+
199
+ function step(result) {
200
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
201
+ }
202
+
203
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
204
+ });
205
+ };
206
+
207
+ document.body.addEventListener("click", e => {
208
+ if (e.target.offsetParent) {
209
+ PopupService.lastTarget = e.target;
210
+ }
211
+ });
212
+ popupCss = CSS(StyleRule("popup").padding(5).backgroundColor(Colors.white).border("solid 1px lightgray").borderRadius(5).boxShadow("rgba(50, 50, 105, 0.15) 0px 2px 5px 0px, rgba(0, 0, 0, 0.05) 0px 1px 1px 0px;").display("inline-block"));
213
+ CSS(StyleRule().position("absolute").border("solid 1px lightgray").borderRadius(5).backgroundColor(Colors.white).top("50%").left("50%").transform("translate(-50%,-50%)").boxShadow("0 0 20px 1px rgb(0 0 0 / 75%)").verticalFlexLayout({
214
+ alignItems: "stretch",
215
+ justifyContent: "flex-start"
216
+ }).opacity("0").transition("opacity 0.3s cubic-bezier(0.55, 0.09, 0.97, 0.32)").and(StyleRule("[data-ready=true]").opacity("1")).and(StyleRule("[data-dragging=true]").opacity("0.5")).child(StyleRule(".title").display("flex").backgroundColor(Colors.lightGray.withAlphaPercent(0.2)).padding(5).alignItems("center").justifyItems("center").child(StyleRule(".title-text").cursor("move").flexStretch()).child(StyleRule("*").flex("1 1 100%")).child(StyleRule(".popup-close-button").fontFamily("arial").fontSize(15).flex("1 0 auto").cursor("pointer").width(30).height(30).backgroundColor(Colors.red.withAlphaPercent(0.1)).border("none").borderRadius(9999).textTransform("capitalize").hoverBackgroundColor(Colors.red))).child(StyleRule("*[data-window-content=window-content]").margin(5).flexStretch().overflow("hidden").position("relative")).child(StyleRule(" * > .command-bar").backgroundColor(Colors.lightGray.withAlphaPercent(0.6)).display("flex").margin(0).padding(5).gap(5).nested(StyleRule("button").borderWidth(1).borderRadius(9999).padding(5).paddingLeft(10).paddingRight(10))), "*[data-popup-window=popup-window]");
217
+
218
+ _export("PopupControl", PopupControl = class PopupControl extends AtomControl {
219
+ static showControl(opener, options) {
220
+ let openerElement;
221
+ let app;
222
+
223
+ if (opener instanceof AtomControl) {
224
+ openerElement = opener.element;
225
+ app = opener.app;
226
+ } else {
227
+ openerElement = opener;
228
+ let start = opener;
229
+
230
+ while (!start.atomControl) {
231
+ start = start.parentElement;
232
+ }
233
+
234
+ if (!start) {
235
+ return Promise.reject("Could not create popup as target is not attached");
236
+ }
237
+
238
+ app = start.atomControl.app;
239
+ }
240
+
241
+ const popup = new this(app);
242
+ const p = PopupService.show(openerElement, popup.element, options);
243
+ return new Promise((resolve, reject) => {
244
+ let resolved = false;
245
+
246
+ popup.close = r => {
247
+ if (resolved) {
248
+ return;
249
+ }
250
+
251
+ resolved = true;
252
+ resolve(r);
253
+ p.dispose();
254
+ };
255
+
256
+ popup.cancel = e => {
257
+ if (resolved) {
258
+ return;
259
+ }
260
+
261
+ resolved = true;
262
+ reject(e);
263
+ p.dispose();
264
+ };
265
+ });
266
+ }
267
+
268
+ });
269
+
270
+ _export("PopupWindow", PopupWindow = class PopupWindow extends AtomControl {
271
+ static showWindow(window, options) {
272
+ return __awaiter(this, arguments, void 0, function* () {
273
+ if (arguments.length <= 2) {
274
+ options = arguments[0];
275
+ window = this;
276
+ }
277
+
278
+ yield sleep(1);
279
+ return PopupService.showWindow(PopupService.lastTarget, window, options);
280
+ });
281
+ }
282
+
283
+ static showModal(window, options) {
284
+ var _a;
285
+
286
+ return __awaiter(this, arguments, void 0, function* () {
287
+ if (arguments.length <= 2) {
288
+ options = arguments[0];
289
+ window = this;
290
+ }
291
+
292
+ options !== null && options !== void 0 ? options : options = {};
293
+ (_a = options.modal) !== null && _a !== void 0 ? _a : options.modal = true;
294
+ yield sleep(1);
295
+ return PopupService.showWindow(PopupService.lastTarget, window, options);
296
+ });
297
+ }
298
+
299
+ requestCancel() {
300
+ return __awaiter(this, void 0, void 0, function* () {
301
+ if (this.closeWarning) {
302
+ if (!(yield ConfirmPopup.showModal({
303
+ parameters: {
304
+ message: this.closeWarning
305
+ }
306
+ }))) {
307
+ return;
308
+ }
309
+ }
310
+
311
+ this.cancel();
312
+ });
313
+ }
314
+
315
+ preCreate() {
316
+ this.title = null;
317
+ this.viewModelTitle = null;
318
+
319
+ const handler = e => {
320
+ if (e.key === "Escape") {
321
+ this.app.runAsync(() => this.requestCancel());
322
+ e.preventDefault();
323
+ return;
324
+ }
325
+ };
326
+
327
+ this.bindEvent(this.element, "keydown", handler);
328
+ this.element.dataset.popupWindow = "popup-window";
329
+ this.runAfterInit(() => {
330
+ if (!this.element) {
331
+ return;
332
+ }
333
+
334
+ const host = this.element.getElementsByClassName("title-host")[0];
335
+ this.setupDragging(host);
336
+ const anyAutofocus = this.element.querySelector(`*[autofocus]`);
337
+
338
+ if (!anyAutofocus) {
339
+ const windowContent = this.element.querySelector("[data-window-content]");
340
+
341
+ if (windowContent) {
342
+ const firstInput = windowContent.querySelector("input,button,a");
343
+
344
+ if (firstInput) {
345
+ firstInput.focus();
346
+ return;
347
+ }
348
+ }
349
+
350
+ const closeButton = this.element.querySelector(".popup-close-button");
351
+
352
+ if (closeButton) {
353
+ closeButton.focus();
354
+ }
355
+
356
+ return;
357
+ }
358
+ });
359
+ setTimeout(p => {
360
+ p.dataset.ready = "true";
361
+ }, 10, this.element);
362
+ }
363
+
364
+ render(node, e, creator) {
365
+ var _a, _b, _c, _d, _e;
366
+
367
+ this.render = super.render;
368
+ const titleContent = (_b = (_a = this.titleRenderer) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : XNode.create("span", {
369
+ class: "title-text",
370
+ text: Bind.oneWay(() => this.title || this.viewModelTitle)
371
+ });
372
+ const closeButton = (_d = (_c = this.closeButtonRenderer) === null || _c === void 0 ? void 0 : _c.call(this)) !== null && _d !== void 0 ? _d : XNode.create("button", {
373
+ class: "popup-close-button",
374
+ text: "x",
375
+ eventClick: Bind.event(() => this.requestCancel())
376
+ });
377
+ const a = (_e = node.attributes) !== null && _e !== void 0 ? _e : node.attributes = {};
378
+ a["data-window-content"] = "window-content";
379
+ const extracted = this.extractControlProperties(node);
380
+ super.render(XNode.create("div", Object.assign({
381
+ viewModelTitle: Bind.oneWay(() => this.viewModel.title)
382
+ }, extracted), XNode.create("div", {
383
+ class: "title title-host"
384
+ }, titleContent, closeButton), node));
385
+ }
386
+
387
+ setupDragging(tp) {
388
+ this.bindEvent(tp, "mousedown", startEvent => {
389
+ startEvent.preventDefault();
390
+ const disposables = [];
391
+ const element = this.element;
392
+ const offset = {
393
+ x: element.offsetLeft,
394
+ y: element.offsetTop
395
+ };
396
+
397
+ if (element.style.transform !== "none") {
398
+ offset.x -= element.offsetWidth / 2;
399
+ offset.y -= element.offsetHeight / 2;
400
+ element.style.left = offset.x + "px";
401
+ element.style.top = offset.y + "px";
402
+ element.style.transform = "none";
403
+ }
404
+
405
+ this.element.dataset.dragging = "true";
406
+ const rect = {
407
+ x: startEvent.clientX,
408
+ y: startEvent.clientY
409
+ };
410
+ const cursor = tp.style.cursor;
411
+ tp.style.cursor = "move";
412
+ disposables.push(this.bindEvent(document.body, "mousemove", moveEvent => {
413
+ const {
414
+ clientX,
415
+ clientY
416
+ } = moveEvent;
417
+ const dx = clientX - rect.x;
418
+ const dy = clientY - rect.y;
419
+ const finalX = offset.x + dx;
420
+ const finalY = offset.y + dy;
421
+
422
+ if (finalX < 0 || finalY < 0) {
423
+ return;
424
+ }
425
+
426
+ offset.x = finalX;
427
+ offset.y = finalY;
428
+ this.element.style.left = offset.x + "px";
429
+ this.element.style.top = offset.y + "px";
430
+ rect.x = clientX;
431
+ rect.y = clientY;
432
+ }));
433
+ disposables.push(this.bindEvent(document.body, "mouseup", endEvent => {
434
+ tp.style.cursor = cursor;
435
+ this.element.removeAttribute("data-dragging");
436
+
437
+ for (const iterator of disposables) {
438
+ iterator.dispose();
439
+ }
440
+ }));
441
+ });
442
+ }
443
+
444
+ });
445
+
446
+ __decorate([BindableProperty, __metadata("design:type", String)], PopupWindow.prototype, "title", void 0);
447
+
448
+ __decorate([BindableProperty, __metadata("design:type", String)], PopupWindow.prototype, "closeWarning", void 0);
449
+
450
+ CSS(StyleRule().nested(StyleRule(".yes").borderRadius(9999).paddingLeft(10).paddingRight(10).borderWidth(1).borderColor(Colors.transparent).margin(5).marginRight(10).backgroundColor(Colors.lightGreen)).nested(StyleRule(".no").borderRadius(9999).paddingLeft(10).paddingRight(10).borderWidth(1).borderColor(Colors.transparent).margin(5).marginRight(10).backgroundColor(Colors.red).color(Colors.white)).nested(StyleRule(".cancel").borderRadius(9999).paddingLeft(10).paddingRight(10).borderWidth(1).borderColor(Colors.transparent).margin(5).marginRight(10).backgroundColor(Colors.gray)), "div[data-confirm-popup=confirm-popup]");
451
+
452
+ _export("ConfirmPopup", ConfirmPopup = class ConfirmPopup extends PopupWindow {
453
+ static confirm({
454
+ message,
455
+ title = "Confirm",
456
+ yesLabel = "Yes",
457
+ noLabel = "No",
458
+ cancelLabel = null
459
+ }) {
460
+ return __awaiter(this, void 0, void 0, function* () {
461
+ try {
462
+ const popup = class extends ConfirmPopup {
463
+ create() {
464
+ this.render(XNode.create("div", null, XNode.create("div", {
465
+ text: message
466
+ })));
467
+ }
468
+
469
+ };
470
+ return yield popup.showModal({
471
+ parameters: {
472
+ message,
473
+ yesLabel,
474
+ noLabel,
475
+ cancelLabel
476
+ },
477
+ title
478
+ });
479
+ } catch (e) {
480
+ if (CancelToken.isCancelled(e)) {
481
+ return false;
482
+ }
483
+
484
+ throw e;
485
+ }
486
+ });
487
+ }
488
+
489
+ preCreate() {
490
+ super.preCreate();
491
+ this.yesLabel = "Yes";
492
+ this.noLabel = "No";
493
+ this.cancelLabel = null;
494
+ }
495
+
496
+ render(node, e, creator) {
497
+ this.render = super.render;
498
+ this.element.dataset.confirmPopup = "confirm-popup";
499
+
500
+ this.closeButtonRenderer = () => XNode.create("div", null);
501
+
502
+ const extracted = this.extractControlProperties(node);
503
+ super.render(XNode.create("div", Object.assign({}, extracted), node, XNode.create("div", null, XNode.create("button", {
504
+ class: "yes",
505
+ autofocus: true,
506
+ text: Bind.oneWay(() => this.yesLabel),
507
+ eventClick: () => this.close(true),
508
+ "style-display": Bind.oneWay(() => !!this.yesLabel)
509
+ }), XNode.create("button", {
510
+ class: "no",
511
+ text: Bind.oneWay(() => this.noLabel),
512
+ eventClick: () => this.close(false),
513
+ "style-display": Bind.oneWay(() => !!this.noLabel)
514
+ }), XNode.create("button", {
515
+ class: "cancel",
516
+ text: Bind.oneWay(() => this.cancelLabel),
517
+ eventClick: () => this.requestCancel(),
518
+ "style-display": Bind.oneWay(() => !!this.cancelLabel)
519
+ }))));
520
+ }
521
+
522
+ });
523
+
524
+ popupId = 1001;
525
+ lastTarget = {
526
+ element: null,
527
+ x: 10,
528
+ y: 10
529
+ };
530
+
531
+ _export("default", PopupService = class PopupService {
532
+ static get lastTarget() {
533
+ var _a, _b;
534
+
535
+ const {
536
+ element,
537
+ x = 0,
538
+ y = 0
539
+ } = lastTarget;
540
+
541
+ if (element === null || element === void 0 ? void 0 : element.isConnected) {
542
+ return element;
543
+ }
544
+
545
+ const e = (_b = (_a = document.elementFromPoint) === null || _a === void 0 ? void 0 : _a.call(document, x, y)) !== null && _b !== void 0 ? _b : document.body;
546
+ PopupService.lastTarget = e;
547
+ return e;
548
+ }
549
+
550
+ static set lastTarget(element) {
551
+ const rect = element.getBoundingClientRect();
552
+ lastTarget = {
553
+ element,
554
+ x: rect.left + rect.width / 2,
555
+ y: rect.top + rect.height / 2
556
+ };
557
+ }
558
+
559
+ static alert({
560
+ message,
561
+ title = "Alert",
562
+ yesLabel = "Ok"
563
+ }) {
564
+ return __awaiter(this, void 0, void 0, function* () {
565
+ try {
566
+ const popup = class extends ConfirmPopup {
567
+ create() {
568
+ this.render(XNode.create("div", null, XNode.create("div", {
569
+ text: message
570
+ })));
571
+ }
572
+
573
+ };
574
+ return yield popup.showModal({
575
+ parameters: {
576
+ message,
577
+ yesLabel,
578
+ noLabel: ""
579
+ },
580
+ title
581
+ });
582
+ } catch (e) {
583
+ if (CancelToken.isCancelled(e)) {
584
+ return false;
585
+ }
586
+
587
+ throw e;
588
+ }
589
+ });
590
+ }
591
+
592
+ static confirm({
593
+ message,
594
+ title = "Confirm",
595
+ yesLabel = "Yes",
596
+ noLabel = "No",
597
+ cancelLabel = null
598
+ }) {
599
+ return __awaiter(this, void 0, void 0, function* () {
600
+ try {
601
+ const popup = class extends ConfirmPopup {
602
+ create() {
603
+ this.render(XNode.create("div", null, XNode.create("div", {
604
+ text: message
605
+ })));
606
+ }
607
+
608
+ };
609
+ return yield popup.showModal({
610
+ parameters: {
611
+ message,
612
+ yesLabel,
613
+ noLabel,
614
+ cancelLabel
615
+ },
616
+ title
617
+ });
618
+ } catch (e) {
619
+ if (CancelToken.isCancelled(e)) {
620
+ return false;
621
+ }
622
+
623
+ throw e;
624
+ }
625
+ });
626
+ }
627
+
628
+ static showWindow(opener, popupClass, popupOptions) {
629
+ return new Promise((resolve, reject) => {
630
+ var _a;
631
+
632
+ const activeElement = document.activeElement;
633
+ const previousTarget = opener;
634
+ const parent = getParent(opener);
635
+ const control = new popupClass(parent.app, document.createElement("div"));
636
+ const vm = (_a = control.viewModel) !== null && _a !== void 0 ? _a : control;
637
+ let element = control.element;
638
+ element.style.zIndex = `${popupId++}`;
639
+ let resolved = false;
640
+
641
+ const close = r => {
642
+ setTimeout(() => {
643
+ if (!resolved) {
644
+ resolved = true;
645
+ setTimeout(resolve, 1, r);
646
+
647
+ if (control.element) {
648
+ control.element.remove();
649
+ control.dispose();
650
+ }
651
+
652
+ element === null || element === void 0 ? void 0 : element.remove();
653
+ element = undefined;
654
+ PopupService.lastTarget = previousTarget;
655
+
656
+ try {
657
+ activeElement === null || activeElement === void 0 ? void 0 : activeElement.focus();
658
+ } catch (error) {
659
+ console.error(error);
660
+ }
661
+ }
662
+ }, 1);
663
+ };
664
+
665
+ const cancel = r => {
666
+ setTimeout(() => {
667
+ if (!resolved) {
668
+ resolved = true;
669
+ setTimeout(reject, 1, r !== null && r !== void 0 ? r : "cancelled");
670
+
671
+ if (control.element) {
672
+ control.element.remove();
673
+ control.dispose();
674
+ }
675
+
676
+ element === null || element === void 0 ? void 0 : element.remove();
677
+ element = undefined;
678
+ PopupService.lastTarget = previousTarget;
679
+
680
+ try {
681
+ activeElement === null || activeElement === void 0 ? void 0 : activeElement.focus();
682
+ } catch (error) {
683
+ console.error(error);
684
+ }
685
+ }
686
+ }, 1);
687
+ };
688
+
689
+ let isModal = false;
690
+
691
+ if (popupOptions) {
692
+ const {
693
+ width,
694
+ height,
695
+ minHeight,
696
+ maxHeight,
697
+ minWidth,
698
+ maxWidth,
699
+ maximize,
700
+ title,
701
+ parameters,
702
+ cancelToken,
703
+ modal
704
+ } = popupOptions;
705
+
706
+ if (title) {
707
+ vm.title = title;
708
+ }
709
+
710
+ let widthSet = false;
711
+ let heightSet = false;
712
+
713
+ if (maximize) {
714
+ element.style.width = "95%";
715
+ element.style.height = "95%";
716
+ widthSet = heightSet = true;
717
+ } else {
718
+ if (width) {
719
+ element.style.width = typeof width === "number" ? width + "px" : width;
720
+ widthSet = true;
721
+ }
722
+
723
+ if (height) {
724
+ element.style.height = typeof height === "number" ? height + "px" : height;
725
+ heightSet = true;
726
+ }
727
+
728
+ if (minWidth) {
729
+ element.style.minWidth = typeof minWidth === "number" ? minWidth + "px" : minWidth;
730
+ widthSet = true;
731
+ }
732
+
733
+ if (minHeight) {
734
+ element.style.minHeight = typeof minHeight === "number" ? minHeight + "px" : minHeight;
735
+ heightSet = true;
736
+ }
737
+
738
+ if (maxWidth) {
739
+ element.style.maxWidth = typeof maxWidth === "number" ? maxWidth + "px" : maxWidth;
740
+ widthSet = true;
741
+ }
742
+
743
+ if (maxHeight) {
744
+ element.style.maxHeight = typeof maxHeight === "number" ? maxHeight + "px" : maxHeight;
745
+ heightSet = true;
746
+ }
747
+ }
748
+
749
+ if (!widthSet) {
750
+ element.style.maxWidth = "95%";
751
+ element.style.minWidth = "300px";
752
+ }
753
+
754
+ if (!heightSet) {
755
+ element.style.maxHeight = "95%";
756
+ element.style.minHeight = "100px";
757
+ }
758
+
759
+ if (parameters) {
760
+ for (const key in parameters) {
761
+ if (Object.prototype.hasOwnProperty.call(parameters, key)) {
762
+ const e = parameters[key];
763
+ vm[key] = e;
764
+ }
765
+ }
766
+ }
767
+
768
+ cancelToken === null || cancelToken === void 0 ? void 0 : cancelToken.registerForCancel(cancel);
769
+ isModal = modal;
770
+ }
771
+
772
+ const host = findHost(opener);
773
+ host.appendChild(control.element);
774
+ vm.cancel = cancel;
775
+ vm.close = close;
776
+
777
+ if (vm !== control) {
778
+ control.cancel = cancel;
779
+ control.close = close;
780
+ }
781
+
782
+ if (!isModal) {
783
+ closeHandler(host, opener, control, cancel);
784
+ }
785
+ });
786
+ }
787
+
788
+ static show(opener, popup, options) {
789
+ var _a;
790
+
791
+ const previousTarget = opener;
792
+ const container = {
793
+ element: document.createElement("div"),
794
+ disposables: new AtomDisposableList(),
795
+ registerDisposable: null,
796
+ dispose: null
797
+ };
798
+
799
+ container.registerDisposable = f => container.disposables.add(f);
800
+
801
+ const popupStyle = (_a = options === null || options === void 0 ? void 0 : options.popupStyle) !== null && _a !== void 0 ? _a : popupCss;
802
+ container.element._logicalParent = opener;
803
+ container.element.classList.add(popupStyle);
804
+ container.element.appendChild(popup);
805
+ const offset = findHostAndPosition(opener);
806
+ const host = offset.root;
807
+ const hostHeight = host.offsetHeight || host.clientHeight || host.firstElementChild.offsetHeight;
808
+ const style = container.element.style;
809
+ style.position = "absolute";
810
+ offset.y += opener.offsetHeight;
811
+
812
+ if ((options === null || options === void 0 ? void 0 : options.alignment) === "centerOfScreen") {
813
+ style.left = "50%";
814
+ style.top = "50%";
815
+ style.transform = "translate(-50%,-50%)";
816
+ } else {
817
+ if (!options || (options === null || options === void 0 ? void 0 : options.alignment) === "auto") {
818
+ if (offset.x < host.offsetWidth / 2) {
819
+ style.left = offset.x + "px";
820
+ } else {
821
+ style.right = `${host.offsetWidth - (offset.x + opener.offsetWidth)}px`;
822
+ }
823
+
824
+ if (offset.y < hostHeight / 2) {
825
+ style.top = offset.y + "px";
826
+ } else {
827
+ style.top = `${offset.y - opener.offsetHeight}px`;
828
+ style.transform = "translate(0, -100%)";
829
+ }
830
+ } else {
831
+ offset.y -= opener.offsetHeight;
832
+ style.top = offset.y + "px";
833
+
834
+ if ((options === null || options === void 0 ? void 0 : options.alignment) === "right") {
835
+ style.left = `${opener.offsetLeft + opener.offsetWidth}px`;
836
+ } else {
837
+ style.left = offset.x + "px";
838
+ }
839
+ }
840
+ }
841
+
842
+ style.zIndex = `${popupId++}`;
843
+ host.appendChild(container.element);
844
+
845
+ container.dispose = () => {
846
+ if (!container.disposables) {
847
+ return;
848
+ }
849
+
850
+ container.disposables.dispose();
851
+ const parent = getParent(opener);
852
+ parent.dispose(container.element);
853
+ container.element.remove();
854
+ container.disposables = null;
855
+ PopupService.lastTarget = previousTarget;
856
+ };
857
+
858
+ closeHandler(host, opener, container, () => {
859
+ const e = container.element;
860
+ container.dispose();
861
+ e.remove();
862
+ });
863
+ const ct = options === null || options === void 0 ? void 0 : options.cancelToken;
864
+
865
+ if (ct) {
866
+ ct.registerForCancel(() => container.dispose());
867
+ }
868
+
869
+ return container;
870
+ }
871
+
872
+ });
873
+ }
874
+ };
875
+ });
876
+ //# sourceMappingURL=PopupService.sys.js.map