@web-atoms/core 2.6.14 → 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,79 +0,0 @@
1
- import { App } from "../../App.js";
2
- import { IDisposable } from "../../core/types.js";
3
- import { Inject } from "../../di/Inject.js";
4
- import { RegisterSingleton } from "../../di/RegisterSingleton.js";
5
- import { BusyIndicatorService } from "../../services/BusyIndicatorService.js";
6
- import { NavigationService } from "../../services/NavigationService.js";
7
- import { AtomControl } from "../controls/AtomControl.js";
8
- import { cssNumberToString } from "../styles/StyleBuilder.js";
9
- import { WindowService } from "./WindowService.js";
10
-
11
- @RegisterSingleton
12
- export class WebBusyIndicatorService extends BusyIndicatorService {
13
-
14
- @Inject
15
- private navigationService: NavigationService;
16
-
17
- @Inject
18
- private app: App;
19
-
20
- private zIndex: number = 50000;
21
-
22
- private indicators: number = 0;
23
-
24
- public createIndicator(): Disposable {
25
-
26
- const host = document.createElement("div");
27
- const popup = new AtomControl(this.app, host);
28
- host.className = "indicator-host";
29
-
30
- const span = document.createElement("i");
31
-
32
- const divStyle = host.style;
33
- divStyle.position = "absolute";
34
- divStyle.overflow = "hidden";
35
- divStyle.left = divStyle.right = divStyle.bottom = divStyle.top = "0";
36
- divStyle.zIndex = (this.zIndex ++) + "";
37
- const spanStyle = span.style;
38
- spanStyle.position = "absolute";
39
- spanStyle.margin = "auto";
40
- spanStyle.width = "16px";
41
- spanStyle.height = "16px";
42
- spanStyle.overflow = "hidden";
43
- spanStyle.maxHeight = "100%";
44
- spanStyle.maxWidth = "100%";
45
- spanStyle.left = spanStyle.right = spanStyle.bottom = spanStyle.top = "0";
46
- // span.src = ModuleFiles.src.web.images.busy_gif;
47
- span.className = "fas fa-spinner fa-spin";
48
-
49
- host.appendChild(span);
50
-
51
- const ws = this.navigationService as WindowService;
52
-
53
- const e = ws.getHostForElement();
54
-
55
- if (e) {
56
- e.appendChild(host);
57
-
58
- } else {
59
- document.body.appendChild(host);
60
- ws.refreshScreen();
61
- popup.bind(host, "styleLeft", [["this", "scrollLeft"]], false, cssNumberToString, ws.screen);
62
- popup.bind(host, "styleTop", [["this", "scrollTop"]], false, cssNumberToString, ws.screen);
63
- popup.bind(host, "styleWidth", [["this", "width"]], false, cssNumberToString, ws.screen);
64
- popup.bind(host, "styleHeight", [["this", "height"]], false, cssNumberToString, ws.screen);
65
- }
66
-
67
- popup.registerDisposable({
68
- dispose: () => {
69
- host.remove();
70
- }
71
- });
72
-
73
- return {
74
- [Symbol.dispose]() {
75
- popup.dispose();
76
- }
77
- }
78
- }
79
- }
@@ -1,500 +0,0 @@
1
- import { App } from "../../App.js";
2
- import { Atom } from "../../Atom.js";
3
- import { AtomLoader } from "../../core/AtomLoader.js";
4
- import { AtomUri } from "../../core/AtomUri.js";
5
- import FormattedError from "../../core/FormattedError.js";
6
- import FormattedString from "../../core/FormattedString.js";
7
- import { IScreen, IScreenType } from "../../core/IScreen.js";
8
- import { ArrayHelper, CancelToken, IClassOf, IDisposable, INameValuePairs } from "../../core/types.js";
9
- import { Inject } from "../../di/Inject.js";
10
- import { RegisterSingleton } from "../../di/RegisterSingleton.js";
11
- import { Scope, ServiceCollection } from "../../di/ServiceCollection.js";
12
- import { JsonService } from "../../services/JsonService.js";
13
- import { IPageOptions, NavigationService, NotifyType } from "../../services/NavigationService.js";
14
- import ReferenceService, { ObjectReference } from "../../services/ReferenceService.js";
15
- import { AtomWindowViewModel } from "../../view-model/AtomWindowViewModel.js";
16
- import { AtomUI } from "../../web/core/AtomUI.js";
17
- import AtomAlertWindow from "../controls/AtomAlertWindow.js";
18
- import { AtomControl } from "../controls/AtomControl.js";
19
- import AtomNotification from "../controls/AtomNotification.js";
20
- import { AtomWindow } from "../controls/AtomWindow.js";
21
- import { AtomPopupStyle } from "../styles/AtomPopupStyle.js";
22
- import { AtomStyleSheet } from "../styles/AtomStyleSheet.js";
23
- import { AtomTheme } from "../styles/AtomTheme.js";
24
- import { cssNumberToString } from "../styles/StyleBuilder.js";
25
- import NotificationPopup from "./NotificationPopup.js";
26
- import PopupService from "./PopupService.js";
27
-
28
- export type HostForElementFunc = ((e: HTMLElement) => HTMLElement);
29
-
30
- @RegisterSingleton
31
- export class WindowService extends NavigationService {
32
-
33
- /**
34
- * This is just to preload Alert window.
35
- */
36
- public static alertWindow = AtomAlertWindow;
37
-
38
- public readonly screen: IScreen;
39
-
40
- // private targetStack: HTMLElement[] = [];
41
- // public get currentTarget(): HTMLElement {
42
- // const ts = this.targetStack;
43
- // return ts.length > 0 ? ts[ts.length - 1] : undefined;
44
- // }
45
- // public set currentTarget(v: HTMLElement) {
46
- // const ts = this.targetStack;
47
- // const nts = [];
48
- // if (v === null) {
49
- // // special case... remove all non existent elements...
50
- // for (const iterator of ts) {
51
- // if (iterator.parentElement) {
52
- // nts.push(iterator);
53
- // }
54
- // }
55
- // this.targetStack = nts;
56
- // return;
57
- // }
58
-
59
- // if (ts.length === 0 && ts[ts.length - 1] === v) {
60
- // return;
61
- // }
62
- // ts.push(v);
63
- // }
64
-
65
- private popups: AtomControl[] = [];
66
-
67
- private hostForElementFunc: HostForElementFunc[] = [];
68
-
69
- private lastPopupID: number = 0;
70
-
71
- /**
72
- * Get current window title
73
- *
74
- * @type {string}
75
- * @memberof BrowserService
76
- */
77
- get title(): string {
78
- return window.document.title;
79
- }
80
-
81
- /**
82
- * Set current window title
83
- * @memberof BrowserService
84
- */
85
- set title(v: string) {
86
- window.document.title = v;
87
- }
88
-
89
- /**
90
- * Gets current location of browser, this does not return
91
- * actual location but it returns values of browser location.
92
- * This is done to provide mocking behavior for unit testing.
93
- *
94
- * @readonly
95
- * @type {AtomLocation}
96
- * @memberof BrowserService
97
- */
98
- public get location(): AtomUri {
99
- return new AtomUri(location.href);
100
- }
101
-
102
- public set location(v: AtomUri) {
103
- location.href = v.toString();
104
- }
105
-
106
- constructor(
107
- @Inject app: App,
108
- @Inject private jsonService: JsonService) {
109
- super(app);
110
-
111
- this.screen = app.screen;
112
-
113
- let st: IScreenType = "desktop";
114
-
115
- if (/mobile|android|ios/i.test(window.navigator.userAgent)) {
116
- st = "mobile";
117
- if (/tablet/i.test(window.navigator.userAgent)) {
118
- st = "tablet";
119
- }
120
- }
121
-
122
- this.screen.screenType = st;
123
-
124
- if (window) {
125
- // window.addEventListener("click", (e) => {
126
- // // this.currentTarget = e.target as HTMLElement;
127
- // this.closePopup(e);
128
- // });
129
-
130
- const update = (e) => {
131
- this.refreshScreen();
132
- };
133
-
134
- // we don't do this in mobile..
135
- if (st !== "mobile") {
136
- window.addEventListener("resize", update);
137
- window.addEventListener("scroll", update);
138
- document.body.addEventListener("scroll", update);
139
- document.body.addEventListener("resize", update);
140
- }
141
-
142
- setTimeout(() => {
143
- update(null);
144
- }, 1000);
145
-
146
- }
147
- }
148
-
149
- public registerHostForWindow(f: HostForElementFunc): IDisposable {
150
- this.hostForElementFunc.push(f);
151
- return {
152
- dispose: () => {
153
- this.hostForElementFunc.remove(f);
154
- }
155
- };
156
- }
157
-
158
- /**
159
- * Navigate current browser to given url.
160
- * @param {string} url
161
- * @memberof BrowserService
162
- */
163
- public navigate(url: string): void {
164
- location.href = url;
165
- }
166
-
167
- public back(): void {
168
- window.history.back();
169
- }
170
-
171
- public register(id: string, type: IClassOf<AtomControl>): void {
172
- ServiceCollection.instance.register(type, null, Scope.Transient, id);
173
- }
174
-
175
- public confirm(message: string | FormattedString, title: string): Promise<any> {
176
- return PopupService.confirm({ message: message as any, title });
177
- // try {
178
- // return await this.openPage(AtomAlertWindow, {
179
- // okTitle: "Yes",
180
- // cancelTitle: "No",
181
- // title: title || "Confirm",
182
- // message
183
- // });
184
- // } catch (e) {
185
- // if (/canceled|cancelled/i.test(e)) {
186
- // return false;
187
- // }
188
- // throw e;
189
- // }
190
- }
191
-
192
- public alert(message: string | FormattedString | any, title?: string): Promise<any> {
193
- if (!(message instanceof FormattedString || typeof message === "string")) {
194
- if (message instanceof FormattedError) {
195
- message = message.formattedMessage;
196
- } else {
197
- message = message.message ? message.message : message.toString();
198
- }
199
- }
200
- return PopupService.alert({ message, title });
201
- // return this.openPage(AtomAlertWindow, {
202
- // message,
203
- // title,
204
- // okTitle: "Ok",
205
- // cancelTitle: ""
206
- // }).catch((e) => {
207
- // // do nothing...
208
- // // tslint:disable-next-line: no-console
209
- // console.warn(e);
210
- // });
211
- }
212
-
213
- // public closePopup(e: MouseEvent): void {
214
-
215
- // // need to simulate parent click if we are inside an iframe...
216
- // const fe = typeof frameElement !== "undefined" ? frameElement : null;
217
- // if (fe) {
218
- // (fe as any).click();
219
- // const pe = fe.ownerDocument ? fe.ownerDocument.defaultView as any : null;
220
- // if (pe && pe.simulateParentClick) {
221
- // pe.simulateParentClick();
222
- // }
223
- // }
224
-
225
- // let target = this.currentTarget;
226
- // const et = e.target as HTMLElement;
227
- // if (!et.parentElement) {
228
- // // probably the window/popup was just disposed..
229
- // // ignore it...
230
-
231
- // // if mouse click was outside body and within the window
232
- // // target element will be HTML
233
- // // in that case we have to dispose the top popup
234
- // if (!/html/i.test(et.tagName)) {
235
- // return;
236
- // }
237
-
238
- // // we need to manually override target so popup will be disposed
239
- // target = et;
240
- // }
241
-
242
- // this.currentTarget = e.target as HTMLElement;
243
- // if (!this.popups.length) {
244
- // return;
245
- // }
246
-
247
- // const peek = this.popups[this.popups.length - 1];
248
- // const element = peek.element;
249
-
250
- // while (target) {
251
- // if (target === element) {
252
- // // do not close this popup....
253
- // return;
254
- // }
255
- // if (element._logicalParent === target) {
256
- // return;
257
- // }
258
- // target = target.parentElement;
259
- // }
260
-
261
- // this.remove(peek);
262
- // }
263
-
264
- public refresh(): void {
265
- location.reload();
266
- }
267
-
268
- public getHostForElement(): HTMLElement {
269
- const ce = PopupService.lastTarget;
270
- if (!ce) {
271
- return null;
272
- }
273
- for (const iterator of this.hostForElementFunc) {
274
- const e = iterator(ce);
275
- if (e) {
276
- return e;
277
- }
278
- }
279
- return null;
280
- }
281
-
282
- public refreshScreen() {
283
- const height = this.screen.height = window.innerHeight || document.body.clientHeight;
284
- const width = this.screen.width = window.innerWidth || document.body.clientWidth;
285
- this.screen.scrollLeft = window.scrollX || document.body.scrollLeft || 0;
286
- this.screen.scrollTop = window.scrollY || document.body.scrollTop || 0;
287
- this.screen.orientation = width > height ? "landscape" : "portrait";
288
- }
289
-
290
- public async notify(
291
- message: string | FormattedString,
292
- title?: string,
293
- type?: NotifyType,
294
- delay?: number): Promise<void> {
295
- try {
296
- const notification = NotificationPopup({ message, type });
297
- const cancelToken = new CancelToken(delay ?? 5000);
298
- await notification.showWindow(notification, {
299
- title,
300
- cancelToken
301
- });
302
- } catch (ex) {
303
- console.error(ex);
304
- }
305
- }
306
-
307
- // protected registerForPopup(): void {
308
-
309
- // if (window) {
310
- // window.addEventListener("click", (e) => {
311
- // this.closePopup(e);
312
- // });
313
- // }
314
- // }
315
-
316
- protected async openWindow<T>(url: AtomUri, options?: IPageOptions): Promise<T> {
317
-
318
- // this is because current target is not yet set
319
- await Atom.delay(1);
320
-
321
- const lastTarget = PopupService.lastTarget;
322
-
323
- const { view: popup, returnPromise, disposables } = await AtomLoader.loadView<AtomControl>(
324
- url, this.app, true, () => this.app.resolve(AtomWindowViewModel, true));
325
-
326
- if (options && options.onInit) {
327
- options.onInit(popup);
328
- }
329
-
330
- const cancelToken = options.cancelToken;
331
-
332
- if (cancelToken) {
333
- if (cancelToken.cancelled) {
334
- this.app.callLater(() => {
335
- this.remove(popup, true);
336
- });
337
- }
338
-
339
- cancelToken.registerForCancel(() => {
340
- this.remove(popup, true);
341
- });
342
- }
343
-
344
- const e = popup.element;
345
-
346
- let isPopup = true;
347
-
348
- if (popup instanceof AtomWindow) {
349
- isPopup = false;
350
- e.style.opacity = "0";
351
- }
352
-
353
- popup.registerDisposable({
354
- dispose: () => {
355
- PopupService.lastTarget = lastTarget;
356
- }
357
- });
358
-
359
- if (isPopup) {
360
- // register for close...
361
- const root = popup.element;
362
- const last = PopupService.lastTarget;
363
- const closePopup = (et: Event) => {
364
- let target = et.target as HTMLElement;
365
- while (target) {
366
- if (target === root || target === last) {
367
- return;
368
- }
369
- target = target.parentElement;
370
- }
371
- this.remove(popup, true);
372
- };
373
- document.body.addEventListener("click", closePopup);
374
- popup.registerDisposable({dispose: () => {
375
- document.body.removeEventListener("click", closePopup);
376
- }});
377
- }
378
-
379
- e._logicalParent = lastTarget;
380
- (e as any).sourceUrl = url;
381
-
382
- const pvm = popup.viewModel;
383
- if (pvm) {
384
- let ce = PopupService.lastTarget;
385
- if (ce) {
386
- while (!ce.atomControl) {
387
- ce = ce.parentElement;
388
- if (!ce) {
389
- break;
390
- }
391
- }
392
- if (ce && ce.atomControl && ce.atomControl.viewModel) {
393
- pvm.parent = ce.atomControl.viewModel;
394
- }
395
- }
396
- }
397
-
398
- const theme = this.app.get(AtomStyleSheet).getNamedStyle(AtomPopupStyle);
399
-
400
- e.style.zIndex = 10000 + this.lastPopupID + "";
401
-
402
- const isNotification = popup instanceof AtomNotification;
403
-
404
- if (isPopup) {
405
-
406
- const sr = AtomUI.screenOffset(PopupService.lastTarget);
407
-
408
- const x = sr.x;
409
- const y = sr.y;
410
- const h = sr.height;
411
- e.style.position = "absolute";
412
- e.style.left = x + "px";
413
- e.style.top = (y + h) + "px";
414
- e.classList.add(theme.name);
415
- this.popups.push(popup);
416
- disposables.add(() => {
417
- this.popups.remove(popup);
418
- });
419
- document.body.appendChild(e);
420
- if (isNotification) {
421
- e.style.opacity = "0";
422
- this.centerElement(popup);
423
- }
424
- } else {
425
-
426
- const eHost = options?.modal ? null : this.getHostForElement();
427
- if (eHost) {
428
- eHost.appendChild(e);
429
- } else {
430
- const host = document.createElement("div");
431
- document.body.appendChild(host);
432
- host.style.position = "absolute";
433
- host.appendChild(e);
434
- disposables.add({
435
- dispose() {
436
- host.remove();
437
- }
438
- });
439
- this.refreshScreen();
440
- popup.bind(host, "styleLeft", [["this", "scrollLeft"]], false, cssNumberToString, this.screen);
441
- popup.bind(host, "styleTop", [["this", "scrollTop"]], false, cssNumberToString, this.screen);
442
- popup.bind(host, "styleWidth", [["this", "width"]], false, cssNumberToString, this.screen);
443
- popup.bind(host, "styleHeight", [["this", "height"]], false, cssNumberToString, this.screen);
444
- }
445
- }
446
-
447
- // this.currentTarget = e;
448
-
449
- popup.bindEvent(document.body, "keyup", (keyboardEvent: KeyboardEvent) => {
450
- if (keyboardEvent.key === "Escape") {
451
- this.app.runAsync(() => this.remove(popup));
452
- }
453
- });
454
-
455
- disposables.add({
456
- dispose: () => {
457
- e.innerHTML = "";
458
- e.remove();
459
- // this.currentTarget = null;
460
- }
461
- });
462
-
463
- return await returnPromise;
464
- }
465
-
466
- private centerElement(c: AtomControl): void {
467
- const e = c.element;
468
- const parent = e.parentElement;
469
- if (parent as any === window || parent as any === document.body) {
470
- setTimeout(() => {
471
- const ew = (document.body.offsetWidth - e.offsetWidth) / 2;
472
- const eh = window.scrollY + ((window.innerHeight - e.offsetHeight) / 2);
473
- e.style.left = `${ew}px`;
474
- e.style.top = `${eh}px`;
475
- e.style.removeProperty("opacity");
476
- }, 200);
477
- return;
478
- }
479
- if (parent.offsetWidth <= 0 || parent.offsetHeight <= 0) {
480
- setTimeout(() => {
481
- this.centerElement(c);
482
- }, 100);
483
- return;
484
- }
485
-
486
- if (e.offsetWidth <= 0 || e.offsetHeight <= 0) {
487
- setTimeout(() => {
488
- this.centerElement(c);
489
- }, 100);
490
- return;
491
- }
492
-
493
- const x = (parent.offsetWidth - e.offsetWidth) / 2;
494
- const y = (parent.offsetHeight - e.offsetHeight) / 2;
495
- e.style.left = `${x}px`;
496
- e.style.top = `${y}px`;
497
- e.style.removeProperty("opacity");
498
- }
499
-
500
- }
@@ -1,42 +0,0 @@
1
- import { BindableProperty } from "../../core/BindableProperty.js";
2
- import { AtomStyle } from "./AtomStyle.js";
3
- import { AtomTheme } from "./AtomTheme.js";
4
- import { IStyleDeclaration } from "./IStyleDeclaration.js";
5
-
6
- export class AtomListBoxStyle extends AtomStyle {
7
-
8
- public padding: number;
9
-
10
- public get root(): IStyleDeclaration {
11
- return {
12
- subclasses: {
13
- " .item": this.item,
14
- " .selected-item": this.selectedItem
15
- }
16
- };
17
- }
18
-
19
- public get theme(): AtomTheme {
20
- return this.styleSheet as AtomTheme;
21
- }
22
-
23
- public get item(): IStyleDeclaration {
24
- return {
25
- backgroundColor: this.theme.bgColor,
26
- color: this.theme.color,
27
- padding: (this.padding || this.theme.padding) + "px",
28
- borderRadius: (this.padding || this.theme.padding) + "px",
29
- cursor: "pointer"
30
- };
31
- }
32
-
33
- public get selectedItem(): IStyleDeclaration {
34
- return {
35
- ... this.item,
36
- backgroundColor: this.theme.selectedBgColor,
37
- color: this.theme.selectedColor,
38
- cursor: "pointer"
39
- };
40
- }
41
-
42
- }