@hitachivantara/app-shell-ui 1.5.0 → 1.6.1

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 (144) hide show
  1. package/dist/esm/components/AppShell/AppShell.js +8 -6
  2. package/dist/esm/components/AppShellProvider/AppShellProvider.js +80 -56
  3. package/dist/esm/components/AppShellRoutes/AppShellRoutes.js +74 -65
  4. package/dist/esm/components/AppShellViewProvider/AppShellViewProvider.js +13 -13
  5. package/dist/esm/components/CustomHooksInitializer/CustomHooksInitializer.js +9 -5
  6. package/dist/esm/components/GlobalStyles/GlobalStyles.js +8 -8
  7. package/dist/esm/components/GlobalStyles/index.js +2 -3
  8. package/dist/esm/components/IconUiKit/IconUiKit.js +10 -8
  9. package/dist/esm/components/IconUiKit/index.js +4 -5
  10. package/dist/esm/components/hoc/withClickAwayListener.js +19 -12
  11. package/dist/esm/components/hoc/withGlobalProvider.js +30 -25
  12. package/dist/esm/components/layout/Header/BrandLogo/BrandLogo.js +27 -16
  13. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi.js +12 -0
  14. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada.js +17 -0
  15. package/dist/esm/components/layout/Header/BrandLogo/Logos/Pentaho.js +12 -0
  16. package/dist/esm/components/layout/Header/Header.js +54 -42
  17. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/DynamicAction.js +22 -18
  18. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/index.js +2 -3
  19. package/dist/esm/components/layout/Header/HeaderActions/HeaderActions.js +17 -14
  20. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/AppSwitcherToggle.js +59 -40
  21. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/index.js +2 -3
  22. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/styles.js +6 -6
  23. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/ColorModeSwitcher.js +19 -17
  24. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/index.js +2 -3
  25. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/HelpButton.js +23 -20
  26. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/index.js +2 -3
  27. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/InternalAction/InternalAction.js +23 -21
  28. package/dist/esm/components/layout/Header/HeaderActions/index.js +2 -3
  29. package/dist/esm/components/layout/Header/styles.js +7 -7
  30. package/dist/esm/components/layout/Loading/Loading.js +9 -7
  31. package/dist/esm/components/layout/Loading/styles.js +20 -8
  32. package/dist/esm/components/layout/Main/Main.js +23 -22
  33. package/dist/esm/components/layout/Main/styles.js +17 -8
  34. package/dist/esm/components/layout/VerticalNavigation/VerticalNavigation.js +67 -49
  35. package/dist/esm/components/layout/VerticalNavigation/styles.js +15 -16
  36. package/dist/esm/index.js +2 -3
  37. package/dist/esm/lib/hooks/useClearLocationState.js +14 -14
  38. package/dist/esm/lib/hooks/useCustomEventListener.js +19 -14
  39. package/dist/esm/lib/hooks/useLocalStorage.js +22 -16
  40. package/dist/esm/lib/hooks/useNavigationMenuItems.js +36 -28
  41. package/dist/esm/lib/hooks/useNotificationsEventListener.js +47 -37
  42. package/dist/esm/lib/hooks/useThemeEventListener.js +25 -20
  43. package/dist/esm/lib/i18n/index.js +23 -19
  44. package/dist/esm/lib/i18n/localization/en.json.js +18 -15
  45. package/dist/esm/lib/i18n/localization/pt.json.js +18 -15
  46. package/dist/esm/lib/utils/CombinedProviders.js +19 -14
  47. package/dist/esm/lib/utils/basePathUtils.js +4 -3
  48. package/dist/esm/lib/utils/documentUtil.js +10 -6
  49. package/dist/esm/lib/utils/navigationUtil.js +65 -38
  50. package/dist/esm/lib/utils/textUtil.js +4 -3
  51. package/dist/esm/pages/ErrorPage/ErrorPage.js +24 -24
  52. package/dist/esm/pages/ErrorPage/Footer/Footer.js +47 -31
  53. package/dist/esm/pages/ErrorPage/Footer/styles.js +8 -8
  54. package/dist/esm/pages/ErrorPage/styles.js +25 -15
  55. package/dist/esm/pages/GenericError/500.svg.js +2 -3
  56. package/dist/esm/pages/GenericError/GenericError.js +13 -13
  57. package/dist/esm/pages/LoadingPage/LoadingPage.js +12 -12
  58. package/dist/esm/pages/LoadingPage/index.js +2 -3
  59. package/dist/esm/pages/LoadingPage/styles.js +15 -9
  60. package/dist/esm/pages/NotFound/404.svg.js +2 -3
  61. package/dist/esm/pages/NotFound/NotFound.js +11 -11
  62. package/dist/esm/pages/NotFound/index.js +2 -3
  63. package/dist/esm/pages/Root/Root.js +22 -22
  64. package/dist/esm/providers/BannerProvider.js +67 -57
  65. package/dist/esm/providers/LayoutProvider.js +19 -16
  66. package/dist/esm/providers/NavigationProvider.js +87 -55
  67. package/dist/esm/providers/hooks/useBannerContext.js +9 -7
  68. package/dist/esm/providers/hooks/useLayoutContext.js +9 -7
  69. package/dist/esm/providers/hooks/useNavigationContext.js +9 -7
  70. package/package.json +5 -5
  71. package/dist/esm/components/AppShell/AppShell.js.map +0 -1
  72. package/dist/esm/components/AppShellProvider/AppShellProvider.js.map +0 -1
  73. package/dist/esm/components/AppShellRoutes/AppShellRoutes.js.map +0 -1
  74. package/dist/esm/components/AppShellViewProvider/AppShellViewProvider.js.map +0 -1
  75. package/dist/esm/components/CustomHooksInitializer/CustomHooksInitializer.js.map +0 -1
  76. package/dist/esm/components/GlobalStyles/GlobalStyles.js.map +0 -1
  77. package/dist/esm/components/GlobalStyles/index.js.map +0 -1
  78. package/dist/esm/components/IconUiKit/IconUiKit.js.map +0 -1
  79. package/dist/esm/components/IconUiKit/index.js.map +0 -1
  80. package/dist/esm/components/hoc/withClickAwayListener.js.map +0 -1
  81. package/dist/esm/components/hoc/withGlobalProvider.js.map +0 -1
  82. package/dist/esm/components/layout/Header/BrandLogo/BrandLogo.js.map +0 -1
  83. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/Hitachi.js +0 -10
  84. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/Hitachi.js.map +0 -1
  85. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/styles.js +0 -28
  86. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/styles.js.map +0 -1
  87. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/Lumada.js +0 -15
  88. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/Lumada.js.map +0 -1
  89. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/styles.js +0 -34
  90. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/styles.js.map +0 -1
  91. package/dist/esm/components/layout/Header/Header.js.map +0 -1
  92. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/DynamicAction.js.map +0 -1
  93. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/index.js.map +0 -1
  94. package/dist/esm/components/layout/Header/HeaderActions/HeaderActions.js.map +0 -1
  95. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/AppSwitcherToggle.js.map +0 -1
  96. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/index.js.map +0 -1
  97. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/styles.js.map +0 -1
  98. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/ColorModeSwitcher.js.map +0 -1
  99. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/index.js.map +0 -1
  100. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/HelpButton.js.map +0 -1
  101. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/index.js.map +0 -1
  102. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/InternalAction/InternalAction.js.map +0 -1
  103. package/dist/esm/components/layout/Header/HeaderActions/index.js.map +0 -1
  104. package/dist/esm/components/layout/Header/styles.js.map +0 -1
  105. package/dist/esm/components/layout/Loading/Loading.js.map +0 -1
  106. package/dist/esm/components/layout/Loading/styles.js.map +0 -1
  107. package/dist/esm/components/layout/Main/Main.js.map +0 -1
  108. package/dist/esm/components/layout/Main/styles.js.map +0 -1
  109. package/dist/esm/components/layout/VerticalNavigation/VerticalNavigation.js.map +0 -1
  110. package/dist/esm/components/layout/VerticalNavigation/styles.js.map +0 -1
  111. package/dist/esm/index.js.map +0 -1
  112. package/dist/esm/lib/hooks/useClearLocationState.js.map +0 -1
  113. package/dist/esm/lib/hooks/useCustomEventListener.js.map +0 -1
  114. package/dist/esm/lib/hooks/useLocalStorage.js.map +0 -1
  115. package/dist/esm/lib/hooks/useNavigationMenuItems.js.map +0 -1
  116. package/dist/esm/lib/hooks/useNotificationsEventListener.js.map +0 -1
  117. package/dist/esm/lib/hooks/useThemeEventListener.js.map +0 -1
  118. package/dist/esm/lib/i18n/index.js.map +0 -1
  119. package/dist/esm/lib/i18n/localization/en.json.js.map +0 -1
  120. package/dist/esm/lib/i18n/localization/pt.json.js.map +0 -1
  121. package/dist/esm/lib/utils/CombinedProviders.js.map +0 -1
  122. package/dist/esm/lib/utils/basePathUtils.js.map +0 -1
  123. package/dist/esm/lib/utils/documentUtil.js.map +0 -1
  124. package/dist/esm/lib/utils/navigationUtil.js.map +0 -1
  125. package/dist/esm/lib/utils/textUtil.js.map +0 -1
  126. package/dist/esm/pages/ErrorPage/ErrorPage.js.map +0 -1
  127. package/dist/esm/pages/ErrorPage/Footer/Footer.js.map +0 -1
  128. package/dist/esm/pages/ErrorPage/Footer/styles.js.map +0 -1
  129. package/dist/esm/pages/ErrorPage/styles.js.map +0 -1
  130. package/dist/esm/pages/GenericError/500.svg.js.map +0 -1
  131. package/dist/esm/pages/GenericError/GenericError.js.map +0 -1
  132. package/dist/esm/pages/LoadingPage/LoadingPage.js.map +0 -1
  133. package/dist/esm/pages/LoadingPage/index.js.map +0 -1
  134. package/dist/esm/pages/LoadingPage/styles.js.map +0 -1
  135. package/dist/esm/pages/NotFound/404.svg.js.map +0 -1
  136. package/dist/esm/pages/NotFound/NotFound.js.map +0 -1
  137. package/dist/esm/pages/NotFound/index.js.map +0 -1
  138. package/dist/esm/pages/Root/Root.js.map +0 -1
  139. package/dist/esm/providers/BannerProvider.js.map +0 -1
  140. package/dist/esm/providers/LayoutProvider.js.map +0 -1
  141. package/dist/esm/providers/NavigationProvider.js.map +0 -1
  142. package/dist/esm/providers/hooks/useBannerContext.js.map +0 -1
  143. package/dist/esm/providers/hooks/useLayoutContext.js.map +0 -1
  144. package/dist/esm/providers/hooks/useNavigationContext.js.map +0 -1
@@ -1,25 +1,25 @@
1
- import { jsx as r, jsxs as o, Fragment as e } from "@emotion/react/jsx-runtime";
2
- import { Suspense as m } from "react";
3
- import { Outlet as t } from "react-router-dom";
4
- import { ErrorBoundary as n } from "react-error-boundary";
5
- import a from "../../lib/utils/CombinedProviders.js";
6
- import f from "../../providers/BannerProvider.js";
7
- import l from "../../providers/NavigationProvider.js";
8
- import d from "../LoadingPage/LoadingPage.js";
9
- import p from "../GenericError/GenericError.js";
10
- import c from "../../components/CustomHooksInitializer/CustomHooksInitializer.js";
11
- import s from "../../components/layout/Header/Header.js";
12
- import u from "../../components/layout/Main/Main.js";
13
- const h = ({
14
- providers: i
15
- }) => /* @__PURE__ */ r(n, { fallback: /* @__PURE__ */ r(p, { fullPage: !0 }), children: /* @__PURE__ */ r(a, { providers: i, children: /* @__PURE__ */ r(l, { children: /* @__PURE__ */ o(f, { children: [
16
- /* @__PURE__ */ r(c, {}),
17
- /* @__PURE__ */ o(e, { children: [
18
- /* @__PURE__ */ r(s, {}),
19
- /* @__PURE__ */ r(u, { children: /* @__PURE__ */ r(m, { fallback: /* @__PURE__ */ r(d, {}), children: /* @__PURE__ */ r(t, {}) }) })
1
+ import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
2
+ import { Suspense } from "react";
3
+ import { Outlet } from "react-router-dom";
4
+ import { ErrorBoundary } from "react-error-boundary";
5
+ import CombinedProviders from "../../lib/utils/CombinedProviders.js";
6
+ import BannerProvider from "../../providers/BannerProvider.js";
7
+ import NavigationProvider from "../../providers/NavigationProvider.js";
8
+ import LoadingPage from "../LoadingPage/LoadingPage.js";
9
+ import GenericError from "../GenericError/GenericError.js";
10
+ import CustomHooksInitializer from "../../components/CustomHooksInitializer/CustomHooksInitializer.js";
11
+ import Header from "../../components/layout/Header/Header.js";
12
+ import Main from "../../components/layout/Main/Main.js";
13
+ const Root = ({
14
+ providers
15
+ }) => /* @__PURE__ */ jsx(ErrorBoundary, { fallback: /* @__PURE__ */ jsx(GenericError, { fullPage: true }), children: /* @__PURE__ */ jsx(CombinedProviders, { providers, children: /* @__PURE__ */ jsx(NavigationProvider, { children: /* @__PURE__ */ jsxs(BannerProvider, { children: [
16
+ /* @__PURE__ */ jsx(CustomHooksInitializer, {}),
17
+ /* @__PURE__ */ jsxs(Fragment, { children: [
18
+ /* @__PURE__ */ jsx(Header, {}),
19
+ /* @__PURE__ */ jsx(Main, { children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingPage, {}), children: /* @__PURE__ */ jsx(Outlet, {}) }) })
20
20
  ] })
21
- ] }) }) }) }), y = h;
21
+ ] }) }) }) });
22
+ const RootRoute = Root;
22
23
  export {
23
- y as default
24
+ RootRoute as default
24
25
  };
25
- //# sourceMappingURL=Root.js.map
@@ -1,73 +1,83 @@
1
- import { jsxs as h, jsx as n } from "@emotion/react/jsx-runtime";
2
- import { createContext as s, useState as o, useMemo as u, useEffect as B } from "react";
3
- import { css as p } from "@emotion/css";
4
- import { v4 as V } from "uuid";
5
- import { theme as g, HvBanner as Y } from "@hitachivantara/uikit-react-core";
6
- import { useTranslation as H } from "react-i18next";
7
- import F from "./hooks/useNavigationContext.js";
8
- import J from "./hooks/useLayoutContext.js";
9
- const N = s({
1
+ import { jsxs, jsx } from "@emotion/react/jsx-runtime";
2
+ import { createContext, useState, useMemo, useEffect } from "react";
3
+ import { css } from "@emotion/css";
4
+ import { v4 } from "uuid";
5
+ import { theme, HvBanner } from "@hitachivantara/uikit-react-core";
6
+ import { useTranslation } from "react-i18next";
7
+ import useNavigationContext from "./hooks/useNavigationContext.js";
8
+ import useLayoutContext from "./hooks/useLayoutContext.js";
9
+ const BannerContext = createContext({
10
10
  show: () => {
11
11
  },
12
12
  dismiss: () => {
13
13
  }
14
- }), x = ({
15
- children: t
14
+ });
15
+ const BannerProvider = ({
16
+ children
16
17
  }) => {
17
18
  const {
18
- t: i
19
- } = H(void 0, {
19
+ t
20
+ } = useTranslation(void 0, {
20
21
  keyPrefix: "notifications.banner"
21
- }), {
22
- showHeaderSubMenu: d,
23
- isCompactMode: A
24
- } = F(), {
25
- verticalNavigationWidth: G,
26
- setBannerMaxHeight: m
27
- } = J(), [b, X] = o([]), a = (I) => {
28
- const c = {
29
- id: V(),
30
- ...I,
31
- variant: I.variant ?? "default"
22
+ });
23
+ const {
24
+ showHeaderSubMenu,
25
+ isCompactMode
26
+ } = useNavigationContext();
27
+ const {
28
+ verticalNavigationWidth,
29
+ setBannerMaxHeight
30
+ } = useLayoutContext();
31
+ const [banners, setBanners] = useState([]);
32
+ const show = (notification) => {
33
+ const id = v4();
34
+ const newBanner = {
35
+ id,
36
+ ...notification,
37
+ variant: notification.variant ?? "default"
32
38
  };
33
- X((l) => [...l, c]);
34
- }, Z = (I) => {
35
- X((C) => C.filter((c) => c.id !== I));
36
- }, W = u(() => ({
37
- show: a,
38
- dismiss: Z
39
+ setBanners((prevBanners) => [...prevBanners, newBanner]);
40
+ };
41
+ const dismiss = (id) => {
42
+ setBanners((prevBanners) => prevBanners.filter((banner) => banner.id !== id));
43
+ };
44
+ const value = useMemo(() => ({
45
+ show,
46
+ dismiss
39
47
  }), []);
40
- B(() => {
41
- if (b.length > 0) {
42
- const I = b.map((c) => {
43
- const l = document.getElementById(c.id);
44
- return l ? l.clientHeight : 0;
45
- }), C = Math.max(...I);
46
- m(C);
47
- } else
48
- m(0);
49
- }, [b, m]);
50
- const e = u(() => /* @__PURE__ */ p({
51
- marginTop: d && !A ? `calc(${g.header.height} + ${g.header.secondLevelHeight} + ${g.space.sm})` : `calc(${g.header.height} + ${g.space.sm})`,
52
- left: `calc(${G}px + ${g.space.sm})`,
53
- width: `calc(100% - (${G}px + ${g.space.sm}) - ${g.space.sm})`,
48
+ useEffect(() => {
49
+ if (banners.length > 0) {
50
+ const bannerHeights = banners.map((item) => {
51
+ const bannerElement = document.getElementById(item.id);
52
+ return bannerElement ? bannerElement.clientHeight : 0;
53
+ });
54
+ const maxBannerHeight = Math.max(...bannerHeights);
55
+ setBannerMaxHeight(maxBannerHeight);
56
+ } else {
57
+ setBannerMaxHeight(0);
58
+ }
59
+ }, [banners, setBannerMaxHeight]);
60
+ const styles = useMemo(() => /* @__PURE__ */ css({
61
+ marginTop: showHeaderSubMenu && !isCompactMode ? `calc(${theme.header.height} + ${theme.header.secondLevelHeight} + ${theme.space.sm})` : `calc(${theme.header.height} + ${theme.space.sm})`,
62
+ left: `calc(${verticalNavigationWidth}px + ${theme.space.sm})`,
63
+ width: `calc(100% - (${verticalNavigationWidth}px + ${theme.space.sm}) - ${theme.space.sm})`,
54
64
  transform: "unset",
55
65
  minWidth: "unset",
56
- zIndex: g.zIndices.banner
57
- }, process.env.NODE_ENV === "production" ? "" : ";label:styles;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9fX3cvaHYtYXBwLXNoZWxsL2h2LWFwcC1zaGVsbC9jbGllbnQvcGFja2FnZXMvYXBwLXNoZWxsLXVpL3NyYy9wcm92aWRlcnMvQmFubmVyUHJvdmlkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1GTSIsImZpbGUiOiIvX193L2h2LWFwcC1zaGVsbC9odi1hcHAtc2hlbGwvY2xpZW50L3BhY2thZ2VzL2FwcC1zaGVsbC11aS9zcmMvcHJvdmlkZXJzL0Jhbm5lclByb3ZpZGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9jc3NcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuXG5pbXBvcnQgeyBIdkJhbm5lciwgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXJlYWN0LWNvcmVcIjtcbmltcG9ydCB7IEh2QXBwU2hlbGxFdmVudE5vdGlmaWNhdGlvbiB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvYXBwLXNoZWxsLWV2ZW50c1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHVzZU5hdmlnYXRpb25Db250ZXh0IGZyb20gXCIuL2hvb2tzL3VzZU5hdmlnYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgdXNlTGF5b3V0Q29udGV4dCBmcm9tIFwiLi9ob29rcy91c2VMYXlvdXRDb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIEJhbm5lclByb3ZpZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lciBleHRlbmRzIE9taXQ8SHZBcHBTaGVsbEV2ZW50Tm90aWZpY2F0aW9uLCBcInR5cGVcIj4ge1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lckNvbnRleHRWYWx1ZSB7XG4gIHNob3c6IChub3RpZmljYXRpb246IEh2QXBwU2hlbGxFdmVudE5vdGlmaWNhdGlvbikgPT4gdm9pZDtcbiAgZGlzbWlzczogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBCYW5uZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxCYW5uZXJDb250ZXh0VmFsdWU+KHtcbiAgc2hvdzogKCkgPT4ge1xuICAgIC8vIEVtcHR5IGZ1bmN0aW9uXG4gIH0sXG4gIGRpc21pc3M6ICgpID0+IHtcbiAgICAvLyBFbXB0eSBmdW5jdGlvblxuICB9XG59KTtcblxuY29uc3QgQmFubmVyUHJvdmlkZXIgPSAoeyBjaGlsZHJlbiB9OiBCYW5uZXJQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24odW5kZWZpbmVkLCB7XG4gICAga2V5UHJlZml4OiBcIm5vdGlmaWNhdGlvbnMuYmFubmVyXCJcbiAgfSk7XG4gIGNvbnN0IHsgc2hvd0hlYWRlclN1Yk1lbnUsIGlzQ29tcGFjdE1vZGUgfSA9IHVzZU5hdmlnYXRpb25Db250ZXh0KCk7XG4gIGNvbnN0IHsgdmVydGljYWxOYXZpZ2F0aW9uV2lkdGgsIHNldEJhbm5lck1heEhlaWdodCB9ID0gdXNlTGF5b3V0Q29udGV4dCgpO1xuICBjb25zdCBbYmFubmVycywgc2V0QmFubmVyc10gPSB1c2VTdGF0ZTxCYW5uZXJbXT4oW10pO1xuXG4gIGNvbnN0IHNob3cgPSAobm90aWZpY2F0aW9uOiBIdkFwcFNoZWxsRXZlbnROb3RpZmljYXRpb24pID0+IHtcbiAgICBjb25zdCBpZCA9IHV1aWQoKTtcblxuICAgIGNvbnN0IG5ld0Jhbm5lcjogQmFubmVyID0ge1xuICAgICAgaWQsXG4gICAgICAuLi5ub3RpZmljYXRpb24sXG4gICAgICB2YXJpYW50OiBub3RpZmljYXRpb24udmFyaWFudCA/PyBcImRlZmF1bHRcIlxuICAgIH07XG4gICAgc2V0QmFubmVycyhwcmV2QmFubmVycyA9PiBbLi4ucHJldkJhbm5lcnMsIG5ld0Jhbm5lcl0pO1xuICB9O1xuXG4gIGNvbnN0IGRpc21pc3MgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHNldEJhbm5lcnMocHJldkJhbm5lcnMgPT4gcHJldkJhbm5lcnMuZmlsdGVyKGJhbm5lciA9PiBiYW5uZXIuaWQgIT09IGlkKSk7XG4gIH07XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBzaG93LFxuICAgICAgZGlzbWlzc1xuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYmFubmVycy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBHZXQgYWxsIGhlaWdodHMgZnJvbSB0aGUgcmVuZGVyZWQgYmFubmVyc1xuICAgICAgY29uc3QgYmFubmVySGVpZ2h0cyA9IGJhbm5lcnMubWFwKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBiYW5uZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbS5pZCk7XG4gICAgICAgIHJldHVybiBiYW5uZXJFbGVtZW50ID8gYmFubmVyRWxlbWVudC5jbGllbnRIZWlnaHQgOiAwO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEZpbmQgdGhlICd0YWxsZXN0JyBiYW5uZXJcbiAgICAgIGNvbnN0IG1heEJhbm5lckhlaWdodCA9IE1hdGgubWF4KC4uLmJhbm5lckhlaWdodHMpO1xuXG4gICAgICAvLyBVcGRhdGUgcGFkZGluZyB2YWx1ZVxuICAgICAgc2V0QmFubmVyTWF4SGVpZ2h0KG1heEJhbm5lckhlaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEJhbm5lck1heEhlaWdodCgwKTtcbiAgICB9XG4gIH0sIFtiYW5uZXJzLCBzZXRCYW5uZXJNYXhIZWlnaHRdKTtcblxuICBjb25zdCBzdHlsZXMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjc3Moe1xuICAgICAgICBtYXJnaW5Ub3A6XG4gICAgICAgICAgc2hvd0hlYWRlclN1Yk1lbnUgJiYgIWlzQ29tcGFjdE1vZGVcbiAgICAgICAgICAgID8gYGNhbGMoJHt0aGVtZS5oZWFkZXIuaGVpZ2h0fSArICR7dGhlbWUuaGVhZGVyLnNlY29uZExldmVsSGVpZ2h0fSArICR7dGhlbWUuc3BhY2Uuc219KWBcbiAgICAgICAgICAgIDogYGNhbGMoJHt0aGVtZS5oZWFkZXIuaGVpZ2h0fSArICR7dGhlbWUuc3BhY2Uuc219KWAsXG4gICAgICAgIGxlZnQ6IGBjYWxjKCR7dmVydGljYWxOYXZpZ2F0aW9uV2lkdGh9cHggKyAke3RoZW1lLnNwYWNlLnNtfSlgLFxuICAgICAgICB3aWR0aDogYGNhbGMoMTAwJSAtICgke3ZlcnRpY2FsTmF2aWdhdGlvbldpZHRofXB4ICsgJHt0aGVtZS5zcGFjZS5zbX0pIC0gJHt0aGVtZS5zcGFjZS5zbX0pYCxcbiAgICAgICAgdHJhbnNmb3JtOiBcInVuc2V0XCIsXG4gICAgICAgIG1pbldpZHRoOiBcInVuc2V0XCIsXG4gICAgICAgIHpJbmRleDogdGhlbWUuekluZGljZXMuYmFubmVyXG4gICAgICB9KSxcbiAgICBbaXNDb21wYWN0TW9kZSwgc2hvd0hlYWRlclN1Yk1lbnUsIHZlcnRpY2FsTmF2aWdhdGlvbldpZHRoXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEJhbm5lckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT5cbiAgICAgIHtiYW5uZXJzLm1hcChiYW5uZXIgPT4gKFxuICAgICAgICA8SHZCYW5uZXJcbiAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICBhbmNob3JPcmlnaW5Ub3BDZW50ZXI6IHN0eWxlc1xuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9e2Jhbm5lci5pZH1cbiAgICAgICAgICBrZXk9e2Jhbm5lci5pZH1cbiAgICAgICAgICBvZmZzZXQ9ezB9XG4gICAgICAgICAgb3BlblxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IGRpc21pc3MoYmFubmVyLmlkKX1cbiAgICAgICAgICB2YXJpYW50PXtiYW5uZXIudmFyaWFudH1cbiAgICAgICAgICBsYWJlbD17YmFubmVyLm1lc3NhZ2V9XG4gICAgICAgICAgc2hvd0ljb25cbiAgICAgICAgICBhY3Rpb25zPXtiYW5uZXIuYWN0aW9uc31cbiAgICAgICAgICBhY3Rpb25zQ2FsbGJhY2s9e2Jhbm5lci5hY3Rpb25zQ2FsbGJhY2t9XG4gICAgICAgICAgYmFubmVyQ29udGVudFByb3BzPXt7XG4gICAgICAgICAgICBhY3Rpb25Qcm9wczogeyBcImFyaWEtbGFiZWxcIjogdChcImNsb3NlXCIpIH1cbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9CYW5uZXJDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQmFubmVyUHJvdmlkZXI7XG4iXX0= */"), [A, d, G]);
58
- return /* @__PURE__ */ h(N.Provider, { value: W, children: [
59
- b.map((I) => /* @__PURE__ */ n(Y, { classes: {
60
- anchorOriginTopCenter: e
61
- }, id: I.id, offset: 0, open: !0, onClose: () => Z(I.id), variant: I.variant, label: I.message, showIcon: !0, actions: I.actions, actionsCallback: I.actionsCallback, bannerContentProps: {
66
+ zIndex: theme.zIndices.banner
67
+ }, process.env.NODE_ENV === "production" ? "" : ";label:styles;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9fX3cvaHYtYXBwLXNoZWxsL2h2LWFwcC1zaGVsbC9jbGllbnQvcGFja2FnZXMvYXBwLXNoZWxsLXVpL3NyYy9wcm92aWRlcnMvQmFubmVyUHJvdmlkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1GTSIsImZpbGUiOiIvX193L2h2LWFwcC1zaGVsbC9odi1hcHAtc2hlbGwvY2xpZW50L3BhY2thZ2VzL2FwcC1zaGVsbC11aS9zcmMvcHJvdmlkZXJzL0Jhbm5lclByb3ZpZGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9jc3NcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuXG5pbXBvcnQgeyBIdkJhbm5lciwgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXJlYWN0LWNvcmVcIjtcbmltcG9ydCB7IEh2QXBwU2hlbGxFdmVudE5vdGlmaWNhdGlvbiB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvYXBwLXNoZWxsLWV2ZW50c1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHVzZU5hdmlnYXRpb25Db250ZXh0IGZyb20gXCIuL2hvb2tzL3VzZU5hdmlnYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgdXNlTGF5b3V0Q29udGV4dCBmcm9tIFwiLi9ob29rcy91c2VMYXlvdXRDb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIEJhbm5lclByb3ZpZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lciBleHRlbmRzIE9taXQ8SHZBcHBTaGVsbEV2ZW50Tm90aWZpY2F0aW9uLCBcInR5cGVcIj4ge1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lckNvbnRleHRWYWx1ZSB7XG4gIHNob3c6IChub3RpZmljYXRpb246IEh2QXBwU2hlbGxFdmVudE5vdGlmaWNhdGlvbikgPT4gdm9pZDtcbiAgZGlzbWlzczogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBCYW5uZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxCYW5uZXJDb250ZXh0VmFsdWU+KHtcbiAgc2hvdzogKCkgPT4ge1xuICAgIC8vIEVtcHR5IGZ1bmN0aW9uXG4gIH0sXG4gIGRpc21pc3M6ICgpID0+IHtcbiAgICAvLyBFbXB0eSBmdW5jdGlvblxuICB9XG59KTtcblxuY29uc3QgQmFubmVyUHJvdmlkZXIgPSAoeyBjaGlsZHJlbiB9OiBCYW5uZXJQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24odW5kZWZpbmVkLCB7XG4gICAga2V5UHJlZml4OiBcIm5vdGlmaWNhdGlvbnMuYmFubmVyXCJcbiAgfSk7XG4gIGNvbnN0IHsgc2hvd0hlYWRlclN1Yk1lbnUsIGlzQ29tcGFjdE1vZGUgfSA9IHVzZU5hdmlnYXRpb25Db250ZXh0KCk7XG4gIGNvbnN0IHsgdmVydGljYWxOYXZpZ2F0aW9uV2lkdGgsIHNldEJhbm5lck1heEhlaWdodCB9ID0gdXNlTGF5b3V0Q29udGV4dCgpO1xuICBjb25zdCBbYmFubmVycywgc2V0QmFubmVyc10gPSB1c2VTdGF0ZTxCYW5uZXJbXT4oW10pO1xuXG4gIGNvbnN0IHNob3cgPSAobm90aWZpY2F0aW9uOiBIdkFwcFNoZWxsRXZlbnROb3RpZmljYXRpb24pID0+IHtcbiAgICBjb25zdCBpZCA9IHV1aWQoKTtcblxuICAgIGNvbnN0IG5ld0Jhbm5lcjogQmFubmVyID0ge1xuICAgICAgaWQsXG4gICAgICAuLi5ub3RpZmljYXRpb24sXG4gICAgICB2YXJpYW50OiBub3RpZmljYXRpb24udmFyaWFudCA/PyBcImRlZmF1bHRcIlxuICAgIH07XG4gICAgc2V0QmFubmVycyhwcmV2QmFubmVycyA9PiBbLi4ucHJldkJhbm5lcnMsIG5ld0Jhbm5lcl0pO1xuICB9O1xuXG4gIGNvbnN0IGRpc21pc3MgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHNldEJhbm5lcnMocHJldkJhbm5lcnMgPT4gcHJldkJhbm5lcnMuZmlsdGVyKGJhbm5lciA9PiBiYW5uZXIuaWQgIT09IGlkKSk7XG4gIH07XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBzaG93LFxuICAgICAgZGlzbWlzc1xuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYmFubmVycy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBHZXQgYWxsIGhlaWdodHMgZnJvbSB0aGUgcmVuZGVyZWQgYmFubmVyc1xuICAgICAgY29uc3QgYmFubmVySGVpZ2h0cyA9IGJhbm5lcnMubWFwKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBiYW5uZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbS5pZCk7XG4gICAgICAgIHJldHVybiBiYW5uZXJFbGVtZW50ID8gYmFubmVyRWxlbWVudC5jbGllbnRIZWlnaHQgOiAwO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEZpbmQgdGhlICd0YWxsZXN0JyBiYW5uZXJcbiAgICAgIGNvbnN0IG1heEJhbm5lckhlaWdodCA9IE1hdGgubWF4KC4uLmJhbm5lckhlaWdodHMpO1xuXG4gICAgICAvLyBVcGRhdGUgcGFkZGluZyB2YWx1ZVxuICAgICAgc2V0QmFubmVyTWF4SGVpZ2h0KG1heEJhbm5lckhlaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEJhbm5lck1heEhlaWdodCgwKTtcbiAgICB9XG4gIH0sIFtiYW5uZXJzLCBzZXRCYW5uZXJNYXhIZWlnaHRdKTtcblxuICBjb25zdCBzdHlsZXMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjc3Moe1xuICAgICAgICBtYXJnaW5Ub3A6XG4gICAgICAgICAgc2hvd0hlYWRlclN1Yk1lbnUgJiYgIWlzQ29tcGFjdE1vZGVcbiAgICAgICAgICAgID8gYGNhbGMoJHt0aGVtZS5oZWFkZXIuaGVpZ2h0fSArICR7dGhlbWUuaGVhZGVyLnNlY29uZExldmVsSGVpZ2h0fSArICR7dGhlbWUuc3BhY2Uuc219KWBcbiAgICAgICAgICAgIDogYGNhbGMoJHt0aGVtZS5oZWFkZXIuaGVpZ2h0fSArICR7dGhlbWUuc3BhY2Uuc219KWAsXG4gICAgICAgIGxlZnQ6IGBjYWxjKCR7dmVydGljYWxOYXZpZ2F0aW9uV2lkdGh9cHggKyAke3RoZW1lLnNwYWNlLnNtfSlgLFxuICAgICAgICB3aWR0aDogYGNhbGMoMTAwJSAtICgke3ZlcnRpY2FsTmF2aWdhdGlvbldpZHRofXB4ICsgJHt0aGVtZS5zcGFjZS5zbX0pIC0gJHt0aGVtZS5zcGFjZS5zbX0pYCxcbiAgICAgICAgdHJhbnNmb3JtOiBcInVuc2V0XCIsXG4gICAgICAgIG1pbldpZHRoOiBcInVuc2V0XCIsXG4gICAgICAgIHpJbmRleDogdGhlbWUuekluZGljZXMuYmFubmVyXG4gICAgICB9KSxcbiAgICBbaXNDb21wYWN0TW9kZSwgc2hvd0hlYWRlclN1Yk1lbnUsIHZlcnRpY2FsTmF2aWdhdGlvbldpZHRoXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEJhbm5lckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT5cbiAgICAgIHtiYW5uZXJzLm1hcChiYW5uZXIgPT4gKFxuICAgICAgICA8SHZCYW5uZXJcbiAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICBhbmNob3JPcmlnaW5Ub3BDZW50ZXI6IHN0eWxlc1xuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9e2Jhbm5lci5pZH1cbiAgICAgICAgICBrZXk9e2Jhbm5lci5pZH1cbiAgICAgICAgICBvZmZzZXQ9ezB9XG4gICAgICAgICAgb3BlblxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IGRpc21pc3MoYmFubmVyLmlkKX1cbiAgICAgICAgICB2YXJpYW50PXtiYW5uZXIudmFyaWFudH1cbiAgICAgICAgICBsYWJlbD17YmFubmVyLm1lc3NhZ2V9XG4gICAgICAgICAgc2hvd0ljb25cbiAgICAgICAgICBhY3Rpb25zPXtiYW5uZXIuYWN0aW9uc31cbiAgICAgICAgICBhY3Rpb25zQ2FsbGJhY2s9e2Jhbm5lci5hY3Rpb25zQ2FsbGJhY2t9XG4gICAgICAgICAgYmFubmVyQ29udGVudFByb3BzPXt7XG4gICAgICAgICAgICBhY3Rpb25Qcm9wczogeyBcImFyaWEtbGFiZWxcIjogdChcImNsb3NlXCIpIH1cbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9CYW5uZXJDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQmFubmVyUHJvdmlkZXI7XG4iXX0= */"), [isCompactMode, showHeaderSubMenu, verticalNavigationWidth]);
68
+ return /* @__PURE__ */ jsxs(BannerContext.Provider, { value, children: [
69
+ banners.map((banner) => /* @__PURE__ */ jsx(HvBanner, { classes: {
70
+ anchorOriginTopCenter: styles
71
+ }, id: banner.id, offset: 0, open: true, onClose: () => dismiss(banner.id), variant: banner.variant, label: banner.message, showIcon: true, actions: banner.actions, actionsCallback: banner.actionsCallback, bannerContentProps: {
62
72
  actionProps: {
63
- "aria-label": i("close")
73
+ "aria-label": t("close")
64
74
  }
65
- } }, I.id)),
66
- t
75
+ } }, banner.id)),
76
+ children
67
77
  ] });
68
- }, j = x;
78
+ };
79
+ const BannerProvider$1 = BannerProvider;
69
80
  export {
70
- N as BannerContext,
71
- j as default
81
+ BannerContext,
82
+ BannerProvider$1 as default
72
83
  };
73
- //# sourceMappingURL=BannerProvider.js.map
@@ -1,25 +1,28 @@
1
- import { jsx as s } from "@emotion/react/jsx-runtime";
2
- import { createContext as c, useState as a, useMemo as v } from "react";
3
- const d = c({
1
+ import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { createContext, useState, useMemo } from "react";
3
+ const LayoutContext = createContext({
4
4
  bannerMaxHeight: 0,
5
5
  setBannerMaxHeight: () => {
6
6
  },
7
7
  verticalNavigationWidth: 0,
8
8
  setVerticalNavigationWidth: () => {
9
9
  }
10
- }), g = ({
11
- children: i
10
+ });
11
+ const LayoutProvider = ({
12
+ children
12
13
  }) => {
13
- const [t, o] = a(0), [e, r] = a(0), n = v(() => ({
14
- bannerMaxHeight: t,
15
- setBannerMaxHeight: o,
16
- verticalNavigationWidth: e,
17
- setVerticalNavigationWidth: r
18
- }), [t, e]);
19
- return /* @__PURE__ */ s(d.Provider, { value: n, children: i });
20
- }, x = g;
14
+ const [bannerMaxHeight, setBannerMaxHeight] = useState(0);
15
+ const [verticalNavigationWidth, setVerticalNavigationWidth] = useState(0);
16
+ const value = useMemo(() => ({
17
+ bannerMaxHeight,
18
+ setBannerMaxHeight,
19
+ verticalNavigationWidth,
20
+ setVerticalNavigationWidth
21
+ }), [bannerMaxHeight, verticalNavigationWidth]);
22
+ return /* @__PURE__ */ jsx(LayoutContext.Provider, { value, children });
23
+ };
24
+ const LayoutProvider$1 = LayoutProvider;
21
25
  export {
22
- d as LayoutContext,
23
- x as default
26
+ LayoutContext,
27
+ LayoutProvider$1 as default
24
28
  };
25
- //# sourceMappingURL=LayoutProvider.js.map
@@ -1,66 +1,98 @@
1
- import { jsx as x } from "@emotion/react/jsx-runtime";
2
- import { createContext as L, useState as d, useMemo as s, useEffect as u, useCallback as A } from "react";
3
- import { useTheme as O, useMediaQuery as w } from "@mui/material";
4
- import { useHvAppShellConfig as T } from "@hitachivantara/app-shell-shared";
5
- import { removeHrefFromMenuItemsWithChildren as I, findItemById as V } from "../lib/utils/navigationUtil.js";
6
- import b from "../lib/hooks/useNavigationMenuItems.js";
7
- import H from "../lib/hooks/useLocalStorage.js";
8
- const X = L({
1
+ import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { createContext, useState, useMemo, useEffect, useCallback } from "react";
3
+ import { useTheme, useMediaQuery } from "@mui/material";
4
+ import { useHvAppShellConfig } from "@hitachivantara/app-shell-shared";
5
+ import { removeHrefFromMenuItemsWithChildren, findItemById } from "../lib/utils/navigationUtil.js";
6
+ import useNavigationMenuItems from "../lib/hooks/useNavigationMenuItems.js";
7
+ import useLocalStorage from "../lib/hooks/useLocalStorage.js";
8
+ const NavigationContext = createContext({
9
9
  selectedMenuItemId: void 0,
10
10
  rootMenuItemId: void 0,
11
11
  items: [],
12
12
  verticalNavigationItems: [],
13
- hasVerticalNavigation: !1,
14
- showHeaderSubMenu: !1,
15
- isCompactMode: !1,
13
+ hasVerticalNavigation: false,
14
+ showHeaderSubMenu: false,
15
+ isCompactMode: false,
16
16
  verticalNavigationMode: "EXPANDED",
17
17
  switchVerticalNavigationMode: () => {
18
18
  }
19
- }), _ = ({
20
- children: h
19
+ });
20
+ const NavigationProvider = ({
21
+ children
21
22
  }) => {
22
23
  const {
23
- navigationMode: a
24
- } = T(), {
25
- items: t,
26
- selectedMenuItemId: c,
27
- rootMenuItemId: i
28
- } = b(), S = O(), e = w(S.breakpoints.down("md")), {
29
- value: m,
30
- setStoredValue: l
31
- } = H("NAV_EXPANDED"), [n, C] = d(m == null ? !0 : m === "true"), [v, f] = d(e), [N, D] = d(!1), g = s(() => e ? v ? "CLOSED" : "EXPANDED" : n ? "EXPANDED" : "COLLAPSED", [v, e, n]), r = s(() => {
32
- var E;
33
- if (e)
34
- return t;
35
- if (a === "ONLY_LEFT")
36
- return I(t);
37
- const o = i && ((E = V(t, i)) == null ? void 0 : E.data) || [];
38
- return I(o);
39
- }, [t, a, i, e]), M = s(() => e ? !0 : a === "ONLY_TOP" ? !1 : r && r.length > 0, [a, r, e]);
40
- u(() => {
41
- l(String(n));
42
- }, [n, l]), u(() => {
43
- f(e);
44
- }, [e]), u(() => {
45
- D(a === "ONLY_TOP" && t.some((o) => o.data && o.data.length > 0));
46
- }, [a, t]);
47
- const p = A(() => {
48
- e ? f((o) => !o) : C((o) => !o);
49
- }, [e]), P = s(() => ({
50
- selectedMenuItemId: c,
51
- rootMenuItemId: i,
52
- items: t,
53
- verticalNavigationItems: r,
54
- hasVerticalNavigation: M,
55
- showHeaderSubMenu: N,
56
- isCompactMode: e,
57
- verticalNavigationMode: g,
58
- switchVerticalNavigationMode: p
59
- }), [c, i, t, r, M, N, e, g, p]);
60
- return /* @__PURE__ */ x(X.Provider, { value: P, children: h });
61
- }, R = _;
24
+ navigationMode
25
+ } = useHvAppShellConfig();
26
+ const {
27
+ items,
28
+ selectedMenuItemId,
29
+ rootMenuItemId
30
+ } = useNavigationMenuItems();
31
+ const muiTheme = useTheme();
32
+ const isCompactMode = useMediaQuery(muiTheme.breakpoints.down("md"));
33
+ const {
34
+ value: storedExpanded,
35
+ setStoredValue: setStoreExpanded
36
+ } = useLocalStorage("NAV_EXPANDED");
37
+ const [isExpanded, setIsExpanded] = useState(storedExpanded == null ? true : storedExpanded === "true");
38
+ const [isClosed, setIsClosed] = useState(isCompactMode);
39
+ const [showHeaderSubMenu, setShowHeaderSubMenu] = useState(false);
40
+ const verticalNavigationMode = useMemo(() => {
41
+ if (isCompactMode) {
42
+ return isClosed ? "CLOSED" : "EXPANDED";
43
+ }
44
+ return isExpanded ? "EXPANDED" : "COLLAPSED";
45
+ }, [isClosed, isCompactMode, isExpanded]);
46
+ const verticalNavigationItems = useMemo(() => {
47
+ if (isCompactMode) {
48
+ return items;
49
+ }
50
+ if (navigationMode === "ONLY_LEFT") {
51
+ return removeHrefFromMenuItemsWithChildren(items);
52
+ }
53
+ const itemsToReturn = rootMenuItemId && findItemById(items, rootMenuItemId)?.data || [];
54
+ return removeHrefFromMenuItemsWithChildren(itemsToReturn);
55
+ }, [items, navigationMode, rootMenuItemId, isCompactMode]);
56
+ const hasVerticalNavigation = useMemo(() => {
57
+ if (isCompactMode) {
58
+ return true;
59
+ }
60
+ if (navigationMode === "ONLY_TOP") {
61
+ return false;
62
+ }
63
+ return verticalNavigationItems && verticalNavigationItems.length > 0;
64
+ }, [navigationMode, verticalNavigationItems, isCompactMode]);
65
+ useEffect(() => {
66
+ setStoreExpanded(String(isExpanded));
67
+ }, [isExpanded, setStoreExpanded]);
68
+ useEffect(() => {
69
+ setIsClosed(isCompactMode);
70
+ }, [isCompactMode]);
71
+ useEffect(() => {
72
+ setShowHeaderSubMenu(navigationMode === "ONLY_TOP" && items.some((item) => item.data && item.data.length > 0));
73
+ }, [navigationMode, items]);
74
+ const switchVerticalNavigationMode = useCallback(() => {
75
+ if (isCompactMode) {
76
+ setIsClosed((prevState) => !prevState);
77
+ } else {
78
+ setIsExpanded((prevState) => !prevState);
79
+ }
80
+ }, [isCompactMode]);
81
+ const value = useMemo(() => ({
82
+ selectedMenuItemId,
83
+ rootMenuItemId,
84
+ items,
85
+ verticalNavigationItems,
86
+ hasVerticalNavigation,
87
+ showHeaderSubMenu,
88
+ isCompactMode,
89
+ verticalNavigationMode,
90
+ switchVerticalNavigationMode
91
+ }), [selectedMenuItemId, rootMenuItemId, items, verticalNavigationItems, hasVerticalNavigation, showHeaderSubMenu, isCompactMode, verticalNavigationMode, switchVerticalNavigationMode]);
92
+ return /* @__PURE__ */ jsx(NavigationContext.Provider, { value, children });
93
+ };
94
+ const NavigationProvider$1 = NavigationProvider;
62
95
  export {
63
- X as NavigationContext,
64
- R as default
96
+ NavigationContext,
97
+ NavigationProvider$1 as default
65
98
  };
66
- //# sourceMappingURL=NavigationProvider.js.map
@@ -1,10 +1,12 @@
1
- import { useContext as t } from "react";
2
- import { BannerContext as e } from "../BannerProvider.js";
3
- const s = () => {
4
- const o = t(e);
5
- return o === void 0 && console.error("BannerContext was used outside of its Provider"), o;
1
+ import { useContext } from "react";
2
+ import { BannerContext } from "../BannerProvider.js";
3
+ const useBannerContext = () => {
4
+ const context = useContext(BannerContext);
5
+ if (context === void 0) {
6
+ console.error("BannerContext was used outside of its Provider");
7
+ }
8
+ return context;
6
9
  };
7
10
  export {
8
- s as default
11
+ useBannerContext as default
9
12
  };
10
- //# sourceMappingURL=useBannerContext.js.map
@@ -1,10 +1,12 @@
1
- import { useContext as t } from "react";
2
- import { LayoutContext as e } from "../LayoutProvider.js";
3
- const n = () => {
4
- const o = t(e);
5
- return o === void 0 && console.error("LayoutContext was used outside of its Provider"), o;
1
+ import { useContext } from "react";
2
+ import { LayoutContext } from "../LayoutProvider.js";
3
+ const useLayoutContext = () => {
4
+ const context = useContext(LayoutContext);
5
+ if (context === void 0) {
6
+ console.error("LayoutContext was used outside of its Provider");
7
+ }
8
+ return context;
6
9
  };
7
10
  export {
8
- n as default
11
+ useLayoutContext as default
9
12
  };
10
- //# sourceMappingURL=useLayoutContext.js.map
@@ -1,10 +1,12 @@
1
- import { useContext as t } from "react";
2
- import { NavigationContext as e } from "../NavigationProvider.js";
3
- const r = () => {
4
- const o = t(e);
5
- return o === void 0 && console.error("NavigationContext was used outside of its Provider"), o;
1
+ import { useContext } from "react";
2
+ import { NavigationContext } from "../NavigationProvider.js";
3
+ const useNavigationContext = () => {
4
+ const context = useContext(NavigationContext);
5
+ if (context === void 0) {
6
+ console.error("NavigationContext was used outside of its Provider");
7
+ }
8
+ return context;
6
9
  };
7
10
  export {
8
- r as default
11
+ useNavigationContext as default
9
12
  };
10
- //# sourceMappingURL=useNavigationContext.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/app-shell-ui",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "description": "AppShell Component",
5
5
  "author": "Hitachi Vantara - Boba Fett Team",
6
6
  "license": "Apache-2.0",
@@ -38,9 +38,9 @@
38
38
  "@emotion/css": "^11.10.5",
39
39
  "@emotion/react": "^11.10.5",
40
40
  "@emotion/styled": "^11.10.5",
41
- "@hitachivantara/app-shell-events": "1.0.2",
42
- "@hitachivantara/app-shell-navigation": "1.2.5",
43
- "@hitachivantara/app-shell-shared": "1.3.0",
41
+ "@hitachivantara/app-shell-events": "1.0.3",
42
+ "@hitachivantara/app-shell-navigation": "1.2.7",
43
+ "@hitachivantara/app-shell-shared": "1.4.1",
44
44
  "@hitachivantara/uikit-react-core": "^5.66.7",
45
45
  "@hitachivantara/uikit-react-icons": "^5.10.1",
46
46
  "@mui/material": "^5.12.3",
@@ -68,5 +68,5 @@
68
68
  "vite-plugin-dts": "^3.6.4",
69
69
  "vite-tsconfig-paths": "^4.0.5"
70
70
  },
71
- "gitHead": "0e7f62ae71bf4f6626445c977518a90be50a7e1c"
71
+ "gitHead": "bbee984ca345cfaa5d6a3829f5ec65cc6373b37b"
72
72
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppShell.js","sources":["../../../../src/components/AppShell/AppShell.tsx"],"sourcesContent":["import withGlobalProvider from \"../hoc/withGlobalProvider\";\nimport AppShellRoutes from \"../AppShellRoutes\";\n\nconst AppShell = () => {\n return <AppShellRoutes />;\n};\n\nexport default withGlobalProvider(AppShell);\n"],"names":["AppShell","AppShellRoutes","withGlobalProvider"],"mappings":";;;AAGA,MAAMA,IAAWA,wBACPC,GAAiB,CAAA,CAAA,GAGZC,IAAAA,EAAmBF,CAAQ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppShellProvider.js","sources":["../../../../src/components/AppShellProvider/AppShellProvider.tsx"],"sourcesContent":["import {\n ComponentType,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useState\n} from \"react\";\nimport {\n CONFIG_TRANSLATIONS_NAMESPACE,\n HvAppShellConfig,\n HvAppShellContext,\n HvAppShellContextValue,\n HvAppShellRuntimeContext,\n HvAppShellCombinedProvidersContext\n} from \"@hitachivantara/app-shell-shared\";\nimport { I18nContext } from \"react-i18next\";\n\nimport {\n HvProvider,\n HvProviderProps,\n themes as baseThemes\n} from \"@hitachivantara/uikit-react-core\";\n\nimport { addResourceBundles } from \"../../lib/i18n\";\nimport useLocalStorage from \"../../lib/hooks/useLocalStorage\";\n\nexport type AppShellProviderProps = {\n children: ReactNode;\n config?: Partial<HvAppShellConfig>;\n configUrl?: string;\n};\n\nconst AppShellProvider = ({\n children,\n config: localConfig,\n configUrl\n}: AppShellProviderProps) => {\n const { i18n } = useContext(I18nContext);\n const { value: storedColorModeValue } = useLocalStorage(\"COLOR_MODE\");\n const [loadedConfig, setLoadedConfig] = useState<\n HvAppShellConfig | undefined\n >(undefined);\n\n const [hasError, setHasError] = useState<boolean>(false);\n\n useEffect(() => {\n if (!localConfig && configUrl) {\n fetch(new URL(configUrl))\n .then(result => {\n return result.json();\n })\n .then(data => setLoadedConfig(data))\n .catch(e => {\n console.error(\n `It was not possible to obtain the context from: ${configUrl}`,\n e\n );\n setLoadedConfig(undefined);\n setHasError(true);\n });\n }\n }, [localConfig, configUrl]);\n\n const theConfig: HvAppShellContextValue | undefined = useMemo(\n () => localConfig ?? loadedConfig,\n [localConfig, loadedConfig]\n );\n\n if (hasError) {\n throw Error(\"It was not possible to obtain the configuration\");\n }\n\n if (theConfig?.translations) {\n addResourceBundles(\n i18n,\n theConfig.translations,\n CONFIG_TRANSLATIONS_NAMESPACE\n );\n }\n\n const [themes, setThemes] = useState<HvProviderProps[\"themes\"]>(undefined);\n const [providers, setProviders] = useState<\n ComponentType<{ children: ReactNode }>[] | undefined\n >(undefined);\n\n useEffect(() => {\n if (theConfig?.theming?.themes) {\n Promise.all(\n theConfig.theming.themes?.map(bundle => {\n return (\n baseThemes[bundle as keyof typeof baseThemes] ??\n import(/* @vite-ignore */ bundle)\n .then(module => module.default)\n .catch(e => {\n console.error(`Import of theme bundle ${bundle} failed! ${e}`);\n })\n );\n })\n )\n .then(loadedThemes => {\n setThemes(loadedThemes.filter(theme => !!theme));\n })\n .catch(e => {\n console.error(`Import of themes failed! ${e}`);\n });\n }\n }, [theConfig?.theming?.themes]);\n\n useEffect(() => {\n if (theConfig?.providers) {\n Promise.all(\n theConfig.providers.map(provider => {\n return import(/* @vite-ignore */ provider.bundle)\n .then(module => module.default)\n .catch(e => {\n console.error(\n `Import of provider '${provider.bundle}' failed! ${e}`\n );\n });\n })\n )\n .then(loadedProviders =>\n setProviders(loadedProviders.filter(provider => !!provider))\n )\n .catch(e => {\n console.error(`Import of providers failed!`, e);\n });\n }\n }, [theConfig?.providers]);\n\n const runtimeContext = useMemo(\n () => ({\n i18n\n }),\n [i18n]\n );\n\n const providersContext = useMemo(\n () => ({\n providers\n }),\n [providers]\n );\n\n if (\n !theConfig ||\n (theConfig.theming?.themes && !themes) ||\n (theConfig.providers != null && providers === undefined)\n ) {\n return null;\n }\n\n return (\n <HvAppShellContext.Provider value={theConfig}>\n <HvAppShellRuntimeContext.Provider value={runtimeContext}>\n <HvProvider\n themes={themes}\n theme={theConfig.theming?.theme}\n colorMode={storedColorModeValue ?? theConfig.theming?.colorMode}>\n <HvAppShellCombinedProvidersContext.Provider value={providersContext}>\n {children}\n </HvAppShellCombinedProvidersContext.Provider>\n </HvProvider>\n </HvAppShellRuntimeContext.Provider>\n </HvAppShellContext.Provider>\n );\n};\n\nexport default AppShellProvider;\n"],"names":["AppShellProvider","children","config","localConfig","configUrl","i18n","useContext","I18nContext","value","storedColorModeValue","useLocalStorage","loadedConfig","setLoadedConfig","useState","undefined","hasError","setHasError","useEffect","fetch","URL","then","result","json","data","catch","e","console","error","theConfig","useMemo","Error","translations","CONFIG_TRANSLATIONS_NAMESPACE","themes","setThemes","providers","setProviders","theming","Promise","all","map","bundle","baseThemes","module","default","loadedThemes","filter","theme","provider","loadedProviders","runtimeContext","providersContext","jsx","HvAppShellContext","HvAppShellRuntimeContext","HvProvider","colorMode","HvAppShellCombinedProvidersContext","AppShellProvider$1"],"mappings":";;;;;;;AAiCA,MAAMA,IAAmBA,CAAC;AAAA,EACxBC,UAAAA;AAAAA,EACAC,QAAQC;AAAAA,EACRC,WAAAA;AACqB,MAAM;;AACrB,QAAA;AAAA,IAAEC,MAAAA;AAAAA,EAAAA,IAASC,EAAWC,CAAW,GACjC;AAAA,IAAEC,OAAOC;AAAAA,EAAAA,IAAyBC,EAAgB,YAAY,GAC9D,CAACC,GAAcC,CAAe,IAAIC,EAEtCC,MAAS,GAEL,CAACC,GAAUC,CAAW,IAAIH,EAAkB,EAAK;AAEvDI,EAAAA,EAAU,MAAM;AACV,IAAA,CAACd,KAAeC,KAClBc,MAAM,IAAIC,IAAIf,CAAS,CAAC,EACrBgB,KAAKC,CAAUA,MACPA,EAAOC,MACf,EACAF,KAAKG,CAAAA,MAAQX,EAAgBW,CAAI,CAAC,EAClCC,MAAMC,CAAKA,MAAA;AACVC,cAAQC,MACL,mDAAkDvB,CAAU,IAC7DqB,CACF,GACAb,EAAgBE,MAAS,GACzBE,EAAY,EAAI;AAAA,IAAA,CACjB;AAAA,EACL,GACC,CAACb,GAAaC,CAAS,CAAC;AAErBwB,QAAAA,IAAgDC,EACpD,MAAM1B,KAAeQ,GACrB,CAACR,GAAaQ,CAAY,CAC5B;AAEA,MAAII;AACF,UAAMe,MAAM,iDAAiD;AAG/D,EAAIF,KAAAA,QAAAA,EAAWG,gBAEX1B,EAAAA,GACAuB,EAAUG,cACVC,CACF;AAGF,QAAM,CAACC,GAAQC,CAAS,IAAIrB,EAAoCC,MAAS,GACnE,CAACqB,GAAWC,CAAY,IAAIvB,EAEhCC,MAAS;AAEXG,EAAAA,EAAU,MAAM;;AACVW,KAAAA,IAAAA,KAAAA,gBAAAA,EAAWS,YAAXT,QAAAA,EAAoBK,UACtBK,QAAQC,KACNX,IAAAA,EAAUS,QAAQJ,WAAlBL,gBAAAA,EAA0BY,IAAIC,CAAUA,MAEpCC,EAAWD,CAAkC,KAC7C;AAAA;AAAA,MAA0BA;AAAAA,MACvBrB,KAAKuB,CAAUA,MAAAA,EAAOC,OAAO,EAC7BpB,MAAMC,CAAKA,MAAA;AACVC,cAAQC,MAAO,0BAAyBc,CAAO,YAAWhB,CAAE,EAAC;AAAA,IAAA,CAC9D,EAGT,EACGL,KAAKyB,CAAgBA,MAAA;AACpBX,MAAAA,EAAUW,EAAaC,OAAOC,CAAAA,MAAS,CAAC,CAACA,CAAK,CAAC;AAAA,IAAA,CAChD,EACAvB,MAAMC,CAAKA,MAAA;AACFE,cAAAA,MAAO,4BAA2BF,CAAE,EAAC;AAAA,IAAA,CAC9C;AAAA,EAEJ,GAAA,EAACG,IAAAA,KAAAA,gBAAAA,EAAWS,YAAXT,gBAAAA,EAAoBK,MAAM,CAAC,GAE/BhB,EAAU,MAAM;AACd,IAAIW,KAAAA,QAAAA,EAAWO,aACbG,QAAQC,IACNX,EAAUO,UAAUK,IAAIQ,CAAYA,MAC3B;AAAA;AAAA,MAA0BA,EAASP;AAAAA,MACvCrB,KAAKuB,CAAUA,MAAAA,EAAOC,OAAO,EAC7BpB,MAAMC,CAAKA,MAAA;AACVC,cAAQC,MACL,uBAAsBqB,EAASP,MAAO,aAAYhB,CAAE,EACvD;AAAA,IAAA,CACD,CACJ,CACH,EACGL,KAAK6B,CAAAA,MACJb,EAAaa,EAAgBH,OAAOE,CAAYA,MAAA,CAAC,CAACA,CAAQ,CAAC,CAC7D,EACCxB,MAAMC,CAAKA,MAAA;AACFE,cAAAA,MAAO,+BAA8BF,CAAC;AAAA,IAAA,CAC/C;AAAA,EACL,GACC,CAACG,KAAAA,gBAAAA,EAAWO,SAAS,CAAC;AAEnBe,QAAAA,IAAiBrB,EACrB,OAAO;AAAA,IACLxB,MAAAA;AAAAA,EAAAA,IAEF,CAACA,CAAI,CACP,GAEM8C,IAAmBtB,EACvB,OAAO;AAAA,IACLM,WAAAA;AAAAA,EAAAA,IAEF,CAACA,CAAS,CACZ;AAGE,SAAA,CAACP,MACAA,IAAAA,EAAUS,YAAVT,QAAAA,EAAmBK,UAAU,CAACA,KAC9BL,EAAUO,aAAa,QAAQA,MAAcrB,SAEvC,OAIN,gBAAAsC,EAAAC,EAAkB,UAAlB,EAA2B,OAAOzB,GACjC,UAAA,gBAAAwB,EAACE,EAAyB,UAAzB,EAAkC,OAAOJ,GACxC,UAAA,gBAAAE,EAACG,aACCtB,GACA,QAAOL,IAAAA,EAAUS,YAAVT,gBAAAA,EAAmBmB,OAC1B,WAAWtC,OAAwBmB,IAAAA,EAAUS,YAAVT,gBAAAA,EAAmB4B,YACtD,UAAA,gBAAAJ,EAACK,EAAmC,UAAnC,EAA4C,OAAON,GACjDlD,UAAAA,EACH,CAAA,GACF,GACF,EACF,CAAA;AAEJ,GAEAyD,IAAe1D;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppShellRoutes.js","sources":["../../../../src/components/AppShellRoutes/AppShellRoutes.tsx"],"sourcesContent":["import { lazy } from \"react\";\nimport {\n createBrowserRouter,\n Outlet,\n RouteObject,\n RouterProvider\n} from \"react-router-dom\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport { HvContainer } from \"@hitachivantara/uikit-react-core\";\nimport {\n type HvAppShellMainPanelConfig,\n type HvAppShellViewsConfig,\n useHvAppShellConfig,\n useHvAppShellCombinedProviders\n} from \"@hitachivantara/app-shell-shared\";\n\nimport AppShellViewProvider from \"../AppShellViewProvider\";\nimport GenericError from \"../../pages/GenericError\";\nimport LoadingPage from \"../../pages/LoadingPage\";\nimport { getAppIdFromBundle } from \"../../lib/utils/navigationUtil\";\nimport getBasePath from \"../../lib/utils/basePathUtils\";\nimport RootRoute from \"../../pages/Root\";\n\nconst NotFound = lazy(() => import(\"../../pages/NotFound\"));\n\nfunction renderNestedRoutes(\n views: HvAppShellViewsConfig[] | undefined\n): RouteObject[] | undefined {\n if (!views) {\n return undefined;\n }\n return views.map<RouteObject>(view => {\n const { bundle } = view;\n const appId = getAppIdFromBundle(bundle);\n\n const RouteComponent = lazy(() => import(/* @vite-ignore */ bundle));\n\n const path = view.route.replace(/^\\//, \"\");\n\n return {\n path,\n // \"Component\" used instead of \"element\" due to lazy loading\n Component: () => (\n <AppShellViewProvider id={appId}>\n <ErrorBoundary\n key={view.route}\n fallback={<GenericError fullPage={false} />}>\n <RouteComponent {...view.config}>\n {view.views != null ? <Outlet /> : null}\n </RouteComponent>\n </ErrorBoundary>\n </AppShellViewProvider>\n ),\n children: renderNestedRoutes(view.views)\n };\n });\n}\n\nfunction renderRoutes(\n mainPanel: HvAppShellMainPanelConfig | undefined\n): RouteObject[] {\n if (mainPanel == null || mainPanel.views == null) {\n return [];\n }\n\n const { views, maxWidth = \"xl\", ...mainContainerProps } = mainPanel;\n\n return views.map(view => {\n const {\n bundle,\n route,\n config,\n views: nestedViews,\n maxWidth: viewMaxWidth,\n ...viewContainerProps\n } = view;\n\n const appId = getAppIdFromBundle(bundle);\n\n const RouteComponent = lazy(() => import(/* @vite-ignore */ bundle));\n\n return {\n path: route,\n // \"Component\" used instead of \"element\" due to lazy loading\n Component: () => (\n <HvContainer\n maxWidth={viewMaxWidth ?? maxWidth}\n {...mainContainerProps}\n {...viewContainerProps}>\n <AppShellViewProvider id={appId}>\n <ErrorBoundary\n key={route}\n fallback={<GenericError fullPage={false} />}>\n <RouteComponent {...config}>\n {nestedViews != null ? <Outlet /> : null}\n </RouteComponent>\n </ErrorBoundary>\n </AppShellViewProvider>\n </HvContainer>\n ),\n children: renderNestedRoutes(nestedViews)\n };\n });\n}\n\nfunction renderErrorRoutes(\n mainPanel: HvAppShellMainPanelConfig | undefined\n): RouteObject[] {\n const { views, maxWidth = \"xl\", ...mainContainerProps } = mainPanel ?? {};\n\n return [\n {\n path: \"*\",\n element: (\n <HvContainer maxWidth={maxWidth} {...mainContainerProps}>\n <NotFound />\n </HvContainer>\n )\n }\n ];\n}\n\nconst AppShellRoutes = () => {\n const config = useHvAppShellConfig();\n const { providers } = useHvAppShellCombinedProviders();\n\n return (\n <RouterProvider\n fallbackElement={<LoadingPage />}\n router={createBrowserRouter(\n [\n {\n element: <RootRoute providers={providers} />, // All routes live inside `RootRoute`\n errorElement: <GenericError fullPage />,\n children: [\n ...renderRoutes(config.mainPanel),\n ...renderErrorRoutes(config.mainPanel)\n ]\n }\n ],\n { basename: getBasePath(config) }\n )}\n />\n );\n};\n\nexport default AppShellRoutes;\n"],"names":["NotFound","lazy","renderNestedRoutes","views","map","view","bundle","appId","getAppIdFromBundle","RouteComponent","path","route","replace","Component","jsx","AppShellViewProvider","ErrorBoundary","GenericError","config","Outlet","children","renderRoutes","mainPanel","maxWidth","mainContainerProps","nestedViews","viewMaxWidth","viewContainerProps","HvContainer","renderErrorRoutes","element","AppShellRoutes","useHvAppShellConfig","providers","useHvAppShellCombinedProviders","RouterProvider","LoadingPage","createBrowserRouter","RootRoute","errorElement","basename","getBasePath","AppShellRoutes$1"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppShellViewProvider.js","sources":["../../../../src/components/AppShellViewProvider/AppShellViewProvider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport {\n HvAppShellViewContext,\n HvAppShellViewContextValue\n} from \"@hitachivantara/app-shell-shared\";\n\nexport type AppShellViewProviderProps = {\n children: React.ReactNode;\n id: string;\n};\n\nconst AppShellViewProvider = ({ children, id }: AppShellViewProviderProps) => {\n const value: HvAppShellViewContextValue = useMemo(() => ({ id }), [id]);\n\n return (\n <HvAppShellViewContext.Provider value={value}>\n {children}\n </HvAppShellViewContext.Provider>\n );\n};\n\nexport default AppShellViewProvider;\n"],"names":["AppShellViewProvider","children","id","value","useMemo","jsx","HvAppShellViewContext","AppShellViewProvider$1"],"mappings":";;;AAYA,MAAMA,IAAuBA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,IAAAA;AAA8B,MAAM;AACtEC,QAAAA,IAAoCC,EAAQ,OAAO;AAAA,IAAEF,IAAAA;AAAAA,EAAAA,IAAO,CAACA,CAAE,CAAC;AAEtE,SACG,gBAAAG,EAAAC,EAAsB,UAAtB,EAA+B,OAAAH,GAC7BF,UAAAA,EACH,CAAA;AAEJ,GAEAM,IAAeP;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomHooksInitializer.js","sources":["../../../../src/components/CustomHooksInitializer/CustomHooksInitializer.tsx"],"sourcesContent":["import useClearLocationState from \"../../lib/hooks/useClearLocationState\";\nimport useCustomEventListener from \"../../lib/hooks/useCustomEventListener\";\n\nconst CustomHooksInitializer = () => {\n useCustomEventListener();\n useClearLocationState();\n\n return null;\n};\n\nexport default CustomHooksInitializer;\n"],"names":["CustomHooksInitializer","useCustomEventListener","useClearLocationState","CustomHooksInitializer$1"],"mappings":";;AAGA,MAAMA,IAAyBA,OACNC,KACDC,KAEf,OAGTC,IAAeH;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalStyles.js","sources":["../../../../src/components/GlobalStyles/GlobalStyles.tsx"],"sourcesContent":["import { Global, css } from \"@emotion/react\";\n\n/**\n * This component can be used to set | add | modify global css. It can also override properties defined in UI-KIT.\n *\n * We need to have this component because the UI-KIT is forcing the height to 100% and this caused App Shell to show\n * a vertical scroll bar when it shouldn't due to the header height.\n */\nconst GlobalStyles = () => (\n <Global\n styles={css`\n html,\n body {\n height: unset;\n }\n `}\n />\n);\n\nexport default GlobalStyles;\n"],"names":["_ref","process","env","NODE_ENV","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","GlobalStyles","jsx","Global","GlobalStyles$1"],"mappings":";;;;;AAEA,IAAAA,IAAAC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA;AAMA,MAAMC,IAAeA,MAClB,gBAAAC,EAAAC,GAAA,EACC,QAAOX,EAOV,CAAA,GAEDY,IAAeH;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconUiKit.js","sources":["../../../../src/components/IconUiKit/IconUiKit.tsx"],"sourcesContent":["import { HvIconSprite } from \"@hitachivantara/uikit-react-icons\";\n\nexport type IconUiKitProps = {\n name: string;\n};\n\nconst spriteUri = import.meta.resolve?.(\n \"@hv/uikit-icons/icons.svg\"\n) as unknown as string;\n\nconst IconUiKit = ({ name }: IconUiKitProps) => {\n return <HvIconSprite spriteUrl={spriteUri} iconName={name} />;\n};\n\nexport default IconUiKit;\n"],"names":["spriteUri","import","resolve","IconUiKit","name","jsx","HvIconSprite","IconUiKit$1"],"mappings":";;;AAMA,MAAMA,KAAYC,KAAAA,IAAAA,aAAYC,YAAZD,gBAAAA,EAAAA,KAAAA,GAChB,8BAGIE,IAAYA,CAAC;AAAA,EAAEC,MAAAA;AAAqB,MAChC,gBAAAC,EAAAC,GAAA,EAAa,WAAWN,GAAW,UAAUI,EAAQ,CAAA,GAG/DG,IAAeJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/IconUiKit/index.tsx"],"sourcesContent":["import React from \"react\";\nimport IconUiKit from \"./IconUiKit\";\n\nexport type IconUiKitProps = {\n name: string;\n};\n\nexport default React.memo(IconUiKit);\n"],"names":["IconUiKit","React","memo"],"mappings":";;AAOA,MAAAA,IAAeC,EAAMC,KAAKF,CAAS;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"withClickAwayListener.js","sources":["../../../../src/components/hoc/withClickAwayListener.tsx"],"sourcesContent":["import { createPortal } from \"react-dom\";\nimport { ClickAwayListener } from \"@mui/material\";\nimport createAppContainerElement from \"../../lib/utils/documentUtil\";\n\ninterface WithClickAwayListenerProps {\n onClickAway?: () => void;\n}\n\ntype WrappedComponentProps<T extends React.ElementType> = React.ComponentType<\n WithClickAwayListenerProps & React.ComponentProps<T>\n>;\n\nconst withClickAwayListener = <T extends React.ElementType>(\n WrappedComponent: WrappedComponentProps<T>\n) => {\n const displayName = WrappedComponent.displayName ?? WrappedComponent.name;\n\n const panelContainerElement = createAppContainerElement();\n\n const ComponentWithClickAwayListener = ({\n onClickAway,\n ...wrappedProps\n }: WithClickAwayListenerProps & React.ComponentProps<T>) => {\n if (onClickAway) {\n return createPortal(\n <ClickAwayListener onClickAway={onClickAway}>\n <div>\n <WrappedComponent {...(wrappedProps as React.ComponentProps<T>)} />\n </div>\n </ClickAwayListener>,\n panelContainerElement\n );\n }\n\n return <WrappedComponent {...(wrappedProps as React.ComponentProps<T>)} />;\n };\n\n ComponentWithClickAwayListener.displayName = `withClickAwayListener(${displayName})`;\n\n return ComponentWithClickAwayListener;\n};\n\nexport default withClickAwayListener;\n"],"names":["withClickAwayListener","WrappedComponent","displayName","name","panelContainerElement","createAppContainerElement","ComponentWithClickAwayListener","onClickAway","wrappedProps","createPortal","jsx","ClickAwayListener"],"mappings":";;;;AAYMA,MAAAA,IAAwB,CAC5BC,MACG;AACGC,QAAAA,IAAcD,EAAiBC,eAAeD,EAAiBE,MAE/DC,IAAwBC,KAExBC,IAAiCA,CAAC;AAAA,IACtCC,aAAAA;AAAAA,IACA,GAAGC;AAAAA,EAAAA,MAECD,IACKE,EACL,gBAAAC,EAACC,GAAkB,EAAA,aAAAJ,GACjB,UAAC,gBAAAG,EAAA,OAAA,EACC,UAAC,gBAAAA,EAAAT,GAAA,EAAiB,GAAKO,EAAAA,CAAyC,EAClE,CAAA,EACF,CAAA,GACAJ,CACF,IAGK,gBAAAM,EAACT,GAAiB,EAAA,GAAKO,EAA4C,CAAA;AAG7CN,SAAAA,EAAAA,cAAe,yBAAwBA,CAAY,KAE3EI;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"withGlobalProvider.js","sources":["../../../../src/components/hoc/withGlobalProvider.tsx"],"sourcesContent":["import { css } from \"@emotion/css\";\nimport { I18nextProvider } from \"react-i18next\";\nimport { HelmetProvider } from \"react-helmet-async\";\n\nimport {\n HvProvider,\n HvSnackbarProvider,\n theme\n} from \"@hitachivantara/uikit-react-core\";\n\nimport React from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nimport GlobalStyles from \"../GlobalStyles\";\nimport AppShellProvider from \"../AppShellProvider/AppShellProvider\";\nimport createI18Next from \"../../lib/i18n\";\nimport LayoutProvider from \"../../providers/LayoutProvider\";\nimport GenericError from \"../../pages/GenericError\";\n\ntype WrappedComponentProps<T extends React.ElementType> = React.ComponentType<\n React.ComponentProps<T>\n>;\n\nconst snackbarClasses = {\n containerRoot: css`\n margin-top: ${theme.header.height};\n `\n};\n\nconst withGlobalProvider = <T extends React.ElementType>(\n WrappedComponent: WrappedComponentProps<T>\n) => {\n const displayName = WrappedComponent.displayName ?? WrappedComponent.name;\n\n const { i18n } = createI18Next();\n\n const ComponentWithGlobalProvider = ({\n ...wrappedProps\n }: React.ComponentProps<T>) => {\n return (\n <HelmetProvider>\n <HvProvider>\n <GlobalStyles />\n <I18nextProvider i18n={i18n}>\n <ErrorBoundary\n key=\"general\"\n fallback={<GenericError fullPage includeFooter={false} />}>\n <AppShellProvider\n config={wrappedProps.config}\n configUrl={wrappedProps.configUrl}>\n <LayoutProvider>\n <HvSnackbarProvider\n notistackClassesOverride={snackbarClasses}>\n <WrappedComponent {...wrappedProps} />\n </HvSnackbarProvider>\n </LayoutProvider>\n </AppShellProvider>\n </ErrorBoundary>\n </I18nextProvider>\n </HvProvider>\n </HelmetProvider>\n );\n };\n\n ComponentWithGlobalProvider.displayName = `withGlobalProvider(${displayName})`;\n\n return ComponentWithGlobalProvider;\n};\n\nexport default withGlobalProvider;\n"],"names":["snackbarClasses","containerRoot","css","theme","header","height","process","env","NODE_ENV","withGlobalProvider","WrappedComponent","displayName","name","i18n","createI18Next","ComponentWithGlobalProvider","wrappedProps","jsx","HelmetProvider","jsxs","HvProvider","GlobalStyles","I18nextProvider","ErrorBoundary","GenericError","AppShellProvider","config","configUrl","LayoutProvider","HvSnackbarProvider"],"mappings":";;;;;;;;;;;AAuBA,MAAMA,IAAkB;AAAA,EACtBC,eAAkB,gBAAAC,EAAA,eACFC,EAAMC,OAAOC,QAAM,OAAAC,QAAAC,IAAAC,aAAA,eAAA,KAAA,0BAAAF,QAAAC,IAAAC,aAAA,eAAA,KAAA,6xGAAA;AAErC,GAEMC,IAAqB,CACzBC,MACG;AACGC,QAAAA,IAAcD,EAAiBC,eAAeD,EAAiBE,MAE/D;AAAA,IAAEC,MAAAA;AAAAA,MAASC,EAAc,GAEzBC,IAA8BA,CAAC;AAAA,IACnC,GAAGC;AAAAA,EAAAA,MAGD,gBAAAC,EAACC,GACC,EAAA,UAAA,gBAAAC,EAACC,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAH,EAACI,GAAY,EAAA;AAAA,sBACZC,GAAgB,EAAA,MAAAT,GACf,UAAC,gBAAAI,EAAAM,GAAA,EAEC,UAAW,gBAAAN,EAAAO,GAAA,EAAa,UAAQ,IAAC,eAAe,GAAM,CAAA,GACtD,UAAC,gBAAAP,EAAAQ,GAAA,EACC,QAAQT,EAAaU,QACrB,WAAWV,EAAaW,WACxB,UAAC,gBAAAV,EAAAW,GAAA,EACC,UAAC,gBAAAX,EAAAY,GAAA,EACC,0BAA0B7B,GAC1B,UAAA,gBAAAiB,EAACP,GAAiB,EAAA,GAAIM,GAAa,EACrC,CAAA,EACF,CAAA,GACF,EAAA,GAXI,SAYN,GACF;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAIwBL,SAAAA,EAAAA,cAAe,sBAAqBA,CAAY,KAErEI;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrandLogo.js","sources":["../../../../../../src/components/layout/Header/BrandLogo/BrandLogo.tsx"],"sourcesContent":["import {\n CONFIG_TRANSLATIONS_NAMESPACE,\n HvAppShellLogo\n} from \"@hitachivantara/app-shell-shared\";\n\nimport { useTranslation } from \"react-i18next\";\nimport Hitachi from \"./Logos/Hitachi/Hitachi\";\nimport Lumada from \"./Logos/Lumada/Lumada\";\n\nexport type HvBrandLogoProps = {\n logo?: HvAppShellLogo;\n};\n\nconst BrandLogo = ({ logo }: HvBrandLogoProps) => {\n const { t: tConfig } = useTranslation(CONFIG_TRANSLATIONS_NAMESPACE);\n\n if (!logo) {\n return <Hitachi />;\n }\n\n // Rules out explicit null value or non-existent prop but assumes empty string\n const description =\n logo.description != null ? tConfig(logo.description) : undefined;\n\n if (logo.name === \"LUMADA\") {\n return <Lumada description={description} />;\n }\n return <Hitachi description={description} />;\n};\n\nexport default BrandLogo;\n"],"names":["BrandLogo","logo","t","tConfig","useTranslation","CONFIG_TRANSLATIONS_NAMESPACE","Hitachi","description","undefined","name","jsx","Lumada","BrandLogo$1"],"mappings":";;;;;AAaA,MAAMA,IAAYA,CAAC;AAAA,EAAEC,MAAAA;AAAuB,MAAM;AAC1C,QAAA;AAAA,IAAEC,GAAGC;AAAAA,EAAAA,IAAYC,EAAeC,CAA6B;AAEnE,MAAI,CAACJ;AACH,6BAAQK,GAAU,CAAA,CAAA;AAIpB,QAAMC,IACJN,EAAKM,eAAe,OAAOJ,EAAQF,EAAKM,WAAW,IAAIC;AAErDP,SAAAA,EAAKQ,SAAS,WACT,gBAAAC,EAACC,KAAO,aAAAJ,EAA4B,CAAA,IAEtC,gBAAAG,EAACJ,KAAQ,aAAAC,EAA4B,CAAA;AAC9C,GAEAK,IAAeZ;"}