@web-atoms/core 2.2.4 → 2.2.6

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