@elliemae/pui-app-sdk 3.0.0-beta.1 → 3.0.0-beta.10
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/index.js +3 -3
- package/dist/cjs/analytics/page-view-event.js +13 -4
- package/dist/cjs/analytics/user-session-event.js +4 -4
- package/dist/cjs/analytics/user-wait-event.js +3 -3
- package/dist/cjs/api/auth/index.js +1 -1
- package/dist/cjs/api/users/index.js +1 -1
- 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 +5 -5
- package/dist/cjs/communication/http-client/request-interceptor.js +1 -1
- package/dist/cjs/communication/http-client/retry.js +1 -1
- package/dist/cjs/communication/http-client/tests/index.test-disable.js +3 -3
- package/dist/cjs/data/auth/reducer.js +1 -1
- package/dist/cjs/data/index.js +34 -0
- package/dist/cjs/data/reducers.js +4 -4
- package/dist/cjs/data/store.js +2 -3
- package/dist/cjs/data/wait-message/reducer.js +1 -1
- package/dist/cjs/index.js +74 -72
- package/dist/cjs/index.pug +15 -0
- package/dist/cjs/micro-frontend.js +33 -0
- package/dist/cjs/route/index.js +2 -1
- package/dist/cjs/route/page-view.js +1 -1
- package/dist/cjs/route/private-route/index.js +8 -7
- package/dist/cjs/sideeffect/auth/index.js +4 -4
- package/dist/cjs/sideeffect/error-toast/index.js +4 -4
- package/dist/cjs/sideeffect/wait-message/index.js +4 -4
- package/dist/cjs/utils/app-config/index.js +4 -4
- package/dist/cjs/utils/app-host-integration/react.js +1 -1
- package/dist/cjs/utils/auth/helper.js +1 -1
- package/dist/cjs/utils/auth/index.js +9 -9
- package/dist/cjs/utils/micro-frontend/console-logger.js +1 -1
- package/dist/cjs/utils/micro-frontend/guest.js +8 -8
- package/dist/cjs/utils/micro-frontend/host.js +14 -14
- package/dist/cjs/utils/micro-frontend/index.js +4 -4
- package/dist/cjs/utils/service-worker.js +2 -2
- package/dist/cjs/utils/session.js +2 -2
- 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 +1 -1
- package/dist/cjs/utils/storybook/preview.js +7 -8
- package/dist/cjs/utils/testing/index.js +4 -3
- package/dist/cjs/utils/testing/render-with-redux.js +3 -2
- package/dist/cjs/utils/testing/render-with-router-redux.js +3 -2
- package/dist/cjs/utils/testing/render-with-router.js +1 -0
- package/dist/cjs/utils/testing/render-with-state-addons.js +1 -0
- package/dist/cjs/view/app-root/hosted-app.js +5 -4
- package/dist/cjs/view/app-root/index.js +7 -6
- package/dist/cjs/view/app-root/stand-alone-app.js +8 -7
- package/dist/cjs/view/error-boundary/default-error-template.js +17 -0
- package/dist/cjs/view/error-boundary/index.js +3 -3
- package/dist/cjs/view/error-toast/index.js +8 -7
- package/dist/cjs/view/fetch-host-app-data/index.js +3 -3
- package/dist/cjs/view/fields/check-box/index.js +2 -1
- package/dist/cjs/view/fields/combo-box/index.js +2 -1
- package/dist/cjs/view/fields/date-input/index.js +2 -1
- package/dist/cjs/view/fields/date-picker/index.js +1 -0
- package/dist/cjs/view/fields/form-item-layout/index.js +3 -2
- package/dist/cjs/view/fields/input-mask/index.js +2 -1
- package/dist/cjs/view/fields/large-text-box/index.js +2 -1
- package/dist/cjs/view/fields/radio/index.js +2 -1
- package/dist/cjs/view/fields/radio-group/index.js +2 -1
- package/dist/cjs/view/fields/text-box/index.js +2 -1
- package/dist/cjs/view/fields/watch-value.js +1 -0
- package/dist/cjs/view/form/index.js +1 -0
- package/dist/cjs/view/form/personal-info-section.js +5 -4
- package/dist/cjs/view/form/submit-button/index.js +3 -2
- package/dist/cjs/view/guest-unload-handlers/index.js +1 -1
- package/dist/cjs/view/header/center-region/index.js +1 -0
- package/dist/cjs/view/header/index.js +5 -4
- package/dist/cjs/view/header/logo-region/index.js +2 -1
- package/dist/cjs/view/header/logo-region/logo.svg +2 -0
- package/dist/cjs/view/header/nav-region/index.js +3 -2
- package/dist/cjs/view/header/nav-region/notification/index.js +2 -1
- package/dist/cjs/view/header/nav-region/notification/index.svg +5 -0
- package/dist/cjs/view/header/nav-region/user/index.js +2 -1
- package/dist/cjs/view/header/nav-region/user/index.svg +4 -0
- package/dist/cjs/view/intro.stories.mdx +27 -0
- package/dist/cjs/view/live-message/index.js +2 -1
- package/dist/cjs/view/loadable/index.js +2 -1
- package/dist/cjs/view/login/index.js +4 -3
- package/dist/cjs/view/media-breakpoint/index.js +5 -4
- package/dist/cjs/view/message-to-host-app/index.js +1 -1
- package/dist/cjs/view/micro-app/app-factory/index.js +11 -9
- package/dist/cjs/view/micro-app/index.js +3 -2
- package/dist/cjs/view/micro-app/resources/manifest.js +6 -4
- package/dist/cjs/view/micro-app/resources/script.js +1 -1
- package/dist/cjs/view/micro-app/resources/style.js +1 -1
- package/dist/cjs/view/micro-app/use-app-will-render.js +8 -6
- package/dist/cjs/view/micro-app/utils.js +1 -1
- package/dist/cjs/view/micro-iframe-app/app.js +4 -3
- package/dist/cjs/view/micro-iframe-app/iframe/index.html +74 -0
- package/dist/cjs/view/micro-iframe-app/iframe/index.js +2 -1
- package/dist/cjs/view/micro-iframe-app/index.js +3 -2
- package/dist/cjs/view/micro-iframe-app/use-frame-loaded.js +5 -3
- package/dist/cjs/view/modals/error/index.js +1 -0
- package/dist/cjs/view/modals/navigation-prompt/index.js +3 -2
- package/dist/cjs/view/modals/session-expiry/customHooks.js +2 -2
- package/dist/cjs/view/modals/session-expiry/index.js +5 -4
- package/dist/cjs/view/modals/wait-message/html-wait-message.js +1 -0
- package/dist/cjs/view/modals/wait-message/index.js +6 -5
- package/dist/cjs/view/modals/wait-message/wait-message-launcher.js +3 -2
- package/dist/cjs/view/render-with-delay/index.js +1 -0
- package/dist/cjs/view/render-with-host-data/index.js +3 -2
- package/dist/cjs/view/session-timeout/index.js +5 -4
- package/dist/cjs/view/storybook/decorator.js +3 -2
- package/dist/cjs/view/visually-hidden/index.js +1 -0
- package/dist/cjs/view/window-size/index.js +11 -6
- 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.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 +2 -3
- package/dist/es/data/wait-message/reducer.js +1 -1
- package/dist/es/index.js +84 -72
- package/dist/es/index.pug +15 -0
- package/dist/es/micro-frontend.js +10 -0
- package/dist/es/route/index.js +2 -1
- package/dist/es/route/page-view.js +1 -1
- package/dist/es/route/private-route/index.js +8 -7
- 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/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/micro-frontend/console-logger.js +1 -1
- package/dist/es/utils/micro-frontend/guest.js +8 -8
- package/dist/es/utils/micro-frontend/host.js +14 -14
- 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 +2 -2
- 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 +3 -2
- package/dist/es/utils/testing/render-with-router.js +1 -0
- 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 +7 -6
- package/dist/es/view/app-root/stand-alone-app.js +8 -7
- 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 +1 -0
- package/dist/es/view/fields/form-item-layout/index.js +3 -2
- package/dist/es/view/fields/input-mask/index.js +2 -1
- 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/header/center-region/index.js +1 -0
- package/dist/es/view/header/index.js +5 -4
- package/dist/es/view/header/logo-region/index.js +2 -1
- package/dist/es/view/header/logo-region/logo.svg +2 -0
- package/dist/es/view/header/nav-region/index.js +3 -2
- package/dist/es/view/header/nav-region/notification/index.js +2 -1
- package/dist/es/view/header/nav-region/notification/index.svg +5 -0
- package/dist/es/view/header/nav-region/user/index.js +2 -1
- package/dist/es/view/header/nav-region/user/index.svg +4 -0
- 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 -3
- package/dist/es/view/media-breakpoint/index.js +5 -4
- package/dist/es/view/message-to-host-app/index.js +1 -1
- package/dist/es/view/micro-app/app-factory/index.js +14 -9
- 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 +1 -1
- 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 +1 -0
- package/dist/es/view/modals/navigation-prompt/index.js +3 -2
- package/dist/es/view/modals/session-expiry/customHooks.js +2 -2
- package/dist/es/view/modals/session-expiry/index.js +5 -4
- package/dist/es/view/modals/wait-message/html-wait-message.js +1 -0
- package/dist/es/view/modals/wait-message/index.js +5 -4
- package/dist/es/view/modals/wait-message/wait-message-launcher.js +3 -2
- package/dist/es/view/render-with-delay/index.js +1 -0
- package/dist/es/view/render-with-host-data/index.js +3 -2
- package/dist/es/view/session-timeout/index.js +5 -4
- 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 -6
- 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 +11 -11
- package/dist/types/data/reducers.d.ts +6 -6
- package/dist/types/data/store.d.ts +29 -29
- package/dist/types/index.d.ts +79 -78
- package/dist/types/micro-frontend.d.ts +6 -0
- package/dist/types/route/private-route/index.d.ts +1 -1
- package/dist/types/sideeffect/auth/index.d.ts +1 -1
- package/dist/types/utils/app-host-integration/react.d.ts +1 -1
- 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/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 +20 -20
- package/dist/types/utils/testing/render-with-router-redux.d.ts +20 -20
- package/dist/types/view/app-root/index.d.ts +1 -1
- 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/header/index.d.ts +1 -1
- package/dist/types/view/header/index.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/storybook/decorator.d.ts +1 -1
- package/package.json +32 -15
- package/dist/types/utils/storybook/webpack.d.cts +0 -8
|
@@ -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") {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import styled from "styled-components";
|
|
2
|
-
import { isStandAloneGuest, isHost } from "../../utils/micro-frontend";
|
|
3
|
-
import { LogoRegion } from "./logo-region";
|
|
4
|
-
import { CenterRegion } from "./center-region";
|
|
5
|
-
import { NavRegion } from "./nav-region";
|
|
3
|
+
import { isStandAloneGuest, isHost } from "../../utils/micro-frontend/index.js";
|
|
4
|
+
import { LogoRegion } from "./logo-region/index.js";
|
|
5
|
+
import { CenterRegion } from "./center-region/index.js";
|
|
6
|
+
import { NavRegion } from "./nav-region/index.js";
|
|
6
7
|
const HeaderContainer = styled.header`
|
|
7
8
|
display: flex;
|
|
8
9
|
height: 56px;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="195" height="28" viewBox="0 0 195 28"><style>.st0{fill:#dee3e0}.st1{fill:#fff}.st2{fill:#408a90}.st3{fill:#00acdc}.st4{fill:#f7911e}.st5{fill:#0067ab}.st6{fill:#fefefe}</style><g id="Page-1_2_"><g id="brand-assets" transform="translate(-107 -187)"><g id="logo-enc-em-inline-dark" transform="translate(107 187)"><g id="Group-3"><g id="Group" transform="translate(143 14)"><path id="Fill-27" class="st0" d="M1.8 1.9c-.6 0-.9.6-.9 1.1s.3 1.1.9 1.1c.6 0 .8-.7.8-1.1.1-.5-.2-1.1-.8-1.1zM.4.1h.5v1.8c.2-.3.5-.5 1-.5.9 0 1.3.7 1.3 1.5s-.4 1.6-1.3 1.6c-.5 0-.9-.3-1-.5v.4H.4V.1z"/><path id="Fill-29" class="st0" d="M3.7 5.3H4c.5 0 .7-.7.7-.7 0-.1-.1-.2-.1-.3l-1-2.8h.6L5 4l.8-2.5h.6l-1.1 3c-.2.6-.4 1.2-1.1 1.2h-.4l-.1-.4z"/><path id="Fill-31" class="st0" d="M50.5 1.8h.2c.1 0 .2 0 .2-.2 0-.1-.1-.2-.2-.2h-.2v.4zm-.2-.5h.4c.3 0 .4.1.4.3 0 .2-.1.3-.3.3l.3.5h-.2l-.3-.5h-.2v.5h-.2V1.3h.1zm.3 1.4c.5 0 .8-.4.8-.8 0-.5-.3-.8-.8-.8s-.8.4-.8.8.4.8.8.8zm0-1.8c.5 0 1 .4 1 1 0 .5-.4 1-1 1s-1-.4-1-1c.1-.6.5-1 1-1z"/><path id="Fill-33" class="st0" d="M8.8.1h4.8v1.1H10v2.5h3.2v1H10v2.9h3.6v1H8.8z"/><path id="Fill-35" class="st0" d="M14.6 8.6h1.1V0h-1.1z"/><path id="Fill-37" class="st0" d="M17 8.6h1.1V0H17z"/><path id="Fill-38" class="st0" d="M19.4 8.6h1.2V2.3h-1.2v6.3zm-.1-7.2h1.2V0h-1.2v1.4z"/><path id="Fill-39" class="st0" d="M25.7 4.9c0-1-.6-1.7-1.6-1.7-1.1 0-1.6.9-1.7 1.7h3.3zm.7 3.5c-.4.2-.9.4-2 .4-2.2 0-3.2-1.3-3.2-3.4 0-1.9 1.2-3.2 2.9-3.2 2.1 0 2.8 1.5 2.8 3.5h-4.5c0 1.2 1 2.1 2.1 2.1.8 0 1.6-.4 1.9-.6v1.2z"/><path id="Fill-40" class="st0" d="M27.9.1H30l2.6 7.1L35.3.1h2v8.5h-1.2V1.2l-2.9 7.4H32l-2.8-7.4v7.4h-1.3z"/><path id="Fill-41" class="st0" d="M48.2 4.9c0-1-.6-1.7-1.6-1.7-1.1 0-1.6.9-1.7 1.7h3.3zm.8 3.5c-.4.2-.9.4-2 .4-2.2 0-3.2-1.3-3.2-3.4 0-1.9 1.2-3.2 2.9-3.2 2.1 0 2.8 1.5 2.8 3.5H45c0 1.2 1 2.1 2.1 2.1.8 0 1.6-.4 1.9-.6v1.2z"/><path id="Fill-42" class="st0" d="M42.2 5.6h-.7c-.6 0-2.2.1-2.2 1.2 0 .7.6 1 1.2 1 1.1 0 1.7-.7 1.7-1.6v-.6zm-3-1.5l-.9-.2c.3-1.4 1.6-1.7 2.4-1.7 1.8 0 2.5.9 2.5 2.6v2.6c0 .7 0 1 .1 1.2h-1.2v-.8c-.3.4-.9 1-1.9 1-1.3 0-2.3-.6-2.3-1.9 0-1.6 1.7-2.1 2.9-2.1H42c0-1.1-.4-1.8-1.5-1.7-1 .1-1.3 1-1.3 1z"/></g><g id="Page-1"><path id="Fill-1" class="st1" d="M28 14c0 7.7-6.3 14-14 14S0 21.7 0 14 6.3 0 14 0s14 6.3 14 14"/><path id="Fill-3" class="st2" d="M14.1 2.3v-.5H14C7.2 1.8 1.8 7.3 1.8 14h.6c6.5.1 11.7-5.2 11.7-11.7"/><path id="Fill-5" class="st3" d="M2.3 14.1h-.6c.1 6.7 5.5 12.2 12.2 12.2h.1v-.4c.1-6.5-5.1-11.8-11.7-11.8"/><path id="Fill-7" class="st4" d="M25.9 14.1h.3V14c0-6.7-5.4-12.2-12.1-12.2v.5c0 6.5 5.3 11.8 11.8 11.8"/><path id="Fill-9" class="st5" d="M14.1 25.9v.4c6.7-.1 12-5.5 12.1-12.2h-.3c-6.5 0-11.8 5.3-11.8 11.8"/></g><path id="Page-1_1_" class="st6" d="M131.1 20.1c.8.5 2 .8 2.6.8.9 0 2.1-.4 2.1-1.6 0-2-4.9-1.9-4.9-5 0-2.3 1.7-3.5 4-3.5 1 0 1.8.2 2.6.4l-.2 1.8c-.5-.3-1.7-.6-2.2-.6-1.1 0-2 .4-2 1.4 0 2.3 4.9 1.6 4.9 5.2 0 2.4-1.9 3.5-3.9 3.5-1.1 0-2.1-.1-3.1-.6l.1-1.8zm9.4-9.7h.3c.2 0 .4 0 .4-.3 0-.2-.2-.3-.4-.3h-.3v.6zm-.3-.8h.7c.4 0 .6.2.6.5s-.2.5-.5.5l.5.8h-.3l-.5-.8h-.2v.8h-.3V9.6zm.6 2.2c.7 0 1.2-.6 1.2-1.3 0-.7-.5-1.3-1.2-1.3s-1.2.6-1.2 1.3c0 .8.5 1.3 1.2 1.3zm0-2.8c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zM123 20.1c.8.5 2 .8 2.6.8.9 0 2.1-.4 2.1-1.6 0-2-4.9-1.9-4.9-5 0-2.3 1.7-3.5 4-3.5 1 0 1.8.2 2.6.4l-.2 1.8c-.5-.3-1.7-.6-2.2-.6-1.1 0-2 .4-2 1.4 0 2.3 4.9 1.6 4.9 5.2 0 2.4-1.9 3.5-3.9 3.5-1.1 0-2.1-.1-3.1-.6l.1-1.8zm-3.8-3.1h-1.3c-1.1 0-3.9.2-3.9 2.2 0 1.2 1.1 1.8 2.1 1.8 2 0 3.1-1.3 3.1-2.9V17zm-6.2-5.1c1-.6 2.3-1.1 3.7-1.1 3.2 0 4.5 1.6 4.5 4.6V20c0 1.3 0 1.9.1 2.2h-1.9v-1.5c-.5.7-1.6 1.7-3.5 1.7-2.4 0-4.1-1.1-4.1-3.5 0-2.8 3.1-3.7 5.2-3.7h2.2c0-1.9-.7-2.9-2.8-2.9-1.2 0-2.4.4-3.3 1.1l-.1-1.5zm-7.7.6c-2.2 0-3.3 2.1-3.3 4.2 0 1.9 1 4.2 3.3 4.2 2.2 0 3.1-2.5 3.1-4.2 0-2-.8-4.2-3.1-4.2zm-5.4-1.4h2v1.6c.5-.8 1.8-1.8 3.8-1.8 3.3 0 4.8 2.7 4.8 5.7 0 3.1-1.4 6.1-4.8 6.1-2 0-3.1-.8-3.7-1.8V26h-2.1V11.1zm-17.3 0h1.9v1.6c.8-1.3 1.9-1.9 3.6-1.9 1.3 0 2.6.7 3.2 2.2.8-1.6 2.5-2.2 3.5-2.2 2.9 0 3.9 1.8 3.9 4.3v7.2h-2.1v-6.7c0-1.4-.3-3.1-2-3.1-2.1 0-2.9 2.1-2.9 4.2v5.7h-2.1v-6.7c0-1.4-.3-3.1-2-3.1-2.1 0-2.9 2.1-2.9 4.2v5.7h-2.1V11.1zm-8 9.8c2.4 0 3.5-2.2 3.5-4.2 0-2.1-1.3-4.2-3.5-4.2s-3.5 2.1-3.5 4.2c-.1 2 1 4.2 3.5 4.2zm0-10c3.4 0 5.7 2.5 5.7 5.9 0 3.2-2.3 5.9-5.7 5.9s-5.7-2.7-5.7-5.9c-.1-3.5 2.2-5.9 5.7-5.9zM67.4 13c-.8-.3-1.6-.5-2.2-.5-2.3 0-3.6 2.1-3.6 4.2 0 2 1.1 4.2 3.7 4.2.7 0 1.6-.2 2.2-.6l.2 1.8c-.9.4-1.8.5-2.6.5-3.4 0-5.7-2.7-5.7-5.9 0-3.4 2.3-5.9 5.7-5.9.8 0 1.9.2 2.5.4l-.2 1.8zm-19.2-1.9h2v1.8c.6-1.3 2.1-2 3.7-2 2.9 0 4.2 1.8 4.2 4.8v6.7H56v-5.8c0-2.6-.6-3.9-2.4-4-2.4 0-3.4 1.9-3.4 4.6v5.2h-2.1V11.1h.1zM38 7h8.6v1.9h-6.4v4.5H46v1.9h-5.8v5.1h6.4v1.9H38V7z"/></g></g></g></g></svg>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import styled from "styled-components";
|
|
2
|
-
import { Notification } from "./notification";
|
|
3
|
-
import { User } from "./user";
|
|
3
|
+
import { Notification } from "./notification/index.js";
|
|
4
|
+
import { User } from "./user/index.js";
|
|
4
5
|
const NavContainer = styled.nav`
|
|
5
6
|
display: flex;
|
|
6
7
|
margin: 0;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import NotificationIcon from "./index.svg";
|
|
2
3
|
const Notification = () => /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("a", {
|
|
3
4
|
href: "#",
|
|
4
5
|
"aria-label": "Notifications"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16"><g>
|
|
2
|
+
<path data-color="color-2" fill="#ffffff" d="M10,14H6c0,1.1,0.9,2,2,2S10,15.1,10,14z"/>
|
|
3
|
+
<path fill="#ffffff" d="M15,11h-0.5C13.8,10.3,13,9.3,13,8V5c0-2.8-2.2-5-5-5S3,2.2,3,5v3c0,1.3-0.8,2.3-1.5,3H1c-0.6,0-1,0.4-1,1
|
|
4
|
+
s0.4,1,1,1h14c0.6,0,1-0.4,1-1S15.6,11,15,11z"/>
|
|
5
|
+
</g></svg>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import UserIcon from "./index.svg";
|
|
2
3
|
const User = () => /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("a", {
|
|
3
4
|
href: "#",
|
|
4
5
|
"aria-label": "profile"
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="16px" viewBox="0 0 16 16"><g><path fill="#ffffff" d="M8,2c1.1,0,2,0.9,2,2v1c0,1.1-0.9,2-2,2S6,6.1,6,5V4C6,2.9,6.9,2,8,2 M8,0C5.8,0,4,1.8,4,4v1
|
|
2
|
+
c0,2.2,1.8,4,4,4s4-1.8,4-4V4C12,1.8,10.2,0,8,0L8,0z"/>
|
|
3
|
+
<path data-color="color-2" fill="#ffffff" d="M9,12c1.5,0,2.8,0.8,3.5,2l-8.9,0c0.7-1.2,2-2,3.5-2H9 M9,10H7c-3.3,0-6,2.7-6,6v0h14v0
|
|
4
|
+
C15,12.7,12.3,10,9,10L9,10z"/></g></svg>
|
|
@@ -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,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
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";
|
|
3
|
+
import { useAppDispatch } from "../../data/react-redux.js";
|
|
4
|
+
import { login } from "../../utils/auth/index.js";
|
|
5
|
+
import { LOGIN_SUCCESS } from "../../data/auth/actions.js";
|
|
5
6
|
const Login = ({
|
|
6
7
|
clientId,
|
|
7
8
|
scope,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import { useEffect, useContext } from "react";
|
|
2
3
|
import { ThemeContext } from "styled-components";
|
|
3
4
|
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";
|
|
5
|
+
import { useAppDispatch } from "../../data/react-redux.js";
|
|
6
|
+
import { breakpoint } from "../../data/breakpoint/index.js";
|
|
7
|
+
import { useMediaBreakpoints } from "../useMediaBreakpoints/index.js";
|
|
8
|
+
import { HOST_WINDOW_BREAKPOINT_CHANGED } from "../../utils/constants.js";
|
|
8
9
|
const MediaBreakpoint = () => {
|
|
9
10
|
const theme = useContext(ThemeContext);
|
|
10
11
|
const currentBreakpoint = useMediaBreakpoints([
|
|
@@ -1,22 +1,25 @@
|
|
|
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";
|
|
22
|
+
} from "../resources/manifest.js";
|
|
20
23
|
const cssType = new RegExp(/\.css$/);
|
|
21
24
|
const isCss = (fileName) => cssType.test(fileName);
|
|
22
25
|
const activeApps = {};
|
|
@@ -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,4 +1,4 @@
|
|
|
1
|
-
import { removeDoubleSlash } from "../../../utils/url";
|
|
1
|
+
import { removeDoubleSlash } from "../../../utils/url.js";
|
|
2
2
|
const APP_SCRIPT_ID_PREFIX = "emui-script-";
|
|
3
3
|
const HEAD_SCRIPTS = new RegExp("/(?:emuiDiagnostics|global|global-prod|emuiUserMonitoring)(?:..*)?.js", "i");
|
|
4
4
|
const isHeadScript = (scriptSrc) => HEAD_SCRIPTS.test(scriptSrc);
|
|
@@ -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%;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
1
2
|
import { useEffect, useState, memo } from "react";
|
|
2
|
-
import { usePrevious } from "../use-previous";
|
|
3
|
-
import { App } from "./app";
|
|
3
|
+
import { usePrevious } from "../use-previous.js";
|
|
4
|
+
import { App } from "./app.js";
|
|
4
5
|
const MicroIFrameApp = memo(({ entityId = null, ...rest }) => {
|
|
5
6
|
const [disposePrevApp, setDisposePrevApp] = useState(false);
|
|
6
7
|
const [appKey, setAppKey] = useState(Date.now());
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
|
-
import { trackActivity } from "../../utils/session";
|
|
3
|
-
import { CMicroAppHost } from "../../utils/micro-frontend/host";
|
|
4
|
-
import { getMicroFrontEndAppConfig } from "../../utils/micro-frontend";
|
|
2
|
+
import { trackActivity } from "../../utils/session.js";
|
|
3
|
+
import { CMicroAppHost } from "../../utils/micro-frontend/host.js";
|
|
4
|
+
import { getMicroFrontEndAppConfig } from "../../utils/micro-frontend/index.js";
|
|
5
5
|
const addBaseTag = (id, documentEle) => {
|
|
6
6
|
const { hostUrl, manifestPath } = getMicroFrontEndAppConfig({
|
|
7
7
|
id
|
|
8
8
|
});
|
|
9
|
+
if (!manifestPath)
|
|
10
|
+
return;
|
|
9
11
|
const base = documentEle.createElement("base");
|
|
10
12
|
base.href = new URL(manifestPath, hostUrl).href;
|
|
11
13
|
documentEle.getElementsByTagName("head")[0].appendChild(base);
|