@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.
- package/dist/cjs/analytics/appdynamics.js +13 -7
- package/dist/cjs/analytics/index.js +13 -12
- package/dist/cjs/analytics/page-view-event.js +23 -13
- package/dist/cjs/analytics/user-session-event.js +14 -13
- package/dist/cjs/analytics/user-wait-event.js +13 -12
- package/dist/cjs/analytics/web-analytics.js +19 -2
- package/dist/cjs/api/auth/index.js +11 -10
- package/dist/cjs/api/helpers.js +12 -11
- package/dist/cjs/api/users/index.js +11 -10
- package/dist/cjs/api/users/users.json +8 -0
- package/dist/cjs/app.config.json +129 -0
- package/dist/cjs/communication/http-client/index.js +18 -12
- package/dist/cjs/communication/http-client/request-interceptor.js +11 -10
- package/dist/cjs/communication/http-client/response-interceptor.js +13 -7
- package/dist/cjs/communication/http-client/retry-axios.js +14 -8
- package/dist/cjs/communication/http-client/retry.js +11 -10
- package/dist/cjs/communication/http-client/tests/index.test-disable.js +7 -7
- package/dist/cjs/data/auth/actions.js +19 -2
- package/dist/cjs/data/auth/reducer.js +14 -8
- package/dist/cjs/data/breakpoint/index.js +13 -7
- package/dist/cjs/data/error/index.js +11 -10
- package/dist/cjs/data/index.js +35 -0
- package/dist/cjs/data/live-message/index.js +11 -10
- package/dist/cjs/data/logout/actions.js +19 -2
- package/dist/cjs/data/navigation-prompt/actions.js +19 -2
- package/dist/cjs/data/react-redux.js +11 -10
- package/dist/cjs/data/reducers.js +15 -14
- package/dist/cjs/data/saga.js +19 -2
- package/dist/cjs/data/store.js +17 -24
- package/dist/cjs/data/wait-message/actions.js +19 -2
- package/dist/cjs/data/wait-message/reducer.js +14 -8
- package/dist/cjs/index.js +88 -82
- package/dist/cjs/index.pug +15 -0
- package/dist/cjs/micro-frontend.js +34 -0
- package/dist/cjs/sideeffect/auth/index.js +15 -14
- package/dist/cjs/sideeffect/error-toast/index.js +15 -14
- package/dist/cjs/sideeffect/wait-message/index.js +15 -14
- package/dist/cjs/typings/styled.d.js +1 -19
- package/dist/cjs/utils/app-config/config.js +14 -8
- package/dist/cjs/utils/app-config/index.js +17 -11
- package/dist/cjs/utils/app-host-integration/react.js +11 -10
- package/dist/cjs/utils/auth/helper.js +13 -7
- package/dist/cjs/utils/auth/index.js +19 -18
- package/dist/cjs/utils/await.js +18 -1
- package/dist/cjs/utils/constants.js +19 -2
- package/dist/cjs/utils/font-size.js +19 -2
- package/dist/cjs/utils/guest-with-service.js +19 -2
- package/dist/cjs/utils/helpers.js +20 -3
- package/dist/cjs/utils/history.js +11 -10
- package/dist/cjs/utils/log-records.js +19 -2
- package/dist/cjs/utils/micro-frontend/console-logger.js +12 -11
- package/dist/cjs/utils/micro-frontend/guest.js +25 -19
- package/dist/cjs/utils/micro-frontend/host.js +30 -29
- package/dist/cjs/utils/micro-frontend/index.js +17 -11
- package/dist/cjs/utils/micro-frontend/types.js +18 -1
- package/dist/cjs/utils/redact-pii.js +19 -2
- package/dist/cjs/utils/service-worker.js +12 -11
- package/dist/cjs/utils/session.js +15 -14
- package/dist/cjs/utils/storybook/{main.js → cjs/main.js} +11 -3
- package/dist/cjs/utils/storybook/{middleware.js → cjs/middleware.js} +0 -0
- package/dist/cjs/utils/storybook/{vite.js → cjs/vite.js} +0 -0
- package/dist/cjs/utils/storybook/{webpack.js → cjs/webpack.js} +9 -1
- package/dist/cjs/utils/storybook/manager.js +12 -11
- package/dist/cjs/utils/storybook/preview.js +19 -19
- package/dist/cjs/utils/storybook/theme.js +11 -10
- package/dist/cjs/utils/testing/index.js +19 -12
- package/dist/cjs/utils/testing/render-with-redux.js +17 -10
- package/dist/cjs/utils/testing/render-with-router-redux.js +20 -13
- package/dist/cjs/utils/testing/render-with-router.js +24 -14
- package/dist/cjs/utils/testing/render-with-state-addons.js +17 -10
- package/dist/cjs/utils/types.js +18 -1
- package/dist/cjs/utils/url.js +19 -2
- package/dist/cjs/utils/web-storage.js +13 -7
- package/dist/cjs/utils/window.js +11 -10
- package/dist/cjs/view/app-root/hosted-app.js +18 -11
- package/dist/cjs/view/app-root/index.js +25 -18
- package/dist/cjs/view/app-root/stand-alone-app.js +22 -15
- package/dist/cjs/view/app-root/style.js +11 -10
- package/dist/cjs/view/app-router.js +48 -0
- package/dist/cjs/view/error-boundary/default-error-template.js +25 -2
- package/dist/cjs/view/error-boundary/index.js +16 -10
- package/dist/cjs/view/error-toast/index.js +21 -14
- package/dist/cjs/view/fetch-host-app-data/index.js +16 -10
- package/dist/cjs/view/fetch-host-app-data/store.js +11 -10
- package/dist/cjs/view/fields/check-box/index.js +16 -9
- package/dist/cjs/view/fields/combo-box/index.js +16 -9
- package/dist/cjs/view/fields/connect-form.js +11 -10
- package/dist/cjs/view/fields/date-input/index.js +16 -9
- package/dist/cjs/view/fields/date-picker/index.js +16 -9
- package/dist/cjs/view/fields/form-item-layout/index.js +17 -10
- package/dist/cjs/view/fields/input-mask/index.js +16 -9
- package/dist/cjs/view/fields/large-text-box/index.js +16 -9
- package/dist/cjs/view/fields/radio/index.js +16 -9
- package/dist/cjs/view/fields/radio-group/index.js +16 -9
- package/dist/cjs/view/fields/text-box/index.js +16 -9
- package/dist/cjs/view/fields/watch-value.js +15 -8
- package/dist/cjs/view/form/index.js +15 -8
- package/dist/cjs/view/form/personal-info-section.js +18 -11
- package/dist/cjs/view/form/submit-button/index.js +16 -9
- package/dist/cjs/view/guest-unload-handlers/index.js +11 -10
- package/dist/cjs/view/host-binding-events/index.js +19 -2
- package/dist/cjs/view/intro.stories.mdx +27 -0
- package/dist/cjs/view/live-message/index.js +15 -8
- package/dist/cjs/view/loadable/index.js +15 -8
- package/dist/cjs/view/login/index.js +15 -14
- package/dist/cjs/view/media-breakpoint/index.js +18 -17
- package/dist/cjs/view/message-to-host-app/index.js +11 -10
- package/dist/cjs/view/micro-app/app-factory/index.js +22 -19
- package/dist/cjs/view/micro-app/const.js +19 -2
- package/dist/cjs/view/micro-app/index.js +17 -10
- package/dist/cjs/view/micro-app/resources/manifest.js +16 -13
- package/dist/cjs/view/micro-app/resources/script.js +12 -11
- package/dist/cjs/view/micro-app/resources/style.js +11 -10
- package/dist/cjs/view/micro-app/types.js +18 -1
- package/dist/cjs/view/micro-app/use-app-will-render.js +21 -18
- package/dist/cjs/view/micro-app/utils.js +11 -10
- package/dist/cjs/view/micro-iframe-app/app.js +18 -11
- package/dist/cjs/view/micro-iframe-app/iframe/const.js +19 -2
- package/dist/cjs/view/micro-iframe-app/iframe/index.html +74 -0
- package/dist/cjs/view/micro-iframe-app/iframe/index.js +16 -9
- package/dist/cjs/view/micro-iframe-app/index.js +16 -9
- package/dist/cjs/view/micro-iframe-app/types.js +18 -1
- package/dist/cjs/view/micro-iframe-app/use-frame-loaded.js +16 -13
- package/dist/cjs/view/modals/error/index.js +16 -9
- package/dist/cjs/view/modals/navigation-prompt/index.js +18 -11
- package/dist/cjs/view/modals/session-expiry/customHooks.js +14 -13
- package/dist/cjs/view/modals/session-expiry/index.js +24 -14
- package/dist/cjs/view/modals/wait-message/html-wait-message.js +12 -11
- package/dist/cjs/view/modals/wait-message/index.js +19 -12
- package/dist/cjs/view/modals/wait-message/wait-message-launcher.js +14 -13
- package/dist/cjs/view/page.js +51 -0
- package/dist/cjs/view/render-with-delay/index.js +15 -8
- package/dist/cjs/view/render-with-host-data/index.js +16 -9
- package/dist/cjs/view/require-auth.js +62 -0
- package/dist/cjs/view/session-timeout/index.js +23 -12
- package/dist/cjs/view/storybook/decorator.js +15 -8
- package/dist/cjs/view/use-previous.js +11 -10
- package/dist/cjs/view/useMediaBreakpoints/index.js +11 -10
- package/dist/cjs/view/visually-hidden/index.js +15 -8
- package/dist/cjs/view/window-size/index.js +23 -18
- package/dist/es/analytics/index.js +3 -3
- package/dist/es/analytics/page-view-event.js +12 -3
- package/dist/es/analytics/user-session-event.js +2 -2
- package/dist/es/analytics/user-wait-event.js +1 -1
- package/dist/es/api/auth/index.js +1 -1
- package/dist/es/api/users/index.js +1 -1
- package/dist/es/api/users/users.json +8 -0
- package/dist/es/app.config.json +129 -0
- package/dist/es/communication/http-client/index.js +5 -5
- package/dist/es/communication/http-client/request-interceptor.js +1 -1
- package/dist/es/communication/http-client/retry-axios.js +1 -1
- package/dist/es/communication/http-client/retry.js +1 -1
- package/dist/es/communication/http-client/tests/index.test-disable.js +3 -3
- package/dist/es/data/auth/reducer.js +1 -1
- package/dist/es/data/index.js +11 -0
- package/dist/es/data/reducers.js +4 -4
- package/dist/es/data/store.js +5 -15
- package/dist/es/data/wait-message/reducer.js +1 -1
- package/dist/es/index.js +85 -75
- package/dist/es/index.pug +15 -0
- package/dist/es/micro-frontend.js +10 -0
- package/dist/es/sideeffect/auth/index.js +4 -4
- package/dist/es/sideeffect/error-toast/index.js +4 -4
- package/dist/es/sideeffect/wait-message/index.js +4 -4
- package/dist/es/utils/app-config/config.js +1 -1
- package/dist/es/utils/app-config/index.js +4 -4
- package/dist/es/utils/app-host-integration/react.js +1 -1
- package/dist/es/utils/auth/helper.js +1 -1
- package/dist/es/utils/auth/index.js +9 -9
- package/dist/es/utils/helpers.js +1 -1
- package/dist/es/utils/micro-frontend/console-logger.js +1 -1
- package/dist/es/utils/micro-frontend/guest.js +9 -9
- package/dist/es/utils/micro-frontend/host.js +19 -18
- package/dist/es/utils/micro-frontend/index.js +4 -4
- package/dist/es/utils/service-worker.js +2 -2
- package/dist/es/utils/session.js +4 -4
- package/dist/es/utils/storybook/manager.js +1 -1
- package/dist/es/utils/storybook/preview.js +7 -8
- package/dist/es/utils/testing/index.js +4 -3
- package/dist/es/utils/testing/render-with-redux.js +3 -2
- package/dist/es/utils/testing/render-with-router-redux.js +5 -4
- package/dist/es/utils/testing/render-with-router.js +10 -6
- package/dist/es/utils/testing/render-with-state-addons.js +1 -0
- package/dist/es/view/app-root/hosted-app.js +5 -4
- package/dist/es/view/app-root/index.js +9 -8
- package/dist/es/view/app-root/stand-alone-app.js +8 -7
- package/dist/es/view/app-router.js +19 -0
- package/dist/es/view/error-boundary/default-error-template.js +1 -0
- package/dist/es/view/error-boundary/index.js +3 -3
- package/dist/es/view/error-toast/index.js +4 -8
- package/dist/es/view/fetch-host-app-data/index.js +6 -3
- package/dist/es/view/fields/check-box/index.js +2 -1
- package/dist/es/view/fields/combo-box/index.js +2 -1
- package/dist/es/view/fields/date-input/index.js +2 -1
- package/dist/es/view/fields/date-picker/index.js +2 -1
- package/dist/es/view/fields/form-item-layout/index.js +3 -2
- package/dist/es/view/fields/input-mask/index.js +4 -2
- package/dist/es/view/fields/large-text-box/index.js +2 -1
- package/dist/es/view/fields/radio/index.js +2 -1
- package/dist/es/view/fields/radio-group/index.js +2 -1
- package/dist/es/view/fields/text-box/index.js +2 -1
- package/dist/es/view/fields/watch-value.js +1 -0
- package/dist/es/view/form/index.js +1 -0
- package/dist/es/view/form/personal-info-section.js +5 -4
- package/dist/es/view/form/submit-button/index.js +2 -1
- package/dist/es/view/guest-unload-handlers/index.js +1 -1
- package/dist/es/view/intro.stories.mdx +27 -0
- package/dist/es/view/live-message/index.js +2 -1
- package/dist/es/view/loadable/index.js +2 -1
- package/dist/es/view/login/index.js +4 -4
- package/dist/es/view/media-breakpoint/index.js +5 -5
- package/dist/es/view/message-to-host-app/index.js +1 -1
- package/dist/es/view/micro-app/app-factory/index.js +15 -10
- package/dist/es/view/micro-app/index.js +3 -2
- package/dist/es/view/micro-app/resources/manifest.js +6 -4
- package/dist/es/view/micro-app/resources/script.js +2 -2
- package/dist/es/view/micro-app/resources/style.js +1 -1
- package/dist/es/view/micro-app/use-app-will-render.js +13 -6
- package/dist/es/view/micro-app/utils.js +1 -1
- package/dist/es/view/micro-iframe-app/app.js +4 -3
- package/dist/es/view/micro-iframe-app/iframe/index.html +74 -0
- package/dist/es/view/micro-iframe-app/iframe/index.js +2 -1
- package/dist/es/view/micro-iframe-app/index.js +3 -2
- package/dist/es/view/micro-iframe-app/use-frame-loaded.js +5 -3
- package/dist/es/view/modals/error/index.js +2 -1
- package/dist/es/view/modals/navigation-prompt/index.js +4 -3
- package/dist/es/view/modals/session-expiry/customHooks.js +2 -2
- package/dist/es/view/modals/session-expiry/index.js +11 -7
- package/dist/es/view/modals/wait-message/html-wait-message.js +1 -1
- package/dist/es/view/modals/wait-message/index.js +5 -4
- package/dist/es/view/modals/wait-message/wait-message-launcher.js +3 -3
- package/dist/es/view/page.js +22 -0
- package/dist/es/view/render-with-delay/index.js +2 -1
- package/dist/es/view/render-with-host-data/index.js +3 -2
- package/dist/es/view/require-auth.js +33 -0
- package/dist/es/view/session-timeout/index.js +10 -5
- package/dist/es/view/storybook/decorator.js +3 -2
- package/dist/es/view/visually-hidden/index.js +1 -0
- package/dist/es/view/window-size/index.js +11 -7
- package/dist/types/communication/http-client/retry.d.ts +1 -1
- package/dist/types/data/index.d.ts +4 -0
- package/dist/types/data/react-redux.d.ts +15 -15
- package/dist/types/data/reducers.d.ts +6 -6
- package/dist/types/data/store.d.ts +30 -30
- package/dist/types/index.d.ts +78 -78
- package/dist/types/micro-frontend.d.ts +6 -0
- package/dist/types/sideeffect/auth/index.d.ts +1 -1
- package/dist/types/utils/app-config/config.d.ts +1 -1
- package/dist/types/utils/app-host-integration/react.d.ts +1 -1
- package/dist/types/utils/history.d.ts +2 -2
- package/dist/types/utils/micro-frontend/guest.d.ts +3 -3
- package/dist/types/utils/micro-frontend/host.d.ts +1 -1
- package/dist/types/utils/micro-frontend/index.d.ts +2 -2
- package/dist/types/utils/micro-frontend/types.d.ts +1 -1
- package/dist/types/utils/session.d.ts +5 -2
- package/dist/types/utils/storybook/{main.d.cts → cjs/main.d.ts} +24 -2
- package/dist/types/utils/storybook/{middleware.d.cts → cjs/middleware.d.ts} +0 -0
- package/dist/types/utils/storybook/{vite.d.cts → cjs/vite.d.ts} +0 -0
- package/dist/types/utils/storybook/cjs/webpack.d.ts +16 -0
- package/dist/types/utils/storybook/preview.d.ts +8 -2
- package/dist/types/utils/testing/render-with-redux.d.ts +22 -22
- package/dist/types/utils/testing/render-with-router-redux.d.ts +22 -22
- package/dist/types/utils/testing/render-with-router.d.ts +2 -2
- package/dist/types/view/app-root/index.d.ts +1 -1
- package/dist/types/view/app-router.d.ts +9 -0
- package/dist/types/view/fields/check-box/index.d.ts +1 -1
- package/dist/types/view/fields/check-box/index.stories.d.ts +1 -1
- package/dist/types/view/fields/check-box/set-value.stories.d.ts +1 -1
- package/dist/types/view/fields/combo-box/index.stories.d.ts +1 -1
- package/dist/types/view/fields/date-input/index.stories.d.ts +1 -1
- package/dist/types/view/fields/date-picker/index.stories.d.ts +1 -1
- package/dist/types/view/fields/form-item-layout/index.stories.d.ts +1 -1
- package/dist/types/view/fields/input-mask/index.d.ts +1 -1
- package/dist/types/view/fields/input-mask/index.stories.d.ts +1 -1
- package/dist/types/view/fields/large-text-box/index.stories.d.ts +1 -1
- package/dist/types/view/fields/radio/index.stories.d.ts +1 -1
- package/dist/types/view/fields/radio/set-value.stories.d.ts +1 -1
- package/dist/types/view/fields/radio-group/index.stories.d.ts +1 -1
- package/dist/types/view/fields/text-box/index.stories.d.ts +1 -1
- package/dist/types/view/form/usecases.stories.d.ts +1 -1
- package/dist/types/view/micro-app/app-factory/index.d.ts +3 -3
- package/dist/types/view/micro-app/index.d.ts +1 -1
- package/dist/types/view/micro-app/resources/manifest.d.ts +2 -2
- package/dist/types/view/micro-app/resources/script.d.ts +1 -1
- package/dist/types/view/micro-app/resources/style.d.ts +1 -1
- package/dist/types/view/micro-app/types.d.ts +1 -0
- package/dist/types/view/micro-app/use-app-will-render.d.ts +2 -2
- package/dist/types/view/micro-iframe-app/app.d.ts +2 -2
- package/dist/types/view/micro-iframe-app/index.d.ts +1 -1
- package/dist/types/view/micro-iframe-app/types.d.ts +1 -1
- package/dist/types/view/micro-iframe-app/use-frame-loaded.d.ts +1 -1
- package/dist/types/view/modals/error/index.stories.d.ts +1 -1
- package/dist/types/view/modals/navigation-prompt/index.stories.d.ts +1 -1
- package/dist/types/view/modals/session-expiry/index.stories.d.ts +1 -1
- package/dist/types/view/modals/wait-message/index.stories.d.ts +1 -1
- package/dist/types/view/page.d.ts +8 -0
- package/dist/types/view/require-auth.d.ts +8 -0
- package/dist/types/view/storybook/decorator.d.ts +1 -1
- package/package.json +44 -29
- package/dist/cjs/route/index.js +0 -48
- package/dist/cjs/route/page-view.js +0 -38
- package/dist/cjs/route/private-route/index.js +0 -68
- package/dist/cjs/view/header/center-region/index.js +0 -64
- package/dist/cjs/view/header/index.js +0 -43
- package/dist/cjs/view/header/logo-region/index.js +0 -32
- package/dist/cjs/view/header/nav-region/index.js +0 -46
- package/dist/cjs/view/header/nav-region/notification/index.js +0 -31
- package/dist/cjs/view/header/nav-region/user/index.js +0 -31
- package/dist/es/route/index.js +0 -25
- package/dist/es/route/page-view.js +0 -15
- package/dist/es/route/private-route/index.js +0 -45
- package/dist/es/view/header/center-region/index.js +0 -41
- package/dist/es/view/header/index.js +0 -20
- package/dist/es/view/header/logo-region/index.js +0 -9
- package/dist/es/view/header/nav-region/index.js +0 -23
- package/dist/es/view/header/nav-region/notification/index.js +0 -8
- package/dist/es/view/header/nav-region/user/index.js +0 -8
- package/dist/types/route/index.d.ts +0 -8
- package/dist/types/route/page-view.d.ts +0 -1
- package/dist/types/route/private-route/index.d.ts +0 -8
- package/dist/types/utils/storybook/webpack.d.cts +0 -8
- package/dist/types/view/header/center-region/index.d.ts +0 -9
- package/dist/types/view/header/index.d.ts +0 -7
- package/dist/types/view/header/index.stories.d.ts +0 -5
- package/dist/types/view/header/logo-region/index.d.ts +0 -2
- package/dist/types/view/header/nav-region/index.d.ts +0 -2
- package/dist/types/view/header/nav-region/notification/index.d.ts +0 -2
- 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 {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
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(
|
|
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
|
-
|
|
4
|
-
|
|
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 {
|
|
4
|
-
|
|
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,6 +1,7 @@
|
|
|
1
|
-
import
|
|
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,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,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
|
|
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
|
|
20
|
+
return null;
|
|
21
21
|
};
|
|
22
22
|
export {
|
|
23
23
|
MediaBreakpoint
|
|
@@ -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 {
|
|
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 =
|
|
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 =
|
|
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 {
|
|
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,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%;
|