@web-atoms/core 2.6.14 → 2.6.18

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 (308) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/App.js +30 -1
  3. package/dist/App.js.map +1 -1
  4. package/dist/style/StyleRule.d.ts +0 -484
  5. package/dist/style/StyleRule.d.ts.map +1 -1
  6. package/dist/style/StyleRule.js +1 -2660
  7. package/dist/style/StyleRule.js.map +1 -1
  8. package/dist/tsconfig.tsbuildinfo +1 -1
  9. package/dist/web/controls/AtomControl.d.ts +0 -13
  10. package/dist/web/controls/AtomControl.d.ts.map +1 -1
  11. package/dist/web/controls/AtomControl.js +2 -47
  12. package/dist/web/controls/AtomControl.js.map +1 -1
  13. package/dist/web/core/HtmlNode.d.ts.map +1 -1
  14. package/dist/web/core/HtmlNode.js +4 -9
  15. package/dist/web/core/HtmlNode.js.map +1 -1
  16. package/dist-esm/App.d.ts.map +1 -1
  17. package/dist-esm/App.js +29 -0
  18. package/dist-esm/App.js.map +1 -1
  19. package/dist-esm/style/StyleRule.d.ts +0 -457
  20. package/dist-esm/style/StyleRule.d.ts.map +1 -1
  21. package/dist-esm/style/StyleRule.js +1 -2611
  22. package/dist-esm/style/StyleRule.js.map +1 -1
  23. package/dist-esm/tsconfig.esm.tsbuildinfo +1 -1
  24. package/dist-esm/web/controls/AtomControl.d.ts +0 -9
  25. package/dist-esm/web/controls/AtomControl.d.ts.map +1 -1
  26. package/dist-esm/web/controls/AtomControl.js +1 -46
  27. package/dist-esm/web/controls/AtomControl.js.map +1 -1
  28. package/dist-esm/web/core/HtmlNode.d.ts.map +1 -1
  29. package/dist-esm/web/core/HtmlNode.js +2 -6
  30. package/dist-esm/web/core/HtmlNode.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/App.ts +33 -0
  33. package/src/style/StyleRule.ts +0 -3130
  34. package/src/web/controls/AtomControl.ts +0 -56
  35. package/src/web/core/HtmlNode.tsx +3 -7
  36. package/tsconfig.esm.json +1 -1
  37. package/tsconfig.json +1 -1
  38. package/dist/style/styled.d.ts +0 -54
  39. package/dist/style/styled.d.ts.map +0 -1
  40. package/dist/style/styled.js +0 -213
  41. package/dist/style/styled.js.map +0 -1
  42. package/dist/unit/AtomWebTest.d.ts +0 -11
  43. package/dist/unit/AtomWebTest.d.ts.map +0 -1
  44. package/dist/unit/AtomWebTest.js +0 -46
  45. package/dist/unit/AtomWebTest.js.map +0 -1
  46. package/dist/web/WebApp.d.ts +0 -28
  47. package/dist/web/WebApp.d.ts.map +0 -1
  48. package/dist/web/WebApp.js +0 -169
  49. package/dist/web/WebApp.js.map +0 -1
  50. package/dist/web/controls/AtomAlertWindow.d.ts +0 -16
  51. package/dist/web/controls/AtomAlertWindow.d.ts.map +0 -1
  52. package/dist/web/controls/AtomAlertWindow.js +0 -60
  53. package/dist/web/controls/AtomAlertWindow.js.map +0 -1
  54. package/dist/web/controls/AtomContentControl.d.ts +0 -13
  55. package/dist/web/controls/AtomContentControl.d.ts.map +0 -1
  56. package/dist/web/controls/AtomContentControl.js +0 -61
  57. package/dist/web/controls/AtomContentControl.js.map +0 -1
  58. package/dist/web/controls/AtomFrame.d.ts +0 -46
  59. package/dist/web/controls/AtomFrame.d.ts.map +0 -1
  60. package/dist/web/controls/AtomFrame.js +0 -232
  61. package/dist/web/controls/AtomFrame.js.map +0 -1
  62. package/dist/web/controls/AtomListBox.d.ts +0 -9
  63. package/dist/web/controls/AtomListBox.d.ts.map +0 -1
  64. package/dist/web/controls/AtomListBox.js +0 -63
  65. package/dist/web/controls/AtomListBox.js.map +0 -1
  66. package/dist/web/controls/AtomNotification.d.ts +0 -9
  67. package/dist/web/controls/AtomNotification.d.ts.map +0 -1
  68. package/dist/web/controls/AtomNotification.js +0 -62
  69. package/dist/web/controls/AtomNotification.js.map +0 -1
  70. package/dist/web/controls/AtomPageLink.d.ts +0 -41
  71. package/dist/web/controls/AtomPageLink.d.ts.map +0 -1
  72. package/dist/web/controls/AtomPageLink.js +0 -113
  73. package/dist/web/controls/AtomPageLink.js.map +0 -1
  74. package/dist/web/controls/AtomTabbedPage.d.ts +0 -48
  75. package/dist/web/controls/AtomTabbedPage.d.ts.map +0 -1
  76. package/dist/web/controls/AtomTabbedPage.js +0 -266
  77. package/dist/web/controls/AtomTabbedPage.js.map +0 -1
  78. package/dist/web/controls/AtomToggleButtonBar.d.ts +0 -7
  79. package/dist/web/controls/AtomToggleButtonBar.d.ts.map +0 -1
  80. package/dist/web/controls/AtomToggleButtonBar.js +0 -46
  81. package/dist/web/controls/AtomToggleButtonBar.js.map +0 -1
  82. package/dist/web/controls/AtomViewPager.d.ts +0 -7
  83. package/dist/web/controls/AtomViewPager.d.ts.map +0 -1
  84. package/dist/web/controls/AtomViewPager.js +0 -68
  85. package/dist/web/controls/AtomViewPager.js.map +0 -1
  86. package/dist/web/controls/AtomWindow.d.ts +0 -36
  87. package/dist/web/controls/AtomWindow.d.ts.map +0 -1
  88. package/dist/web/controls/AtomWindow.js +0 -248
  89. package/dist/web/controls/AtomWindow.js.map +0 -1
  90. package/dist/web/samples/MovieService.d.ts +0 -5
  91. package/dist/web/samples/MovieService.d.ts.map +0 -1
  92. package/dist/web/samples/MovieService.js +0 -29
  93. package/dist/web/samples/MovieService.js.map +0 -1
  94. package/dist/web/samples/demo/app.d.ts +0 -5
  95. package/dist/web/samples/demo/app.d.ts.map +0 -1
  96. package/dist/web/samples/demo/app.js +0 -26
  97. package/dist/web/samples/demo/app.js.map +0 -1
  98. package/dist/web/samples/demo/views/MovieList.d.ts +0 -5
  99. package/dist/web/samples/demo/views/MovieList.d.ts.map +0 -1
  100. package/dist/web/samples/demo/views/MovieList.js +0 -71
  101. package/dist/web/samples/demo/views/MovieList.js.map +0 -1
  102. package/dist/web/samples/demo/views/MovieListViewModel.d.ts +0 -18
  103. package/dist/web/samples/demo/views/MovieListViewModel.d.ts.map +0 -1
  104. package/dist/web/samples/demo/views/MovieListViewModel.js +0 -73
  105. package/dist/web/samples/demo/views/MovieListViewModel.js.map +0 -1
  106. package/dist/web/samples/tabs/app.d.ts +0 -5
  107. package/dist/web/samples/tabs/app.d.ts.map +0 -1
  108. package/dist/web/samples/tabs/app.js +0 -35
  109. package/dist/web/samples/tabs/app.js.map +0 -1
  110. package/dist/web/samples/tabs/views/List.d.ts +0 -4
  111. package/dist/web/samples/tabs/views/List.d.ts.map +0 -1
  112. package/dist/web/samples/tabs/views/List.js +0 -14
  113. package/dist/web/samples/tabs/views/List.js.map +0 -1
  114. package/dist/web/samples/tabs/views/ListDataUrl.d.ts +0 -4
  115. package/dist/web/samples/tabs/views/ListDataUrl.d.ts.map +0 -1
  116. package/dist/web/samples/tabs/views/ListDataUrl.js +0 -15
  117. package/dist/web/samples/tabs/views/ListDataUrl.js.map +0 -1
  118. package/dist/web/samples/tabs/views/Page1.d.ts +0 -5
  119. package/dist/web/samples/tabs/views/Page1.d.ts.map +0 -1
  120. package/dist/web/samples/tabs/views/Page1.js +0 -63
  121. package/dist/web/samples/tabs/views/Page1.js.map +0 -1
  122. package/dist/web/samples/tabs/views/TabHost.d.ts +0 -5
  123. package/dist/web/samples/tabs/views/TabHost.d.ts.map +0 -1
  124. package/dist/web/samples/tabs/views/TabHost.js +0 -52
  125. package/dist/web/samples/tabs/views/TabHost.js.map +0 -1
  126. package/dist/web/samples/window/WindowSample.d.ts +0 -5
  127. package/dist/web/samples/window/WindowSample.d.ts.map +0 -1
  128. package/dist/web/samples/window/WindowSample.js +0 -30
  129. package/dist/web/samples/window/WindowSample.js.map +0 -1
  130. package/dist/web/services/WebBusyIndicatorService.d.ts +0 -9
  131. package/dist/web/services/WebBusyIndicatorService.d.ts.map +0 -1
  132. package/dist/web/services/WebBusyIndicatorService.js +0 -82
  133. package/dist/web/services/WebBusyIndicatorService.js.map +0 -1
  134. package/dist/web/services/WindowService.d.ts +0 -63
  135. package/dist/web/services/WindowService.d.ts.map +0 -1
  136. package/dist/web/services/WindowService.js +0 -341
  137. package/dist/web/services/WindowService.js.map +0 -1
  138. package/dist/web/styles/AtomListBoxStyle.d.ts +0 -11
  139. package/dist/web/styles/AtomListBoxStyle.d.ts.map +0 -1
  140. package/dist/web/styles/AtomListBoxStyle.js +0 -43
  141. package/dist/web/styles/AtomListBoxStyle.js.map +0 -1
  142. package/dist/web/styles/AtomTabbedPageStyle.d.ts +0 -12
  143. package/dist/web/styles/AtomTabbedPageStyle.d.ts.map +0 -1
  144. package/dist/web/styles/AtomTabbedPageStyle.js +0 -128
  145. package/dist/web/styles/AtomTabbedPageStyle.js.map +0 -1
  146. package/dist/web/styles/AtomTheme.d.ts +0 -17
  147. package/dist/web/styles/AtomTheme.d.ts.map +0 -1
  148. package/dist/web/styles/AtomTheme.js +0 -53
  149. package/dist/web/styles/AtomTheme.js.map +0 -1
  150. package/dist/web/styles/AtomToggleButtonBarStyle.d.ts +0 -9
  151. package/dist/web/styles/AtomToggleButtonBarStyle.d.ts.map +0 -1
  152. package/dist/web/styles/AtomToggleButtonBarStyle.js +0 -77
  153. package/dist/web/styles/AtomToggleButtonBarStyle.js.map +0 -1
  154. package/dist/web/styles/CSS.d.ts +0 -11
  155. package/dist/web/styles/CSS.d.ts.map +0 -1
  156. package/dist/web/styles/CSS.js +0 -76
  157. package/dist/web/styles/CSS.js.map +0 -1
  158. package/dist-esm/style/styled.d.ts +0 -36
  159. package/dist-esm/style/styled.d.ts.map +0 -1
  160. package/dist-esm/style/styled.js +0 -198
  161. package/dist-esm/style/styled.js.map +0 -1
  162. package/dist-esm/unit/AtomWebTest.d.ts +0 -11
  163. package/dist-esm/unit/AtomWebTest.d.ts.map +0 -1
  164. package/dist-esm/unit/AtomWebTest.js +0 -24
  165. package/dist-esm/unit/AtomWebTest.js.map +0 -1
  166. package/dist-esm/web/WebApp.d.ts +0 -25
  167. package/dist-esm/web/WebApp.d.ts.map +0 -1
  168. package/dist-esm/web/WebApp.js +0 -140
  169. package/dist-esm/web/WebApp.js.map +0 -1
  170. package/dist-esm/web/controls/AtomAlertWindow.d.ts +0 -16
  171. package/dist-esm/web/controls/AtomAlertWindow.d.ts.map +0 -1
  172. package/dist-esm/web/controls/AtomAlertWindow.js +0 -41
  173. package/dist-esm/web/controls/AtomAlertWindow.js.map +0 -1
  174. package/dist-esm/web/controls/AtomContentControl.d.ts +0 -13
  175. package/dist-esm/web/controls/AtomContentControl.d.ts.map +0 -1
  176. package/dist-esm/web/controls/AtomContentControl.js +0 -44
  177. package/dist-esm/web/controls/AtomContentControl.js.map +0 -1
  178. package/dist-esm/web/controls/AtomFrame.d.ts +0 -36
  179. package/dist-esm/web/controls/AtomFrame.d.ts.map +0 -1
  180. package/dist-esm/web/controls/AtomFrame.js +0 -205
  181. package/dist-esm/web/controls/AtomFrame.js.map +0 -1
  182. package/dist-esm/web/controls/AtomListBox.d.ts +0 -9
  183. package/dist-esm/web/controls/AtomListBox.d.ts.map +0 -1
  184. package/dist-esm/web/controls/AtomListBox.js +0 -56
  185. package/dist-esm/web/controls/AtomListBox.js.map +0 -1
  186. package/dist-esm/web/controls/AtomNotification.d.ts +0 -9
  187. package/dist-esm/web/controls/AtomNotification.d.ts.map +0 -1
  188. package/dist-esm/web/controls/AtomNotification.js +0 -43
  189. package/dist-esm/web/controls/AtomNotification.js.map +0 -1
  190. package/dist-esm/web/controls/AtomPageLink.d.ts +0 -22
  191. package/dist-esm/web/controls/AtomPageLink.d.ts.map +0 -1
  192. package/dist-esm/web/controls/AtomPageLink.js +0 -88
  193. package/dist-esm/web/controls/AtomPageLink.js.map +0 -1
  194. package/dist-esm/web/controls/AtomTabbedPage.d.ts +0 -48
  195. package/dist-esm/web/controls/AtomTabbedPage.d.ts.map +0 -1
  196. package/dist-esm/web/controls/AtomTabbedPage.js +0 -227
  197. package/dist-esm/web/controls/AtomTabbedPage.js.map +0 -1
  198. package/dist-esm/web/controls/AtomToggleButtonBar.d.ts +0 -7
  199. package/dist-esm/web/controls/AtomToggleButtonBar.d.ts.map +0 -1
  200. package/dist-esm/web/controls/AtomToggleButtonBar.js +0 -32
  201. package/dist-esm/web/controls/AtomToggleButtonBar.js.map +0 -1
  202. package/dist-esm/web/controls/AtomViewPager.d.ts +0 -7
  203. package/dist-esm/web/controls/AtomViewPager.d.ts.map +0 -1
  204. package/dist-esm/web/controls/AtomViewPager.js +0 -49
  205. package/dist-esm/web/controls/AtomViewPager.js.map +0 -1
  206. package/dist-esm/web/controls/AtomWindow.d.ts +0 -36
  207. package/dist-esm/web/controls/AtomWindow.d.ts.map +0 -1
  208. package/dist-esm/web/controls/AtomWindow.js +0 -191
  209. package/dist-esm/web/controls/AtomWindow.js.map +0 -1
  210. package/dist-esm/web/samples/MovieService.d.ts +0 -5
  211. package/dist-esm/web/samples/MovieService.d.ts.map +0 -1
  212. package/dist-esm/web/samples/MovieService.js +0 -19
  213. package/dist-esm/web/samples/MovieService.js.map +0 -1
  214. package/dist-esm/web/samples/demo/app.d.ts +0 -5
  215. package/dist-esm/web/samples/demo/app.d.ts.map +0 -1
  216. package/dist-esm/web/samples/demo/app.js +0 -12
  217. package/dist-esm/web/samples/demo/app.js.map +0 -1
  218. package/dist-esm/web/samples/demo/views/MovieList.d.ts +0 -5
  219. package/dist-esm/web/samples/demo/views/MovieList.d.ts.map +0 -1
  220. package/dist-esm/web/samples/demo/views/MovieList.js +0 -56
  221. package/dist-esm/web/samples/demo/views/MovieList.js.map +0 -1
  222. package/dist-esm/web/samples/demo/views/MovieListViewModel.d.ts +0 -18
  223. package/dist-esm/web/samples/demo/views/MovieListViewModel.d.ts.map +0 -1
  224. package/dist-esm/web/samples/demo/views/MovieListViewModel.js +0 -55
  225. package/dist-esm/web/samples/demo/views/MovieListViewModel.js.map +0 -1
  226. package/dist-esm/web/samples/tabs/app.d.ts +0 -5
  227. package/dist-esm/web/samples/tabs/app.d.ts.map +0 -1
  228. package/dist-esm/web/samples/tabs/app.js +0 -19
  229. package/dist-esm/web/samples/tabs/app.js.map +0 -1
  230. package/dist-esm/web/samples/tabs/views/List.d.ts +0 -4
  231. package/dist-esm/web/samples/tabs/views/List.d.ts.map +0 -1
  232. package/dist-esm/web/samples/tabs/views/List.js +0 -3
  233. package/dist-esm/web/samples/tabs/views/List.js.map +0 -1
  234. package/dist-esm/web/samples/tabs/views/ListDataUrl.d.ts +0 -4
  235. package/dist-esm/web/samples/tabs/views/ListDataUrl.d.ts.map +0 -1
  236. package/dist-esm/web/samples/tabs/views/ListDataUrl.js +0 -6
  237. package/dist-esm/web/samples/tabs/views/ListDataUrl.js.map +0 -1
  238. package/dist-esm/web/samples/tabs/views/Page1.d.ts +0 -5
  239. package/dist-esm/web/samples/tabs/views/Page1.d.ts.map +0 -1
  240. package/dist-esm/web/samples/tabs/views/Page1.js +0 -45
  241. package/dist-esm/web/samples/tabs/views/Page1.js.map +0 -1
  242. package/dist-esm/web/samples/tabs/views/TabHost.d.ts +0 -5
  243. package/dist-esm/web/samples/tabs/views/TabHost.d.ts.map +0 -1
  244. package/dist-esm/web/samples/tabs/views/TabHost.js +0 -35
  245. package/dist-esm/web/samples/tabs/views/TabHost.js.map +0 -1
  246. package/dist-esm/web/samples/window/WindowSample.d.ts +0 -5
  247. package/dist-esm/web/samples/window/WindowSample.d.ts.map +0 -1
  248. package/dist-esm/web/samples/window/WindowSample.js +0 -13
  249. package/dist-esm/web/samples/window/WindowSample.js.map +0 -1
  250. package/dist-esm/web/services/WebBusyIndicatorService.d.ts +0 -9
  251. package/dist-esm/web/services/WebBusyIndicatorService.d.ts.map +0 -1
  252. package/dist-esm/web/services/WebBusyIndicatorService.js +0 -73
  253. package/dist-esm/web/services/WebBusyIndicatorService.js.map +0 -1
  254. package/dist-esm/web/services/WindowService.d.ts +0 -36
  255. package/dist-esm/web/services/WindowService.d.ts.map +0 -1
  256. package/dist-esm/web/services/WindowService.js +0 -296
  257. package/dist-esm/web/services/WindowService.js.map +0 -1
  258. package/dist-esm/web/styles/AtomListBoxStyle.d.ts +0 -11
  259. package/dist-esm/web/styles/AtomListBoxStyle.d.ts.map +0 -1
  260. package/dist-esm/web/styles/AtomListBoxStyle.js +0 -32
  261. package/dist-esm/web/styles/AtomListBoxStyle.js.map +0 -1
  262. package/dist-esm/web/styles/AtomTabbedPageStyle.d.ts +0 -12
  263. package/dist-esm/web/styles/AtomTabbedPageStyle.d.ts.map +0 -1
  264. package/dist-esm/web/styles/AtomTabbedPageStyle.js +0 -115
  265. package/dist-esm/web/styles/AtomTabbedPageStyle.js.map +0 -1
  266. package/dist-esm/web/styles/AtomTheme.d.ts +0 -17
  267. package/dist-esm/web/styles/AtomTheme.d.ts.map +0 -1
  268. package/dist-esm/web/styles/AtomTheme.js +0 -41
  269. package/dist-esm/web/styles/AtomTheme.js.map +0 -1
  270. package/dist-esm/web/styles/AtomToggleButtonBarStyle.d.ts +0 -9
  271. package/dist-esm/web/styles/AtomToggleButtonBarStyle.d.ts.map +0 -1
  272. package/dist-esm/web/styles/AtomToggleButtonBarStyle.js +0 -68
  273. package/dist-esm/web/styles/AtomToggleButtonBarStyle.js.map +0 -1
  274. package/dist-esm/web/styles/CSS.d.ts +0 -4
  275. package/dist-esm/web/styles/CSS.d.ts.map +0 -1
  276. package/dist-esm/web/styles/CSS.js +0 -66
  277. package/dist-esm/web/styles/CSS.js.map +0 -1
  278. package/src/style/styled.ts +0 -277
  279. package/src/unit/AtomWebTest.ts +0 -33
  280. package/src/web/WebApp.ts +0 -192
  281. package/src/web/controls/AtomAlertWindow.tsx +0 -111
  282. package/src/web/controls/AtomContentControl.ts +0 -52
  283. package/src/web/controls/AtomFrame.ts +0 -295
  284. package/src/web/controls/AtomListBox.ts +0 -69
  285. package/src/web/controls/AtomNotification.tsx +0 -45
  286. package/src/web/controls/AtomPageLink.ts +0 -164
  287. package/src/web/controls/AtomTabbedPage.tsx +0 -320
  288. package/src/web/controls/AtomToggleButtonBar.ts +0 -41
  289. package/src/web/controls/AtomViewPager.ts +0 -60
  290. package/src/web/controls/AtomWindow.tsx +0 -342
  291. package/src/web/samples/MovieService.ts +0 -12
  292. package/src/web/samples/demo/app.ts +0 -15
  293. package/src/web/samples/demo/views/MovieList.ts +0 -77
  294. package/src/web/samples/demo/views/MovieListViewModel.ts +0 -52
  295. package/src/web/samples/tabs/app.ts +0 -20
  296. package/src/web/samples/tabs/views/List.json +0 -10
  297. package/src/web/samples/tabs/views/List.ts +0 -6
  298. package/src/web/samples/tabs/views/ListDataUrl.ts +0 -9
  299. package/src/web/samples/tabs/views/Page1.tsx +0 -49
  300. package/src/web/samples/tabs/views/TabHost.ts +0 -34
  301. package/src/web/samples/window/WindowSample.tsx +0 -16
  302. package/src/web/services/WebBusyIndicatorService.ts +0 -79
  303. package/src/web/services/WindowService.ts +0 -500
  304. package/src/web/styles/AtomListBoxStyle.ts +0 -42
  305. package/src/web/styles/AtomTabbedPageStyle.ts +0 -125
  306. package/src/web/styles/AtomTheme.ts +0 -61
  307. package/src/web/styles/AtomToggleButtonBarStyle.ts +0 -76
  308. package/src/web/styles/CSS.ts +0 -77
package/src/web/WebApp.ts DELETED
@@ -1,192 +0,0 @@
1
- import { App } from "../App.js";
2
- import { AtomOnce } from "../core/AtomOnce.js";
3
- import { AtomUri } from "../core/AtomUri.js";
4
- import { ServiceCollection } from "../di/ServiceCollection.js";
5
- import { BusyIndicatorService } from "../services/BusyIndicatorService.js";
6
- import { NavigationService } from "../services/NavigationService.js";
7
- import { ChildEnumerator } from "./core/AtomUI.js";
8
- import { WebBusyIndicatorService } from "./services/WebBusyIndicatorService.js";
9
- import { WindowService } from "./services/WindowService.js";
10
- import { AtomStyleSheet } from "./styles/AtomStyleSheet.js";
11
- import { AtomTheme } from "./styles/AtomTheme.js";
12
-
13
- declare var UMD: any;
14
-
15
- export default class WebApp extends App {
16
-
17
- public readonly initPromise: Promise<void>;
18
-
19
- public get parentElement(): HTMLElement {
20
- return document.body;
21
- }
22
-
23
- private mRoot: any;
24
- public get root(): any {
25
- return this.mRoot;
26
- }
27
-
28
- public set root(v: any) {
29
- const old = this.mRoot;
30
- if (old) {
31
- old.dispose();
32
- }
33
- this.mRoot = v;
34
- if (!v) {
35
- return;
36
- }
37
- const pe = this.parentElement;
38
- const de: HTMLElement[] = Array.from(pe.children) as HTMLElement[];
39
- for (const iterator of de) {
40
- iterator.remove();
41
- }
42
- pe.appendChild(v.element);
43
- }
44
-
45
- public get theme(): AtomStyleSheet {
46
- return this.get(AtomStyleSheet);
47
- }
48
-
49
- public set theme(v: AtomStyleSheet) {
50
- this.put(AtomTheme, v);
51
- this.put(AtomStyleSheet, v);
52
- }
53
-
54
- private mContextId: number;
55
- public get contextId(): string {
56
- // let us set contextId
57
- this.mContextId ??= parseInt((this.url.hash.contextId || "0").toString(), 10);
58
- if (!this.mContextId) {
59
- // create new context Id in session...
60
- for (let index = 0; index < 100; index++) {
61
- const cid = `contextId${index}`;
62
- const cidData = sessionStorage.getItem(`contextId${index}`);
63
- if (!cidData) {
64
- this.mContextId = index;
65
- sessionStorage.setItem(cid, cid);
66
- this.url.hash.contextId = index;
67
- this.syncUrl();
68
- break;
69
- }
70
- }
71
- }
72
- return `contextId_${this.mContextId}`;
73
- }
74
-
75
- private hashUpdater = new AtomOnce();
76
-
77
- private styleElement: HTMLElement;
78
-
79
- constructor() {
80
- super();
81
-
82
- this.url = new AtomUri(location.href);
83
-
84
- this.put(NavigationService, this.resolve(WindowService));
85
-
86
- this.put(WebApp, this);
87
-
88
- this.put(BusyIndicatorService, this.resolve(WebBusyIndicatorService));
89
-
90
- ServiceCollection.instance.registerSingleton(AtomStyleSheet, (sp) => sp.resolve(AtomTheme));
91
-
92
- window.addEventListener("hashchange", () => {
93
- this.hashUpdater.run(() => {
94
- this.url = new AtomUri(location.href);
95
- });
96
- });
97
-
98
- this.initPromise = new Promise<void>((resolve, reject) => {
99
- this.onReady(resolve);
100
- });
101
-
102
- // following must be done automatically by the user as we may need different and newer version
103
- // // registering font awesome
104
- // this.installStyleSheet("https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.9.0/css/all.css");
105
- // this.installStyleSheet({
106
- // href: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css",
107
- // integrity: "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T",
108
- // crossOrigin: "anonymous"
109
- // });
110
- }
111
-
112
- public updateDefaultStyle(textContent: string) {
113
- if (this.styleElement) {
114
- if (this.styleElement.textContent === textContent) {
115
- return;
116
- }
117
- }
118
- const ss = document.createElement("style");
119
-
120
- ss.textContent = textContent;
121
- if (this.styleElement) {
122
- this.styleElement.remove();
123
- }
124
- document.head.appendChild(ss);
125
- this.styleElement = ss;
126
- }
127
-
128
- /**
129
- * Do not use this method
130
- */
131
- public syncUrl(): void {
132
- this.hashUpdater.run(() => {
133
- const currentUrl = new AtomUri(location.href);
134
- const sourceHash = this.url.hash;
135
- const keyValues: Array<{ key: string, value: any}> = [];
136
- let modified: boolean = false;
137
- for (const key in sourceHash) {
138
- if (/^\_\$\_/.test(key)) {
139
- continue;
140
- }
141
- if (sourceHash.hasOwnProperty(key)) {
142
- const element = sourceHash[key];
143
- const cv = currentUrl.hash[key];
144
- if (element !== undefined) {
145
- keyValues.push({ key, value: element });
146
- }
147
- if (cv === element) {
148
- continue;
149
- }
150
- modified = true;
151
- }
152
- }
153
- if (!modified) {
154
- return;
155
- }
156
- const hash = keyValues.map((s) => `${s.key}=${encodeURIComponent(s.value)}`).join("&");
157
- location.hash = hash;
158
- });
159
- }
160
-
161
- protected invokeReady(): void {
162
- if (document.readyState === "complete") {
163
- super.invokeReady();
164
- return;
165
- }
166
- document.addEventListener("readystatechange", (e) => {
167
- super.invokeReady();
168
- });
169
- }
170
-
171
- }
172
-
173
- declare global {
174
- // tslint:disable-next-line: interface-name
175
- interface Window {
176
- // tslint:disable-next-line: ban-types
177
- CustomEvent?: Function;
178
- }
179
- }
180
-
181
- // tslint:disable-next-line: only-arrow-functions
182
- (function() {
183
-
184
- if ( typeof window.CustomEvent === "function" ) { return false; }
185
- function CustomEvent( event, params ) {
186
- params = params || { bubbles: false, cancelable: false, detail: null };
187
- const evt = document.createEvent( "CustomEvent" );
188
- evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
189
- return evt;
190
- }
191
- (window as any).CustomEvent = CustomEvent;
192
- })();
@@ -1,111 +0,0 @@
1
- import { App } from "../../App.js";
2
- import Bind from "../../core/Bind.js";
3
- import { BindableProperty } from "../../core/BindableProperty.js";
4
- import FormattedString from "../../core/FormattedString.js";
5
- import XNode from "../../core/XNode.js";
6
- import { Inject } from "../../di/Inject.js";
7
- import { AtomWindowViewModel } from "../../view-model/AtomWindowViewModel.js";
8
- import MarkdownService from "../services/MarkdownService.js";
9
- import AtomAlertWindowStyle from "../styles/AtomAlertWindowStyle.js";
10
- import { AtomControl } from "./AtomControl.js";
11
- import { AtomWindow } from "./AtomWindow.js";
12
-
13
- export default class AtomAlertWindow extends AtomWindow {
14
-
15
- declare public viewModel: AtomAlertViewModel;
16
-
17
- protected create(): void {
18
- this.defaultControlStyle = AtomAlertWindowStyle ;
19
- this.viewModel = this.resolve(AtomAlertViewModel);
20
-
21
- // this.windowTemplate = AtomAlertWindowTemplate;
22
- // this.commandTemplate = AtomAlertWindowCommandBar;
23
- // this.bind(this.element, "title", [["viewModel", "title"]]);
24
-
25
- this.render(<AtomWindow
26
- title={Bind.oneWay(() => this.viewModel.title)}>
27
- <AtomWindow.windowTemplate>
28
- <div formattedText={Bind.oneWay(() => this.viewModel.message)}></div>
29
- </AtomWindow.windowTemplate>
30
- <AtomWindow.commandTemplate>
31
- <div>
32
- <button
33
- class="yes-button"
34
- styleDisplay={Bind.oneWay(() => this.viewModel.okTitle ? "" : "none")}
35
- text={Bind.oneWay(() => this.viewModel.okTitle)}
36
- eventClick={() => this.viewModel.onOkClicked()}/>
37
- <button
38
- class="no-button"
39
- styleMarginBottom={Bind.oneWay(() => this.viewModel.cancelTitle ? "0" : "10px")}
40
- styleDisplay={Bind.oneWay(() => this.viewModel.cancelTitle ? "" : "none")}
41
- text={Bind.oneWay(() => this.viewModel.cancelTitle)}
42
- eventClick={() => this.viewModel.onCancelClicked()}/>
43
- </div>
44
- </AtomWindow.commandTemplate>
45
- </AtomWindow>);
46
- }
47
- }
48
-
49
- // class AtomAlertWindowTemplate extends AtomControl {
50
-
51
- // protected create(): void {
52
- // const div = document.createElement("div");
53
-
54
- // this.append(div);
55
-
56
- // this.bind(div, "formattedText", [["viewModel", "message"]]);
57
-
58
- // }
59
- // }
60
-
61
- // class AtomAlertWindowCommandBar extends AtomControl {
62
-
63
- // protected create(): void {
64
-
65
- // const okButton = document.createElement("button");
66
-
67
- // const cancelButton = document.createElement("button");
68
- // this.append(okButton);
69
- // this.append(cancelButton);
70
- // this.setPrimitiveValue(okButton, "class", "yes-button" );
71
- // this.setPrimitiveValue(cancelButton, "class", "no-button" );
72
-
73
- // this.bind(okButton, "text", [["viewModel", "okTitle"]]);
74
- // this.bind(cancelButton, "text", [["viewModel", "cancelTitle"]]);
75
-
76
- // this.bind(okButton, "styleDisplay", [["viewModel", "okTitle"]], false, (v) => v ? "" : "none");
77
- // this.bind(okButton, "styleMarginBottom", [["viewModel", "cancelTitle"]], false, (v) => v ? "0" : "10px");
78
- // this.bind(cancelButton, "styleDisplay", [["viewModel", "cancelTitle"]], false, (v) => v ? "" : "none");
79
-
80
- // this.bindEvent(okButton, "click", (e) => {
81
- // this.viewModel.onOkClicked();
82
- // });
83
-
84
- // this.bindEvent(cancelButton, "click", (e) => {
85
-
86
- // this.viewModel.onCancelClicked();
87
- // });
88
- // }
89
- // }
90
- class AtomAlertViewModel extends AtomWindowViewModel {
91
-
92
- // @BindableProperty
93
- declare public title: string;
94
-
95
- @BindableProperty
96
- public message: string;
97
-
98
- @BindableProperty
99
- public okTitle: string;
100
-
101
- @BindableProperty
102
- public cancelTitle: string;
103
-
104
- public onOkClicked(): void {
105
- this.close(true);
106
- }
107
-
108
- public onCancelClicked(): void {
109
- this.cancel();
110
- }
111
- }
@@ -1,52 +0,0 @@
1
- import { AtomBinder } from "../../core/AtomBinder.js";
2
- import { AtomStyle } from "../styles/AtomStyle.js";
3
- import { IStyleDeclaration } from "../styles/IStyleDeclaration.js";
4
- import { AtomControl } from "./AtomControl.js";
5
-
6
- export class AtomContentControl extends AtomControl {
7
-
8
- private mContent: AtomControl;
9
- public get content(): AtomControl {
10
- return this.mContent;
11
- }
12
-
13
- public set content(c: AtomControl) {
14
- const old = this.mContent;
15
- if (old) {
16
- old.element.remove();
17
- }
18
- this.mContent = c;
19
- if (c) {
20
- this.element.appendChild(c.element);
21
- const style = c.element.style;
22
- c.invalidate();
23
- }
24
- AtomBinder.refreshValue(this, "content");
25
- }
26
-
27
- protected preCreate(): void {
28
- super.preCreate();
29
- this.defaultControlStyle = AtomContentStyle;
30
- this.runAfterInit(() => {
31
- this.element.classList.add(this.controlStyle.name);
32
- });
33
- }
34
- }
35
-
36
- export class AtomContentStyle extends AtomStyle {
37
-
38
- public get root(): IStyleDeclaration {
39
- return {
40
- subclasses: {
41
- " > *": {
42
- position: "absolute",
43
- top: "0",
44
- left: "0",
45
- right: "0",
46
- bottom: "0",
47
- }
48
- }
49
- };
50
- }
51
-
52
- }
@@ -1,295 +0,0 @@
1
- import { App } from "../../App.js";
2
- import { Atom } from "../../Atom.js";
3
- import { AtomBinder } from "../../core/AtomBinder.js";
4
- import { AtomDispatcher } from "../../core/AtomDispatcher.js";
5
- import { AtomLoader } from "../../core/AtomLoader.js";
6
- import { AtomUri } from "../../core/AtomUri.js";
7
- import { BindableProperty } from "../../core/BindableProperty.js";
8
- import { IClassOf, IDisposable, INotifyPropertyChanged } from "../../core/types.js";
9
- import { NavigationService } from "../../services/NavigationService.js";
10
- import { AtomWindowViewModel } from "../../view-model/AtomWindowViewModel.js";
11
- import { AtomUI } from "../core/AtomUI.js";
12
- import { WindowService } from "../services/WindowService.js";
13
- import AtomFrameStyle from "../styles/AtomFrameStyle.js";
14
- import { AtomControl } from "./AtomControl.js";
15
-
16
- export interface IPageItem {
17
- url: string;
18
- page: AtomControl;
19
- scrollY: number;
20
- }
21
-
22
- /**
23
- * Creates and hosts an instance of AtomControl available at given URL. Query string parameters
24
- * from the url will be passed to view model as initial property values.
25
- *
26
- * By default stack is turned off, so elements and controls will be destroyed when new control is hosted.
27
- */
28
- export class AtomFrame
29
- extends AtomControl
30
- implements INotifyPropertyChanged {
31
-
32
- public stack: IPageItem[];
33
-
34
- public get canGoBack(): boolean {
35
- return this.stack.length ? true : false;
36
- }
37
-
38
- public name: string;
39
-
40
- public keepStack: boolean;
41
-
42
- public current: AtomControl;
43
-
44
- public pagePresenter: HTMLElement;
45
-
46
- public currentDisposable: IDisposable;
47
-
48
- public backCommand: () => void;
49
-
50
- public saveScrollPosition: boolean;
51
-
52
- private mUrl: string;
53
- public get url(): string {
54
- return this.mUrl;
55
- }
56
- public set url(value: string) {
57
- if (this.mUrl === value) {
58
- return;
59
- }
60
- if (value === undefined) {
61
- return;
62
- }
63
- this.mUrl = value;
64
- this.runAfterInit(() => {
65
- this.app.runAsync(() => this.loadForReturn(value === null ? null : new AtomUri(value), true));
66
- });
67
- }
68
-
69
- private navigationService: WindowService;
70
-
71
- constructor(app: App, e?: HTMLElement) {
72
- super(app, e || document.createElement("section"));
73
- }
74
-
75
- public async onBackCommand(): Promise<void> {
76
- if (!this.stack.length) {
77
- // tslint:disable-next-line: no-console
78
- console.warn(`FrameStack is empty !!`);
79
- return;
80
- }
81
-
82
- const ctrl: AtomControl = this.current;
83
- if (ctrl) {
84
- await this.navigationService.remove(ctrl);
85
- }
86
-
87
- // this.popStack();
88
- }
89
-
90
- /**
91
- * This will pop page from the stack and set as current
92
- * @param windowClosed true if current page was closed by User Action
93
- */
94
- public popStack(windowClosed?: boolean): void {
95
- if (!this.stack.length) {
96
- // tslint:disable-next-line: no-console
97
- console.warn(`FrameStack is empty !!`);
98
- return;
99
- }
100
- const last = this.stack.pop();
101
- AtomBinder.refreshItems(this.stack);
102
- const old = this.current;
103
- this.current = last.page;
104
- (this.current.element as HTMLElement).style.display = "";
105
- if (old) {
106
- this.navigationService.remove(old).catch((e) =>
107
- // tslint:disable-next-line: no-console
108
- console.log(e));
109
- }
110
- this.setUrl(last.url);
111
- if (this.saveScrollPosition) {
112
- setTimeout(() => {
113
- window.scrollTo(0, last.scrollY);
114
- }, 200);
115
- }
116
- }
117
-
118
- public canChange(): Promise<boolean> {
119
- const c = this.current;
120
- if (!c) {
121
- return Promise.resolve(true);
122
- }
123
- return this.navigationService.remove(c);
124
- }
125
-
126
- public push(ctrl: AtomControl): void {
127
-
128
- if (this.current) {
129
- if (this.keepStack) {
130
- (this.current.element as HTMLElement).style.display = "none";
131
- this.stack.add({
132
- url: (this.current as any)._$_url ,
133
- page: this.current,
134
- scrollY: this.navigationService.screen.scrollTop
135
- });
136
- } else {
137
- if (this.current === ctrl) {
138
- return;
139
- }
140
- const c1: AtomControl = this.current;
141
- const e1: HTMLElement = c1.element as HTMLElement;
142
- if (e1) {
143
- this.navigationService.remove(c1);
144
- }
145
- }
146
- }
147
-
148
- const element: HTMLElement = ctrl.element as HTMLElement;
149
- const e = this.pagePresenter || this.element;
150
- (e).appendChild(element);
151
-
152
- this.current = ctrl;
153
-
154
- if (this.saveScrollPosition) {
155
- window.scrollTo(0, 0);
156
- }
157
- }
158
-
159
- public async load(url: AtomUri, clearHistory?: boolean): Promise<AtomControl> {
160
-
161
- // we will not worry if we cannot close the page or not
162
- // as we are moving in detail view, we will come back to page
163
- // without loosing anything
164
-
165
- if (clearHistory) {
166
- if (! await this.canChange()) {
167
- return;
168
- }
169
- }
170
-
171
- const { view, disposables } =
172
- await AtomLoader.loadView<AtomControl>(url, this.app, true, () => new AtomWindowViewModel(this.app));
173
- const urlString = url.host ? url.toString() : url.pathAndQuery;
174
- (view as any)._$_url = urlString;
175
-
176
- this.push(view);
177
-
178
- const e = view.element;
179
-
180
- // this.navigationService.currentTarget = e;
181
-
182
- this.setUrl(urlString);
183
- disposables.add({
184
- dispose: () => {
185
- const closed = this.current === view;
186
- e.innerHTML = "";
187
- e.remove();
188
- // this.navigationService.currentTarget = null;
189
- this.popStack(closed);
190
- }
191
- });
192
- return view;
193
- }
194
-
195
- public toUpperCase(s: string): string {
196
- return s.split("-")
197
- .filter((t) => t)
198
- .map((t) => t.substr(0, 1).toUpperCase() + t.substr(1))
199
- .join("");
200
- }
201
-
202
- protected setUrl(urlString: string) {
203
- this.mUrl = urlString;
204
- AtomBinder.refreshValue(this, "url");
205
- AtomBinder.refreshValue(this, "canGoBack");
206
- }
207
-
208
- protected async loadForReturn(url: AtomUri, clearHistory?: boolean): Promise<any> {
209
- const hasHistory = this.keepStack;
210
- this.keepStack = !clearHistory;
211
-
212
- if (url === null) {
213
- if (hasHistory && clearHistory) {
214
- this.clearStack();
215
- }
216
- return;
217
- }
218
-
219
- const page = await this.load(url, clearHistory);
220
- if (hasHistory) {
221
- if (clearHistory) {
222
- this.clearStack();
223
- }
224
- }
225
- try {
226
- return await (page as any).returnPromise;
227
- } catch (ex) {
228
- // this will prevent warning in chrome for unhandled exception
229
- if ((ex.message ? ex.message : ex) === "cancelled") {
230
- // tslint:disable-next-line: no-console
231
- console.warn(ex);
232
- return;
233
- }
234
- // throw new Error( ex.stack ? (ex + "\r\n" + ex.stack ) : ex);
235
- throw ex;
236
- }
237
- }
238
-
239
- protected clearStack(): void {
240
- // clear stack... irrespective of cancellation !!
241
- for (const iterator of this.stack) {
242
- const e = iterator.page.element;
243
- if (e) {
244
- iterator.page.dispose();
245
- e.innerHTML = "";
246
- e.remove();
247
- }
248
- }
249
- this.stack.clear();
250
- }
251
-
252
- protected preCreate(): void {
253
- this.name = null;
254
- this.stack = [];
255
- this.keepStack = false;
256
- this.current = null;
257
- this.currentDisposable = null;
258
- this.saveScrollPosition = false;
259
- this.navigationService = this.app.resolve(NavigationService) as WindowService;
260
- this.defaultControlStyle = AtomFrameStyle;
261
- this.pagePresenter = null;
262
- this.mUrl = null;
263
- AtomUI.assignID(this.element);
264
- this.runAfterInit(() => {
265
- this.setPrimitiveValue(this.element, "styleClass", this.controlStyle.name);
266
- });
267
- this.backCommand = () => this.app.runAsync(() => this.onBackCommand());
268
-
269
- // hook navigation...
270
-
271
- const d = this.navigationService.registerNavigationHook((url, {
272
- target,
273
- clearHistory,
274
- cancelToken }) => {
275
- if (this.name) {
276
- if (target !== this.name) {
277
- return undefined;
278
- }
279
- } else {
280
- if (
281
- target !== "frame"
282
- && url.protocol !== "frame:") {
283
- return undefined;
284
- }
285
- }
286
- if (cancelToken) {
287
- cancelToken.registerForCancel(() => {
288
- this.backCommand();
289
- });
290
- }
291
- return this.loadForReturn(url, clearHistory);
292
- });
293
- this.registerDisposable(d);
294
- }
295
- }