@web-atoms/core 2.2.7 → 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 (288) 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/tsconfig.tsbuildinfo +1 -1
  128. package/dist/unit/AtomTest.js +32 -1
  129. package/dist/unit/AtomTest.js.map +1 -1
  130. package/dist/unit/AtomWebTest.js +45 -1
  131. package/dist/unit/AtomWebTest.js.map +1 -1
  132. package/dist/view-model/Action.js +126 -1
  133. package/dist/view-model/Action.js.map +1 -1
  134. package/dist/view-model/AtomViewModel.js +320 -1
  135. package/dist/view-model/AtomViewModel.js.map +1 -1
  136. package/dist/view-model/AtomWindowViewModel.js +34 -1
  137. package/dist/view-model/AtomWindowViewModel.js.map +1 -1
  138. package/dist/view-model/BindableUrlParameter.js +24 -1
  139. package/dist/view-model/BindableUrlParameter.js.map +1 -1
  140. package/dist/view-model/Delay.js +34 -1
  141. package/dist/view-model/Delay.js.map +1 -1
  142. package/dist/view-model/Disposable.js +42 -1
  143. package/dist/view-model/Disposable.js.map +1 -1
  144. package/dist/view-model/Load.js +93 -1
  145. package/dist/view-model/Load.js.map +1 -1
  146. package/dist/view-model/Once.js +49 -1
  147. package/dist/view-model/Once.js.map +1 -1
  148. package/dist/view-model/baseTypes.js +14 -1
  149. package/dist/view-model/baseTypes.js.map +1 -1
  150. package/dist/view-model/bindPromise.js +41 -1
  151. package/dist/view-model/bindPromise.js.map +1 -1
  152. package/dist/view-model/bindProperty.js +16 -1
  153. package/dist/view-model/bindProperty.js.map +1 -1
  154. package/dist/view-model/bindUrlParameter.js +58 -1
  155. package/dist/view-model/bindUrlParameter.js.map +1 -1
  156. package/dist/web/WebApp.js +165 -1
  157. package/dist/web/WebApp.js.map +1 -1
  158. package/dist/web/controls/AtomAlertWindow.js +60 -1
  159. package/dist/web/controls/AtomAlertWindow.js.map +1 -1
  160. package/dist/web/controls/AtomComboBox.js +85 -1
  161. package/dist/web/controls/AtomComboBox.js.map +1 -1
  162. package/dist/web/controls/AtomContentControl.js +60 -1
  163. package/dist/web/controls/AtomContentControl.js.map +1 -1
  164. package/dist/web/controls/AtomControl.js +540 -1
  165. package/dist/web/controls/AtomControl.js.map +1 -1
  166. package/dist/web/controls/AtomFrame.js +231 -1
  167. package/dist/web/controls/AtomFrame.js.map +1 -1
  168. package/dist/web/controls/AtomGridSplitter.js +74 -1
  169. package/dist/web/controls/AtomGridSplitter.js.map +1 -1
  170. package/dist/web/controls/AtomGridView.js +250 -1
  171. package/dist/web/controls/AtomGridView.js.map +1 -1
  172. package/dist/web/controls/AtomItemsControl.js +709 -1
  173. package/dist/web/controls/AtomItemsControl.js.map +1 -1
  174. package/dist/web/controls/AtomListBox.js +62 -1
  175. package/dist/web/controls/AtomListBox.js.map +1 -1
  176. package/dist/web/controls/AtomNotification.js +61 -1
  177. package/dist/web/controls/AtomNotification.js.map +1 -1
  178. package/dist/web/controls/AtomPage.js +20 -1
  179. package/dist/web/controls/AtomPage.js.map +1 -1
  180. package/dist/web/controls/AtomPageLink.js +112 -1
  181. package/dist/web/controls/AtomPageLink.js.map +1 -1
  182. package/dist/web/controls/AtomTabbedPage.js +262 -1
  183. package/dist/web/controls/AtomTabbedPage.js.map +1 -1
  184. package/dist/web/controls/AtomTemplate.js +14 -1
  185. package/dist/web/controls/AtomTemplate.js.map +1 -1
  186. package/dist/web/controls/AtomTemplateControl.js +46 -1
  187. package/dist/web/controls/AtomTemplateControl.js.map +1 -1
  188. package/dist/web/controls/AtomToggleButtonBar.js +45 -1
  189. package/dist/web/controls/AtomToggleButtonBar.js.map +1 -1
  190. package/dist/web/controls/AtomViewPager.js +67 -1
  191. package/dist/web/controls/AtomViewPager.js.map +1 -1
  192. package/dist/web/controls/AtomViewStack.js +34 -1
  193. package/dist/web/controls/AtomViewStack.js.map +1 -1
  194. package/dist/web/controls/AtomWindow.js +247 -1
  195. package/dist/web/controls/AtomWindow.js.map +1 -1
  196. package/dist/web/core/AtomUI.js +203 -1
  197. package/dist/web/core/AtomUI.js.map +1 -1
  198. package/dist/web/core/Encoder.js +152 -1
  199. package/dist/web/core/Encoder.js.map +1 -1
  200. package/dist/web/core/HtmlNode.js +185 -3
  201. package/dist/web/core/HtmlNode.js.map +1 -1
  202. package/dist/web/images/Busy.js +13 -1
  203. package/dist/web/images/Busy.js.map +1 -1
  204. package/dist/web/images/BusyDataUrl.js +14 -1
  205. package/dist/web/images/BusyDataUrl.js.map +1 -1
  206. package/dist/web/images/Button.js +13 -1
  207. package/dist/web/images/Button.js.map +1 -1
  208. package/dist/web/images/ButtonDataUrl.js +14 -1
  209. package/dist/web/images/ButtonDataUrl.js.map +1 -1
  210. package/dist/web/images/CloseButton.js +13 -1
  211. package/dist/web/images/CloseButton.js.map +1 -1
  212. package/dist/web/images/CloseButtonDataUrl.js +14 -1
  213. package/dist/web/images/CloseButtonDataUrl.js.map +1 -1
  214. package/dist/web/images/CloseButtonHover.js +13 -1
  215. package/dist/web/images/CloseButtonHover.js.map +1 -1
  216. package/dist/web/images/CloseButtonHoverDataUrl.js +14 -1
  217. package/dist/web/images/CloseButtonHoverDataUrl.js.map +1 -1
  218. package/dist/web/samples/MovieService.js +28 -1
  219. package/dist/web/samples/MovieService.js.map +1 -1
  220. package/dist/web/samples/demo/app.js +25 -1
  221. package/dist/web/samples/demo/app.js.map +1 -1
  222. package/dist/web/samples/demo/views/MovieList.js +70 -1
  223. package/dist/web/samples/demo/views/MovieList.js.map +1 -1
  224. package/dist/web/samples/demo/views/MovieListViewModel.js +72 -1
  225. package/dist/web/samples/demo/views/MovieListViewModel.js.map +1 -1
  226. package/dist/web/samples/tabs/app.js +34 -1
  227. package/dist/web/samples/tabs/app.js.map +1 -1
  228. package/dist/web/samples/tabs/views/List.js +13 -1
  229. package/dist/web/samples/tabs/views/List.js.map +1 -1
  230. package/dist/web/samples/tabs/views/ListDataUrl.js +14 -1
  231. package/dist/web/samples/tabs/views/ListDataUrl.js.map +1 -1
  232. package/dist/web/samples/tabs/views/Page1.js +62 -1
  233. package/dist/web/samples/tabs/views/Page1.js.map +1 -1
  234. package/dist/web/samples/tabs/views/TabHost.js +51 -1
  235. package/dist/web/samples/tabs/views/TabHost.js.map +1 -1
  236. package/dist/web/samples/window/WindowSample.js +29 -1
  237. package/dist/web/samples/window/WindowSample.js.map +1 -1
  238. package/dist/web/services/MarkdownService.js +32 -1
  239. package/dist/web/services/MarkdownService.js.map +1 -1
  240. package/dist/web/services/NotificationPopup.js +49 -1
  241. package/dist/web/services/NotificationPopup.js.map +1 -1
  242. package/dist/web/services/PopupService.js +787 -1
  243. package/dist/web/services/PopupService.js.map +1 -1
  244. package/dist/web/services/WebBusyIndicatorService.js +77 -1
  245. package/dist/web/services/WebBusyIndicatorService.js.map +1 -1
  246. package/dist/web/services/WindowService.js +340 -1
  247. package/dist/web/services/WindowService.js.map +1 -1
  248. package/dist/web/styles/AtomAlertWindowStyle.js +52 -1
  249. package/dist/web/styles/AtomAlertWindowStyle.js.map +1 -1
  250. package/dist/web/styles/AtomFrameStyle.js +29 -1
  251. package/dist/web/styles/AtomFrameStyle.js.map +1 -1
  252. package/dist/web/styles/AtomListBoxStyle.js +42 -1
  253. package/dist/web/styles/AtomListBoxStyle.js.map +1 -1
  254. package/dist/web/styles/AtomNotificationStyle.js +35 -1
  255. package/dist/web/styles/AtomNotificationStyle.js.map +1 -1
  256. package/dist/web/styles/AtomPageLinkStyle.js +25 -1
  257. package/dist/web/styles/AtomPageLinkStyle.js.map +1 -1
  258. package/dist/web/styles/AtomPopupStyle.js +23 -1
  259. package/dist/web/styles/AtomPopupStyle.js.map +1 -1
  260. package/dist/web/styles/AtomStyle.js +81 -1
  261. package/dist/web/styles/AtomStyle.js.map +1 -1
  262. package/dist/web/styles/AtomStyleSheet.js +69 -1
  263. package/dist/web/styles/AtomStyleSheet.js.map +1 -1
  264. package/dist/web/styles/AtomTabbedPageStyle.js +127 -1
  265. package/dist/web/styles/AtomTabbedPageStyle.js.map +1 -1
  266. package/dist/web/styles/AtomTheme.js +52 -1
  267. package/dist/web/styles/AtomTheme.js.map +1 -1
  268. package/dist/web/styles/AtomToggleButtonBarStyle.js +76 -1
  269. package/dist/web/styles/AtomToggleButtonBarStyle.js.map +1 -1
  270. package/dist/web/styles/AtomWindowStyle.js +130 -1
  271. package/dist/web/styles/AtomWindowStyle.js.map +1 -1
  272. package/dist/web/styles/CSS.js +75 -1
  273. package/dist/web/styles/CSS.js.map +1 -1
  274. package/dist/web/styles/CommonStyles.js +68 -1
  275. package/dist/web/styles/CommonStyles.js.map +1 -1
  276. package/dist/web/styles/IStyleDeclaration.js +8 -1
  277. package/dist/web/styles/StyleBuilder.js +95 -1
  278. package/dist/web/styles/StyleBuilder.js.map +1 -1
  279. package/dist/xf/XFApp.js +64 -1
  280. package/dist/xf/XFApp.js.map +1 -1
  281. package/dist/xf/controls/AtomXFControl.js +245 -1
  282. package/dist/xf/controls/AtomXFControl.js.map +1 -1
  283. package/dist/xf/services/XFBusyIndicatorService.js +30 -1
  284. package/dist/xf/services/XFBusyIndicatorService.js.map +1 -1
  285. package/dist/xf/services/XFNavigationService.js +138 -1
  286. package/dist/xf/services/XFNavigationService.js.map +1 -1
  287. package/package.json +2 -2
  288. package/src/core/StringHelper.ts +2 -2
@@ -1,2 +1,232 @@
1
- System.register(["tslib","../../core/AtomBinder","../../core/AtomLoader","../../core/AtomUri","../../services/NavigationService","../../view-model/AtomWindowViewModel","../core/AtomUI","../styles/AtomFrameStyle","./AtomControl"],function(_export,_context){"use strict";var __awaiter,AtomBinder,AtomLoader,AtomUri,NavigationService,AtomWindowViewModel,AtomUI,AtomFrameStyle,AtomControl,AtomFrame;_export("AtomFrame",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder;},function(_coreAtomLoader){AtomLoader=_coreAtomLoader.AtomLoader;},function(_coreAtomUri){AtomUri=_coreAtomUri.AtomUri;},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService;},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel;},function(_coreAtomUI){AtomUI=_coreAtomUI.AtomUI;},function(_stylesAtomFrameStyle){AtomFrameStyle=_stylesAtomFrameStyle.default;},function(_AtomControl){AtomControl=_AtomControl.AtomControl;}],execute:function(){_export("AtomFrame",AtomFrame=class AtomFrame extends AtomControl{get canGoBack(){return this.stack.length?true:false;}get url(){return this.mUrl;}set url(value){if(this.mUrl===value){return;}if(value===undefined){return;}this.mUrl=value;this.runAfterInit(()=>{this.app.runAsync(()=>this.loadForReturn(value===null?null:new AtomUri(value),true));});}constructor(app,e){super(app,e||document.createElement("section"));}onBackCommand(){return __awaiter(this,void 0,void 0,function*(){if(!this.stack.length){console.warn(`FrameStack is empty !!`);return;}const ctrl=this.current;if(ctrl){yield this.navigationService.remove(ctrl);}});}popStack(windowClosed){if(!this.stack.length){console.warn(`FrameStack is empty !!`);return;}const last=this.stack.pop();AtomBinder.refreshItems(this.stack);const old=this.current;this.current=last.page;this.current.element.style.display="";if(old){this.navigationService.remove(old).catch(e=>console.log(e));}this.setUrl(last.url);if(this.saveScrollPosition){setTimeout(()=>{window.scrollTo(0,last.scrollY);},200);}}canChange(){const c=this.current;if(!c){return Promise.resolve(true);}return this.navigationService.remove(c);}push(ctrl){if(this.current){if(this.keepStack){this.current.element.style.display="none";this.stack.add({url:this.current._$_url,page:this.current,scrollY:this.navigationService.screen.scrollTop});}else{if(this.current===ctrl){return;}const c1=this.current;const e1=c1.element;if(e1){this.navigationService.remove(c1);}}}const element=ctrl.element;const e=this.pagePresenter||this.element;e.appendChild(element);this.current=ctrl;if(this.saveScrollPosition){window.scrollTo(0,0);}}load(url,clearHistory){return __awaiter(this,void 0,void 0,function*(){if(clearHistory){if(!(yield this.canChange())){return;}}const{view,disposables}=yield AtomLoader.loadView(url,this.app,true,()=>new AtomWindowViewModel(this.app));const urlString=url.host?url.toString():url.pathAndQuery;view._$_url=urlString;this.push(view);const e=view.element;this.setUrl(urlString);disposables.add({dispose:()=>{const closed=this.current===view;e.innerHTML="";e.remove();this.popStack(closed);}});return view;});}toUpperCase(s){return s.split("-").filter(t=>t).map(t=>t.substr(0,1).toUpperCase()+t.substr(1)).join("");}setUrl(urlString){this.mUrl=urlString;AtomBinder.refreshValue(this,"url");AtomBinder.refreshValue(this,"canGoBack");}loadForReturn(url,clearHistory){return __awaiter(this,void 0,void 0,function*(){const hasHistory=this.keepStack;this.keepStack=!clearHistory;if(url===null){if(hasHistory&&clearHistory){this.clearStack();}return;}const page=yield this.load(url,clearHistory);if(hasHistory){if(clearHistory){this.clearStack();}}try{return yield page.returnPromise;}catch(ex){if((ex.message?ex.message:ex)==="cancelled"){console.warn(ex);return;}throw ex;}});}clearStack(){for(const iterator of this.stack){const e=iterator.page.element;if(e){iterator.page.dispose();e.innerHTML="";e.remove();}}this.stack.clear();}preCreate(){this.name=null;this.stack=[];this.keepStack=false;this.current=null;this.currentDisposable=null;this.saveScrollPosition=false;this.navigationService=this.app.resolve(NavigationService);this.defaultControlStyle=AtomFrameStyle;this.pagePresenter=null;this.mUrl=null;AtomUI.assignID(this.element);this.runAfterInit(()=>{this.setPrimitiveValue(this.element,"styleClass",this.controlStyle.name);});this.backCommand=()=>this.app.runAsync(()=>this.onBackCommand());const d=this.navigationService.registerNavigationHook((url,{target,clearHistory,cancelToken})=>{if(this.name){if(target!==this.name){return undefined;}}else{if(target!=="frame"&&url.protocol!=="frame:"){return undefined;}}if(cancelToken){cancelToken.registerForCancel(()=>{this.backCommand();});}return this.loadForReturn(url,clearHistory);});this.registerDisposable(d);}});}};});
1
+ System.register(["tslib", "../../core/AtomBinder", "../../core/AtomLoader", "../../core/AtomUri", "../../services/NavigationService", "../../view-model/AtomWindowViewModel", "../core/AtomUI", "../styles/AtomFrameStyle", "./AtomControl"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var __awaiter, AtomBinder, AtomLoader, AtomUri, NavigationService, AtomWindowViewModel, AtomUI, AtomFrameStyle, AtomControl, AtomFrame;
5
+ _export("AtomFrame", void 0);
6
+ return {
7
+ setters: [function (_tslib) {
8
+ __awaiter = _tslib.__awaiter;
9
+ }, function (_coreAtomBinder) {
10
+ AtomBinder = _coreAtomBinder.AtomBinder;
11
+ }, function (_coreAtomLoader) {
12
+ AtomLoader = _coreAtomLoader.AtomLoader;
13
+ }, function (_coreAtomUri) {
14
+ AtomUri = _coreAtomUri.AtomUri;
15
+ }, function (_servicesNavigationService) {
16
+ NavigationService = _servicesNavigationService.NavigationService;
17
+ }, function (_viewModelAtomWindowViewModel) {
18
+ AtomWindowViewModel = _viewModelAtomWindowViewModel.AtomWindowViewModel;
19
+ }, function (_coreAtomUI) {
20
+ AtomUI = _coreAtomUI.AtomUI;
21
+ }, function (_stylesAtomFrameStyle) {
22
+ AtomFrameStyle = _stylesAtomFrameStyle.default;
23
+ }, function (_AtomControl) {
24
+ AtomControl = _AtomControl.AtomControl;
25
+ }],
26
+ execute: function () {
27
+ _export("AtomFrame", AtomFrame = class AtomFrame extends AtomControl {
28
+ get canGoBack() {
29
+ return this.stack.length ? true : false;
30
+ }
31
+ get url() {
32
+ return this.mUrl;
33
+ }
34
+ set url(value) {
35
+ if (this.mUrl === value) {
36
+ return;
37
+ }
38
+ if (value === undefined) {
39
+ return;
40
+ }
41
+ this.mUrl = value;
42
+ this.runAfterInit(() => {
43
+ this.app.runAsync(() => this.loadForReturn(value === null ? null : new AtomUri(value), true));
44
+ });
45
+ }
46
+ constructor(app, e) {
47
+ super(app, e || document.createElement("section"));
48
+ }
49
+ onBackCommand() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ if (!this.stack.length) {
52
+ console.warn(`FrameStack is empty !!`);
53
+ return;
54
+ }
55
+ const ctrl = this.current;
56
+ if (ctrl) {
57
+ yield this.navigationService.remove(ctrl);
58
+ }
59
+ });
60
+ }
61
+ popStack(windowClosed) {
62
+ if (!this.stack.length) {
63
+ console.warn(`FrameStack is empty !!`);
64
+ return;
65
+ }
66
+ const last = this.stack.pop();
67
+ AtomBinder.refreshItems(this.stack);
68
+ const old = this.current;
69
+ this.current = last.page;
70
+ this.current.element.style.display = "";
71
+ if (old) {
72
+ this.navigationService.remove(old).catch(e => console.log(e));
73
+ }
74
+ this.setUrl(last.url);
75
+ if (this.saveScrollPosition) {
76
+ setTimeout(() => {
77
+ window.scrollTo(0, last.scrollY);
78
+ }, 200);
79
+ }
80
+ }
81
+ canChange() {
82
+ const c = this.current;
83
+ if (!c) {
84
+ return Promise.resolve(true);
85
+ }
86
+ return this.navigationService.remove(c);
87
+ }
88
+ push(ctrl) {
89
+ if (this.current) {
90
+ if (this.keepStack) {
91
+ this.current.element.style.display = "none";
92
+ this.stack.add({
93
+ url: this.current._$_url,
94
+ page: this.current,
95
+ scrollY: this.navigationService.screen.scrollTop
96
+ });
97
+ } else {
98
+ if (this.current === ctrl) {
99
+ return;
100
+ }
101
+ const c1 = this.current;
102
+ const e1 = c1.element;
103
+ if (e1) {
104
+ this.navigationService.remove(c1);
105
+ }
106
+ }
107
+ }
108
+ const element = ctrl.element;
109
+ const e = this.pagePresenter || this.element;
110
+ e.appendChild(element);
111
+ this.current = ctrl;
112
+ if (this.saveScrollPosition) {
113
+ window.scrollTo(0, 0);
114
+ }
115
+ }
116
+ load(url, clearHistory) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ if (clearHistory) {
119
+ if (!(yield this.canChange())) {
120
+ return;
121
+ }
122
+ }
123
+ const {
124
+ view,
125
+ disposables
126
+ } = yield AtomLoader.loadView(url, this.app, true, () => new AtomWindowViewModel(this.app));
127
+ const urlString = url.host ? url.toString() : url.pathAndQuery;
128
+ view._$_url = urlString;
129
+ this.push(view);
130
+ const e = view.element;
131
+ this.setUrl(urlString);
132
+ disposables.add({
133
+ dispose: () => {
134
+ const closed = this.current === view;
135
+ e.innerHTML = "";
136
+ e.remove();
137
+ this.popStack(closed);
138
+ }
139
+ });
140
+ return view;
141
+ });
142
+ }
143
+ toUpperCase(s) {
144
+ return s.split("-").filter(t => t).map(t => t.substr(0, 1).toUpperCase() + t.substr(1)).join("");
145
+ }
146
+ setUrl(urlString) {
147
+ this.mUrl = urlString;
148
+ AtomBinder.refreshValue(this, "url");
149
+ AtomBinder.refreshValue(this, "canGoBack");
150
+ }
151
+ loadForReturn(url, clearHistory) {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ const hasHistory = this.keepStack;
154
+ this.keepStack = !clearHistory;
155
+ if (url === null) {
156
+ if (hasHistory && clearHistory) {
157
+ this.clearStack();
158
+ }
159
+ return;
160
+ }
161
+ const page = yield this.load(url, clearHistory);
162
+ if (hasHistory) {
163
+ if (clearHistory) {
164
+ this.clearStack();
165
+ }
166
+ }
167
+ try {
168
+ return yield page.returnPromise;
169
+ } catch (ex) {
170
+ if ((ex.message ? ex.message : ex) === "cancelled") {
171
+ console.warn(ex);
172
+ return;
173
+ }
174
+ throw ex;
175
+ }
176
+ });
177
+ }
178
+ clearStack() {
179
+ for (const iterator of this.stack) {
180
+ const e = iterator.page.element;
181
+ if (e) {
182
+ iterator.page.dispose();
183
+ e.innerHTML = "";
184
+ e.remove();
185
+ }
186
+ }
187
+ this.stack.clear();
188
+ }
189
+ preCreate() {
190
+ this.name = null;
191
+ this.stack = [];
192
+ this.keepStack = false;
193
+ this.current = null;
194
+ this.currentDisposable = null;
195
+ this.saveScrollPosition = false;
196
+ this.navigationService = this.app.resolve(NavigationService);
197
+ this.defaultControlStyle = AtomFrameStyle;
198
+ this.pagePresenter = null;
199
+ this.mUrl = null;
200
+ AtomUI.assignID(this.element);
201
+ this.runAfterInit(() => {
202
+ this.setPrimitiveValue(this.element, "styleClass", this.controlStyle.name);
203
+ });
204
+ this.backCommand = () => this.app.runAsync(() => this.onBackCommand());
205
+ const d = this.navigationService.registerNavigationHook((url, {
206
+ target,
207
+ clearHistory,
208
+ cancelToken
209
+ }) => {
210
+ if (this.name) {
211
+ if (target !== this.name) {
212
+ return undefined;
213
+ }
214
+ } else {
215
+ if (target !== "frame" && url.protocol !== "frame:") {
216
+ return undefined;
217
+ }
218
+ }
219
+ if (cancelToken) {
220
+ cancelToken.registerForCancel(() => {
221
+ this.backCommand();
222
+ });
223
+ }
224
+ return this.loadForReturn(url, clearHistory);
225
+ });
226
+ this.registerDisposable(d);
227
+ }
228
+ });
229
+ }
230
+ };
231
+ });
2
232
  //# sourceMappingURL=AtomFrame.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["AtomFrame","AtomBinder","AtomLoader","AtomUri","NavigationService","AtomWindowViewModel","AtomUI","AtomFrameStyle","AtomControl","canGoBack","stack","length","url","mUrl","value","undefined","runAfterInit","app","runAsync","loadForReturn","constructor","e","document","createElement","onBackCommand","console","warn","ctrl","current","navigationService","remove","popStack","windowClosed","last","pop","refreshItems","old","page","element","style","display","catch","log","setUrl","saveScrollPosition","setTimeout","window","scrollTo","scrollY","canChange","c","Promise","resolve","push","keepStack","add","_$_url","screen","scrollTop","c1","e1","pagePresenter","appendChild","load","clearHistory","view","disposables","loadView","urlString","host","toString","pathAndQuery","dispose","closed","innerHTML","toUpperCase","s","split","filter","t","map","substr","join","refreshValue","hasHistory","clearStack","returnPromise","ex","message","iterator","clear","preCreate","name","currentDisposable","defaultControlStyle","assignID","setPrimitiveValue","controlStyle","backCommand","d","registerNavigationHook","target","cancelToken","protocol","registerForCancel","registerDisposable"],"sourceRoot":"","sources":["../../../src/web/controls/AtomFrame.ts"],"sourcesContent":[null]}
1
+ {"version":3,"mappings":";;;+HA2BaA,SACT;EAAA;EAAA;IAAA;;;MA1BKC,UAAU,mBAAVA,UAAU;IAAA;MAEVC,UAAU,mBAAVA,UAAU;IAAA;MACVC,OAAO,gBAAPA,OAAO;IAAA;MAGPC,iBAAiB,8BAAjBA,iBAAiB;IAAA;MACjBC,mBAAmB,iCAAnBA,mBAAmB;IAAA;MACnBC,MAAM,eAANA,MAAM;IAAA;MAERC,cAAc;IAAA;MACZC,WAAW,gBAAXA,WAAW;IAAA;IAAA;MAAA,qBAcPR,SACT,GADE,MAAOA,SACT,SAAQQ,WAAW;QAKnB,IAAWC,SAAS;UAChB,OAAO,IAAI,CAACC,KAAK,CAACC,MAAM,GAAG,IAAI,GAAG,KAAK;QAC3C;QAiBA,IAAWC,GAAG;UACV,OAAO,IAAI,CAACC,IAAI;QACpB;QACA,IAAWD,GAAG,CAACE,KAAa;UACxB,IAAI,IAAI,CAACD,IAAI,KAAKC,KAAK,EAAE;YACrB;;UAEJ,IAAIA,KAAK,KAAKC,SAAS,EAAE;YACrB;;UAEJ,IAAI,CAACF,IAAI,GAAGC,KAAK;UACjB,IAAI,CAACE,YAAY,CAAC,MAAK;YACnB,IAAI,CAACC,GAAG,CAACC,QAAQ,CAAC,MAAM,IAAI,CAACC,aAAa,CAACL,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,IAAIX,OAAO,CAACW,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;UACjG,CAAC,CAAC;QACN;QAIAM,YAAYH,GAAQ,EAAEI,CAAe;UACjC,KAAK,CAACJ,GAAG,EAAEI,CAAC,IAAIC,QAAQ,CAACC,aAAa,CAAC,SAAS,CAAC,CAAC;QACtD;QAEaC,aAAa;;YACtB,IAAI,CAAC,IAAI,CAACd,KAAK,CAACC,MAAM,EAAE;cAEpBc,OAAO,CAACC,IAAI,CAAC,wBAAwB,CAAC;cACtC;;YAGJ,MAAMC,IAAI,GAAgB,IAAI,CAACC,OAAO;YACtC,IAAID,IAAI,EAAE;cACN,MAAM,IAAI,CAACE,iBAAiB,CAACC,MAAM,CAACH,IAAI,CAAC;;UAIjD,CAAC;;QAMMI,QAAQ,CAACC,YAAsB;UAClC,IAAI,CAAC,IAAI,CAACtB,KAAK,CAACC,MAAM,EAAE;YAEpBc,OAAO,CAACC,IAAI,CAAC,wBAAwB,CAAC;YACtC;;UAEJ,MAAMO,IAAI,GAAG,IAAI,CAACvB,KAAK,CAACwB,GAAG,EAAE;UAC7BjC,UAAU,CAACkC,YAAY,CAAC,IAAI,CAACzB,KAAK,CAAC;UACnC,MAAM0B,GAAG,GAAG,IAAI,CAACR,OAAO;UACxB,IAAI,CAACA,OAAO,GAAGK,IAAI,CAACI,IAAI;UACvB,IAAI,CAACT,OAAO,CAACU,OAAuB,CAACC,KAAK,CAACC,OAAO,GAAG,EAAE;UACxD,IAAIJ,GAAG,EAAE;YACL,IAAI,CAACP,iBAAiB,CAACC,MAAM,CAACM,GAAG,CAAC,CAACK,KAAK,CAAEpB,CAAC,IAEvCI,OAAO,CAACiB,GAAG,CAACrB,CAAC,CAAC,CAAC;;UAEvB,IAAI,CAACsB,MAAM,CAACV,IAAI,CAACrB,GAAG,CAAC;UACrB,IAAI,IAAI,CAACgC,kBAAkB,EAAE;YACzBC,UAAU,CAAC,MAAK;cACZC,MAAM,CAACC,QAAQ,CAAC,CAAC,EAAEd,IAAI,CAACe,OAAO,CAAC;YACpC,CAAC,EAAE,GAAG,CAAC;;QAEf;QAEOC,SAAS;UACZ,MAAMC,CAAC,GAAG,IAAI,CAACtB,OAAO;UACtB,IAAI,CAACsB,CAAC,EAAE;YACJ,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;;UAEhC,OAAO,IAAI,CAACvB,iBAAiB,CAACC,MAAM,CAACoB,CAAC,CAAC;QAC3C;QAEOG,IAAI,CAAC1B,IAAiB;UAEzB,IAAI,IAAI,CAACC,OAAO,EAAE;YACd,IAAI,IAAI,CAAC0B,SAAS,EAAE;cACf,IAAI,CAAC1B,OAAO,CAACU,OAAuB,CAACC,KAAK,CAACC,OAAO,GAAG,MAAM;cAC5D,IAAI,CAAC9B,KAAK,CAAC6C,GAAG,CAAC;gBACX3C,GAAG,EAAG,IAAI,CAACgB,OAAe,CAAC4B,MAAM;gBACjCnB,IAAI,EAAE,IAAI,CAACT,OAAO;gBAClBoB,OAAO,EAAE,IAAI,CAACnB,iBAAiB,CAAC4B,MAAM,CAACC;eAC1C,CAAC;aACL,MAAM;cACH,IAAI,IAAI,CAAC9B,OAAO,KAAKD,IAAI,EAAE;gBACvB;;cAEJ,MAAMgC,EAAE,GAAgB,IAAI,CAAC/B,OAAO;cACpC,MAAMgC,EAAE,GAAgBD,EAAE,CAACrB,OAAsB;cACjD,IAAIsB,EAAE,EAAE;gBACJ,IAAI,CAAC/B,iBAAiB,CAACC,MAAM,CAAC6B,EAAE,CAAC;;;;UAK7C,MAAMrB,OAAO,GAAgBX,IAAI,CAACW,OAAsB;UACxD,MAAMjB,CAAC,GAAG,IAAI,CAACwC,aAAa,IAAI,IAAI,CAACvB,OAAO;UAC3CjB,CAAC,CAAEyC,WAAW,CAACxB,OAAO,CAAC;UAExB,IAAI,CAACV,OAAO,GAAGD,IAAI;UAEnB,IAAI,IAAI,CAACiB,kBAAkB,EAAE;YACzBE,MAAM,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;QAE7B;QAEagB,IAAI,CAACnD,GAAY,EAAEoD,YAAsB;;YAMlD,IAAIA,YAAY,EAAE;cACd,IAAI,EAAE,MAAM,IAAI,CAACf,SAAS,EAAE,GAAE;gBAC1B;;;YAIR,MAAM;cAAEgB,IAAI;cAAEC;YAAW,CAAE,GACvB,MAAMhE,UAAU,CAACiE,QAAQ,CAAcvD,GAAG,EAAE,IAAI,CAACK,GAAG,EAAE,IAAI,EAAE,MAAM,IAAIZ,mBAAmB,CAAC,IAAI,CAACY,GAAG,CAAC,CAAC;YACxG,MAAMmD,SAAS,GAAGxD,GAAG,CAACyD,IAAI,GAAGzD,GAAG,CAAC0D,QAAQ,EAAE,GAAG1D,GAAG,CAAC2D,YAAY;YAC7DN,IAAY,CAACT,MAAM,GAAGY,SAAS;YAEhC,IAAI,CAACf,IAAI,CAACY,IAAI,CAAC;YAEf,MAAM5C,CAAC,GAAG4C,IAAI,CAAC3B,OAAO;YAItB,IAAI,CAACK,MAAM,CAACyB,SAAS,CAAC;YACtBF,WAAW,CAACX,GAAG,CAAC;cACZiB,OAAO,EAAE,MAAK;gBACV,MAAMC,MAAM,GAAG,IAAI,CAAC7C,OAAO,KAAKqC,IAAI;gBACpC5C,CAAC,CAACqD,SAAS,GAAG,EAAE;gBAChBrD,CAAC,CAACS,MAAM,EAAE;gBAEV,IAAI,CAACC,QAAQ,CAAC0C,MAAM,CAAC;cACzB;aACH,CAAC;YACF,OAAOR,IAAI;UACf,CAAC;;QAEMU,WAAW,CAACC,CAAS;UACxB,OAAOA,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CACdC,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAChBC,GAAG,CAAED,CAAC,IAAKA,CAAC,CAACE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAACN,WAAW,EAAE,GAAGI,CAAC,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC,CACtDC,IAAI,CAAC,EAAE,CAAC;QACjB;QAEUvC,MAAM,CAACyB,SAAiB;UAC9B,IAAI,CAACvD,IAAI,GAAGuD,SAAS;UACrBnE,UAAU,CAACkF,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;UACpClF,UAAU,CAACkF,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;QAC9C;QAEgBhE,aAAa,CAACP,GAAY,EAAEoD,YAAsB;;YAC9D,MAAMoB,UAAU,GAAG,IAAI,CAAC9B,SAAS;YACjC,IAAI,CAACA,SAAS,GAAG,CAACU,YAAY;YAE9B,IAAIpD,GAAG,KAAK,IAAI,EAAE;cACd,IAAIwE,UAAU,IAAIpB,YAAY,EAAE;gBAC5B,IAAI,CAACqB,UAAU,EAAE;;cAErB;;YAGJ,MAAMhD,IAAI,GAAG,MAAM,IAAI,CAAC0B,IAAI,CAACnD,GAAG,EAAEoD,YAAY,CAAC;YAC/C,IAAIoB,UAAU,EAAE;cACZ,IAAIpB,YAAY,EAAE;gBACd,IAAI,CAACqB,UAAU,EAAE;;;YAGzB,IAAI;cACA,OAAO,MAAOhD,IAAY,CAACiD,aAAa;aAC3C,CAAC,OAAOC,EAAE,EAAE;cAET,IAAI,CAACA,EAAE,CAACC,OAAO,GAAGD,EAAE,CAACC,OAAO,GAAGD,EAAE,MAAM,WAAW,EAAE;gBAEhD9D,OAAO,CAACC,IAAI,CAAC6D,EAAE,CAAC;gBAChB;;cAGJ,MAAMA,EAAE;;UAEhB,CAAC;;QAESF,UAAU;UAEhB,KAAK,MAAMI,QAAQ,IAAI,IAAI,CAAC/E,KAAK,EAAE;YAC/B,MAAMW,CAAC,GAAGoE,QAAQ,CAACpD,IAAI,CAACC,OAAO;YAC/B,IAAIjB,CAAC,EAAE;cACHoE,QAAQ,CAACpD,IAAI,CAACmC,OAAO,EAAE;cACvBnD,CAAC,CAACqD,SAAS,GAAG,EAAE;cAChBrD,CAAC,CAACS,MAAM,EAAE;;;UAGlB,IAAI,CAACpB,KAAK,CAACgF,KAAK,EAAE;QACtB;QAEUC,SAAS;UACf,IAAI,CAACC,IAAI,GAAG,IAAI;UAChB,IAAI,CAAClF,KAAK,GAAG,EAAE;UACf,IAAI,CAAC4C,SAAS,GAAG,KAAK;UACtB,IAAI,CAAC1B,OAAO,GAAG,IAAI;UACnB,IAAI,CAACiE,iBAAiB,GAAG,IAAI;UAC7B,IAAI,CAACjD,kBAAkB,GAAG,KAAK;UAC/B,IAAI,CAACf,iBAAiB,GAAG,IAAI,CAACZ,GAAG,CAACmC,OAAO,CAAChD,iBAAiB,CAAkB;UAC7E,IAAI,CAAC0F,mBAAmB,GAAGvF,cAAc;UACzC,IAAI,CAACsD,aAAa,GAAG,IAAI;UACzB,IAAI,CAAChD,IAAI,GAAG,IAAI;UAChBP,MAAM,CAACyF,QAAQ,CAAC,IAAI,CAACzD,OAAO,CAAC;UAC7B,IAAI,CAACtB,YAAY,CAAC,MAAK;YACnB,IAAI,CAACgF,iBAAiB,CAAC,IAAI,CAAC1D,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC2D,YAAY,CAACL,IAAI,CAAC;UAC9E,CAAC,CAAC;UACF,IAAI,CAACM,WAAW,GAAG,MAAM,IAAI,CAACjF,GAAG,CAACC,QAAQ,CAAC,MAAM,IAAI,CAACM,aAAa,EAAE,CAAC;UAItE,MAAM2E,CAAC,GAAG,IAAI,CAACtE,iBAAiB,CAACuE,sBAAsB,CAAC,CAACxF,GAAG,EAAE;YAC1DyF,MAAM;YACNrC,YAAY;YACZsC;UAAW,CAAE,KAAI;YACjB,IAAI,IAAI,CAACV,IAAI,EAAE;cACX,IAAIS,MAAM,KAAK,IAAI,CAACT,IAAI,EAAE;gBACtB,OAAO7E,SAAS;;aAEvB,MAAM;cACH,IACIsF,MAAM,KAAK,OAAO,IACfzF,GAAG,CAAC2F,QAAQ,KAAK,QAAQ,EAAE;gBAC9B,OAAOxF,SAAS;;;YAGxB,IAAIuF,WAAW,EAAE;cACbA,WAAW,CAACE,iBAAiB,CAAC,MAAK;gBAC/B,IAAI,CAACN,WAAW,EAAE;cACtB,CAAC,CAAC;;YAEN,OAAO,IAAI,CAAC/E,aAAa,CAACP,GAAG,EAAEoD,YAAY,CAAC;UAChD,CAAC,CAAC;UACF,IAAI,CAACyC,kBAAkB,CAACN,CAAC,CAAC;QAC9B;OACH;IAAA;EAAA;AAAA","names":["AtomFrame","AtomBinder","AtomLoader","AtomUri","NavigationService","AtomWindowViewModel","AtomUI","AtomFrameStyle","AtomControl","canGoBack","stack","length","url","mUrl","value","undefined","runAfterInit","app","runAsync","loadForReturn","constructor","e","document","createElement","onBackCommand","console","warn","ctrl","current","navigationService","remove","popStack","windowClosed","last","pop","refreshItems","old","page","element","style","display","catch","log","setUrl","saveScrollPosition","setTimeout","window","scrollTo","scrollY","canChange","c","Promise","resolve","push","keepStack","add","_$_url","screen","scrollTop","c1","e1","pagePresenter","appendChild","load","clearHistory","view","disposables","loadView","urlString","host","toString","pathAndQuery","dispose","closed","innerHTML","toUpperCase","s","split","filter","t","map","substr","join","refreshValue","hasHistory","clearStack","returnPromise","ex","message","iterator","clear","preCreate","name","currentDisposable","defaultControlStyle","assignID","setPrimitiveValue","controlStyle","backCommand","d","registerNavigationHook","target","cancelToken","protocol","registerForCancel","registerDisposable"],"sourceRoot":"","sources":["../../../src/web/controls/AtomFrame.ts"],"sourcesContent":[null]}
@@ -1,2 +1,75 @@
1
- System.register(["./AtomControl","./AtomGridView"],function(_export,_context){"use strict";var AtomControl,AtomGridView,AtomGridSplitter;_export("AtomGridSplitter",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl;},function(_AtomGridView){AtomGridView=_AtomGridView.AtomGridView;}],execute:function(){_export("AtomGridSplitter",AtomGridSplitter=class AtomGridSplitter extends AtomControl{constructor(){super(...arguments);this.dragging=false;}preCreate(){this.direction="vertical";this.dragging=false;}create(){this.bind(this.element,"styleCursor",[["direction"]],false,v=>v==="vertical"?"ew-resize":"ns-resize");this.bind(this.element,"styleBackgroundColor",[["dragging"]],false,v=>v?"blue":"lightgray");const style=this.element.style;style.position="absolute";style.left=style.top=style.bottom=style.right="0";this.bindEvent(this.element,"mousedown",e=>{e.preventDefault();this.dragging=true;const parent=this.parent;const isVertical=this.direction==="vertical";const disposables=[];const rect={x:e.screenX,y:e.screenY};const{column,row}=AtomGridView.getCellInfo(this.element);const ss=document.createElement("style");ss.textContent="iframe { pointer-events: none }";document.head.appendChild(ss);disposables.push({dispose:()=>ss.remove()});disposables.push(this.bindEvent(document.body,"mousemove",me=>{const{screenX,screenY}=me;const dx=screenX-rect.x;const dy=screenY-rect.y;if(isVertical){parent.resize("column",column,dx);}else{parent.resize("row",row,dy);}rect.x=screenX;rect.y=screenY;}));disposables.push(this.bindEvent(document.body,"mouseup",mup=>{this.dragging=false;for(const iterator of disposables){iterator.dispose();}}));});}});}};});
1
+ System.register(["./AtomControl", "./AtomGridView"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var AtomControl, AtomGridView, AtomGridSplitter;
5
+ _export("AtomGridSplitter", void 0);
6
+ return {
7
+ setters: [function (_AtomControl) {
8
+ AtomControl = _AtomControl.AtomControl;
9
+ }, function (_AtomGridView) {
10
+ AtomGridView = _AtomGridView.AtomGridView;
11
+ }],
12
+ execute: function () {
13
+ _export("AtomGridSplitter", AtomGridSplitter = class AtomGridSplitter extends AtomControl {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.dragging = false;
17
+ }
18
+ preCreate() {
19
+ this.direction = "vertical";
20
+ this.dragging = false;
21
+ }
22
+ create() {
23
+ this.bind(this.element, "styleCursor", [["direction"]], false, v => v === "vertical" ? "ew-resize" : "ns-resize");
24
+ this.bind(this.element, "styleBackgroundColor", [["dragging"]], false, v => v ? "blue" : "lightgray");
25
+ const style = this.element.style;
26
+ style.position = "absolute";
27
+ style.left = style.top = style.bottom = style.right = "0";
28
+ this.bindEvent(this.element, "mousedown", e => {
29
+ e.preventDefault();
30
+ this.dragging = true;
31
+ const parent = this.parent;
32
+ const isVertical = this.direction === "vertical";
33
+ const disposables = [];
34
+ const rect = {
35
+ x: e.screenX,
36
+ y: e.screenY
37
+ };
38
+ const {
39
+ column,
40
+ row
41
+ } = AtomGridView.getCellInfo(this.element);
42
+ const ss = document.createElement("style");
43
+ ss.textContent = "iframe { pointer-events: none }";
44
+ document.head.appendChild(ss);
45
+ disposables.push({
46
+ dispose: () => ss.remove()
47
+ });
48
+ disposables.push(this.bindEvent(document.body, "mousemove", me => {
49
+ const {
50
+ screenX,
51
+ screenY
52
+ } = me;
53
+ const dx = screenX - rect.x;
54
+ const dy = screenY - rect.y;
55
+ if (isVertical) {
56
+ parent.resize("column", column, dx);
57
+ } else {
58
+ parent.resize("row", row, dy);
59
+ }
60
+ rect.x = screenX;
61
+ rect.y = screenY;
62
+ }));
63
+ disposables.push(this.bindEvent(document.body, "mouseup", mup => {
64
+ this.dragging = false;
65
+ for (const iterator of disposables) {
66
+ iterator.dispose();
67
+ }
68
+ }));
69
+ });
70
+ }
71
+ });
72
+ }
73
+ };
74
+ });
2
75
  //# sourceMappingURL=AtomGridSplitter.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["AtomGridSplitter","AtomControl","AtomGridView","constructor","preCreate","direction","dragging","create","bind","element","v","style","position","left","top","bottom","right","bindEvent","e","preventDefault","parent","isVertical","disposables","rect","x","screenX","y","screenY","column","row","getCellInfo","ss","document","createElement","textContent","head","appendChild","push","dispose","remove","body","me","dx","dy","resize","mup","iterator"],"sourceRoot":"","sources":["../../../src/web/controls/AtomGridSplitter.ts"],"sourcesContent":[null]}
1
+ {"version":3,"mappings":"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","names":["AtomGridSplitter","AtomControl","AtomGridView","constructor","preCreate","direction","dragging","create","bind","element","v","style","position","left","top","bottom","right","bindEvent","e","preventDefault","parent","isVertical","disposables","rect","x","screenX","y","screenY","column","row","getCellInfo","ss","document","createElement","textContent","head","appendChild","push","dispose","remove","body","me","dx","dy","resize","mup","iterator"],"sourceRoot":"","sources":["../../../src/web/controls/AtomGridSplitter.ts"],"sourcesContent":[null]}
@@ -1,2 +1,251 @@
1
- System.register(["../../core/AtomBridge","./AtomControl"],function(_export,_context){"use strict";var AtomBridge,AtomControl,AtomGridView;_export("AtomGridView",void 0);return{setters:[function(_coreAtomBridge){AtomBridge=_coreAtomBridge.AtomBridge;},function(_AtomControl){AtomControl=_AtomControl.AtomControl;}],execute:function(){_export("AtomGridView",AtomGridView=class AtomGridView extends AtomControl{constructor(){super(...arguments);this.attempt=0;this.availableRect=null;this.childrenReady=false;}static getCellInfo(e){let row=0;let column=0;let rowSpan=1;let colSpan=1;const cell=e.cell;if(cell){console.warn("Attribute `cell` is obsolete, please use row and column attributes separately");const tokens=cell.split(",").map(s=>s.trim().split(":").map(st=>parseInt(st.trim(),10)));column=tokens[0][0];row=tokens[1][0];colSpan=tokens[0][1]||1;rowSpan=tokens[1][1]||1;}else{let c=e.row||"0";let tokens=c.split(":").map(st=>parseInt(st.trim(),10));row=tokens[0];rowSpan=tokens[1]||1;c=e.column||"0";tokens=c.split(":").map(st=>parseInt(st.trim(),10));column=tokens[0];colSpan=tokens[1]||1;}return{row,rowSpan,column,colSpan};}append(e){const ee=e instanceof AtomControl?e.element:e;ee._logicalParent=this.element;this.children=this.children||[];this.children.push(e instanceof AtomControl?e.element:e);return this;}onUpdateUI(){var _a;this.attempt++;const c1=(_a=this.children)!==null&&_a!==void 0?_a:this.children=[];c1.length=0;let child=this.element.firstElementChild;while(child){const c=child;c1.push(c);child=child.nextElementSibling;c.remove();}const width=this.element.offsetWidth||this.element.clientWidth||parseFloat(this.element.style.width)||0;const height=this.element.offsetHeight||this.element.clientHeight||parseFloat(this.element.style.height)||0;if(!(width&&height)){if(this.childrenReady){setTimeout(()=>{this.invalidate();},5000);return;}if(this.attempt>100){console.error(`AtomDockPanel (${width}, ${height}) must both have non zero width and height`);return;}setTimeout(()=>{this.invalidate();},100);return;}if(!this.children){return;}this.attempt=0;this.availableRect={width,height,x:0,y:0};this.columnSizes=(this.columns||"*").split(",").map(s=>this.toSize(s.trim(),this.availableRect.width));this.rowSizes=(this.rows||"*").split(",").map(s=>this.toSize(s.trim(),this.availableRect.height));this.assignOffsets(this.columnSizes,this.availableRect.width);this.assignOffsets(this.rowSizes,this.availableRect.height);for(const iterator of this.children){const host=document.createElement("section");host.appendChild(iterator);this.element.appendChild(host);}super.onUpdateUI();this.updateSize();this.childrenReady=true;}resize(item,index,delta){const a=item==="column"?this.columnSizes:this.rowSizes;const prev=a[index-1];const next=a[index+1];if(!prev||!next){throw new Error("Grid Splitter cannot be start or end element in GridView");}const current=a[index];prev.size+=delta;current.offset+=delta;next.offset+=delta;next.size-=delta;this.updateSize();}onPropertyChanged(name){switch(name){case"rows":case"columns":if(this.childrenReady){this.invalidate();}break;}}onUpdateSize(){if(!this.children){return;}for(const iterator of this.children){this.updateStyle(iterator);}}preCreate(){this.columns=null;this.rows=null;const style=this.element.style;style.position="absolute";style.left=style.right=style.top=style.bottom="0";style.overflow="hidden";this.bindEvent(window,"resize",()=>{this.updateSize();});this.bindEvent(document.body,"resize",()=>{this.updateSize();});}updateStyle(e){const{colSpan,column,row,rowSpan}=AtomGridView.getCellInfo(e);const host=e.parentElement;if(!host){return;}host.style.position="absolute";host.style.overflow="hidden";host.style.padding="0";host.style.margin="0";if(this.rowSizes.length<=row||this.columnSizes.length<=column){return;}const rowStart=this.rowSizes[row].offset;let rowSize=0;for(let i=row;i<row+rowSpan;i++){rowSize+=this.rowSizes[i].size;}host.style.top=`${rowStart}px`;host.style.height=`${rowSize}px`;const colStart=this.columnSizes[column].offset;let colSize=0;for(let i=column;i<column+colSpan;i++){colSize+=this.columnSizes[i].size;}host.style.left=`${colStart}px`;host.style.width=`${colSize}px`;AtomBridge.instance.visitDescendents(host,(el,ac)=>{if(ac){ac.invalidate();return false;}return true;});}toSize(s,total){if(!s||s==="*"){return{offset:-1,size:NaN};}let n=0;if(s.endsWith("%")){s=s.substr(0,s.length-1);n=parseFloat(s);return{offset:-1,size:total*n/100};}return{offset:-1,size:parseFloat(s)};}assignOffsets(a,end){let start=0;let fill=null;for(const item of a){item.offset=start;if(isNaN(item.size)){fill=item;break;}start+=item.size;}if(!fill){return;}const lastStart=start;start=end;const r=a.map(x=>x).reverse();for(const item of r){if(isNaN(item.size)){if(fill!==item){throw new Error("Multiple * cannot be defined");}break;}start-=item.size;item.offset=start;}fill.offset=lastStart;fill.size=start-lastStart;}});}};});
1
+ System.register(["../../core/AtomBridge", "./AtomControl"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var AtomBridge, AtomControl, AtomGridView;
5
+ _export("AtomGridView", void 0);
6
+ return {
7
+ setters: [function (_coreAtomBridge) {
8
+ AtomBridge = _coreAtomBridge.AtomBridge;
9
+ }, function (_AtomControl) {
10
+ AtomControl = _AtomControl.AtomControl;
11
+ }],
12
+ execute: function () {
13
+ _export("AtomGridView", AtomGridView = class AtomGridView extends AtomControl {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.attempt = 0;
17
+ this.availableRect = null;
18
+ this.childrenReady = false;
19
+ }
20
+ static getCellInfo(e) {
21
+ let row = 0;
22
+ let column = 0;
23
+ let rowSpan = 1;
24
+ let colSpan = 1;
25
+ const cell = e.cell;
26
+ if (cell) {
27
+ console.warn("Attribute `cell` is obsolete, please use row and column attributes separately");
28
+ const tokens = cell.split(",").map(s => s.trim().split(":").map(st => parseInt(st.trim(), 10)));
29
+ column = tokens[0][0];
30
+ row = tokens[1][0];
31
+ colSpan = tokens[0][1] || 1;
32
+ rowSpan = tokens[1][1] || 1;
33
+ } else {
34
+ let c = e.row || "0";
35
+ let tokens = c.split(":").map(st => parseInt(st.trim(), 10));
36
+ row = tokens[0];
37
+ rowSpan = tokens[1] || 1;
38
+ c = e.column || "0";
39
+ tokens = c.split(":").map(st => parseInt(st.trim(), 10));
40
+ column = tokens[0];
41
+ colSpan = tokens[1] || 1;
42
+ }
43
+ return {
44
+ row,
45
+ rowSpan,
46
+ column,
47
+ colSpan
48
+ };
49
+ }
50
+ append(e) {
51
+ const ee = e instanceof AtomControl ? e.element : e;
52
+ ee._logicalParent = this.element;
53
+ this.children = this.children || [];
54
+ this.children.push(e instanceof AtomControl ? e.element : e);
55
+ return this;
56
+ }
57
+ onUpdateUI() {
58
+ var _a;
59
+ this.attempt++;
60
+ const c1 = (_a = this.children) !== null && _a !== void 0 ? _a : this.children = [];
61
+ c1.length = 0;
62
+ let child = this.element.firstElementChild;
63
+ while (child) {
64
+ const c = child;
65
+ c1.push(c);
66
+ child = child.nextElementSibling;
67
+ c.remove();
68
+ }
69
+ const width = this.element.offsetWidth || this.element.clientWidth || parseFloat(this.element.style.width) || 0;
70
+ const height = this.element.offsetHeight || this.element.clientHeight || parseFloat(this.element.style.height) || 0;
71
+ if (!(width && height)) {
72
+ if (this.childrenReady) {
73
+ setTimeout(() => {
74
+ this.invalidate();
75
+ }, 5000);
76
+ return;
77
+ }
78
+ if (this.attempt > 100) {
79
+ console.error(`AtomDockPanel (${width}, ${height}) must both have non zero width and height`);
80
+ return;
81
+ }
82
+ setTimeout(() => {
83
+ this.invalidate();
84
+ }, 100);
85
+ return;
86
+ }
87
+ if (!this.children) {
88
+ return;
89
+ }
90
+ this.attempt = 0;
91
+ this.availableRect = {
92
+ width,
93
+ height,
94
+ x: 0,
95
+ y: 0
96
+ };
97
+ this.columnSizes = (this.columns || "*").split(",").map(s => this.toSize(s.trim(), this.availableRect.width));
98
+ this.rowSizes = (this.rows || "*").split(",").map(s => this.toSize(s.trim(), this.availableRect.height));
99
+ this.assignOffsets(this.columnSizes, this.availableRect.width);
100
+ this.assignOffsets(this.rowSizes, this.availableRect.height);
101
+ for (const iterator of this.children) {
102
+ const host = document.createElement("section");
103
+ host.appendChild(iterator);
104
+ this.element.appendChild(host);
105
+ }
106
+ super.onUpdateUI();
107
+ this.updateSize();
108
+ this.childrenReady = true;
109
+ }
110
+ resize(item, index, delta) {
111
+ const a = item === "column" ? this.columnSizes : this.rowSizes;
112
+ const prev = a[index - 1];
113
+ const next = a[index + 1];
114
+ if (!prev || !next) {
115
+ throw new Error("Grid Splitter cannot be start or end element in GridView");
116
+ }
117
+ const current = a[index];
118
+ prev.size += delta;
119
+ current.offset += delta;
120
+ next.offset += delta;
121
+ next.size -= delta;
122
+ this.updateSize();
123
+ }
124
+ onPropertyChanged(name) {
125
+ switch (name) {
126
+ case "rows":
127
+ case "columns":
128
+ if (this.childrenReady) {
129
+ this.invalidate();
130
+ }
131
+ break;
132
+ }
133
+ }
134
+ onUpdateSize() {
135
+ if (!this.children) {
136
+ return;
137
+ }
138
+ for (const iterator of this.children) {
139
+ this.updateStyle(iterator);
140
+ }
141
+ }
142
+ preCreate() {
143
+ this.columns = null;
144
+ this.rows = null;
145
+ const style = this.element.style;
146
+ style.position = "absolute";
147
+ style.left = style.right = style.top = style.bottom = "0";
148
+ style.overflow = "hidden";
149
+ this.bindEvent(window, "resize", () => {
150
+ this.updateSize();
151
+ });
152
+ this.bindEvent(document.body, "resize", () => {
153
+ this.updateSize();
154
+ });
155
+ }
156
+ updateStyle(e) {
157
+ const {
158
+ colSpan,
159
+ column,
160
+ row,
161
+ rowSpan
162
+ } = AtomGridView.getCellInfo(e);
163
+ const host = e.parentElement;
164
+ if (!host) {
165
+ return;
166
+ }
167
+ host.style.position = "absolute";
168
+ host.style.overflow = "hidden";
169
+ host.style.padding = "0";
170
+ host.style.margin = "0";
171
+ if (this.rowSizes.length <= row || this.columnSizes.length <= column) {
172
+ return;
173
+ }
174
+ const rowStart = this.rowSizes[row].offset;
175
+ let rowSize = 0;
176
+ for (let i = row; i < row + rowSpan; i++) {
177
+ rowSize += this.rowSizes[i].size;
178
+ }
179
+ host.style.top = `${rowStart}px`;
180
+ host.style.height = `${rowSize}px`;
181
+ const colStart = this.columnSizes[column].offset;
182
+ let colSize = 0;
183
+ for (let i = column; i < column + colSpan; i++) {
184
+ colSize += this.columnSizes[i].size;
185
+ }
186
+ host.style.left = `${colStart}px`;
187
+ host.style.width = `${colSize}px`;
188
+ AtomBridge.instance.visitDescendents(host, (el, ac) => {
189
+ if (ac) {
190
+ ac.invalidate();
191
+ return false;
192
+ }
193
+ return true;
194
+ });
195
+ }
196
+ toSize(s, total) {
197
+ if (!s || s === "*") {
198
+ return {
199
+ offset: -1,
200
+ size: NaN
201
+ };
202
+ }
203
+ let n = 0;
204
+ if (s.endsWith("%")) {
205
+ s = s.substr(0, s.length - 1);
206
+ n = parseFloat(s);
207
+ return {
208
+ offset: -1,
209
+ size: total * n / 100
210
+ };
211
+ }
212
+ return {
213
+ offset: -1,
214
+ size: parseFloat(s)
215
+ };
216
+ }
217
+ assignOffsets(a, end) {
218
+ let start = 0;
219
+ let fill = null;
220
+ for (const item of a) {
221
+ item.offset = start;
222
+ if (isNaN(item.size)) {
223
+ fill = item;
224
+ break;
225
+ }
226
+ start += item.size;
227
+ }
228
+ if (!fill) {
229
+ return;
230
+ }
231
+ const lastStart = start;
232
+ start = end;
233
+ const r = a.map(x => x).reverse();
234
+ for (const item of r) {
235
+ if (isNaN(item.size)) {
236
+ if (fill !== item) {
237
+ throw new Error("Multiple * cannot be defined");
238
+ }
239
+ break;
240
+ }
241
+ start -= item.size;
242
+ item.offset = start;
243
+ }
244
+ fill.offset = lastStart;
245
+ fill.size = start - lastStart;
246
+ }
247
+ });
248
+ }
249
+ };
250
+ });
2
251
  //# sourceMappingURL=AtomGridView.js.map