@web-atoms/core 2.2.8 → 2.2.9

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