@web-atoms/core 2.1.353 → 2.1.369

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/App.sys.js +220 -0
  2. package/dist/App.sys.js.map +1 -0
  3. package/dist/Atom.js.map +1 -1
  4. package/dist/Atom.sys.js +177 -0
  5. package/dist/Atom.sys.js.map +1 -0
  6. package/dist/MockApp.sys.js +45 -0
  7. package/dist/MockApp.sys.js.map +1 -0
  8. package/dist/Pack.sys.js +13 -0
  9. package/dist/Pack.sys.js.map +1 -0
  10. package/dist/core/AtomBinder.sys.js +274 -0
  11. package/dist/core/AtomBinder.sys.js.map +1 -0
  12. package/dist/core/AtomBridge.sys.js +390 -0
  13. package/dist/core/AtomBridge.sys.js.map +1 -0
  14. package/dist/core/AtomComponent.sys.js +703 -0
  15. package/dist/core/AtomComponent.sys.js.map +1 -0
  16. package/dist/core/AtomDispatcher.sys.js +77 -0
  17. package/dist/core/AtomDispatcher.sys.js.map +1 -0
  18. package/dist/core/AtomDisposableList.sys.js +46 -0
  19. package/dist/core/AtomDisposableList.sys.js.map +1 -0
  20. package/dist/core/AtomEnumerator.sys.js +34 -0
  21. package/dist/core/AtomEnumerator.sys.js.map +1 -0
  22. package/dist/core/AtomList.sys.js +238 -0
  23. package/dist/core/AtomList.sys.js.map +1 -0
  24. package/dist/core/AtomLoader.sys.js +178 -0
  25. package/dist/core/AtomLoader.sys.js.map +1 -0
  26. package/dist/core/AtomMap.sys.js +83 -0
  27. package/dist/core/AtomMap.sys.js.map +1 -0
  28. package/dist/core/AtomOnce.sys.js +42 -0
  29. package/dist/core/AtomOnce.sys.js.map +1 -0
  30. package/dist/core/AtomSelectableList.sys.js +336 -0
  31. package/dist/core/AtomSelectableList.sys.js.map +1 -0
  32. package/dist/core/AtomUri.sys.js +110 -0
  33. package/dist/core/AtomUri.sys.js.map +1 -0
  34. package/dist/core/AtomWatcher.sys.js +167 -0
  35. package/dist/core/AtomWatcher.sys.js.map +1 -0
  36. package/dist/core/Bind.sys.js +394 -0
  37. package/dist/core/Bind.sys.js.map +1 -0
  38. package/dist/core/BindableProperty.sys.js +51 -0
  39. package/dist/core/BindableProperty.sys.js.map +1 -0
  40. package/dist/core/CancelTokenFactory.sys.js +57 -0
  41. package/dist/core/CancelTokenFactory.sys.js.map +1 -0
  42. package/dist/core/Color.sys.js +9 -0
  43. package/dist/core/Color.sys.js.map +1 -0
  44. package/dist/core/Colors.sys.js +305 -0
  45. package/dist/core/Colors.sys.js.map +1 -0
  46. package/dist/core/Defer.sys.js +45 -0
  47. package/dist/core/Defer.sys.js.map +1 -0
  48. package/dist/core/ExpressionParser.sys.js +201 -0
  49. package/dist/core/ExpressionParser.sys.js.map +1 -0
  50. package/dist/core/FormattedError.sys.js +23 -0
  51. package/dist/core/FormattedError.sys.js.map +1 -0
  52. package/dist/core/FormattedString.sys.js +20 -0
  53. package/dist/core/FormattedString.sys.js.map +1 -0
  54. package/dist/core/IFetchEvent.sys.js +9 -0
  55. package/dist/core/IFetchEvent.sys.js.map +1 -0
  56. package/dist/core/IScreen.sys.js +9 -0
  57. package/dist/core/IScreen.sys.js.map +1 -0
  58. package/dist/core/IValueConverter.sys.js +9 -0
  59. package/dist/core/IValueConverter.sys.js.map +1 -0
  60. package/dist/core/InheritedProperty.sys.js +61 -0
  61. package/dist/core/InheritedProperty.sys.js.map +1 -0
  62. package/dist/core/InjectProperty.sys.js +25 -0
  63. package/dist/core/InjectProperty.sys.js.map +1 -0
  64. package/dist/core/KeyValuePairs.sys.js +9 -0
  65. package/dist/core/KeyValuePairs.sys.js.map +1 -0
  66. package/dist/core/Markdown.sys.js +37 -0
  67. package/dist/core/Markdown.sys.js.map +1 -0
  68. package/dist/core/MarkdownError.sys.js +26 -0
  69. package/dist/core/MarkdownError.sys.js.map +1 -0
  70. package/dist/core/PropertyBinding.sys.js +11 -0
  71. package/dist/core/PropertyBinding.sys.js.map +1 -0
  72. package/dist/core/PropertyMap.sys.js +53 -0
  73. package/dist/core/PropertyMap.sys.js.map +1 -0
  74. package/dist/core/SingleInvoker.sys.js +71 -0
  75. package/dist/core/SingleInvoker.sys.js.map +1 -0
  76. package/dist/core/StringHelper.sys.js +76 -0
  77. package/dist/core/StringHelper.sys.js.map +1 -0
  78. package/dist/core/TransientDisposable.sys.js +34 -0
  79. package/dist/core/TransientDisposable.sys.js.map +1 -0
  80. package/dist/core/WatchProperty.sys.js +37 -0
  81. package/dist/core/WatchProperty.sys.js.map +1 -0
  82. package/dist/core/WebImage.sys.js +24 -0
  83. package/dist/core/WebImage.sys.js.map +1 -0
  84. package/dist/core/XNode.sys.js +205 -0
  85. package/dist/core/XNode.sys.js.map +1 -0
  86. package/dist/core/sleep.sys.js +30 -0
  87. package/dist/core/sleep.sys.js.map +1 -0
  88. package/dist/core/types.sys.js +130 -0
  89. package/dist/core/types.sys.js.map +1 -0
  90. package/dist/di/DISingleton.sys.js +26 -0
  91. package/dist/di/DISingleton.sys.js.map +1 -0
  92. package/dist/di/DITransient.sys.js +26 -0
  93. package/dist/di/DITransient.sys.js.map +1 -0
  94. package/dist/di/IMockOrInject.sys.js +9 -0
  95. package/dist/di/IMockOrInject.sys.js.map +1 -0
  96. package/dist/di/IServiceProvider.sys.js +9 -0
  97. package/dist/di/IServiceProvider.sys.js.map +1 -0
  98. package/dist/di/Inject.sys.js +111 -0
  99. package/dist/di/Inject.sys.js.map +1 -0
  100. package/dist/di/Register.sys.js +64 -0
  101. package/dist/di/Register.sys.js.map +1 -0
  102. package/dist/di/RegisterScoped.sys.js +23 -0
  103. package/dist/di/RegisterScoped.sys.js.map +1 -0
  104. package/dist/di/RegisterSingleton.sys.js +23 -0
  105. package/dist/di/RegisterSingleton.sys.js.map +1 -0
  106. package/dist/di/ServiceCollection.sys.js +76 -0
  107. package/dist/di/ServiceCollection.sys.js.map +1 -0
  108. package/dist/di/ServiceProvider.sys.js +173 -0
  109. package/dist/di/ServiceProvider.sys.js.map +1 -0
  110. package/dist/di/TypeKey.sys.js +27 -0
  111. package/dist/di/TypeKey.sys.js.map +1 -0
  112. package/dist/services/BusyIndicatorService.sys.js +33 -0
  113. package/dist/services/BusyIndicatorService.sys.js.map +1 -0
  114. package/dist/services/CacheService.sys.js +145 -0
  115. package/dist/services/CacheService.sys.js.map +1 -0
  116. package/dist/services/JsonService.sys.js +181 -0
  117. package/dist/services/JsonService.sys.js.map +1 -0
  118. package/dist/services/MockNavigationService.sys.js +236 -0
  119. package/dist/services/MockNavigationService.sys.js.map +1 -0
  120. package/dist/services/NavigationService.sys.js +175 -0
  121. package/dist/services/NavigationService.sys.js.map +1 -0
  122. package/dist/services/ReferenceService.sys.js +68 -0
  123. package/dist/services/ReferenceService.sys.js.map +1 -0
  124. package/dist/services/http/AjaxOptions.sys.js +15 -0
  125. package/dist/services/http/AjaxOptions.sys.js.map +1 -0
  126. package/dist/services/http/JsonError.sys.js +27 -0
  127. package/dist/services/http/JsonError.sys.js.map +1 -0
  128. package/dist/services/http/RestService.sys.js +524 -0
  129. package/dist/services/http/RestService.sys.js.map +1 -0
  130. package/dist/style/StyleRule.sys.js +3550 -0
  131. package/dist/style/StyleRule.sys.js.map +1 -0
  132. package/dist/test.sys.js +9 -0
  133. package/dist/test.sys.js.map +1 -0
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/dist/unit/AtomTest.sys.js +67 -0
  136. package/dist/unit/AtomTest.sys.js.map +1 -0
  137. package/dist/unit/AtomWebTest.sys.js +83 -0
  138. package/dist/unit/AtomWebTest.sys.js.map +1 -0
  139. package/dist/view-model/Action.sys.js +147 -0
  140. package/dist/view-model/Action.sys.js.map +1 -0
  141. package/dist/view-model/AtomViewModel.sys.js +435 -0
  142. package/dist/view-model/AtomViewModel.sys.js.map +1 -0
  143. package/dist/view-model/AtomWindowViewModel.sys.js +71 -0
  144. package/dist/view-model/AtomWindowViewModel.sys.js.map +1 -0
  145. package/dist/view-model/BindableUrlParameter.sys.js +28 -0
  146. package/dist/view-model/BindableUrlParameter.sys.js.map +1 -0
  147. package/dist/view-model/Delay.sys.js +41 -0
  148. package/dist/view-model/Delay.sys.js.map +1 -0
  149. package/dist/view-model/Disposable.sys.js +52 -0
  150. package/dist/view-model/Disposable.sys.js.map +1 -0
  151. package/dist/view-model/Load.sys.js +142 -0
  152. package/dist/view-model/Load.sys.js.map +1 -0
  153. package/dist/view-model/Once.sys.js +59 -0
  154. package/dist/view-model/Once.sys.js.map +1 -0
  155. package/dist/view-model/baseTypes.sys.js +17 -0
  156. package/dist/view-model/baseTypes.sys.js.map +1 -0
  157. package/dist/view-model/bindPromise.sys.js +45 -0
  158. package/dist/view-model/bindPromise.sys.js.map +1 -0
  159. package/dist/view-model/bindProperty.sys.js +20 -0
  160. package/dist/view-model/bindProperty.sys.js.map +1 -0
  161. package/dist/view-model/bindUrlParameter.sys.js +70 -0
  162. package/dist/view-model/bindUrlParameter.sys.js.map +1 -0
  163. package/dist/web/WebApp.sys.js +269 -0
  164. package/dist/web/WebApp.sys.js.map +1 -0
  165. package/dist/web/controls/AtomAlertWindow.sys.js +80 -0
  166. package/dist/web/controls/AtomAlertWindow.sys.js.map +1 -0
  167. package/dist/web/controls/AtomComboBox.sys.js +115 -0
  168. package/dist/web/controls/AtomComboBox.sys.js.map +1 -0
  169. package/dist/web/controls/AtomContentControl.sys.js +72 -0
  170. package/dist/web/controls/AtomContentControl.sys.js.map +1 -0
  171. package/dist/web/controls/AtomControl.d.ts +3 -0
  172. package/dist/web/controls/AtomControl.d.ts.map +1 -1
  173. package/dist/web/controls/AtomControl.js +47 -1
  174. package/dist/web/controls/AtomControl.js.map +1 -1
  175. package/dist/web/controls/AtomControl.sys.js +667 -0
  176. package/dist/web/controls/AtomControl.sys.js.map +1 -0
  177. package/dist/web/controls/AtomFrame.sys.js +305 -0
  178. package/dist/web/controls/AtomFrame.sys.js.map +1 -0
  179. package/dist/web/controls/AtomGridSplitter.sys.js +83 -0
  180. package/dist/web/controls/AtomGridSplitter.sys.js.map +1 -0
  181. package/dist/web/controls/AtomGridView.sys.js +301 -0
  182. package/dist/web/controls/AtomGridView.sys.js.map +1 -0
  183. package/dist/web/controls/AtomItemsControl.sys.js +869 -0
  184. package/dist/web/controls/AtomItemsControl.sys.js.map +1 -0
  185. package/dist/web/controls/AtomListBox.sys.js +72 -0
  186. package/dist/web/controls/AtomListBox.sys.js.map +1 -0
  187. package/dist/web/controls/AtomNotification.sys.js +79 -0
  188. package/dist/web/controls/AtomNotification.sys.js.map +1 -0
  189. package/dist/web/controls/AtomPage.sys.js +24 -0
  190. package/dist/web/controls/AtomPage.sys.js.map +1 -0
  191. package/dist/web/controls/AtomPageLink.sys.js +158 -0
  192. package/dist/web/controls/AtomPageLink.sys.js.map +1 -0
  193. package/dist/web/controls/AtomTabbedPage.sys.js +354 -0
  194. package/dist/web/controls/AtomTabbedPage.sys.js.map +1 -0
  195. package/dist/web/controls/AtomTemplate.sys.js +17 -0
  196. package/dist/web/controls/AtomTemplate.sys.js.map +1 -0
  197. package/dist/web/controls/AtomTemplateControl.sys.js +59 -0
  198. package/dist/web/controls/AtomTemplateControl.sys.js.map +1 -0
  199. package/dist/web/controls/AtomToggleButtonBar.sys.js +53 -0
  200. package/dist/web/controls/AtomToggleButtonBar.sys.js.map +1 -0
  201. package/dist/web/controls/AtomViewPager.sys.js +107 -0
  202. package/dist/web/controls/AtomViewPager.sys.js.map +1 -0
  203. package/dist/web/controls/AtomViewStack.sys.js +41 -0
  204. package/dist/web/controls/AtomViewStack.sys.js.map +1 -0
  205. package/dist/web/controls/AtomWindow.sys.js +285 -0
  206. package/dist/web/controls/AtomWindow.sys.js.map +1 -0
  207. package/dist/web/core/AtomUI.sys.js +189 -0
  208. package/dist/web/core/AtomUI.sys.js.map +1 -0
  209. package/dist/web/core/Encoder.sys.js +178 -0
  210. package/dist/web/core/Encoder.sys.js.map +1 -0
  211. package/dist/web/core/HtmlNode.sys.js +206 -0
  212. package/dist/web/core/HtmlNode.sys.js.map +1 -0
  213. package/dist/web/images/Busy.sys.js +14 -0
  214. package/dist/web/images/Busy.sys.js.map +1 -0
  215. package/dist/web/images/BusyDataUrl.sys.js +16 -0
  216. package/dist/web/images/BusyDataUrl.sys.js.map +1 -0
  217. package/dist/web/images/Button.sys.js +14 -0
  218. package/dist/web/images/Button.sys.js.map +1 -0
  219. package/dist/web/images/ButtonDataUrl.sys.js +16 -0
  220. package/dist/web/images/ButtonDataUrl.sys.js.map +1 -0
  221. package/dist/web/images/CloseButton.sys.js +14 -0
  222. package/dist/web/images/CloseButton.sys.js.map +1 -0
  223. package/dist/web/images/CloseButtonDataUrl.sys.js +16 -0
  224. package/dist/web/images/CloseButtonDataUrl.sys.js.map +1 -0
  225. package/dist/web/images/CloseButtonHover.sys.js +14 -0
  226. package/dist/web/images/CloseButtonHover.sys.js.map +1 -0
  227. package/dist/web/images/CloseButtonHoverDataUrl.sys.js +16 -0
  228. package/dist/web/images/CloseButtonHoverDataUrl.sys.js.map +1 -0
  229. package/dist/web/samples/MovieService.sys.js +73 -0
  230. package/dist/web/samples/MovieService.sys.js.map +1 -0
  231. package/dist/web/samples/demo/app.sys.js +30 -0
  232. package/dist/web/samples/demo/app.sys.js.map +1 -0
  233. package/dist/web/samples/demo/views/MovieList.sys.js +77 -0
  234. package/dist/web/samples/demo/views/MovieList.sys.js.map +1 -0
  235. package/dist/web/samples/demo/views/MovieListViewModel.sys.js +128 -0
  236. package/dist/web/samples/demo/views/MovieListViewModel.sys.js.map +1 -0
  237. package/dist/web/samples/tabs/app.sys.js +68 -0
  238. package/dist/web/samples/tabs/app.sys.js.map +1 -0
  239. package/dist/web/samples/tabs/views/List.sys.js +14 -0
  240. package/dist/web/samples/tabs/views/List.sys.js.map +1 -0
  241. package/dist/web/samples/tabs/views/ListDataUrl.sys.js +16 -0
  242. package/dist/web/samples/tabs/views/ListDataUrl.sys.js.map +1 -0
  243. package/dist/web/samples/tabs/views/Page1.sys.js +117 -0
  244. package/dist/web/samples/tabs/views/Page1.sys.js.map +1 -0
  245. package/dist/web/samples/tabs/views/TabHost.sys.js +103 -0
  246. package/dist/web/samples/tabs/views/TabHost.sys.js.map +1 -0
  247. package/dist/web/samples/window/WindowSample.sys.js +33 -0
  248. package/dist/web/samples/window/WindowSample.sys.js.map +1 -0
  249. package/dist/web/services/MarkdownService.sys.js +45 -0
  250. package/dist/web/services/MarkdownService.sys.js.map +1 -0
  251. package/dist/web/services/NotificationPopup.sys.js +44 -0
  252. package/dist/web/services/NotificationPopup.sys.js.map +1 -0
  253. package/dist/web/services/PopupService.sys.js +876 -0
  254. package/dist/web/services/PopupService.sys.js.map +1 -0
  255. package/dist/web/services/WebBusyIndicatorService.sys.js +95 -0
  256. package/dist/web/services/WebBusyIndicatorService.sys.js.map +1 -0
  257. package/dist/web/services/WindowService.sys.js +445 -0
  258. package/dist/web/services/WindowService.sys.js.map +1 -0
  259. package/dist/web/styles/AtomAlertWindowStyle.sys.js +59 -0
  260. package/dist/web/styles/AtomAlertWindowStyle.sys.js.map +1 -0
  261. package/dist/web/styles/AtomFrameStyle.sys.js +33 -0
  262. package/dist/web/styles/AtomFrameStyle.sys.js.map +1 -0
  263. package/dist/web/styles/AtomListBoxStyle.sys.js +49 -0
  264. package/dist/web/styles/AtomListBoxStyle.sys.js.map +1 -0
  265. package/dist/web/styles/AtomNotificationStyle.sys.js +39 -0
  266. package/dist/web/styles/AtomNotificationStyle.sys.js.map +1 -0
  267. package/dist/web/styles/AtomPageLinkStyle.sys.js +30 -0
  268. package/dist/web/styles/AtomPageLinkStyle.sys.js.map +1 -0
  269. package/dist/web/styles/AtomPopupStyle.sys.js +27 -0
  270. package/dist/web/styles/AtomPopupStyle.sys.js.map +1 -0
  271. package/dist/web/styles/AtomStyle.js.map +1 -1
  272. package/dist/web/styles/AtomStyle.sys.js +105 -0
  273. package/dist/web/styles/AtomStyle.sys.js.map +1 -0
  274. package/dist/web/styles/AtomStyleSheet.sys.js +84 -0
  275. package/dist/web/styles/AtomStyleSheet.sys.js.map +1 -0
  276. package/dist/web/styles/AtomTabbedPageStyle.sys.js +135 -0
  277. package/dist/web/styles/AtomTabbedPageStyle.sys.js.map +1 -0
  278. package/dist/web/styles/AtomTheme.sys.js +70 -0
  279. package/dist/web/styles/AtomTheme.sys.js.map +1 -0
  280. package/dist/web/styles/AtomToggleButtonBarStyle.sys.js +83 -0
  281. package/dist/web/styles/AtomToggleButtonBarStyle.sys.js.map +1 -0
  282. package/dist/web/styles/AtomWindowStyle.sys.js +144 -0
  283. package/dist/web/styles/AtomWindowStyle.sys.js.map +1 -0
  284. package/dist/web/styles/CSS.sys.js +96 -0
  285. package/dist/web/styles/CSS.sys.js.map +1 -0
  286. package/dist/web/styles/CommonStyles.sys.js +79 -0
  287. package/dist/web/styles/CommonStyles.sys.js.map +1 -0
  288. package/dist/web/styles/IStyleDeclaration.sys.js +9 -0
  289. package/dist/web/styles/IStyleDeclaration.sys.js.map +1 -0
  290. package/dist/web/styles/StyleBuilder.sys.js +112 -0
  291. package/dist/web/styles/StyleBuilder.sys.js.map +1 -0
  292. package/dist/xf/XFApp.sys.js +75 -0
  293. package/dist/xf/XFApp.sys.js.map +1 -0
  294. package/dist/xf/controls/AtomXFControl.sys.js +334 -0
  295. package/dist/xf/controls/AtomXFControl.sys.js.map +1 -0
  296. package/dist/xf/services/XFBusyIndicatorService.sys.js +40 -0
  297. package/dist/xf/services/XFBusyIndicatorService.sys.js.map +1 -0
  298. package/dist/xf/services/XFNavigationService.sys.js +204 -0
  299. package/dist/xf/services/XFNavigationService.sys.js.map +1 -0
  300. package/package.json +3 -2
  301. package/src/Atom.ts +1 -1
  302. package/src/web/controls/AtomControl.ts +39 -1
  303. package/src/web/styles/AtomStyle.ts +1 -1
@@ -0,0 +1,167 @@
1
+ System.register(["./AtomBinder", "./ExpressionParser"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var AtomBinder, parsePath, ObjectProperty, AtomWatcher;
5
+
6
+ _export({
7
+ ObjectProperty: void 0,
8
+ AtomWatcher: void 0
9
+ });
10
+
11
+ return {
12
+ setters: [function (_AtomBinder) {
13
+ AtomBinder = _AtomBinder.AtomBinder;
14
+ }, function (_ExpressionParser) {
15
+ parsePath = _ExpressionParser.parsePath;
16
+ }],
17
+ execute: function () {
18
+ _export("ObjectProperty", ObjectProperty = class ObjectProperty {
19
+ constructor(name) {
20
+ this.name = name;
21
+ }
22
+
23
+ toString() {
24
+ return this.name;
25
+ }
26
+
27
+ });
28
+
29
+ _export("AtomWatcher", AtomWatcher = class AtomWatcher {
30
+ constructor(target, path, onChanged, source) {
31
+ this.source = source;
32
+ this.isExecuting = false;
33
+ this.target = target;
34
+ this.forValidation = true;
35
+
36
+ if (path instanceof Function) {
37
+ const f = path;
38
+ path = parsePath(path);
39
+ this.func = onChanged || f;
40
+ this.funcText = f.toString();
41
+ } else {
42
+ this.func = onChanged;
43
+ }
44
+
45
+ this.runEvaluate = () => {
46
+ this.evaluate();
47
+ };
48
+
49
+ this.runEvaluate.watcher = this;
50
+ this.path = path.map(x => x.map(y => new ObjectProperty(y)));
51
+
52
+ if (!this.path.length) {
53
+ debugger;
54
+ console.warn("There is nothing to watch, do not use one way binding without any binding expression");
55
+ }
56
+ }
57
+
58
+ toString() {
59
+ return this.func.toString();
60
+ }
61
+
62
+ dispose() {
63
+ if (!this.path) {
64
+ return;
65
+ }
66
+
67
+ for (const p of this.path) {
68
+ for (const op of p) {
69
+ if (op.watcher) {
70
+ op.watcher.dispose();
71
+ op.watcher = null;
72
+ op.target = null;
73
+ }
74
+ }
75
+ }
76
+
77
+ this.func = null;
78
+ this.path = null;
79
+ this.source = null;
80
+ }
81
+
82
+ init(evaluate) {
83
+ if (evaluate) {
84
+ this.evaluate(true);
85
+ } else {
86
+ for (const iterator of this.path) {
87
+ this.evaluatePath(this.target, iterator);
88
+ }
89
+ }
90
+ }
91
+
92
+ evaluatePath(target, path) {
93
+ let newTarget = null;
94
+
95
+ for (const p of path) {
96
+ if (this.source && p.name === "this") {
97
+ target = this.source;
98
+ continue;
99
+ }
100
+
101
+ newTarget = target[p.name];
102
+
103
+ if (!p.target) {
104
+ if (p.watcher) {
105
+ p.watcher.dispose();
106
+ }
107
+
108
+ p.watcher = AtomBinder.watch(target, p.name, this.runEvaluate);
109
+ } else if (p.target !== target) {
110
+ if (p.watcher) {
111
+ p.watcher.dispose();
112
+ }
113
+
114
+ p.watcher = AtomBinder.watch(target, p.name, this.runEvaluate);
115
+ }
116
+
117
+ p.target = target;
118
+ target = newTarget;
119
+
120
+ if (newTarget === undefined || newTarget === null) {
121
+ break;
122
+ }
123
+ }
124
+
125
+ return newTarget;
126
+ }
127
+
128
+ evaluate(force) {
129
+ if (!this.path) {
130
+ console.warn(`Watcher is not disposed properly, please watch for any memory leak`);
131
+ return;
132
+ }
133
+
134
+ if (this.isExecuting) {
135
+ return;
136
+ }
137
+
138
+ const disposeWatchers = [];
139
+ this.isExecuting = true;
140
+
141
+ try {
142
+ const values = [];
143
+ const logs = [];
144
+
145
+ for (const p of this.path) {
146
+ values.push(this.evaluatePath(this.target, p));
147
+ }
148
+
149
+ try {
150
+ this.func.apply(this.target, values);
151
+ } catch (e) {
152
+ console.warn(e);
153
+ }
154
+ } finally {
155
+ this.isExecuting = false;
156
+
157
+ for (const d of disposeWatchers) {
158
+ d.dispose();
159
+ }
160
+ }
161
+ }
162
+
163
+ });
164
+ }
165
+ };
166
+ });
167
+ //# sourceMappingURL=AtomWatcher.sys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"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","names":["ObjectProperty","AtomWatcher","AtomBinder","parsePath","constructor","name","toString","target","path","onChanged","source","forValidation","Function","f","func","funcText","runEvaluate","evaluate","watcher","map","x","y","length","console","warn","dispose","p","op","init","iterator","evaluatePath","newTarget","watch","undefined","force","isExecuting","disposeWatchers","values","logs","push","apply","e","d"],"sourceRoot":"","sources":["../../src/core/AtomWatcher.ts"],"sourcesContent":[null]}
@@ -0,0 +1,394 @@
1
+ System.register(["./ExpressionParser", "./types"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var parsePath, parsePathLists, CancelToken, ignoreValue, Bind, __awaiter, isEvent, bindSymbol;
5
+
6
+ function twoWaysConvert(name, b, control, e, creator) {
7
+ control.bind(e, name, b.thisPathList || b.pathList, b.eventList || true, null, b.thisPathList ? creator : undefined);
8
+ }
9
+
10
+ _export("default", void 0);
11
+
12
+ return {
13
+ setters: [function (_ExpressionParser) {
14
+ parsePath = _ExpressionParser.parsePath;
15
+ parsePathLists = _ExpressionParser.parsePathLists;
16
+ }, function (_types) {
17
+ CancelToken = _types.CancelToken;
18
+ ignoreValue = _types.ignoreValue;
19
+ }],
20
+ execute: function () {
21
+ __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) {
23
+ return value instanceof P ? value : new P(function (resolve) {
24
+ resolve(value);
25
+ });
26
+ }
27
+
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) {
30
+ try {
31
+ step(generator.next(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ }
36
+
37
+ function rejected(value) {
38
+ try {
39
+ step(generator["throw"](value));
40
+ } catch (e) {
41
+ reject(e);
42
+ }
43
+ }
44
+
45
+ function step(result) {
46
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
47
+ }
48
+
49
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
50
+ });
51
+ };
52
+
53
+ isEvent = /^event/i;
54
+
55
+ _export("bindSymbol", bindSymbol = Symbol("Bind"));
56
+
57
+ _export("default", Bind = class Bind {
58
+ constructor(setupFunction, sourcePath, name, eventList) {
59
+ this.setupFunction = setupFunction;
60
+ this.name = name;
61
+ this.eventList = eventList;
62
+ this.sourcePath = sourcePath;
63
+ this[bindSymbol] = true;
64
+
65
+ if (!this.sourcePath) {
66
+ return;
67
+ }
68
+
69
+ if (Array.isArray(this.sourcePath)) {
70
+ this.pathList = this.sourcePath;
71
+ } else {
72
+ const lists = parsePathLists(this.sourcePath);
73
+
74
+ if (lists.combined.length) {
75
+ this.combined = lists.combined;
76
+ }
77
+
78
+ if (lists.pathList.length) {
79
+ this.pathList = lists.pathList;
80
+ }
81
+
82
+ if (lists.thisPath.length) {
83
+ this.thisPathList = lists.thisPath;
84
+ }
85
+ }
86
+ }
87
+
88
+ static forControl() {
89
+ return Bind;
90
+ }
91
+
92
+ static forData() {
93
+ return Bind;
94
+ }
95
+
96
+ static forViewModel() {
97
+ return Bind;
98
+ }
99
+
100
+ static forLocalViewModel() {
101
+ return Bind;
102
+ }
103
+
104
+ static presenter(name) {
105
+ return {
106
+ [bindSymbol](cn, control, e, creator) {
107
+ const n = name || cn;
108
+ let c = control.element;
109
+
110
+ while (c) {
111
+ if (c.atomControl && c.atomControl[n] !== undefined) {
112
+ break;
113
+ }
114
+
115
+ c = c._logicalParent || c.parentElement;
116
+ }
117
+
118
+ (c && c.atomControl || control)[n] = e;
119
+ }
120
+
121
+ };
122
+ }
123
+
124
+ static event(sourcePath) {
125
+ return {
126
+ [bindSymbol](name, control, e) {
127
+ control.runAfterInit(() => {
128
+ if (isEvent.test(name)) {
129
+ name = name.substring(5);
130
+
131
+ if (name.startsWith("-")) {
132
+ name = name.substring(1).replace(/-([a-z])/g, g => g[1].toUpperCase());
133
+ } else {
134
+ name = name[0].toLowerCase() + name.substring(1);
135
+ }
136
+ }
137
+
138
+ control.bindEvent(e, name, e1 => {
139
+ return sourcePath(control, e1);
140
+ });
141
+ });
142
+ }
143
+
144
+ };
145
+ }
146
+
147
+ static oneTime(sourcePath, now) {
148
+ return {
149
+ [bindSymbol](name, control, e) {
150
+ control.runAfterInit(() => {
151
+ control.setLocalValue(e, name, sourcePath(control, e));
152
+ });
153
+
154
+ if (typeof now !== "undefined") {
155
+ control.setLocalValue(e, name, now);
156
+ }
157
+ }
158
+
159
+ };
160
+ }
161
+
162
+ static oneTimeAsync(sourcePath, now) {
163
+ return {
164
+ [bindSymbol](name, control, e) {
165
+ control.runAfterInit(() => {
166
+ control.app.runAsync(() => __awaiter(this, void 0, void 0, function* () {
167
+ const value = yield sourcePath(control, e, new CancelToken());
168
+ control.setLocalValue(e, name, value);
169
+ }));
170
+ });
171
+
172
+ if (typeof now !== "undefined") {
173
+ control.setLocalValue(e, name, now);
174
+ }
175
+ }
176
+
177
+ };
178
+ }
179
+
180
+ static source(source, path, now) {
181
+ const lists = parsePath(path, false).map(x => ["this", ...x]);
182
+ return {
183
+ [bindSymbol](name, control, e, creator) {
184
+ const self = {
185
+ control,
186
+ source
187
+ };
188
+ control.bind(e, name, lists, false, () => {
189
+ return path.call(self, self);
190
+ }, self);
191
+
192
+ if (typeof now !== "undefined") {
193
+ control.setLocalValue(e, name, now);
194
+ }
195
+ }
196
+
197
+ };
198
+ }
199
+
200
+ static oneWayAsync(sourcePath, {
201
+ watchDelayInMS = 250,
202
+ default: defaultValue
203
+ } = {}) {
204
+ let pathList;
205
+ let combined;
206
+ let thisPathList;
207
+
208
+ if (Array.isArray(sourcePath)) {
209
+ pathList = sourcePath;
210
+ } else {
211
+ const lists = parsePathLists(sourcePath);
212
+
213
+ if (lists.combined.length) {
214
+ combined = lists.combined;
215
+ }
216
+
217
+ if (lists.pathList.length) {
218
+ pathList = lists.pathList;
219
+ }
220
+
221
+ if (lists.thisPath.length) {
222
+ thisPathList = lists.thisPath;
223
+ }
224
+ }
225
+
226
+ if (!(combined || pathList || thisPathList)) {
227
+ throw new Error(`Failed to setup binding for ${sourcePath}, parsing failed`);
228
+ }
229
+
230
+ return {
231
+ [bindSymbol](name, control, e, creator) {
232
+ let bindingSource;
233
+ let finalPathList = pathList;
234
+
235
+ if (combined) {
236
+ bindingSource = {
237
+ t: creator,
238
+ x: control
239
+ };
240
+ finalPathList = combined;
241
+ } else if (thisPathList) {
242
+ finalPathList = thisPathList;
243
+ bindingSource = creator;
244
+ }
245
+
246
+ const asyncState = {
247
+ token: 0,
248
+ cancelToken: undefined
249
+ };
250
+ control.bind(e, name, finalPathList, false, () => {
251
+ var _a;
252
+
253
+ const app = control.app;
254
+ (_a = asyncState.cancelToken) === null || _a === void 0 ? void 0 : _a.cancel();
255
+ asyncState.cancelToken = undefined;
256
+ asyncState.token = app.setTimeoutAsync(() => __awaiter(this, void 0, void 0, function* () {
257
+ var _b, _c;
258
+
259
+ if ((_b = asyncState.cancelToken) === null || _b === void 0 ? void 0 : _b.cancelled) {
260
+ return;
261
+ }
262
+
263
+ asyncState.token = undefined;
264
+ (_c = asyncState.cancelToken) === null || _c === void 0 ? void 0 : _c.cancel();
265
+ const ct = asyncState.cancelToken = new CancelToken();
266
+ const value = yield sourcePath.call(creator, control, e, ct);
267
+
268
+ if (!ct.cancelled) {
269
+ control.setLocalValue(e, name, value);
270
+ }
271
+ }), watchDelayInMS, asyncState.token);
272
+ return ignoreValue;
273
+ }, bindingSource);
274
+
275
+ if (typeof defaultValue !== "undefined") {
276
+ control.setLocalValue(e, name, defaultValue);
277
+ }
278
+ }
279
+
280
+ };
281
+ }
282
+
283
+ static oneWay(sourcePath, now) {
284
+ let pathList;
285
+ let combined;
286
+ let thisPathList;
287
+
288
+ if (Array.isArray(sourcePath)) {
289
+ pathList = sourcePath;
290
+ } else {
291
+ const lists = parsePathLists(sourcePath);
292
+
293
+ if (lists.combined.length) {
294
+ combined = lists.combined;
295
+ }
296
+
297
+ if (lists.pathList.length) {
298
+ pathList = lists.pathList;
299
+ }
300
+
301
+ if (lists.thisPath.length) {
302
+ thisPathList = lists.thisPath;
303
+ }
304
+ }
305
+
306
+ if (!(combined || pathList || thisPathList)) {
307
+ throw new Error(`Failed to setup binding for ${sourcePath}, parsing failed`);
308
+ }
309
+
310
+ return {
311
+ [bindSymbol](name, control, e, creator) {
312
+ if (pathList) {
313
+ control.bind(e, name, pathList, false, () => {
314
+ return sourcePath.call(creator, control, e);
315
+ });
316
+
317
+ if (typeof now !== "undefined") {
318
+ control.setLocalValue(e, name, now);
319
+ }
320
+
321
+ return;
322
+ }
323
+
324
+ if (combined) {
325
+ const a = {
326
+ t: creator,
327
+ x: control
328
+ };
329
+ control.bind(e, name, combined, false, () => {
330
+ return sourcePath.call(creator, control, e);
331
+ }, a);
332
+
333
+ if (typeof now !== "undefined") {
334
+ control.setLocalValue(e, name, now);
335
+ }
336
+
337
+ return;
338
+ }
339
+
340
+ control.bind(e, name, thisPathList, false, () => {
341
+ return sourcePath.call(creator, control, e);
342
+ }, creator);
343
+
344
+ if (typeof now !== "undefined") {
345
+ control.setLocalValue(e, name, now);
346
+ }
347
+ }
348
+
349
+ };
350
+ }
351
+
352
+ static twoWays(sourcePath, events, converter) {
353
+ let pathList;
354
+ let thisPathList;
355
+
356
+ if (Array.isArray(sourcePath)) {
357
+ pathList = sourcePath;
358
+ } else {
359
+ const lists = parsePathLists(sourcePath);
360
+
361
+ if (lists.combined.length) {
362
+ throw new Error("Cannot have combined binding for two ways");
363
+ }
364
+
365
+ if (lists.pathList.length) {
366
+ pathList = lists.pathList;
367
+ }
368
+
369
+ if (lists.thisPath.length) {
370
+ thisPathList = lists.thisPath;
371
+ }
372
+ }
373
+
374
+ if (!(thisPathList || pathList)) {
375
+ throw new Error(`Failed to setup twoWay binding on ${sourcePath}`);
376
+ }
377
+
378
+ return {
379
+ [bindSymbol](name, control, e, creator) {
380
+ control.bind(e, name, thisPathList || pathList, events || true, converter, thisPathList ? creator : undefined);
381
+ }
382
+
383
+ };
384
+ }
385
+
386
+ static twoWaysImmediate(sourcePath, converter) {
387
+ return this.twoWays(sourcePath, ["change", "input", "paste", "keyup", "keypress"], converter);
388
+ }
389
+
390
+ });
391
+ }
392
+ };
393
+ });
394
+ //# sourceMappingURL=Bind.sys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"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","names":["Bind","twoWaysConvert","name","b","control","e","creator","bind","thisPathList","pathList","eventList","undefined","parsePath","parsePathLists","CancelToken","ignoreValue","isEvent","bindSymbol","Symbol","constructor","setupFunction","sourcePath","Array","isArray","lists","combined","length","thisPath","forControl","forData","forViewModel","forLocalViewModel","presenter","cn","n","c","element","atomControl","_logicalParent","parentElement","event","runAfterInit","test","substring","startsWith","replace","g","toUpperCase","toLowerCase","bindEvent","e1","oneTime","now","setLocalValue","oneTimeAsync","app","runAsync","__awaiter","value","source","path","map","x","self","call","oneWayAsync","watchDelayInMS","default","defaultValue","Error","bindingSource","finalPathList","t","asyncState","token","cancelToken","_a","cancel","setTimeoutAsync","_b","cancelled","_c","ct","oneWay","a","twoWays","events","converter","twoWaysImmediate"],"sourceRoot":"","sources":["../../src/core/Bind.ts"],"sourcesContent":[null]}
@@ -0,0 +1,51 @@
1
+ System.register(["./AtomBinder"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var AtomBinder;
5
+
6
+ function BindableProperty(target, key) {
7
+ const iVal = target[key];
8
+ const keyName = "_" + key;
9
+ target[keyName] = iVal;
10
+
11
+ const getter = function () {
12
+ return this[keyName];
13
+ };
14
+
15
+ const setter = function (newVal) {
16
+ const oldValue = this[keyName];
17
+
18
+ if (oldValue === undefined ? oldValue === newVal : oldValue == newVal) {
19
+ return;
20
+ }
21
+
22
+ const ce = this;
23
+
24
+ if (ce.onPropertyChanging) {
25
+ ce.onPropertyChanging(key, oldValue, newVal);
26
+ }
27
+
28
+ this[keyName] = newVal;
29
+ AtomBinder.refreshValue(this, key);
30
+ };
31
+
32
+ if (delete target[key]) {
33
+ Object.defineProperty(target, key, {
34
+ get: getter,
35
+ set: setter,
36
+ enumerable: true,
37
+ configurable: true
38
+ });
39
+ }
40
+ }
41
+
42
+ _export("BindableProperty", BindableProperty);
43
+
44
+ return {
45
+ setters: [function (_AtomBinder) {
46
+ AtomBinder = _AtomBinder.AtomBinder;
47
+ }],
48
+ execute: function () {}
49
+ };
50
+ });
51
+ //# sourceMappingURL=BindableProperty.sys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":";;;;;EAWM,SAAUA,gBAAV,CAA2BC,MAA3B,EAAwCC,GAAxC,EAAmD;IAErD,MAAMC,IAAI,GAAQF,MAAM,CAACC,GAAD,CAAxB;IAEA,MAAME,OAAO,GAAW,MAAMF,GAA9B;IAEAD,MAAM,CAACG,OAAD,CAAN,GAAkBD,IAAlB;;IAGA,MAAME,MAAM,GAAc;MAEtB,OAAO,KAAKD,OAAL,CAAP;IACH,CAHD;;IAMA,MAAME,MAAM,GAAqB,UAASC,MAAT,EAAoB;MAEjD,MAAMC,QAAQ,GAAG,KAAKJ,OAAL,CAAjB;;MAEA,IAAII,QAAQ,KAAKC,SAAb,GAAyBD,QAAQ,KAAKD,MAAtC,GAA+CC,QAAQ,IAAID,MAA/D,EAAuE;QACnE;MACH;;MAED,MAAMG,EAAE,GAAG,IAAX;;MACA,IAAIA,EAAE,CAACC,kBAAP,EAA2B;QACvBD,EAAE,CAACC,kBAAH,CAAsBT,GAAtB,EAA2BM,QAA3B,EAAqCD,MAArC;MACH;;MAED,KAAKH,OAAL,IAAgBG,MAAhB;MAEAK,UAAU,CAACC,YAAX,CAAwB,IAAxB,EAA8BX,GAA9B;IACH,CAhBD;;IAmBA,IAAI,OAAOD,MAAM,CAACC,GAAD,CAAjB,EAAwB;MAGpBY,MAAM,CAACC,cAAP,CAAsBd,MAAtB,EAA8BC,GAA9B,EAAmC;QAC/Bc,GAAG,EAAEX,MAD0B;QAE/BY,GAAG,EAAEX,MAF0B;QAG/BY,UAAU,EAAE,IAHmB;QAI/BC,YAAY,EAAE;MAJiB,CAAnC;IAOH;EACJ;;8BA7CenB,gB;;;;MAXPY,U,eAAAA,U","names":["BindableProperty","target","key","iVal","keyName","getter","setter","newVal","oldValue","undefined","ce","onPropertyChanging","AtomBinder","refreshValue","Object","defineProperty","get","set","enumerable","configurable"],"sourceRoot":"","sources":["../../src/core/BindableProperty.ts"],"sourcesContent":[null]}