@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,69 +0,0 @@
1
- import { BindableProperty } from "../../core/BindableProperty.js";
2
- import { AtomUI, ChildEnumerator } from "../../web/core/AtomUI.js";
3
- import { AtomListBoxStyle } from "../styles/AtomListBoxStyle.js";
4
- import { AtomControl } from "./AtomControl.js";
5
- import { AtomItemsControl } from "./AtomItemsControl.js";
6
-
7
- export class AtomListBox extends AtomItemsControl {
8
-
9
- public selectItemOnClick: boolean;
10
-
11
- protected preCreate(): void {
12
- this.selectItemOnClick = true;
13
- super.preCreate();
14
- this.defaultControlStyle = AtomListBoxStyle;
15
- this.registerItemClick();
16
- this.runAfterInit(() => this.setElementClass(this.element, {
17
- [this.controlStyle.name]: 1,
18
- "atom-list-box": 1
19
- }));
20
- }
21
-
22
- protected registerItemClick(): void {
23
- this.bindEvent(this.element, "click", (e) => {
24
- const p = this.atomParent(e.target as HTMLElement);
25
- if (p === this) {
26
- return;
27
- }
28
- if (p.element._logicalParent === this.element) {
29
- // this is child..
30
- const data = p.data;
31
- if (!data) {
32
- return;
33
- }
34
- if (this.selectItemOnClick) {
35
- this.toggleSelection(data);
36
- const ce = new CustomEvent("selectionChanged", {
37
- bubbles: false,
38
- cancelable: false,
39
- detail: data });
40
- this.element.dispatchEvent(ce);
41
- }
42
- }
43
- });
44
- }
45
-
46
- protected createChild(df: DocumentFragment, data: any): AtomControl {
47
- const child = super.createChild(df, data);
48
- child.bind(child.element, "styleClass",
49
- [
50
- ["this", "version"],
51
- ["data"],
52
- ["this", "selectedItems"]
53
- ],
54
- false,
55
- (version, itemData, selectedItems: any[]) => {
56
- return {
57
- "list-item": true,
58
- "item": true,
59
- "selected-item": selectedItems
60
- && selectedItems.find((x) => x === itemData),
61
- "selected-list-item": selectedItems
62
- && selectedItems.find((x) => x === itemData)
63
- };
64
- },
65
- this);
66
- return child;
67
- }
68
-
69
- }
@@ -1,45 +0,0 @@
1
- import Bind from "../../core/Bind.js";
2
- import { BindableProperty } from "../../core/BindableProperty.js";
3
- import XNode from "../../core/XNode.js";
4
- import AtomNotificationStyle from "../styles/AtomNotificationStyle.js";
5
- import { AtomControl } from "./AtomControl.js";
6
-
7
- export default class AtomNotification extends AtomControl {
8
-
9
- @BindableProperty
10
- public timeout: number = 5000;
11
-
12
- private timeoutKey: any = null;
13
-
14
- public onPropertyChanged(name: keyof AtomNotification): void {
15
- switch (name) {
16
- case "timeout":
17
- this.setupTimeout();
18
- break;
19
- }
20
- }
21
-
22
- public create(): void {
23
- this.defaultControlStyle = AtomNotificationStyle;
24
- this.render(<div
25
- formattedText={Bind.oneWay(() => this.viewModel.message )}
26
- timeout={Bind.oneWay(() => this.viewModel.timeout || 5000)}
27
- styleClass={Bind.oneWay(() => ({
28
- [this.controlStyle.name]: 1,
29
- error: this.viewModel.type && /error/i.test(this.viewModel.type),
30
- warning: this.viewModel.type && /warn/i.test(this.viewModel.type),
31
- }))}
32
- />);
33
- }
34
-
35
- protected setupTimeout(): void {
36
- if (this.timeoutKey) {
37
- clearTimeout(this.timeoutKey);
38
- }
39
- this.timeoutKey = setTimeout(() => {
40
- if (this.element) {
41
- this.app.broadcast(`atom-window-close:${(this as any).id}`, "");
42
- }
43
- }, this.timeout);
44
- }
45
- }
@@ -1,164 +0,0 @@
1
- import { App } from "../../App.js";
2
- import { BindableProperty } from "../../core/BindableProperty.js";
3
- import { CancelToken, IClassOf } from "../../core/types.js";
4
- import XNode from "../../core/XNode.js";
5
- import { IPageOptions, NavigationService } from "../../services/NavigationService.js";
6
- import AtomPageLinkStyle from "../styles/AtomPageLinkStyle.js";
7
- import { AtomStyle } from "../styles/AtomStyle.js";
8
- import { IStyleDeclaration } from "../styles/IStyleDeclaration.js";
9
- import { AtomControl } from "./AtomControl.js";
10
-
11
- export class AtomPageLink extends AtomControl {
12
-
13
- public static page = XNode.prepare("page", true, true);
14
-
15
- public page: string | IClassOf<AtomControl>;
16
-
17
- public parameters: any;
18
-
19
- public isOpen: boolean;
20
-
21
- public cancelToken: CancelToken;
22
-
23
- public options: IPageOptions;
24
-
25
- /**
26
- * Fired after the result was received from popup/window successfully
27
- */
28
- public eventResult: any;
29
-
30
- /**
31
- * Fired after popup/window was cancelled
32
- */
33
- public eventError: any;
34
-
35
- /**
36
- * Fired before opening popup/window.
37
- * In the event's detail object, you must set parameters property as shown below...
38
- * eventGetParameters={Bind.event((e) => e.detail.parameters = ({}))}
39
- */
40
- public eventGetParameters: any;
41
-
42
- /**
43
- * Block opening Popup/Page again till the opened page is closed or cancelled.
44
- * If set true, toggle will not work. Default is false.
45
- */
46
- public modal: boolean;
47
-
48
- /**
49
- * Setting Toggle (default true) true will close the already opened Popup/window, otherwise it will
50
- * open a new window if Modal is false.
51
- */
52
- public toggle: boolean;
53
-
54
- constructor(app: App, e?: HTMLElement) {
55
- super(app, e || document.createElement("span"));
56
- }
57
-
58
- public preCreate(): void {
59
-
60
- this.page = null;
61
-
62
- this.parameters = null;
63
-
64
- this.isOpen = false;
65
-
66
- this.options = null;
67
-
68
- this.modal = false;
69
-
70
- this.toggle = true;
71
-
72
- this.defaultControlStyle = AtomPageLinkStyle;
73
-
74
- super.preCreate();
75
-
76
- this.bindEvent(
77
- this.element,
78
- "click",
79
- () => {
80
- if (this.modal) {
81
- return this.openPopup();
82
- }
83
- return this.app.runAsync(() => this.openPopup());
84
- });
85
-
86
- this.bind(
87
- this.element,
88
- "styleClass",
89
- [["this", "isOpen"]],
90
- false ,
91
- (v) => ({
92
- [this.controlStyle.name]: 1,
93
- "is-open": v,
94
- "atom-page-link": 1
95
- }),
96
- this);
97
-
98
- this.registerDisposable({
99
- dispose: () => {
100
- const ct = this.cancelToken;
101
- if (ct) {
102
- ct.cancel();
103
- }
104
- }
105
- });
106
- }
107
-
108
- protected async openPopup(): Promise<void> {
109
-
110
- if (this.cancelToken) {
111
- if (this.toggle) {
112
- this.cancelToken.cancel();
113
- this.cancelToken = null;
114
- this.isOpen = false;
115
- return;
116
- } else {
117
- this.cancelToken.dispose();
118
- }
119
- }
120
-
121
- this.cancelToken = new CancelToken();
122
-
123
- let o: IPageOptions = null;
124
-
125
- try {
126
- const navigationService = this.app.resolve(NavigationService) as NavigationService;
127
- const pt = this.page;
128
- if (!pt) {
129
- // tslint:disable-next-line:no-console
130
- console.error("No popup template specified in PopupButton");
131
- return;
132
- }
133
- this.isOpen = true;
134
- o = this.options ?
135
- { ... this.options, cancelToken: this.cancelToken } :
136
- { cancelToken: this.cancelToken };
137
-
138
- o.onInit = (view: AtomControl) => {
139
- view.setLocalValue(view.element, "styleClass", `${this.controlStyle.name} page` );
140
- };
141
-
142
- const getParametersEvent = new CustomEvent("getParameters", { detail: {} as any});
143
-
144
- this.element.dispatchEvent(getParametersEvent);
145
-
146
- const p = getParametersEvent.detail.parameters || this.parameters;
147
-
148
- const result = await navigationService.openPage(pt, p, o);
149
-
150
- this.element.dispatchEvent(new CustomEvent("result", { detail: result }));
151
-
152
- } catch (e) {
153
- // if element is disposed or null, ignore
154
- if (this.element) {
155
- this.element.dispatchEvent(new CustomEvent("error", { detail: e }));
156
- }
157
- } finally {
158
- this.cancelToken = null;
159
- this.isOpen = false;
160
- if (o) { o.onInit = null; }
161
- }
162
- }
163
-
164
- }
@@ -1,320 +0,0 @@
1
- import { App } from "../../App.js";
2
- import { AtomBinder } from "../../core/AtomBinder.js";
3
- import { AtomDisposableList } from "../../core/AtomDisposableList.js";
4
- import { AtomList } from "../../core/AtomList.js";
5
- import { AtomLoader } from "../../core/AtomLoader.js";
6
- import { AtomOnce } from "../../core/AtomOnce.js";
7
- import { AtomUri } from "../../core/AtomUri.js";
8
- import Bind from "../../core/Bind.js";
9
- import { BindableProperty } from "../../core/BindableProperty.js";
10
- import { StringHelper } from "../../core/StringHelper.js";
11
- import { IClassOf, IDisposable, INotifyPropertyChanged } from "../../core/types.js";
12
- import XNode from "../../core/XNode.js";
13
- import { Inject } from "../../di/Inject.js";
14
- import { NavigationService } from "../../services/NavigationService.js";
15
- import { AtomViewModel, Watch } from "../../view-model/AtomViewModel.js";
16
- import { AtomWindowViewModel } from "../../view-model/AtomWindowViewModel.js";
17
- import bindProperty from "../../view-model/bindProperty.js";
18
- import bindUrlParameter from "../../view-model/bindUrlParameter.js";
19
- import { AtomUI } from "../core/AtomUI.js";
20
- import { WindowService } from "../services/WindowService.js";
21
- import { AtomTabbedPageStyle } from "../styles/AtomTabbedPageStyle.js";
22
- import { AtomControl } from "./AtomControl.js";
23
- import { AtomGridView } from "./AtomGridView.js";
24
- import { AtomItemsControl } from "./AtomItemsControl.js";
25
- import { AtomPage } from "./AtomPage.js";
26
-
27
- const BindPage = Bind.forData<AtomPage>();
28
-
29
- export class AtomTabbedPage extends AtomControl
30
- implements INotifyPropertyChanged {
31
-
32
- public static titleTemplate = XNode.prepare("titleTemplate", true, true);
33
-
34
- declare public localViewModel: AtomTabViewModel;
35
-
36
- public tabChannelName: string;
37
-
38
- public titleTemplate: IClassOf<AtomControl>;
39
-
40
- public presenter: HTMLElement;
41
-
42
- private mWindowService: WindowService;
43
- protected get windowService(): WindowService {
44
- return this.mWindowService || (this.mWindowService = this.resolve(WindowService));
45
- }
46
-
47
- private mSelectedPage: AtomPage;
48
- public get selectedPage(): AtomPage {
49
- return this.mSelectedPage;
50
- }
51
- public set selectedPage(value: AtomPage) {
52
- this.mSelectedPage = value;
53
-
54
- if (value && value.element) {
55
- const pe = value.element.parentElement;
56
- if (pe !== this.presenter) {
57
- // const p = document.createElement("div");
58
- // const s = p.style;
59
- // p.className = "page-host";
60
- // p.appendChild(value.element);
61
- this.presenter.appendChild(value.element);
62
- const ve = value;
63
-
64
- value.bind(value.element,
65
- "styleDisplay",
66
- [["this", "selectedPage"]], false, (v) => v === ve ? "" : "none", this);
67
- }
68
- }
69
-
70
- this.invalidate();
71
-
72
- AtomBinder.refreshValue(this, "selectedPage");
73
- }
74
-
75
- constructor(app: App, e?: HTMLElement) {
76
- super(app, e ?? document.createElement("section"));
77
- }
78
-
79
- protected preCreate(): void {
80
- super.preCreate();
81
- this.defaultControlStyle = AtomTabbedPageStyle;
82
- this.tabChannelName = "app";
83
- this.titleTemplate = null;
84
- this.mSelectedPage = null;
85
- this.runAfterInit(() => {
86
- this.setPrimitiveValue(this.element, "styleClass", `atom-tabbed-page ${this.controlStyle.name}`);
87
- });
88
- this.localViewModel = this.resolve(AtomTabViewModel, () => ({ owner: this }));
89
-
90
- this.render(<section
91
- selectedPage={Bind.twoWays(() => this.localViewModel.selectedPage)}>
92
- <AtomTabbedPage.titleTemplate>
93
- <div styleClass={BindPage.oneWay((x) => ({
94
- "tab-item": 1,
95
- "selected-tab-item": x.data === this.localViewModel.selectedPage
96
- }))}>
97
- <div
98
- eventClick={BindPage.event((x) => this.localViewModel.selectedPage = x.data)}
99
- text={BindPage.oneWay((x) => (x.data as any).viewModelTitle || x.data.title)}></div>
100
- <img
101
- class="close-button"
102
- eventClick={BindPage.event((x) => this.localViewModel.closePage(x.data))}/>
103
- </div>
104
- </AtomTabbedPage.titleTemplate>
105
- <AtomItemsControl
106
- class="tabs"
107
- allowMultipleSelection={false}
108
- allowSelectFirst={true}
109
- items={Bind.oneWay(() => this.localViewModel.pages)}
110
- selectedItem={Bind.twoWays(() => this.localViewModel.selectedPage)}
111
- itemTemplate={Bind.oneWay(() => this.titleTemplate)}></AtomItemsControl>
112
- <div
113
- class="presenter page-host atom-tabbed-page-host"
114
- presenter={Bind.presenter("presenter")}></div>
115
- </section>);
116
- this.registerDisposable(this.windowService.registerHostForWindow((e) => this.getParentHost(e)));
117
-
118
- // this.windowService.currentTarget = this.presenter;
119
- }
120
-
121
- private getParentHost(e: HTMLElement): HTMLElement {
122
- while (e) {
123
- const pe = e._logicalParent || e.parentElement;
124
- if (pe === this.presenter) {
125
- return e.parentElement;
126
- }
127
- if (!pe) {
128
- return null;
129
- }
130
- e = pe;
131
- }
132
- }
133
- }
134
-
135
- interface ITabState {
136
- urls: string[];
137
- selectedUrl: string;
138
- }
139
-
140
- class AtomTabViewModel extends AtomViewModel {
141
-
142
- @BindableProperty
143
- public pages: AtomList<AtomPage>;
144
-
145
- @BindableProperty
146
- public selectedPage: AtomPage;
147
-
148
- @BindableProperty
149
- public selectedUrl: string;
150
-
151
- public channel: string;
152
-
153
- public storageKey: string;
154
-
155
- @BindableProperty
156
- public tabState: ITabState;
157
-
158
- private pageUpdater = new AtomOnce();
159
-
160
- @Inject
161
- private navigationService: NavigationService;
162
-
163
- constructor(@Inject app: App, private owner: AtomTabbedPage) {
164
- super(app);
165
-
166
- this.pages = new AtomList();
167
-
168
- bindProperty(
169
- this,
170
- this,
171
- "selectedUrl",
172
- this,
173
- [["selectedPage"]], {
174
- fromSource: (v: any): any => {
175
- return v.tag;
176
- },
177
- fromTarget: (v: any): any => {
178
- if (!this.pages) {
179
- return null;
180
- }
181
- return this.pages.find((p) => p.tag === v);
182
- }
183
- });
184
-
185
- bindUrlParameter(this, "selectedUrl", "url");
186
-
187
- }
188
-
189
- public async init(): Promise<any> {
190
-
191
- const ch = this.owner.tabChannelName;
192
- this.storageKey = `${this.app.contextId}_${ch}`;
193
-
194
- const d = this.navigationService.registerNavigationHook(
195
- (uri, { target }) => {
196
- if (
197
- target === this.owner.tabChannelName ||
198
- (uri.protocol === "tab:" && uri.host === this.owner.tabChannelName)) {
199
- return this.loadPageForReturn(uri);
200
- }
201
- }
202
- );
203
- this.registerDisposable(d);
204
-
205
- const urls = sessionStorage.getItem(this.storageKey) || "null";
206
- const urlState: ITabState = JSON.parse(urls) || {
207
- name,
208
- urls: [],
209
- selectedUrl: null
210
- };
211
- for (const iterator of urlState.urls) {
212
- const page = await this.loadPage(new AtomUri(iterator), true);
213
- if (page.tag === urlState.selectedUrl) {
214
- this.pageUpdater.run(() => {
215
- this.selectedPage = page;
216
- });
217
- }
218
- }
219
-
220
- if (!this.selectedPage) {
221
- this.selectedPage = this.pages[0];
222
- }
223
- }
224
-
225
- @Watch
226
- public watchSelectedPage(): void {
227
- this.saveState(this.selectedPage);
228
- }
229
-
230
- public closePage(page: AtomPage): void {
231
- this.app.runAsync(() => this.navigationService.remove(page));
232
- }
233
-
234
- protected saveState(a?: any): void {
235
- const state: ITabState = {
236
- urls: this.pages.map((p) => p.tag),
237
- selectedUrl: this.selectedUrl,
238
- };
239
- sessionStorage.setItem(this.storageKey, JSON.stringify(state));
240
- }
241
-
242
- protected async loadPageForReturn(url: AtomUri): Promise<any> {
243
- const p = await this.loadPage(url, false);
244
- try {
245
- return await (p as any).returnPromise;
246
- } catch (ex) {
247
- // this will prevent warning in chrome for unhandled exception
248
- if ((ex.message ? ex.message : ex) === "cancelled") {
249
- // tslint:disable-next-line: no-console
250
- console.warn(ex);
251
- return;
252
- }
253
- throw ex;
254
- }
255
- }
256
-
257
- protected async loadPage(
258
- url: AtomUri,
259
- doNotSetSelected: boolean): Promise<AtomPage> {
260
-
261
- const uriString = url.toString();
262
- const ws = this.navigationService as WindowService;
263
-
264
- const existing = this.pages.find((x) => x.tag === uriString);
265
- if (existing) {
266
- if (!doNotSetSelected) {
267
- if (this.selectedPage !== existing) {
268
- this.selectedPage = existing;
269
- // ws.currentTarget = existing.element;
270
- }
271
- }
272
- return existing;
273
- }
274
-
275
- // const popupType = await UMD.resolveViewClassAsync(url.path);
276
- // const page: AtomPage = (new (popupType)(this.app)) as AtomPage;
277
- const { view: page, disposables } =
278
- await AtomLoader.loadView<AtomPage>(url, this.app, true, () => new AtomWindowViewModel(this.app));
279
- page.title ||= StringHelper.fromPascalToTitleCase(page.constructor.name);
280
- page.tag = uriString;
281
- if (url.query && url.query.title) {
282
- page.title ||= url.query.title.toString();
283
- }
284
- (page as any).viewModelTitle = null;
285
- page.bind(page.element, "viewModelTitle", [["viewModel", "title"]]);
286
-
287
- page.bind(page.element,
288
- "styleDisplay",
289
- [["this", "selectedPage"]],
290
- false,
291
- (v) => v === page ? "" : "none", this);
292
-
293
- this.pages.add(page);
294
-
295
- if (!doNotSetSelected) {
296
- this.selectedPage = page;
297
- }
298
-
299
- const e = page.element;
300
-
301
- // ws.currentTarget = e;
302
-
303
- disposables.add(() => {
304
- const index = this.pages.indexOf(page);
305
- if (this.pages.length <= 1 && index <= 0) {
306
- return;
307
- }
308
- this.pages.remove(page);
309
- e.remove();
310
- // ws.currentTarget = null;
311
- if (this.selectedPage === page) {
312
- this.selectedPage = this.pages[index - 1];
313
- }
314
- });
315
-
316
- this.saveState();
317
- return page;
318
- }
319
-
320
- }
@@ -1,41 +0,0 @@
1
- import { App } from "../../App.js";
2
- import { AtomToggleButtonBarStyle } from "../styles/AtomToggleButtonBarStyle.js";
3
- import { AtomControl } from "./AtomControl.js";
4
- import { AtomItemsControl } from "./AtomItemsControl.js";
5
- import { AtomListBox } from "./AtomListBox.js";
6
-
7
- export class AtomToggleButtonBar extends AtomListBox {
8
-
9
- constructor(app: App, e?: HTMLElement) {
10
- super(app, e || document.createElement("ul"));
11
- }
12
-
13
- protected preCreate(): void {
14
- super.preCreate();
15
- this.allowMultipleSelection = false;
16
- this.allowSelectFirst = true;
17
- this.itemTemplate = AtomToggleButtonBarItemTemplate;
18
- this.defaultControlStyle = AtomToggleButtonBarStyle;
19
- this.registerItemClick();
20
- this.runAfterInit(() => this.setElementClass(this.element, {
21
- [this.controlStyle.name]: 1,
22
- "atom-toggle-button-bar": 1
23
- }, true ));
24
- }
25
-
26
- }
27
-
28
- class AtomToggleButtonBarItemTemplate extends AtomControl {
29
-
30
- constructor(app: App, e?: HTMLElement) {
31
- super(app, e || document.createElement("li"));
32
- }
33
-
34
- protected create(): void {
35
- this.bind(this.element, "text", [["data"]], false, (v) => {
36
- const p = this.parent as AtomItemsControl;
37
- return v[p.labelPath];
38
- });
39
- }
40
-
41
- }
@@ -1,60 +0,0 @@
1
- import { AtomBinder } from "../../core/AtomBinder.js";
2
- import { AtomLoader } from "../../core/AtomLoader.js";
3
- import { AtomUri } from "../../core/AtomUri.js";
4
- import { BindableProperty } from "../../core/BindableProperty.js";
5
- import { IClassOf } from "../../core/types.js";
6
- import { JsonService } from "../../services/JsonService.js";
7
- import { AtomContentControl } from "./AtomContentControl.js";
8
- import { AtomControl } from "./AtomControl.js";
9
- import { AtomItemsControl } from "./AtomItemsControl.js";
10
-
11
- export class AtomViewPager extends AtomItemsControl {
12
-
13
- public dispose(e?: HTMLElement): void {
14
- if (!e) {
15
- for (const iterator of this.items) {
16
- iterator.dispose();
17
- }
18
- }
19
- this.selectedItem = null;
20
- super.dispose(e);
21
- }
22
-
23
- public onCollectionChanged(): void {
24
- // do nothing...
25
- }
26
-
27
- protected create(): void {
28
- super.create();
29
-
30
- const eStyle = this.element.style;
31
- eStyle.position = "absolute";
32
- eStyle.left = eStyle.right = eStyle.bottom = eStyle.top = "0";
33
-
34
- const cc = new AtomContentControl(this.app);
35
- this.append(cc);
36
- const style = cc.element.style;
37
- style.position = "absolute";
38
- style.top = style.left = style.right = style.bottom = "0";
39
-
40
- cc.bind(cc.element, "content", [["this", "selectedItem"]], false, (si) => {
41
- if (!si) {
42
- return undefined;
43
- }
44
- if (si.view) {
45
- return si.view;
46
- }
47
- this.app.runAsync( async () => {
48
- const { view: ctrl } = await AtomLoader.loadView<AtomControl>(new AtomUri(si.value), this.app, false);
49
- si.view = ctrl;
50
- ctrl.element._logicalParent = this.element;
51
- AtomBinder.refreshValue(this, "selectedItem");
52
- si.dispose = () => {
53
- ctrl.dispose();
54
- ctrl.element._logicalParent = null;
55
- };
56
- });
57
- return undefined;
58
- }, this);
59
- }
60
- }