@elliemae/pui-app-sdk 3.0.0-beta.1 → 3.0.0-beta.13

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 (328) hide show
  1. package/dist/cjs/analytics/appdynamics.js +13 -7
  2. package/dist/cjs/analytics/index.js +13 -12
  3. package/dist/cjs/analytics/page-view-event.js +23 -13
  4. package/dist/cjs/analytics/user-session-event.js +14 -13
  5. package/dist/cjs/analytics/user-wait-event.js +13 -12
  6. package/dist/cjs/analytics/web-analytics.js +19 -2
  7. package/dist/cjs/api/auth/index.js +11 -10
  8. package/dist/cjs/api/helpers.js +12 -11
  9. package/dist/cjs/api/users/index.js +11 -10
  10. package/dist/cjs/api/users/users.json +8 -0
  11. package/dist/cjs/app.config.json +129 -0
  12. package/dist/cjs/communication/http-client/index.js +18 -12
  13. package/dist/cjs/communication/http-client/request-interceptor.js +11 -10
  14. package/dist/cjs/communication/http-client/response-interceptor.js +13 -7
  15. package/dist/cjs/communication/http-client/retry-axios.js +14 -8
  16. package/dist/cjs/communication/http-client/retry.js +11 -10
  17. package/dist/cjs/communication/http-client/tests/index.test-disable.js +7 -7
  18. package/dist/cjs/data/auth/actions.js +19 -2
  19. package/dist/cjs/data/auth/reducer.js +14 -8
  20. package/dist/cjs/data/breakpoint/index.js +13 -7
  21. package/dist/cjs/data/error/index.js +11 -10
  22. package/dist/cjs/data/index.js +35 -0
  23. package/dist/cjs/data/live-message/index.js +11 -10
  24. package/dist/cjs/data/logout/actions.js +19 -2
  25. package/dist/cjs/data/navigation-prompt/actions.js +19 -2
  26. package/dist/cjs/data/react-redux.js +11 -10
  27. package/dist/cjs/data/reducers.js +15 -14
  28. package/dist/cjs/data/saga.js +19 -2
  29. package/dist/cjs/data/store.js +17 -24
  30. package/dist/cjs/data/wait-message/actions.js +19 -2
  31. package/dist/cjs/data/wait-message/reducer.js +14 -8
  32. package/dist/cjs/index.js +88 -82
  33. package/dist/cjs/index.pug +15 -0
  34. package/dist/cjs/micro-frontend.js +34 -0
  35. package/dist/cjs/sideeffect/auth/index.js +15 -14
  36. package/dist/cjs/sideeffect/error-toast/index.js +15 -14
  37. package/dist/cjs/sideeffect/wait-message/index.js +15 -14
  38. package/dist/cjs/typings/styled.d.js +1 -19
  39. package/dist/cjs/utils/app-config/config.js +14 -8
  40. package/dist/cjs/utils/app-config/index.js +17 -11
  41. package/dist/cjs/utils/app-host-integration/react.js +11 -10
  42. package/dist/cjs/utils/auth/helper.js +13 -7
  43. package/dist/cjs/utils/auth/index.js +19 -18
  44. package/dist/cjs/utils/await.js +18 -1
  45. package/dist/cjs/utils/constants.js +19 -2
  46. package/dist/cjs/utils/font-size.js +19 -2
  47. package/dist/cjs/utils/guest-with-service.js +19 -2
  48. package/dist/cjs/utils/helpers.js +20 -3
  49. package/dist/cjs/utils/history.js +11 -10
  50. package/dist/cjs/utils/log-records.js +19 -2
  51. package/dist/cjs/utils/micro-frontend/console-logger.js +12 -11
  52. package/dist/cjs/utils/micro-frontend/guest.js +25 -19
  53. package/dist/cjs/utils/micro-frontend/host.js +30 -29
  54. package/dist/cjs/utils/micro-frontend/index.js +17 -11
  55. package/dist/cjs/utils/micro-frontend/types.js +18 -1
  56. package/dist/cjs/utils/redact-pii.js +19 -2
  57. package/dist/cjs/utils/service-worker.js +12 -11
  58. package/dist/cjs/utils/session.js +15 -14
  59. package/dist/cjs/utils/storybook/{main.js → cjs/main.js} +11 -3
  60. package/dist/cjs/utils/storybook/{middleware.js → cjs/middleware.js} +0 -0
  61. package/dist/cjs/utils/storybook/{vite.js → cjs/vite.js} +0 -0
  62. package/dist/cjs/utils/storybook/{webpack.js → cjs/webpack.js} +9 -1
  63. package/dist/cjs/utils/storybook/manager.js +12 -11
  64. package/dist/cjs/utils/storybook/preview.js +19 -19
  65. package/dist/cjs/utils/storybook/theme.js +11 -10
  66. package/dist/cjs/utils/testing/index.js +19 -12
  67. package/dist/cjs/utils/testing/render-with-redux.js +17 -10
  68. package/dist/cjs/utils/testing/render-with-router-redux.js +20 -13
  69. package/dist/cjs/utils/testing/render-with-router.js +24 -14
  70. package/dist/cjs/utils/testing/render-with-state-addons.js +17 -10
  71. package/dist/cjs/utils/types.js +18 -1
  72. package/dist/cjs/utils/url.js +19 -2
  73. package/dist/cjs/utils/web-storage.js +13 -7
  74. package/dist/cjs/utils/window.js +11 -10
  75. package/dist/cjs/view/app-root/hosted-app.js +18 -11
  76. package/dist/cjs/view/app-root/index.js +25 -18
  77. package/dist/cjs/view/app-root/stand-alone-app.js +22 -15
  78. package/dist/cjs/view/app-root/style.js +11 -10
  79. package/dist/cjs/view/app-router.js +48 -0
  80. package/dist/cjs/view/error-boundary/default-error-template.js +25 -2
  81. package/dist/cjs/view/error-boundary/index.js +16 -10
  82. package/dist/cjs/view/error-toast/index.js +21 -14
  83. package/dist/cjs/view/fetch-host-app-data/index.js +16 -10
  84. package/dist/cjs/view/fetch-host-app-data/store.js +11 -10
  85. package/dist/cjs/view/fields/check-box/index.js +16 -9
  86. package/dist/cjs/view/fields/combo-box/index.js +16 -9
  87. package/dist/cjs/view/fields/connect-form.js +11 -10
  88. package/dist/cjs/view/fields/date-input/index.js +16 -9
  89. package/dist/cjs/view/fields/date-picker/index.js +16 -9
  90. package/dist/cjs/view/fields/form-item-layout/index.js +17 -10
  91. package/dist/cjs/view/fields/input-mask/index.js +16 -9
  92. package/dist/cjs/view/fields/large-text-box/index.js +16 -9
  93. package/dist/cjs/view/fields/radio/index.js +16 -9
  94. package/dist/cjs/view/fields/radio-group/index.js +16 -9
  95. package/dist/cjs/view/fields/text-box/index.js +16 -9
  96. package/dist/cjs/view/fields/watch-value.js +15 -8
  97. package/dist/cjs/view/form/index.js +15 -8
  98. package/dist/cjs/view/form/personal-info-section.js +18 -11
  99. package/dist/cjs/view/form/submit-button/index.js +16 -9
  100. package/dist/cjs/view/guest-unload-handlers/index.js +11 -10
  101. package/dist/cjs/view/host-binding-events/index.js +19 -2
  102. package/dist/cjs/view/intro.stories.mdx +27 -0
  103. package/dist/cjs/view/live-message/index.js +15 -8
  104. package/dist/cjs/view/loadable/index.js +15 -8
  105. package/dist/cjs/view/login/index.js +15 -14
  106. package/dist/cjs/view/media-breakpoint/index.js +18 -17
  107. package/dist/cjs/view/message-to-host-app/index.js +11 -10
  108. package/dist/cjs/view/micro-app/app-factory/index.js +22 -19
  109. package/dist/cjs/view/micro-app/const.js +19 -2
  110. package/dist/cjs/view/micro-app/index.js +17 -10
  111. package/dist/cjs/view/micro-app/resources/manifest.js +16 -13
  112. package/dist/cjs/view/micro-app/resources/script.js +12 -11
  113. package/dist/cjs/view/micro-app/resources/style.js +11 -10
  114. package/dist/cjs/view/micro-app/types.js +18 -1
  115. package/dist/cjs/view/micro-app/use-app-will-render.js +21 -18
  116. package/dist/cjs/view/micro-app/utils.js +11 -10
  117. package/dist/cjs/view/micro-iframe-app/app.js +18 -11
  118. package/dist/cjs/view/micro-iframe-app/iframe/const.js +19 -2
  119. package/dist/cjs/view/micro-iframe-app/iframe/index.html +74 -0
  120. package/dist/cjs/view/micro-iframe-app/iframe/index.js +16 -9
  121. package/dist/cjs/view/micro-iframe-app/index.js +16 -9
  122. package/dist/cjs/view/micro-iframe-app/types.js +18 -1
  123. package/dist/cjs/view/micro-iframe-app/use-frame-loaded.js +16 -13
  124. package/dist/cjs/view/modals/error/index.js +16 -9
  125. package/dist/cjs/view/modals/navigation-prompt/index.js +18 -11
  126. package/dist/cjs/view/modals/session-expiry/customHooks.js +14 -13
  127. package/dist/cjs/view/modals/session-expiry/index.js +24 -14
  128. package/dist/cjs/view/modals/wait-message/html-wait-message.js +12 -11
  129. package/dist/cjs/view/modals/wait-message/index.js +19 -12
  130. package/dist/cjs/view/modals/wait-message/wait-message-launcher.js +14 -13
  131. package/dist/cjs/view/page.js +51 -0
  132. package/dist/cjs/view/render-with-delay/index.js +15 -8
  133. package/dist/cjs/view/render-with-host-data/index.js +16 -9
  134. package/dist/cjs/view/require-auth.js +62 -0
  135. package/dist/cjs/view/session-timeout/index.js +23 -12
  136. package/dist/cjs/view/storybook/decorator.js +15 -8
  137. package/dist/cjs/view/use-previous.js +11 -10
  138. package/dist/cjs/view/useMediaBreakpoints/index.js +11 -10
  139. package/dist/cjs/view/visually-hidden/index.js +15 -8
  140. package/dist/cjs/view/window-size/index.js +23 -18
  141. package/dist/es/analytics/index.js +3 -3
  142. package/dist/es/analytics/page-view-event.js +12 -3
  143. package/dist/es/analytics/user-session-event.js +2 -2
  144. package/dist/es/analytics/user-wait-event.js +1 -1
  145. package/dist/es/api/auth/index.js +1 -1
  146. package/dist/es/api/users/index.js +1 -1
  147. package/dist/es/api/users/users.json +8 -0
  148. package/dist/es/app.config.json +129 -0
  149. package/dist/es/communication/http-client/index.js +5 -5
  150. package/dist/es/communication/http-client/request-interceptor.js +1 -1
  151. package/dist/es/communication/http-client/retry-axios.js +1 -1
  152. package/dist/es/communication/http-client/retry.js +1 -1
  153. package/dist/es/communication/http-client/tests/index.test-disable.js +3 -3
  154. package/dist/es/data/auth/reducer.js +1 -1
  155. package/dist/es/data/index.js +11 -0
  156. package/dist/es/data/reducers.js +4 -4
  157. package/dist/es/data/store.js +5 -15
  158. package/dist/es/data/wait-message/reducer.js +1 -1
  159. package/dist/es/index.js +85 -75
  160. package/dist/es/index.pug +15 -0
  161. package/dist/es/micro-frontend.js +10 -0
  162. package/dist/es/sideeffect/auth/index.js +4 -4
  163. package/dist/es/sideeffect/error-toast/index.js +4 -4
  164. package/dist/es/sideeffect/wait-message/index.js +4 -4
  165. package/dist/es/utils/app-config/config.js +1 -1
  166. package/dist/es/utils/app-config/index.js +4 -4
  167. package/dist/es/utils/app-host-integration/react.js +1 -1
  168. package/dist/es/utils/auth/helper.js +1 -1
  169. package/dist/es/utils/auth/index.js +9 -9
  170. package/dist/es/utils/helpers.js +1 -1
  171. package/dist/es/utils/micro-frontend/console-logger.js +1 -1
  172. package/dist/es/utils/micro-frontend/guest.js +9 -9
  173. package/dist/es/utils/micro-frontend/host.js +19 -18
  174. package/dist/es/utils/micro-frontend/index.js +4 -4
  175. package/dist/es/utils/service-worker.js +2 -2
  176. package/dist/es/utils/session.js +4 -4
  177. package/dist/es/utils/storybook/manager.js +1 -1
  178. package/dist/es/utils/storybook/preview.js +7 -8
  179. package/dist/es/utils/testing/index.js +4 -3
  180. package/dist/es/utils/testing/render-with-redux.js +3 -2
  181. package/dist/es/utils/testing/render-with-router-redux.js +5 -4
  182. package/dist/es/utils/testing/render-with-router.js +10 -6
  183. package/dist/es/utils/testing/render-with-state-addons.js +1 -0
  184. package/dist/es/view/app-root/hosted-app.js +5 -4
  185. package/dist/es/view/app-root/index.js +9 -8
  186. package/dist/es/view/app-root/stand-alone-app.js +8 -7
  187. package/dist/es/view/app-router.js +19 -0
  188. package/dist/es/view/error-boundary/default-error-template.js +1 -0
  189. package/dist/es/view/error-boundary/index.js +3 -3
  190. package/dist/es/view/error-toast/index.js +4 -8
  191. package/dist/es/view/fetch-host-app-data/index.js +6 -3
  192. package/dist/es/view/fields/check-box/index.js +2 -1
  193. package/dist/es/view/fields/combo-box/index.js +2 -1
  194. package/dist/es/view/fields/date-input/index.js +2 -1
  195. package/dist/es/view/fields/date-picker/index.js +2 -1
  196. package/dist/es/view/fields/form-item-layout/index.js +3 -2
  197. package/dist/es/view/fields/input-mask/index.js +4 -2
  198. package/dist/es/view/fields/large-text-box/index.js +2 -1
  199. package/dist/es/view/fields/radio/index.js +2 -1
  200. package/dist/es/view/fields/radio-group/index.js +2 -1
  201. package/dist/es/view/fields/text-box/index.js +2 -1
  202. package/dist/es/view/fields/watch-value.js +1 -0
  203. package/dist/es/view/form/index.js +1 -0
  204. package/dist/es/view/form/personal-info-section.js +5 -4
  205. package/dist/es/view/form/submit-button/index.js +2 -1
  206. package/dist/es/view/guest-unload-handlers/index.js +1 -1
  207. package/dist/es/view/intro.stories.mdx +27 -0
  208. package/dist/es/view/live-message/index.js +2 -1
  209. package/dist/es/view/loadable/index.js +2 -1
  210. package/dist/es/view/login/index.js +4 -4
  211. package/dist/es/view/media-breakpoint/index.js +5 -5
  212. package/dist/es/view/message-to-host-app/index.js +1 -1
  213. package/dist/es/view/micro-app/app-factory/index.js +15 -10
  214. package/dist/es/view/micro-app/index.js +3 -2
  215. package/dist/es/view/micro-app/resources/manifest.js +6 -4
  216. package/dist/es/view/micro-app/resources/script.js +2 -2
  217. package/dist/es/view/micro-app/resources/style.js +1 -1
  218. package/dist/es/view/micro-app/use-app-will-render.js +13 -6
  219. package/dist/es/view/micro-app/utils.js +1 -1
  220. package/dist/es/view/micro-iframe-app/app.js +4 -3
  221. package/dist/es/view/micro-iframe-app/iframe/index.html +74 -0
  222. package/dist/es/view/micro-iframe-app/iframe/index.js +2 -1
  223. package/dist/es/view/micro-iframe-app/index.js +3 -2
  224. package/dist/es/view/micro-iframe-app/use-frame-loaded.js +5 -3
  225. package/dist/es/view/modals/error/index.js +2 -1
  226. package/dist/es/view/modals/navigation-prompt/index.js +4 -3
  227. package/dist/es/view/modals/session-expiry/customHooks.js +2 -2
  228. package/dist/es/view/modals/session-expiry/index.js +11 -7
  229. package/dist/es/view/modals/wait-message/html-wait-message.js +1 -1
  230. package/dist/es/view/modals/wait-message/index.js +5 -4
  231. package/dist/es/view/modals/wait-message/wait-message-launcher.js +3 -3
  232. package/dist/es/view/page.js +22 -0
  233. package/dist/es/view/render-with-delay/index.js +2 -1
  234. package/dist/es/view/render-with-host-data/index.js +3 -2
  235. package/dist/es/view/require-auth.js +33 -0
  236. package/dist/es/view/session-timeout/index.js +10 -5
  237. package/dist/es/view/storybook/decorator.js +3 -2
  238. package/dist/es/view/visually-hidden/index.js +1 -0
  239. package/dist/es/view/window-size/index.js +11 -7
  240. package/dist/types/communication/http-client/retry.d.ts +1 -1
  241. package/dist/types/data/index.d.ts +4 -0
  242. package/dist/types/data/react-redux.d.ts +15 -15
  243. package/dist/types/data/reducers.d.ts +6 -6
  244. package/dist/types/data/store.d.ts +30 -30
  245. package/dist/types/index.d.ts +78 -78
  246. package/dist/types/micro-frontend.d.ts +6 -0
  247. package/dist/types/sideeffect/auth/index.d.ts +1 -1
  248. package/dist/types/utils/app-config/config.d.ts +1 -1
  249. package/dist/types/utils/app-host-integration/react.d.ts +1 -1
  250. package/dist/types/utils/history.d.ts +2 -2
  251. package/dist/types/utils/micro-frontend/guest.d.ts +3 -3
  252. package/dist/types/utils/micro-frontend/host.d.ts +1 -1
  253. package/dist/types/utils/micro-frontend/index.d.ts +2 -2
  254. package/dist/types/utils/micro-frontend/types.d.ts +1 -1
  255. package/dist/types/utils/session.d.ts +5 -2
  256. package/dist/types/utils/storybook/{main.d.cts → cjs/main.d.ts} +24 -2
  257. package/dist/types/utils/storybook/{middleware.d.cts → cjs/middleware.d.ts} +0 -0
  258. package/dist/types/utils/storybook/{vite.d.cts → cjs/vite.d.ts} +0 -0
  259. package/dist/types/utils/storybook/cjs/webpack.d.ts +16 -0
  260. package/dist/types/utils/storybook/preview.d.ts +8 -2
  261. package/dist/types/utils/testing/render-with-redux.d.ts +22 -22
  262. package/dist/types/utils/testing/render-with-router-redux.d.ts +22 -22
  263. package/dist/types/utils/testing/render-with-router.d.ts +2 -2
  264. package/dist/types/view/app-root/index.d.ts +1 -1
  265. package/dist/types/view/app-router.d.ts +9 -0
  266. package/dist/types/view/fields/check-box/index.d.ts +1 -1
  267. package/dist/types/view/fields/check-box/index.stories.d.ts +1 -1
  268. package/dist/types/view/fields/check-box/set-value.stories.d.ts +1 -1
  269. package/dist/types/view/fields/combo-box/index.stories.d.ts +1 -1
  270. package/dist/types/view/fields/date-input/index.stories.d.ts +1 -1
  271. package/dist/types/view/fields/date-picker/index.stories.d.ts +1 -1
  272. package/dist/types/view/fields/form-item-layout/index.stories.d.ts +1 -1
  273. package/dist/types/view/fields/input-mask/index.d.ts +1 -1
  274. package/dist/types/view/fields/input-mask/index.stories.d.ts +1 -1
  275. package/dist/types/view/fields/large-text-box/index.stories.d.ts +1 -1
  276. package/dist/types/view/fields/radio/index.stories.d.ts +1 -1
  277. package/dist/types/view/fields/radio/set-value.stories.d.ts +1 -1
  278. package/dist/types/view/fields/radio-group/index.stories.d.ts +1 -1
  279. package/dist/types/view/fields/text-box/index.stories.d.ts +1 -1
  280. package/dist/types/view/form/usecases.stories.d.ts +1 -1
  281. package/dist/types/view/micro-app/app-factory/index.d.ts +3 -3
  282. package/dist/types/view/micro-app/index.d.ts +1 -1
  283. package/dist/types/view/micro-app/resources/manifest.d.ts +2 -2
  284. package/dist/types/view/micro-app/resources/script.d.ts +1 -1
  285. package/dist/types/view/micro-app/resources/style.d.ts +1 -1
  286. package/dist/types/view/micro-app/types.d.ts +1 -0
  287. package/dist/types/view/micro-app/use-app-will-render.d.ts +2 -2
  288. package/dist/types/view/micro-iframe-app/app.d.ts +2 -2
  289. package/dist/types/view/micro-iframe-app/index.d.ts +1 -1
  290. package/dist/types/view/micro-iframe-app/types.d.ts +1 -1
  291. package/dist/types/view/micro-iframe-app/use-frame-loaded.d.ts +1 -1
  292. package/dist/types/view/modals/error/index.stories.d.ts +1 -1
  293. package/dist/types/view/modals/navigation-prompt/index.stories.d.ts +1 -1
  294. package/dist/types/view/modals/session-expiry/index.stories.d.ts +1 -1
  295. package/dist/types/view/modals/wait-message/index.stories.d.ts +1 -1
  296. package/dist/types/view/page.d.ts +8 -0
  297. package/dist/types/view/require-auth.d.ts +8 -0
  298. package/dist/types/view/storybook/decorator.d.ts +1 -1
  299. package/package.json +44 -29
  300. package/dist/cjs/route/index.js +0 -48
  301. package/dist/cjs/route/page-view.js +0 -38
  302. package/dist/cjs/route/private-route/index.js +0 -68
  303. package/dist/cjs/view/header/center-region/index.js +0 -64
  304. package/dist/cjs/view/header/index.js +0 -43
  305. package/dist/cjs/view/header/logo-region/index.js +0 -32
  306. package/dist/cjs/view/header/nav-region/index.js +0 -46
  307. package/dist/cjs/view/header/nav-region/notification/index.js +0 -31
  308. package/dist/cjs/view/header/nav-region/user/index.js +0 -31
  309. package/dist/es/route/index.js +0 -25
  310. package/dist/es/route/page-view.js +0 -15
  311. package/dist/es/route/private-route/index.js +0 -45
  312. package/dist/es/view/header/center-region/index.js +0 -41
  313. package/dist/es/view/header/index.js +0 -20
  314. package/dist/es/view/header/logo-region/index.js +0 -9
  315. package/dist/es/view/header/nav-region/index.js +0 -23
  316. package/dist/es/view/header/nav-region/notification/index.js +0 -8
  317. package/dist/es/view/header/nav-region/user/index.js +0 -8
  318. package/dist/types/route/index.d.ts +0 -8
  319. package/dist/types/route/page-view.d.ts +0 -1
  320. package/dist/types/route/private-route/index.d.ts +0 -8
  321. package/dist/types/utils/storybook/webpack.d.cts +0 -8
  322. package/dist/types/view/header/center-region/index.d.ts +0 -9
  323. package/dist/types/view/header/index.d.ts +0 -7
  324. package/dist/types/view/header/index.stories.d.ts +0 -5
  325. package/dist/types/view/header/logo-region/index.d.ts +0 -2
  326. package/dist/types/view/header/nav-region/index.d.ts +0 -2
  327. package/dist/types/view/header/nav-region/notification/index.d.ts +0 -2
  328. package/dist/types/view/header/nav-region/user/index.d.ts +0 -2
@@ -1,8 +1,9 @@
1
+ import * as React from "react";
1
2
  import styled from "styled-components";
2
- import { MediaBreakpoint } from "../media-breakpoint";
3
- import { WindowSize } from "../window-size";
4
- import { HTMLWaitMessage } from "../modals/wait-message/html-wait-message";
5
- import GlobalStyle from "./style";
3
+ import { MediaBreakpoint } from "../media-breakpoint/index.js";
4
+ import { WindowSize } from "../window-size/index.js";
5
+ import { HTMLWaitMessage } from "../modals/wait-message/html-wait-message.js";
6
+ import GlobalStyle from "./style.js";
6
7
  const Div = styled.div`
7
8
  height: 100%;
8
9
  `;
@@ -1,14 +1,15 @@
1
+ import * as React from "react";
1
2
  import { Provider } from "react-redux";
2
3
  import { ThemeProvider } from "styled-components";
3
- import { Router } from "react-router-dom";
4
4
  import { getDefaultTheme } from "@elliemae/pui-theme";
5
5
  import { useInjectSaga } from "redux-injectors";
6
- import { isStandAloneGuest, isHost } from "../../utils/micro-frontend";
7
- import { waitMessage } from "../../sideeffect/wait-message";
8
- import { errorToast } from "../../sideeffect/error-toast";
9
- import { ErrorBoundary } from "../error-boundary";
10
- import { StandAloneApp } from "./stand-alone-app";
11
- import { HostedApp } from "./hosted-app";
6
+ import { AppRouter } from "../app-router.js";
7
+ import { isStandAloneGuest, isHost } from "../../utils/micro-frontend/index.js";
8
+ import { waitMessage } from "../../sideeffect/wait-message/index.js";
9
+ import { errorToast } from "../../sideeffect/error-toast/index.js";
10
+ import { ErrorBoundary } from "../error-boundary/index.js";
11
+ import { StandAloneApp } from "./stand-alone-app.js";
12
+ import { HostedApp } from "./hosted-app.js";
12
13
  const AppToRender = (props) => {
13
14
  useInjectSaga({ key: "waitMessage", saga: waitMessage });
14
15
  useInjectSaga({ key: "errorToast", saga: errorToast });
@@ -31,7 +32,7 @@ const AppRoot = ({
31
32
  errorTemplate
32
33
  }, /* @__PURE__ */ React.createElement(Provider, {
33
34
  store
34
- }, /* @__PURE__ */ React.createElement(Router, {
35
+ }, /* @__PURE__ */ React.createElement(AppRouter, {
35
36
  history
36
37
  }, /* @__PURE__ */ React.createElement(ThemeProvider, {
37
38
  theme
@@ -1,12 +1,13 @@
1
+ import * as React from "react";
1
2
  import styled from "styled-components";
2
3
  import { LiveAnnouncer } from "react-aria-live";
3
- import { MediaBreakpoint } from "../media-breakpoint";
4
- import { WindowSize } from "../window-size";
5
- import { SessionTimeout } from "../session-timeout";
6
- import { LiveMessage } from "../live-message";
7
- import { ErrorToast } from "../error-toast";
8
- import { WaitMessage as DefaultWaitMessage } from "../modals/wait-message";
9
- import GlobalStyle from "./style";
4
+ import { MediaBreakpoint } from "../media-breakpoint/index.js";
5
+ import { WindowSize } from "../window-size/index.js";
6
+ import { SessionTimeout } from "../session-timeout/index.js";
7
+ import { LiveMessage } from "../live-message/index.js";
8
+ import { ErrorToast } from "../error-toast/index.js";
9
+ import { WaitMessage as DefaultWaitMessage } from "../modals/wait-message/index.js";
10
+ import GlobalStyle from "./style.js";
10
11
  const Div = styled.div`
11
12
  height: 100%;
12
13
  `;
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { useState, useLayoutEffect } from "react";
3
+ import { Router } from "react-router-dom";
4
+ const AppRouter = ({ history, ...props }) => {
5
+ const [state, setState] = useState({
6
+ action: history.action,
7
+ location: history.location
8
+ });
9
+ useLayoutEffect(() => history.listen(setState), [history]);
10
+ return /* @__PURE__ */ React.createElement(Router, {
11
+ ...props,
12
+ location: state.location,
13
+ navigationType: state.action,
14
+ navigator: history
15
+ });
16
+ };
17
+ export {
18
+ AppRouter
19
+ };
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  const DefaultErrorTemplate = () => /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, "We are unable to process your request"), /* @__PURE__ */ React.createElement("section", null, "Please close your browser and login again"));
2
3
  export {
3
4
  DefaultErrorTemplate
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
2
  import {
3
3
  DefaultErrorTemplate
4
- } from "./default-error-template";
5
- import { getLogger } from "../../utils/micro-frontend";
6
- import { logRecords } from "../../utils/log-records";
4
+ } from "./default-error-template.js";
5
+ import { getLogger } from "../../utils/micro-frontend/index.js";
6
+ import { logRecords } from "../../utils/log-records.js";
7
7
  class ErrorBoundary extends React.Component {
8
8
  constructor(props) {
9
9
  super(props);
@@ -1,12 +1,8 @@
1
+ import * as React from "react";
1
2
  import { useEffect, memo } from "react";
2
- import {
3
- ToastPosition,
4
- ToastType,
5
- DSToast,
6
- toast
7
- } from "@elliemae/ds-basic/Toast";
8
- import { useAppSelector, useAppDispatch } from "../../data/react-redux";
9
- import { actions as error } from "../../data/error";
3
+ import { ToastPosition, ToastType, DSToast, toast } from "@elliemae/ds-toast";
4
+ import { useAppSelector, useAppDispatch } from "../../data/react-redux.js";
5
+ import { actions as error } from "../../data/error/index.js";
10
6
  const ErrorToast = memo((props) => {
11
7
  const storeError = useAppSelector((state) => state?.error);
12
8
  const dispatch = useAppDispatch();
@@ -1,7 +1,10 @@
1
1
  import _ from "lodash";
2
- import { isHostAppDataExist, setHostAppData } from "./store";
3
- import { sendMessageToHost, getHostAppData } from "../message-to-host-app";
4
- import { bindEvent } from "../host-binding-events";
2
+ import { isHostAppDataExist, setHostAppData } from "./store.js";
3
+ import {
4
+ sendMessageToHost,
5
+ getHostAppData
6
+ } from "../message-to-host-app/index.js";
7
+ import { bindEvent } from "../host-binding-events/index.js";
5
8
  const fetchHostAppData = (hostedAppUrl, guestAppId) => {
6
9
  const isDataExist = isHostAppDataExist();
7
10
  return new Promise((resolve) => {
@@ -1,4 +1,5 @@
1
- import DSCheckbox, { CHECKBOX_VARIANT } from "@elliemae/ds-basic/form/Checkbox";
1
+ import * as React from "react";
2
+ import { DSCheckbox, CHECKBOX_VARIANT } from "@elliemae/ds-form/Checkbox";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSComboBox from "@elliemae/ds-basic/form/ComboBox";
1
+ import * as React from "react";
2
+ import { DSComboBox } from "@elliemae/ds-form/ComboBox";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSDateInput from "@elliemae/ds-basic/form/DateInput";
1
+ import * as React from "react";
2
+ import { DSDateInput } from "@elliemae/ds-form/DateInput";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSDatePicker from "@elliemae/ds-date-picker";
1
+ import * as React from "react";
2
+ import { DSDatePicker } from "@elliemae/ds-date-picker";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,6 +1,7 @@
1
- import DSFormItemLayout from "@elliemae/ds-basic/form/FormItem";
1
+ import * as React from "react";
2
+ import { DSFormItemLayout } from "@elliemae/ds-form/FormItem";
2
3
  import { get } from "react-hook-form";
3
- import { ConnectForm } from "../connect-form";
4
+ import { ConnectForm } from "../connect-form.js";
4
5
  const FormItemLayout = ({
5
6
  name,
6
7
  ...rest
@@ -1,7 +1,9 @@
1
- import DSInputMask, {
1
+ import * as React from "react";
2
+ import {
3
+ DSInputMask,
2
4
  MASK_TYPES,
3
5
  MASK_PIPES
4
- } from "@elliemae/ds-basic/form/InputMask";
6
+ } from "@elliemae/ds-form/InputMask";
5
7
  import {
6
8
  Controller
7
9
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSLargeInputText from "@elliemae/ds-basic/form/LargeInputText";
1
+ import * as React from "react";
2
+ import { DSLargeInputText } from "@elliemae/ds-form/LargeInputText";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSRadio from "@elliemae/ds-basic/form/Radio";
1
+ import * as React from "react";
2
+ import { DSRadio } from "@elliemae/ds-form/Radio";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSRadioGroup from "@elliemae/ds-basic/form/RadioGroup";
1
+ import * as React from "react";
2
+ import { DSRadioGroup } from "@elliemae/ds-form/RadioGroup";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,4 +1,5 @@
1
- import DSTextBox from "@elliemae/ds-basic/form/TextBox";
1
+ import * as React from "react";
2
+ import { DSTextBox } from "@elliemae/ds-form/TextBox";
2
3
  import {
3
4
  Controller
4
5
  } from "react-hook-form";
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import styled from "styled-components";
2
3
  import { useFormContext } from "react-hook-form";
3
4
  const Section = styled.section`
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import styled from "styled-components";
2
3
  import {
3
4
  useForm,
@@ -1,8 +1,9 @@
1
+ import * as React from "react";
1
2
  import moment from "moment";
2
- import { TextBox } from "../fields/text-box";
3
- import { ComboBox } from "../fields/combo-box";
4
- import { DateInput } from "../fields/date-input";
5
- import { FormItemLayout } from "../fields/form-item-layout";
3
+ import { TextBox } from "../fields/text-box/index.js";
4
+ import { ComboBox } from "../fields/combo-box/index.js";
5
+ import { DateInput } from "../fields/date-input/index.js";
6
+ import { FormItemLayout } from "../fields/form-item-layout/index.js";
6
7
  const FirstName = () => /* @__PURE__ */ React.createElement(FormItemLayout, {
7
8
  floatingLabel: true,
8
9
  inputComponent: TextBox,
@@ -1,5 +1,6 @@
1
+ import * as React from "react";
1
2
  import { useFormContext } from "react-hook-form";
2
- import DSButton from "@elliemae/ds-basic/Button";
3
+ import { DSButton } from "@elliemae/ds-button";
3
4
  const FormSubmitButton = ({
4
5
  ...rest
5
6
  }) => {
@@ -1,4 +1,4 @@
1
- import { sendMessageToHost } from "../message-to-host-app";
1
+ import { sendMessageToHost } from "../message-to-host-app/index.js";
2
2
  const onGuestUnloadStart = () => new Promise((resolve) => {
3
3
  window.addEventListener("message", (msg) => {
4
4
  if (msg.data.id === "unload-guest" || msg.data.id === "close_loan") {
@@ -0,0 +1,27 @@
1
+ import { Meta } from '@storybook/addon-docs';
2
+
3
+ <Meta title="Intro" />
4
+
5
+ # Get Started
6
+
7
+ Software Development Kit / API for developing React Web applications. Implements cross cutting concerns as reusable APIs
8
+
9
+ ## Install
10
+
11
+ `npm install --save @elliemae/app-react-dependencies @elliemae/pui-user-monitoring @elliemae/pui-theme @elliemae/ds-basic @elliemae/ds-modal @elliemae/pui-app-sdk`
12
+
13
+ ### **Use**
14
+
15
+ Import react components you want into your UI
16
+
17
+ `import { WaitMessage } from ‘@elliemae/pui-app-sdk’;`
18
+
19
+ and use them like so
20
+
21
+ ```
22
+ const LoadingIndicator = () => (
23
+ <div>
24
+ <WaitMessage size='m' isOpen />
25
+ </div>
26
+ )
27
+ ```
@@ -1,5 +1,6 @@
1
+ import * as React from "react";
1
2
  import { LiveMessage as AriaLiveMessage } from "react-aria-live";
2
- import { useAppSelector } from "../../data/react-redux";
3
+ import { useAppSelector } from "../../data/react-redux.js";
3
4
  const LiveMessage = () => {
4
5
  const message = useAppSelector((state) => state.liveMessage?.message);
5
6
  const id = useAppSelector((state) => state.liveMessage?.id);
@@ -1,5 +1,6 @@
1
+ import * as React from "react";
1
2
  import { lazy, Suspense } from "react";
2
- import { WaitMessageLauncher } from "../modals/wait-message/wait-message-launcher";
3
+ import { WaitMessageLauncher } from "../modals/wait-message/wait-message-launcher.js";
3
4
  const loadable = (importFunc, fallback = /* @__PURE__ */ React.createElement(WaitMessageLauncher, null)) => {
4
5
  const LazyComponent = lazy(importFunc);
5
6
  return (props) => /* @__PURE__ */ React.createElement(Suspense, {
@@ -1,7 +1,7 @@
1
1
  import { useEffect } from "react";
2
- import { useAppDispatch } from "../../data/react-redux";
3
- import { login } from "../../utils/auth";
4
- import { LOGIN_SUCCESS } from "../../data/auth/actions";
2
+ import { useAppDispatch } from "../../data/react-redux.js";
3
+ import { login } from "../../utils/auth/index.js";
4
+ import { LOGIN_SUCCESS } from "../../data/auth/actions.js";
5
5
  const Login = ({
6
6
  clientId,
7
7
  scope,
@@ -14,7 +14,7 @@ const Login = ({
14
14
  }).catch(() => {
15
15
  });
16
16
  }, [dispatch, clientId, scope, responseType]);
17
- return /* @__PURE__ */ React.createElement(React.Fragment, null);
17
+ return null;
18
18
  };
19
19
  export {
20
20
  Login
@@ -1,10 +1,10 @@
1
1
  import { useEffect, useContext } from "react";
2
2
  import { ThemeContext } from "styled-components";
3
3
  import { publish } from "pubsub-js";
4
- import { useAppDispatch } from "../../data/react-redux";
5
- import { breakpoint } from "../../data/breakpoint";
6
- import { useMediaBreakpoints } from "../useMediaBreakpoints";
7
- import { HOST_WINDOW_BREAKPOINT_CHANGED } from "../../utils/constants";
4
+ import { useAppDispatch } from "../../data/react-redux.js";
5
+ import { breakpoint } from "../../data/breakpoint/index.js";
6
+ import { useMediaBreakpoints } from "../useMediaBreakpoints/index.js";
7
+ import { HOST_WINDOW_BREAKPOINT_CHANGED } from "../../utils/constants.js";
8
8
  const MediaBreakpoint = () => {
9
9
  const theme = useContext(ThemeContext);
10
10
  const currentBreakpoint = useMediaBreakpoints([
@@ -17,7 +17,7 @@ const MediaBreakpoint = () => {
17
17
  dispatch({ type: breakpoint.change, payload: currentBreakpoint });
18
18
  publish(HOST_WINDOW_BREAKPOINT_CHANGED, currentBreakpoint);
19
19
  }, [currentBreakpoint, dispatch]);
20
- return /* @__PURE__ */ React.createElement(React.Fragment, null);
20
+ return null;
21
21
  };
22
22
  export {
23
23
  MediaBreakpoint
@@ -1,4 +1,4 @@
1
- import { removeEvent } from "../host-binding-events";
1
+ import { removeEvent } from "../host-binding-events/index.js";
2
2
  const getHostAppData = (action, resolve) => (event) => {
3
3
  if (event.data.id === "host-app-data") {
4
4
  action(event.data);
@@ -1,23 +1,26 @@
1
- import { persistentStorage } from "../../../utils/web-storage";
2
- import { CMicroAppHost } from "../../../utils/micro-frontend/host";
3
- import { getLogger } from "../../../utils/micro-frontend";
4
- import { logRecords } from "../../../utils/log-records";
5
- import { APP_CONTAINER_ID_PREFIX } from "../const";
6
- import { getCurrentBreakpoint, getViewportSize } from "../../../utils/window";
1
+ import { persistentStorage } from "../../../utils/web-storage.js";
2
+ import { CMicroAppHost } from "../../../utils/micro-frontend/host.js";
3
+ import { getLogger } from "../../../utils/micro-frontend/index.js";
4
+ import { logRecords } from "../../../utils/log-records.js";
5
+ import { APP_CONTAINER_ID_PREFIX } from "../const.js";
6
+ import {
7
+ getCurrentBreakpoint,
8
+ getViewportSize
9
+ } from "../../../utils/window.js";
7
10
  import {
8
11
  addStylesToDOM,
9
12
  removeDynamicImportedStyles
10
- } from "../resources/style";
13
+ } from "../resources/style.js";
11
14
  import {
12
15
  addScriptToDOM,
13
16
  removeDynamicImportedScripts,
14
17
  removePrefetchLinks
15
- } from "../resources/script";
18
+ } from "../resources/script.js";
16
19
  import {
17
20
  getAppManifest,
18
21
  getFullFileNameofAssetsFromManifest
19
- } from "../resources/manifest";
20
- const cssType = new RegExp(/\.css$/);
22
+ } from "../resources/manifest.js";
23
+ const cssType = /\.css$/;
21
24
  const isCss = (fileName) => cssType.test(fileName);
22
25
  const activeApps = {};
23
26
  const initApplication = async ({
@@ -120,6 +123,8 @@ const unloadApp = ({
120
123
  hostUrl,
121
124
  documentEle
122
125
  }) => {
126
+ if (!hostUrl)
127
+ throw new Error("Unable to unload app. hostUrl is required");
123
128
  getLogger().info(logRecords.APP_UNLOADING(id));
124
129
  const app = (window.emui || {})[id];
125
130
  if (!app)
@@ -1,7 +1,8 @@
1
+ import * as React from "react";
1
2
  import { memo } from "react";
2
3
  import styled from "styled-components";
3
- import { APP_CONTAINER_ID_PREFIX } from "./const";
4
- import { useAppWillRender } from "./use-app-will-render";
4
+ import { APP_CONTAINER_ID_PREFIX } from "./const.js";
5
+ import { useAppWillRender } from "./use-app-will-render.js";
5
6
  const Div = styled.div`
6
7
  height: 100%;
7
8
  width: 100%;
@@ -1,12 +1,14 @@
1
- import { getHTTPClient } from "../../../communication/http-client";
2
- import { removeDoubleSlash } from "../../../utils/url";
3
- import { getLogger } from "../../../utils/micro-frontend";
4
- import { logRecords } from "../../../utils/log-records";
1
+ import { getHTTPClient } from "../../../communication/http-client/index.js";
2
+ import { removeDoubleSlash } from "../../../utils/url.js";
3
+ import { getLogger } from "../../../utils/micro-frontend/index.js";
4
+ import { logRecords } from "../../../utils/log-records.js";
5
5
  const getUnVersionedManifestPath = (path) => path.replace(/\/\d+\.\d+/, "/latest");
6
6
  const getAppManifest = async ({
7
7
  hostUrl,
8
8
  manifestPath
9
9
  }) => {
10
+ if (!hostUrl || !manifestPath)
11
+ throw new Error("Unable to get app manifest. hostUrl and manifestPath are required.");
10
12
  const url = new URL(`${manifestPath.replace(/\/?$/, "/")}manifest.json`, hostUrl);
11
13
  const response = await getHTTPClient().get(removeDoubleSlash(url.href));
12
14
  const { headers } = response;
@@ -1,6 +1,6 @@
1
- import { removeDoubleSlash } from "../../../utils/url";
1
+ import { removeDoubleSlash } from "../../../utils/url.js";
2
2
  const APP_SCRIPT_ID_PREFIX = "emui-script-";
3
- const HEAD_SCRIPTS = new RegExp("/(?:emuiDiagnostics|global|global-prod|emuiUserMonitoring)(?:..*)?.js", "i");
3
+ const HEAD_SCRIPTS = /(?:emuiDiagnostics|global|global-prod|emuiUserMonitoring)(?:..*)?.js/;
4
4
  const isHeadScript = (scriptSrc) => HEAD_SCRIPTS.test(scriptSrc);
5
5
  const addScriptToDOM = ({ name, hostUrl, documentEle }, fileName, index) => new Promise((resolve, reject) => {
6
6
  const ele = documentEle.createElement("script");
@@ -1,4 +1,4 @@
1
- import { removeDoubleSlash } from "../../../utils/url";
1
+ import { removeDoubleSlash } from "../../../utils/url.js";
2
2
  const APP_STYLE_ID_PREFIX = "emui-style-";
3
3
  const addStylesToDOM = ({ name, hostUrl, documentEle }, fileName, index) => new Promise((resolve, reject) => {
4
4
  const ele = documentEle.createElement("link");
@@ -1,18 +1,24 @@
1
1
  import { useRef, useLayoutEffect, useCallback } from "react";
2
2
  import { merge } from "lodash";
3
3
  import { useDispatch } from "react-redux";
4
- import { waitMessage } from "../../data/wait-message/actions";
5
- import { loadApp, unloadApp, mountApp, unmountApp } from "./app-factory";
4
+ import { waitMessage } from "../../data/wait-message/actions.js";
5
+ import {
6
+ loadApp,
7
+ unloadApp,
8
+ mountApp,
9
+ unmountApp
10
+ } from "./app-factory/index.js";
6
11
  import {
7
12
  getLogger,
8
13
  getMicroFrontEndAppConfig
9
- } from "../../utils/micro-frontend";
10
- import { logRecords } from "../../utils/log-records";
14
+ } from "../../utils/micro-frontend/index.js";
15
+ import { logRecords } from "../../utils/log-records.js";
11
16
  const useAppWillRender = ({
12
17
  id,
13
18
  documentEle,
14
19
  history,
15
20
  theme,
21
+ homeRoute,
16
22
  onUnloadComplete
17
23
  }) => {
18
24
  const dispatch = useDispatch ? useDispatch() : null;
@@ -52,13 +58,14 @@ const useAppWillRender = ({
52
58
  const appConfig = merge(getConfig(), {
53
59
  documentEle,
54
60
  history,
55
- theme
61
+ theme,
62
+ homeRoute
56
63
  });
57
64
  load(appConfig);
58
65
  return () => {
59
66
  ref.current = unload(appConfig);
60
67
  };
61
- }, [documentEle, getConfig, history, theme, load, unload]);
68
+ }, [documentEle, getConfig, history, theme, homeRoute, load, unload]);
62
69
  };
63
70
  export {
64
71
  useAppWillRender
@@ -1,4 +1,4 @@
1
- import { getAppConfigValue } from "../../utils/app-config/config";
1
+ import { getAppConfigValue } from "../../utils/app-config/config.js";
2
2
  const getNavigationLinks = () => {
3
3
  const microApps = getAppConfigValue("microFrontendApps");
4
4
  if (!microApps)
@@ -1,10 +1,11 @@
1
+ import * as React from "react";
1
2
  import { memo, useState } from "react";
2
3
  import frameHtml from "file-loader?name=iframe.[contenthash].[ext]!./iframe/index.html";
3
- import { IFrame } from "./iframe";
4
- import { useFrameLoaded } from "./use-frame-loaded";
4
+ import { IFrame } from "./iframe/index.js";
5
+ import { useFrameLoaded } from "./use-frame-loaded.js";
5
6
  import {
6
7
  useAppWillRender
7
- } from "../micro-app/use-app-will-render";
8
+ } from "../micro-app/use-app-will-render.js";
8
9
  const App = memo(({ id, dispose, onUnloadComplete, ...rest }) => {
9
10
  const [documentEle, setDocumentEle] = useState(null);
10
11
  useFrameLoaded({ id, documentEle, ...rest });
@@ -0,0 +1,74 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <!-- The first thing in any HTML file should be the charset -->
5
+ <meta charset="utf-8" />
6
+ <!-- Make the page mobile compatible -->
7
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
8
+ <!-- Allow installing the app to the homescreen -->
9
+ <meta name="mobile-web-app-capable" content="yes" />
10
+ <link rel="icon" href="/favicon.ico" />
11
+ <title>Application</title>
12
+ <!-- Google Tag Manager -->
13
+ <!-- <script nonce="__CSP_NONCE__">
14
+ (function (w, d, s, l, i) {
15
+ w[l] = w[l] || [];
16
+ w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
17
+ var f = d.getElementsByTagName(s)[0],
18
+ j = d.createElement(s),
19
+ dl = l != 'dataLayer' ? '&l=' + l : '';
20
+ j.async = true;
21
+ j.src =
22
+ 'https://www.googletagmanager.com/gtm.js?id=' +
23
+ i +
24
+ dl;
25
+ f.parentNode.insertBefore(j, f);
26
+ })(window, document, 'script', 'dataLayer', window.emui.gtm.id);
27
+ </script> -->
28
+ <!-- <script nonce="__CSP_NONCE__">
29
+ window.emuiUserMonitoring = window.parent.emuiUserMonitoring || {
30
+ setCustomVirtualPageName: function () {},
31
+ startVirtualPageMonitoringWithAutoEnd: function () {},
32
+ };
33
+ </script> -->
34
+ <script>
35
+ (function (i, s, o, g, r, a, m) {
36
+ i['GoogleAnalyticsObject'] = r;
37
+ (i[r] =
38
+ i[r] ||
39
+ function () {
40
+ (i[r].q = i[r].q || []).push(arguments);
41
+ }),
42
+ (i[r].l = 1 * new Date());
43
+ (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
44
+ a.async = 1;
45
+ a.src = g;
46
+ m.parentNode.insertBefore(a, m);
47
+ })(
48
+ window,
49
+ document,
50
+ 'script',
51
+ 'https://www.google-analytics.com/analytics.js',
52
+ 'ga',
53
+ );
54
+ </script>
55
+ <style>
56
+ .full-width {
57
+ width: 100%;
58
+ }
59
+ .full-height {
60
+ height: 100%;
61
+ }
62
+ </style>
63
+ </head>
64
+
65
+ <body class="full-width full-height">
66
+ <!-- Display a message if JS has been disabled on the browser. -->
67
+ <noscript
68
+ >If you're seeing this message, that means
69
+ <strong>JavaScript has been disabled on your browser</strong>, please
70
+ <strong>enable JS</strong> to make this app work.</noscript
71
+ >
72
+ <div id="pui-app-container-" class="full-width full-height"></div>
73
+ </body>
74
+ </html>
@@ -1,6 +1,7 @@
1
+ import * as React from "react";
1
2
  import { memo, useRef } from "react";
2
3
  import styled from "styled-components";
3
- import { IFRAME_CONTAINER_ID_PREFIX } from "./const";
4
+ import { IFRAME_CONTAINER_ID_PREFIX } from "./const.js";
4
5
  const Div = styled.div`
5
6
  display: flex;
6
7
  width: 100%;