@web-atoms/core 2.6.13 → 2.6.17

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 +28 -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 +27 -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 +31 -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
@@ -1,342 +0,0 @@
1
- import { App } from "../../App.js";
2
- import Bind from "../../core/Bind.js";
3
- import { BindableProperty } from "../../core/BindableProperty.js";
4
- import { IClassOf, IDisposable, IRect } from "../../core/types.js";
5
- import XNode from "../../core/XNode.js";
6
- import { AtomWindowViewModel } from "../../view-model/AtomWindowViewModel.js";
7
- import { AtomUI } from "../core/AtomUI.js";
8
- import { AtomTheme } from "../styles/AtomTheme.js";
9
- import { AtomWindowStyle } from "../styles/AtomWindowStyle.js";
10
- import { AtomControl } from "./AtomControl.js";
11
- import { AtomTemplate } from "./AtomTemplate.js";
12
-
13
- export function getTemplateParent(e: HTMLElement) {
14
- const tp = e._templateParent;
15
- if (tp) {
16
- return tp;
17
- }
18
- const p = e._logicalParent || e.parentElement;
19
- if (p) {
20
- return getTemplateParent(p);
21
- }
22
- }
23
-
24
- export class AtomWindowFrameTemplate extends AtomTemplate {
25
-
26
- public get templateParent(): AtomWindow {
27
- return getTemplateParent(this.element) as AtomWindow;
28
- }
29
-
30
- public commandPresenter: HTMLElement;
31
-
32
- public titlePresenter: HTMLElement;
33
-
34
- protected preCreate() {
35
- this.titlePresenter = null;
36
- this.commandPresenter = null;
37
- this.contentPresenter = null;
38
- super.preCreate();
39
- }
40
-
41
- protected create(): void {
42
-
43
- // remember, if you do not wish to use dynamic themes
44
- // then use one time binding
45
- this.render(<div
46
- class="frame"
47
- styleWidth={Bind.oneWay(() => this.templateParent.width || undefined)}
48
- styleHeight={Bind.oneWay(() => this.templateParent.height || undefined)}
49
- styleLeft={Bind.oneWay(() => this.templateParent.x >= 0 ? `${this.templateParent.x}px` : undefined)}
50
- styleTop={Bind.oneWay(() => this.templateParent.y >= 0 ? `${this.templateParent.y}px` : undefined)}
51
- styleMarginTop={Bind.oneWay(() => this.templateParent.x >= 0 ? "0" : undefined)}
52
- styleMarginLeft={Bind.oneWay(() => this.templateParent.x >= 0 ? "0" : undefined)}
53
- styleMarginRight={Bind.oneWay(() => this.templateParent.x >= 0 ? "0" : undefined)}
54
- styleMarginBottom={Bind.oneWay(() => this.templateParent.x >= 0 ? "0" : undefined)}>
55
- <div
56
- class="title-presenter"
57
- presenter={Bind.presenter("titlePresenter")}/>
58
- <div
59
- class="content-presenter"
60
- presenter={Bind.presenter("contentPresenter")}/>
61
- <div
62
- class="command-bar-presenter"
63
- presenter={Bind.presenter("commandPresenter")}/>
64
- </div>);
65
- // this.bind(this.element, "styleClass", [["templateParent", "controlStyle", "frame"]]);
66
- // this.bind(this.element, "styleWidth", [["templateParent", "width"]], false, (v) => v || undefined);
67
- // this.bind(this.element, "styleHeight", [["templateParent", "height"]], false, (v) => v || undefined);
68
- // this.bind(this.element, "styleLeft", [["templateParent", "x"]],
69
- // false, (v) => v >= 0 ? v + "px" : undefined);
70
- // this.bind(this.element, "styleTop", [["templateParent", "y"]],
71
- // false, (v) => v >= 0 ? v + "px" : undefined);
72
- // this.bind(this.element, "styleMarginTop", [["templateParent", "x"]], false, (v) => v >= 0 ? "0" : undefined);
73
- // this.bind(this.element, "styleMarginLeft", [["templateParent", "x"]],
74
- // false, (v) => v >= 0 ? "0" : undefined);
75
- // this.bind(this.element, "styleMarginRight", [["templateParent", "x"]],
76
- // false, (v) => v >= 0 ? "0" : undefined);
77
- // this.bind(this.element, "styleMarginBottom", [["templateParent", "x"]],
78
- // false, (v) => v >= 0 ? "0" : undefined);
79
- // // add title host
80
- // const titlePresenter = document.createElement("div");
81
- // this.bind(titlePresenter, "styleClass", [["templateParent", "controlStyle", "titlePresenter"]]);
82
- // // titleHost.classList.add(style.titleHost.className);
83
- // this.titlePresenter = titlePresenter;
84
- // this.element.appendChild(titlePresenter);
85
-
86
- // // add content presenter
87
- // const cp = document.createElement("div");
88
- // this.bind(cp, "styleClass", [["templateParent", "controlStyle", "content"]]);
89
- // // cp.classList.add(style.content.className);
90
- // this.contentPresenter = cp;
91
- // this.element.appendChild(cp);
92
-
93
- // // create command presenter
94
- // const cdp = document.createElement("div");
95
- // // cdp.classList.add(style.commandBar.className);
96
- // this.bind(cdp, "styleClass", [["templateParent", "controlStyle", "commandBar"]]);
97
- // this.commandPresenter = cdp;
98
- // this.element.appendChild(cdp);
99
-
100
- }
101
-
102
- }
103
-
104
- class AtomWindowTitleTemplate extends AtomControl {
105
-
106
- public get templateParent(): AtomWindow {
107
- return getTemplateParent(this.element) as AtomWindow;
108
- }
109
-
110
- protected create(): void {
111
-
112
- this.render(<div
113
- class="title-host">
114
- <span
115
- class="title"
116
- text={Bind.oneWay(() => this.templateParent.title)}
117
- />
118
- <button
119
- class="close-button"
120
- eventClick={Bind.event(() => this.templateParent.close())}
121
- />
122
- </div>);
123
-
124
- // this.bind(this.element, "styleClass", [["templateParent", "controlStyle", "titleHost"]]);
125
-
126
- // // add title
127
-
128
- // const title = document.createElement("span");
129
- // this.bind(title, "styleClass", [["templateParent", "controlStyle", "title"]]);
130
- // // title.classList.add(style.title.className);
131
- // this.bind(title, "text", [["templateParent", "title"]], false);
132
-
133
- // // add close button
134
- // const closeButton = document.createElement("button");
135
- // this.bind(closeButton, "styleClass", [["templateParent", "controlStyle", "closeButton"]]);
136
- // // closeButton.textContent = "x";
137
-
138
- // this.bindEvent(closeButton, "click", (e) => {
139
- // const w = getTemplateParent(this.element) as AtomWindow;
140
- // w.close();
141
- // });
142
-
143
- // // append title host > title
144
-
145
- // this.append(title);
146
- // this.append(closeButton);
147
- }
148
- }
149
-
150
- export class AtomWindow extends AtomControl {
151
-
152
- public static windowTemplate = XNode.prepare("windowTemplate", true, true);
153
-
154
- public static commandTemplate = XNode.prepare("commandTemplate", true, true);
155
-
156
- public static titleTemplate = XNode.prepare("titleTemplate", true, true);
157
-
158
- public static frameTemplate = XNode.prepare("frameTemplate", true, true);
159
-
160
- public get templateParent() {
161
- return getTemplateParent(this.element);
162
- }
163
-
164
- public title: string = "";
165
-
166
- public width: string = "";
167
-
168
- public height: string = "";
169
-
170
- public x: number = -1;
171
-
172
- public y: number = -1;
173
-
174
- public windowTemplate: IClassOf<AtomControl>;
175
-
176
- public commandTemplate: IClassOf<AtomControl>;
177
-
178
- public titleTemplate: IClassOf<AtomControl> = AtomWindowTitleTemplate;
179
-
180
- public frameTemplate: IClassOf<AtomWindowFrameTemplate> = AtomWindowFrameTemplate;
181
-
182
- private isReady: boolean = false;
183
-
184
- public onPropertyChanged(name: string): void {
185
- switch (name) {
186
- case "windowTemplate":
187
- case "commandTemplate":
188
- case "frameTemplate":
189
- this.invalidate();
190
- break;
191
- }
192
- }
193
-
194
- public close(): void {
195
-
196
- const vm = this.viewModel as AtomWindowViewModel;
197
- if (vm.cancel) {
198
- this.app.runAsync(() => vm.cancel());
199
- return;
200
- }
201
-
202
- const message = `atom-window-cancel:${(this as any).id}`;
203
- const device = this.app.resolve(App);
204
- device.broadcast(message, "cancelled");
205
- }
206
-
207
- public onUpdateUI(): void {
208
- if (!(this.windowTemplate && this.frameTemplate)) {
209
- return;
210
- }
211
-
212
- if (this.isReady) {
213
- return;
214
- }
215
-
216
- this.bind(this.element, "title", [["viewModel", "title"]]);
217
-
218
- // let us create frame first...
219
- const frame = new (this.frameTemplate)(this.app);
220
- const fe = frame.element;
221
-
222
- // setup drag and drop for the frame...
223
- const titleContent = new (this.titleTemplate)(this.app);
224
- (titleContent.element)._templateParent = this;
225
- frame.titlePresenter.appendChild(titleContent.element);
226
-
227
- this.setupDragging(frame.titlePresenter);
228
-
229
- this.element.classList.add("frame-host");
230
-
231
- fe._logicalParent = this.element;
232
- fe._templateParent = this;
233
-
234
- if (!frame.contentPresenter) {
235
- throw new Error("ContentPresenter must be set inside frameTemplate before creating window");
236
- }
237
-
238
- const content = new (this.windowTemplate)(this.app);
239
- (content.element)._templateParent = this;
240
- this.setElementClass(content.element, { content: 1 });
241
- frame.contentPresenter.appendChild(content.element);
242
-
243
- if (this.commandTemplate) {
244
- if (!frame.commandPresenter) {
245
- throw new Error("CommandPresenter must be set inside frameTemplate" +
246
- "before creating window if command template is present");
247
- }
248
- const command = new (this.commandTemplate)(this.app);
249
- (command.element)._templateParent = this;
250
- this.setElementClass(command.element, { "command-bar": 1 });
251
- frame.commandPresenter.appendChild(command.element);
252
- }
253
- this.append(frame);
254
-
255
- // lets center frame...
256
- setTimeout(() => {
257
- this.centerFrame(frame.element);
258
- }, 100);
259
- this.isReady = true;
260
- }
261
-
262
- protected preCreate() {
263
- this.defaultControlStyle = AtomWindowStyle;
264
- this.title = null;
265
- this.width = "";
266
- this.height = "";
267
- this.x = -1;
268
- this.y = -1;
269
- this.windowTemplate = null;
270
- this.commandTemplate = null;
271
- this.titleTemplate = AtomWindowTitleTemplate;
272
- this.frameTemplate = AtomWindowFrameTemplate;
273
- super.preCreate();
274
- this.render(<div
275
- styleClass={Bind.oneTime(() => this.controlStyle.name)}
276
- ></div>);
277
- }
278
-
279
- private centerFrame(e: HTMLElement): void {
280
- /// window is destroyed probably..
281
- if (!this.element) {
282
- return;
283
- }
284
- const parent = this.element.parentElement;
285
- if (parent as any === window || parent as any === document.body) {
286
- return;
287
- }
288
- if (parent.offsetWidth <= 0 || parent.offsetHeight <= 0) {
289
- setTimeout(() => {
290
- this.centerFrame(e);
291
- }, 100);
292
- return;
293
- }
294
-
295
- if (e.offsetWidth <= 0 || e.offsetHeight <= 0) {
296
- setTimeout(() => {
297
- this.centerFrame(e);
298
- }, 100);
299
- return;
300
- }
301
-
302
- const x = (parent.offsetWidth - e.offsetWidth) / 2;
303
- const y = (parent.offsetHeight - e.offsetHeight) / 2;
304
- this.x = x;
305
- this.y = y;
306
- e.style.opacity = "1";
307
- this.element.style.removeProperty("opacity");
308
- }
309
-
310
- private setupDragging(tp: HTMLElement): void {
311
- this.bindEvent(tp, "mousedown", (startEvent: MouseEvent) => {
312
- startEvent.preventDefault();
313
- const disposables: IDisposable[] = [];
314
- // const offset = AtomUI.screenOffset(tp);
315
- const offset = { x: tp.parentElement.offsetLeft, y: tp.parentElement.offsetTop };
316
- const rect: IRect = { x: startEvent.clientX, y: startEvent.clientY };
317
- const cursor = tp.style.cursor;
318
- tp.style.cursor = "move";
319
- disposables.push(this.bindEvent(document.body, "mousemove", (moveEvent: MouseEvent) => {
320
- const { clientX, clientY } = moveEvent;
321
- const dx = clientX - rect.x;
322
- const dy = clientY - rect.y;
323
-
324
- offset.x += dx;
325
- offset.y += dy;
326
-
327
- this.x = offset.x;
328
- this.y = offset.y;
329
-
330
- rect.x = clientX;
331
- rect.y = clientY;
332
- }));
333
- disposables.push(this.bindEvent(document.body, "mouseup", (endEvent: MouseEvent) => {
334
- tp.style.cursor = cursor;
335
- for (const iterator of disposables) {
336
- iterator.dispose();
337
- }
338
- }));
339
- });
340
- }
341
-
342
- }
@@ -1,12 +0,0 @@
1
- import { RegisterSingleton } from "../../di/RegisterSingleton.js";
2
- import { BaseService, Get } from "../../services/http/RestService.js";
3
-
4
- @RegisterSingleton
5
- export class MovieService extends BaseService {
6
-
7
- @Get("@web-atoms/core/dist/web/samples/tabs/views/List.json")
8
- public async countryList(): Promise<any> {
9
- return null;
10
- }
11
-
12
- }
@@ -1,15 +0,0 @@
1
- import WebApp from "../../../web/WebApp.js";
2
- import { MovieList } from "./views/MovieList.js";
3
- import { MovieListViewModel } from "./views/MovieListViewModel.js";
4
-
5
- export class SampleApp extends WebApp {
6
-
7
- public main(): void {
8
- const ml = new MovieList(this);
9
- ml.viewModel = this.get(MovieListViewModel);
10
- document.body.appendChild(ml.element);
11
- }
12
-
13
- }
14
-
15
- const app = new SampleApp();
@@ -1,77 +0,0 @@
1
- import { App } from "../../../../App.js";
2
- import { AtomControl } from "../../../controls/AtomControl.js";
3
- import { AtomGridSplitter } from "../../../controls/AtomGridSplitter.js";
4
- import { AtomGridView } from "../../../controls/AtomGridView.js";
5
- import { AtomItemsControl } from "../../../controls/AtomItemsControl.js";
6
-
7
- export class MovieList extends AtomGridView {
8
-
9
- protected create(): void {
10
-
11
- const style = this.element.style;
12
- style.position = "absolute";
13
- style.left = style.right = style.top = style.bottom = "0";
14
-
15
- this.setPrimitiveValue(this.element, "columns", "30%,5,*");
16
- this.setPrimitiveValue(this.element, "rows", "30,*");
17
-
18
- const header = document.createElement("header");
19
- header.textContent = "Header";
20
- this.setPrimitiveValue(header, "cell", "0:3,0");
21
- this.append(header);
22
-
23
- const ul = new AtomItemsControl(this.app, document.createElement("ul"));
24
- this.append(ul);
25
- ul.itemTemplate = MovieListItemTemplate;
26
- ul.bind(ul.element, "items", [["viewModel", "movies"]], false);
27
- ul.bind(ul.element, "selectedItem", [["viewModel", "selectedMovie"]], true);
28
-
29
- ul.setPrimitiveValue(ul.element, "cell", "0,1");
30
-
31
- // const e = document.createElement("span");
32
- // this.append(e);
33
- // e.style.color = "red";
34
- // this.bind(e, "text", [["viewModel", "errorSelectedMovie"]]);
35
-
36
- const right = document.createElement("div");
37
- right.textContent = "right";
38
- right.style.backgroundColor = "green";
39
- this.setPrimitiveValue(right, "cell", "2,1");
40
- this.append(right);
41
-
42
- const splitter = new AtomGridSplitter(this.app);
43
- this.append(splitter);
44
- splitter.setPrimitiveValue(splitter.element, "cell", "1,1");
45
- }
46
- }
47
-
48
- class MovieListItemTemplate extends AtomControl {
49
-
50
- constructor(app: App, e?: HTMLElement) {
51
- super(app, e || document.createElement("li"));
52
- }
53
-
54
- protected create(): void {
55
- this.element.style.margin = "2px";
56
- const span = document.createElement("span");
57
- this.append(span);
58
- this.bind(span, "text", [["data", "label"], ["data", "category"]], false,
59
- (label, category) => `${label} (${category})`);
60
- this.bind(span, "styleFontWeight",
61
- [["data"], ["viewModel", "selectedMovie"]], false,
62
- (d, s) => {
63
- return d === s ? "bold" : "";
64
- });
65
- this.bindEvent(span, "click", (e) => {
66
- this.viewModel.onItemClick(this.data);
67
- });
68
-
69
- const button = document.createElement("button");
70
- this.append(button);
71
- button.textContent = "Delete";
72
- button.style.marginLeft = "10px";
73
- this.bindEvent(button, "click", (e) => {
74
- this.viewModel.onDelete(this.data);
75
- });
76
- }
77
- }
@@ -1,52 +0,0 @@
1
- import { App } from "../../../../App.js";
2
- import { AtomBinder } from "../../../../core/AtomBinder.js";
3
- import { BindableProperty } from "../../../../core/BindableProperty.js";
4
- import { Inject } from "../../../../di/Inject.js";
5
- import { AtomViewModel, Validate } from "../../../../view-model/AtomViewModel.js";
6
- import { WindowService } from "../../../../web/services/WindowService.js";
7
-
8
- export interface IMovie {
9
- label: string;
10
- value?: string;
11
- category: string;
12
- }
13
-
14
- export class MovieListViewModel extends AtomViewModel {
15
-
16
- @BindableProperty
17
- public movies: IMovie[] = [
18
- { label: "First", category: "None" },
19
- { label: "True Lies", category: "Action" },
20
- { label: "Jurassic Park", category: "Adventure" },
21
- { label: "Big", category: "Kids" },
22
- { label: "Inception", category: "Suspense" },
23
- { label: "Last", category: "None" },
24
- ];
25
-
26
- @BindableProperty
27
- public selectedMovie: IMovie;
28
-
29
- constructor(
30
- @Inject app: App,
31
- @Inject private windowService: WindowService) {
32
- super(app);
33
- }
34
-
35
- @Validate
36
- public get errorSelectedMovie(): string {
37
- return this.selectedMovie ? "" : "Please select any movie";
38
- }
39
-
40
- public onItemClick(data: IMovie): void {
41
- this.selectedMovie = data;
42
- }
43
-
44
- public async onDelete(data: IMovie): Promise<any> {
45
- if (! (await this.windowService.confirm("Are you sure you want to delete?", "Confirm"))) {
46
- return;
47
- }
48
- AtomBinder.removeItem(this.movies, data);
49
- await this.windowService.alert("Movie deleted successfully.");
50
- }
51
-
52
- }
@@ -1,20 +0,0 @@
1
- import { NavigationService } from "../../../services/NavigationService.js";
2
- import { AtomTabbedPage } from "../../controls/AtomTabbedPage.js";
3
- import WebApp from "../../WebApp.js";
4
-
5
- export class TabApp extends WebApp {
6
- public main(): void {
7
- const page = new AtomTabbedPage(this);
8
- this.root = page;
9
-
10
- setTimeout(async () => {
11
- const nav = this.resolve(NavigationService) as NavigationService;
12
- await nav.openPage("web-atoms-core/dist/web/samples/tabs/views/Page1", {
13
- message: "Page 1"
14
- });
15
- await nav.openPage("web-atoms-core/dist/web/samples/tabs/views/Page1", {
16
- message: "Page 2"
17
- });
18
- }, 1000);
19
- }
20
- }
@@ -1,10 +0,0 @@
1
- [
2
- {
3
- "label": "Movie 1",
4
- "value": "movie1"
5
- },
6
- {
7
- "label": "Movie 2",
8
- "value": "movie2"
9
- }
10
- ]
@@ -1,6 +0,0 @@
1
- import WebImage from "../../../../core/WebImage.js";
2
-
3
- // tslint:disable
4
- declare var UMD: any;
5
- export default new WebImage(UMD.resolvePath("web-atoms-core/dist/web/samples/tabs/views/List.json"));
6
-
@@ -1,9 +0,0 @@
1
- import WebImage from "../../../../core/WebImage.js";
2
-
3
- // tslint:disable
4
-
5
- const base64 = ["Ww0KICAgIHsNCiAgICAgICAgImxhYmVsIjogIk1vdmllIDEiLA0KICAgICAgICAidmFsdWUiOiAibW92",
6
- "aWUxIg0KICAgIH0sDQogICAgew0KICAgICAgICAibGFiZWwiOiAiTW92aWUgMiIsDQogICAgICAgICJ2",
7
- "YWx1ZSI6ICJtb3ZpZTIiDQogICAgfQ0KXQ=="];
8
-
9
- export default new WebImage(`data:image/jpeg;base64,${base64.join("")}`);
@@ -1,49 +0,0 @@
1
- import { App } from "../../../../App.js";
2
- import Bind from "../../../../core/Bind.js";
3
- import { BindableProperty } from "../../../../core/BindableProperty.js";
4
- import XNode from "../../../../core/XNode.js";
5
- import { Inject } from "../../../../di/Inject.js";
6
- import { AtomWindowViewModel } from "../../../../view-model/AtomWindowViewModel.js";
7
- import { AtomGridView } from "../../../controls/AtomGridView.js";
8
- import { AtomListBox } from "../../../controls/AtomListBox.js";
9
- import { MovieService } from "../../MovieService.js";
10
-
11
- export default class Page1 extends AtomGridView {
12
- protected create(): void {
13
-
14
- this.viewModel = this.resolve(Page1ViewModel);
15
-
16
- this.columns = "45%,*,45%";
17
- this.rows = "45%,*,45%";
18
-
19
- this.render(
20
- <AtomListBox
21
- row={1}
22
- column={1}>
23
- <AtomListBox.itemTemplate>
24
- <span text={Bind.oneWay((x) => x.data.label)}></span>
25
- </AtomListBox.itemTemplate>
26
- </AtomListBox>);
27
- }
28
- }
29
-
30
- class Page1ViewModel extends AtomWindowViewModel {
31
-
32
- @BindableProperty
33
- public message: string;
34
-
35
- @BindableProperty
36
- public items: any;
37
-
38
- constructor(
39
- @Inject app: App,
40
- @Inject public readonly movieService: MovieService
41
- ) {
42
- super(app);
43
- }
44
-
45
- public async init(): Promise<any> {
46
- this.items = await this.movieService.countryList();
47
- this.closeWarning = "Are you sure you want to close this?";
48
- }
49
- }
@@ -1,34 +0,0 @@
1
- import { App } from "../../../../App.js";
2
- import { Inject } from "../../../../di/Inject.js";
3
- import { NavigationService } from "../../../../services/NavigationService.js";
4
- import { AtomViewModel } from "../../../../view-model/AtomViewModel.js";
5
- import { AtomTabbedPage } from "../../../controls/AtomTabbedPage.js";
6
-
7
- export default class TabHost extends AtomTabbedPage {
8
-
9
- protected create(): void {
10
- this.tabChannelName = "app";
11
- this.viewModel = this.resolve(TabHostViewModel);
12
- }
13
- }
14
-
15
- class TabHostViewModel extends AtomViewModel {
16
-
17
- constructor(
18
- @Inject app: App,
19
- @Inject private nav: NavigationService) {
20
- super(app);
21
- }
22
-
23
- public async init(): Promise<any> {
24
- await this.nav.openPage("tab://app/web-atoms-core/dist/web/samples/tabs/views/Page1", {
25
- message: "Page 1",
26
- title: "Page 1"
27
- });
28
- await this.nav.openPage("tab://app/web-atoms-core/dist/web/samples/tabs/views/Page1", {
29
- message: "Page 2",
30
- title: "Page 2"
31
- });
32
-
33
- }
34
- }
@@ -1,16 +0,0 @@
1
- import Bind from "../../../core/Bind.js";
2
- import XNode from "../../../core/XNode.js";
3
- import { NavigationService } from "../../../services/NavigationService.js";
4
- import { AtomControl } from "../../controls/AtomControl.js";
5
-
6
- export default class WindowSample extends AtomControl {
7
-
8
- public create() {
9
- const ns = this.resolve(NavigationService);
10
- this.render(<div>
11
- <button eventClick={Bind.event(() => ns.alert("Alert"))} >Alert</button>
12
- <button eventClick={Bind.event(() => ns.confirm("Confirm"))} >Confirm</button>
13
- </div>);
14
- }
15
-
16
- }