@hitachivantara/app-shell-ui 0.38.0

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 (142) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +21 -0
  3. package/dist/dts/index.d.ts +9 -0
  4. package/dist/esm/components/AppShell/AppShell.js +13 -0
  5. package/dist/esm/components/AppShell/AppShell.js.map +1 -0
  6. package/dist/esm/components/AppShellProvider/AppShellProvider.js +62 -0
  7. package/dist/esm/components/AppShellProvider/AppShellProvider.js.map +1 -0
  8. package/dist/esm/components/AppShellRoutes/AppShellRoutes.js +31 -0
  9. package/dist/esm/components/AppShellRoutes/AppShellRoutes.js.map +1 -0
  10. package/dist/esm/components/AppShellViewProvider/AppShellViewProvider.js +16 -0
  11. package/dist/esm/components/AppShellViewProvider/AppShellViewProvider.js.map +1 -0
  12. package/dist/esm/components/CustomHooksInitializer/CustomHooksInitializer.js +7 -0
  13. package/dist/esm/components/CustomHooksInitializer/CustomHooksInitializer.js.map +1 -0
  14. package/dist/esm/components/GlobalStyles/GlobalStyles.js +19 -0
  15. package/dist/esm/components/GlobalStyles/GlobalStyles.js.map +1 -0
  16. package/dist/esm/components/GlobalStyles/index.js +5 -0
  17. package/dist/esm/components/GlobalStyles/index.js.map +1 -0
  18. package/dist/esm/components/IconUiKit/IconUiKit.js +10 -0
  19. package/dist/esm/components/IconUiKit/IconUiKit.js.map +1 -0
  20. package/dist/esm/components/IconUiKit/index.js +7 -0
  21. package/dist/esm/components/IconUiKit/index.js.map +1 -0
  22. package/dist/esm/components/hoc/withClickAwayListener.js +15 -0
  23. package/dist/esm/components/hoc/withClickAwayListener.js.map +1 -0
  24. package/dist/esm/components/hoc/withGlobalProvider.js +34 -0
  25. package/dist/esm/components/hoc/withGlobalProvider.js.map +1 -0
  26. package/dist/esm/components/layout/Header/BrandLogo/BrandLogo.js +20 -0
  27. package/dist/esm/components/layout/Header/BrandLogo/BrandLogo.js.map +1 -0
  28. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/Hitachi.js +10 -0
  29. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/Hitachi.js.map +1 -0
  30. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/styles.js +28 -0
  31. package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/styles.js.map +1 -0
  32. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/Lumada.js +15 -0
  33. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/Lumada.js.map +1 -0
  34. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/styles.js +34 -0
  35. package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/styles.js.map +1 -0
  36. package/dist/esm/components/layout/Header/Header.js +38 -0
  37. package/dist/esm/components/layout/Header/Header.js.map +1 -0
  38. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/DynamicAction.js +22 -0
  39. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/DynamicAction.js.map +1 -0
  40. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/index.js +5 -0
  41. package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/index.js.map +1 -0
  42. package/dist/esm/components/layout/Header/HeaderActions/HeaderActions.js +31 -0
  43. package/dist/esm/components/layout/Header/HeaderActions/HeaderActions.js.map +1 -0
  44. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/AppSwitcherToggle.js +52 -0
  45. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/AppSwitcherToggle.js.map +1 -0
  46. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/index.js +5 -0
  47. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/index.js.map +1 -0
  48. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/styles.js +12 -0
  49. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/styles.js.map +1 -0
  50. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/ColorModeSwitcher.js +24 -0
  51. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/ColorModeSwitcher.js.map +1 -0
  52. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/index.js +5 -0
  53. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/index.js.map +1 -0
  54. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/HelpButton.js +24 -0
  55. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/HelpButton.js.map +1 -0
  56. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/index.js +5 -0
  57. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/index.js.map +1 -0
  58. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/InternalAction/InternalAction.js +34 -0
  59. package/dist/esm/components/layout/Header/HeaderActions/InternalActions/InternalAction/InternalAction.js.map +1 -0
  60. package/dist/esm/components/layout/Header/HeaderActions/index.js +5 -0
  61. package/dist/esm/components/layout/Header/HeaderActions/index.js.map +1 -0
  62. package/dist/esm/components/layout/Header/styles.js +22 -0
  63. package/dist/esm/components/layout/Header/styles.js.map +1 -0
  64. package/dist/esm/components/layout/Loading/Loading.js +9 -0
  65. package/dist/esm/components/layout/Loading/Loading.js.map +1 -0
  66. package/dist/esm/components/layout/Loading/styles.js +24 -0
  67. package/dist/esm/components/layout/Loading/styles.js.map +1 -0
  68. package/dist/esm/components/layout/Main/Main.js +30 -0
  69. package/dist/esm/components/layout/Main/Main.js.map +1 -0
  70. package/dist/esm/components/layout/Main/styles.js +19 -0
  71. package/dist/esm/components/layout/Main/styles.js.map +1 -0
  72. package/dist/esm/components/layout/VerticalNavigation/VerticalNavigation.js +56 -0
  73. package/dist/esm/components/layout/VerticalNavigation/VerticalNavigation.js.map +1 -0
  74. package/dist/esm/components/layout/VerticalNavigation/styles.js +21 -0
  75. package/dist/esm/components/layout/VerticalNavigation/styles.js.map +1 -0
  76. package/dist/esm/index.js +5 -0
  77. package/dist/esm/index.js.map +1 -0
  78. package/dist/esm/lib/hooks/useClearLocationState.js +19 -0
  79. package/dist/esm/lib/hooks/useClearLocationState.js.map +1 -0
  80. package/dist/esm/lib/hooks/useCustomEventListener.js +18 -0
  81. package/dist/esm/lib/hooks/useCustomEventListener.js.map +1 -0
  82. package/dist/esm/lib/hooks/useLocalStorage.js +24 -0
  83. package/dist/esm/lib/hooks/useLocalStorage.js.map +1 -0
  84. package/dist/esm/lib/hooks/useNavigationMenuItems.js +33 -0
  85. package/dist/esm/lib/hooks/useNavigationMenuItems.js.map +1 -0
  86. package/dist/esm/lib/hooks/useNotificationsEventListener.js +32 -0
  87. package/dist/esm/lib/hooks/useNotificationsEventListener.js.map +1 -0
  88. package/dist/esm/lib/hooks/useThemeEventListener.js +27 -0
  89. package/dist/esm/lib/hooks/useThemeEventListener.js.map +1 -0
  90. package/dist/esm/lib/i18n/index.js +29 -0
  91. package/dist/esm/lib/i18n/index.js.map +1 -0
  92. package/dist/esm/lib/i18n/localization/en.json.js +55 -0
  93. package/dist/esm/lib/i18n/localization/en.json.js.map +1 -0
  94. package/dist/esm/lib/i18n/localization/pt.json.js +55 -0
  95. package/dist/esm/lib/i18n/localization/pt.json.js.map +1 -0
  96. package/dist/esm/lib/utils/CombinedProviders.js +18 -0
  97. package/dist/esm/lib/utils/CombinedProviders.js.map +1 -0
  98. package/dist/esm/lib/utils/basePathUtils.js +5 -0
  99. package/dist/esm/lib/utils/basePathUtils.js.map +1 -0
  100. package/dist/esm/lib/utils/documentUtil.js +9 -0
  101. package/dist/esm/lib/utils/documentUtil.js.map +1 -0
  102. package/dist/esm/lib/utils/navigationUtil.js +41 -0
  103. package/dist/esm/lib/utils/navigationUtil.js.map +1 -0
  104. package/dist/esm/lib/utils/textUtil.js +5 -0
  105. package/dist/esm/lib/utils/textUtil.js.map +1 -0
  106. package/dist/esm/pages/ErrorPage/ErrorPage.js +30 -0
  107. package/dist/esm/pages/ErrorPage/ErrorPage.js.map +1 -0
  108. package/dist/esm/pages/ErrorPage/Footer/Footer.js +38 -0
  109. package/dist/esm/pages/ErrorPage/Footer/Footer.js.map +1 -0
  110. package/dist/esm/pages/ErrorPage/Footer/styles.js +23 -0
  111. package/dist/esm/pages/ErrorPage/Footer/styles.js.map +1 -0
  112. package/dist/esm/pages/ErrorPage/styles.js +40 -0
  113. package/dist/esm/pages/ErrorPage/styles.js.map +1 -0
  114. package/dist/esm/pages/GenericError/500.svg.js +5 -0
  115. package/dist/esm/pages/GenericError/500.svg.js.map +1 -0
  116. package/dist/esm/pages/GenericError/GenericError.js +17 -0
  117. package/dist/esm/pages/GenericError/GenericError.js.map +1 -0
  118. package/dist/esm/pages/LoadingPage/LoadingPage.js +15 -0
  119. package/dist/esm/pages/LoadingPage/LoadingPage.js.map +1 -0
  120. package/dist/esm/pages/LoadingPage/index.js +5 -0
  121. package/dist/esm/pages/LoadingPage/index.js.map +1 -0
  122. package/dist/esm/pages/LoadingPage/styles.js +16 -0
  123. package/dist/esm/pages/LoadingPage/styles.js.map +1 -0
  124. package/dist/esm/pages/NotFound/404.svg.js +5 -0
  125. package/dist/esm/pages/NotFound/404.svg.js.map +1 -0
  126. package/dist/esm/pages/NotFound/NotFound.js +14 -0
  127. package/dist/esm/pages/NotFound/NotFound.js.map +1 -0
  128. package/dist/esm/pages/NotFound/index.js +5 -0
  129. package/dist/esm/pages/NotFound/index.js.map +1 -0
  130. package/dist/esm/providers/BannerProvider.js +72 -0
  131. package/dist/esm/providers/BannerProvider.js.map +1 -0
  132. package/dist/esm/providers/LayoutProvider.js +25 -0
  133. package/dist/esm/providers/LayoutProvider.js.map +1 -0
  134. package/dist/esm/providers/NavigationProvider.js +56 -0
  135. package/dist/esm/providers/NavigationProvider.js.map +1 -0
  136. package/dist/esm/providers/hooks/useBannerContext.js +10 -0
  137. package/dist/esm/providers/hooks/useBannerContext.js.map +1 -0
  138. package/dist/esm/providers/hooks/useLayoutContext.js +10 -0
  139. package/dist/esm/providers/hooks/useLayoutContext.js.map +1 -0
  140. package/dist/esm/providers/hooks/useNavigationContext.js +10 -0
  141. package/dist/esm/providers/hooks/useNavigationContext.js.map +1 -0
  142. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"404.svg.js","sources":["../../../../src/pages/NotFound/404.svg"],"sourcesContent":["export default \"data:image/svg+xml;base64,PHN2ZyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iODQ1LjU4OSIgaGVpZ2h0PSI0OTguMjYiIHZpZXdCb3g9IjAgMCA4NDUuNTg5IDQ5OC4yNiI+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aCI+CiAgICAgIDxwYXRoIGlkPSJQYXRoXzg4NDc1IiBkYXRhLW5hbWU9IlBhdGggODg0NzUiIGQ9Ik0yOTYuODkxLDEuMTY4YzE2My4wOC01LjkzMSwyOTQuNTY0LDExLjMxMSwyOTMuNjc3LDM4LjUxUzQ1Ni43NjIsOTMuNzM0LDI5My42ODIsOTkuNjY1LS44ODIsODguMzU0LDAsNjEuMTU1LDEzMy44MTEsNy4xLDI5Ni44OTEsMS4xNjhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDExMi42ODcpIHJvdGF0ZSgtMTEpIiBmaWxsPSIjZmZmIi8+CiAgICA8L2NsaXBQYXRoPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgtMiI+CiAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGVfMTM1MTkiIGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNTE5IiB3aWR0aD0iMTA0Ny4wMDUiIGhlaWdodD0iNTI3LjE3NyIgZmlsbD0ibm9uZSIvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTQiPgogICAgICA8cGF0aCBpZD0iUGF0aF84ODQ3NyIgZGF0YS1uYW1lPSJQYXRoIDg4NDc3IiBkPSJNMTI0LjgxOS40OTFDMTkzLjM4Mi0yLDI0OC42Niw1LjI0NiwyNDguMjg4LDE2LjY4MlMxOTIuMDMyLDM5LjQwOCwxMjMuNDcsNDEuOS0uMzcxLDM3LjE0NiwwLDI1LjcxMSw1Ni4yNTcsMi45ODQsMTI0LjgxOS40OTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDQ3LjM3Nikgcm90YXRlKC0xMSkiIGZpbGw9IiNmZmYiLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aC01Ij4KICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZV8xMzUxOS0yIiBkYXRhLW5hbWU9IlJlY3RhbmdsZSAxMzUxOSIgd2lkdGg9IjQ0MC4xODQiIGhlaWdodD0iMjIxLjYzNiIgZmlsbD0ibm9uZSIvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTciPgogICAgICA8Y2lyY2xlIGlkPSJFbGxpcHNlXzEzMzciIGRhdGEtbmFtZT0iRWxsaXBzZSAxMzM3IiBjeD0iNjQuNyIgY3k9IjY0LjciIHI9IjY0LjciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ5LjMxNyAwKSIgZmlsbD0iI2VkZWRlZCIvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLTgiPgogICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlXzEzNTE5LTMiIGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDEzNTE5IiB3aWR0aD0iMTI2My42IiBoZWlnaHQ9IjU2NC40IiBmaWxsPSJub25lIi8+CiAgICA8L2NsaXBQYXRoPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgtOCI+CiAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGVfMTM1MTktMyIgZGF0YS1uYW1lPSJSZWN0YW5nbGUgMTM1MTkiIHdpZHRoPSIxMjYzLjYiIGhlaWdodD0iNTY0LjQiIGZpbGw9Im5vbmUiLz4KICAgIDwvY2xpcFBhdGg+CiAgPC9kZWZzPgogIDxnIGlkPSJfNDA0IiBkYXRhLW5hbWU9IjQwNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUxNC4zODkgLTI3Ny41NjMpIj4KICAgIDxnIGlkPSJFbGVtZW50cyI+CiAgICAgIDxnIGlkPSJQbHVzIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk5OSwgMC4wMzUsIC0wLjAzNSwgMC45OTksIDExOTAuNDUzLCAzNzYuMjE4KSI+CiAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgxMjMiIGRhdGEtbmFtZT0iUGF0aCA4ODEyMyIgZD0iTTAsMEgxNy43MjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgOC44NjIpIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmE4MDMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgxMjQiIGRhdGEtbmFtZT0iUGF0aCA4ODEyNCIgZD0iTTAsMEgxNy43MjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDguODYyIDE3LjcyNCkgcm90YXRlKC05MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmYTgwMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgICAgPC9nPgogICAgICA8ZyBpZD0iUGx1cy0yIiBkYXRhLW5hbWU9IlBsdXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgzNC41MDMgNzQzLjQpIj4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODEyMy0yIiBkYXRhLW5hbWU9IlBhdGggODgxMjMiIGQ9Ik02OTMuMjc2LTY0ODYuMjU1aDIzLjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02OTMuMjc2IDY0OTguMTU3KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZhODAzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MTI0LTIiIGRhdGEtbmFtZT0iUGF0aCA4ODEyNCIgZD0iTTAsMEgyMy44IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMS45MDIgMjMuODA0KSByb3RhdGUoLTkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZhODAzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgogICAgICA8L2c+CiAgICAgIDxnIGlkPSJFbGxpcHNlXzEzMjEiIGRhdGEtbmFtZT0iRWxsaXBzZSAxMzIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMzM5LjAwOSA3NDUuMDQ2KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjY2NjZWQwIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgIDxlbGxpcHNlIGN4PSIxMC40ODQiIGN5PSIxMC40ODQiIHJ4PSIxMC40ODQiIHJ5PSIxMC40ODQiIHN0cm9rZT0ibm9uZSIvPgogICAgICAgIDxlbGxpcHNlIGN4PSIxMC40ODQiIGN5PSIxMC40ODQiIHJ4PSI5LjQ4NCIgcnk9IjkuNDg0IiBmaWxsPSJub25lIi8+CiAgICAgIDwvZz4KICAgICAgPGcgaWQ9IkVsbGlwc2VfMTM0NiIgZGF0YS1uYW1lPSJFbGxpcHNlIDEzNDYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY0Mi45NjQgNTQwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjY2NjZWQwIiBzdHJva2Utd2lkdGg9IjEiPgogICAgICAgIDxlbGxpcHNlIGN4PSIxOC41MTgiIGN5PSIxOC41MTgiIHJ4PSIxOC41MTgiIHJ5PSIxOC41MTgiIHN0cm9rZT0ibm9uZSIvPgogICAgICAgIDxlbGxpcHNlIGN4PSIxOC41MTgiIGN5PSIxOC41MTgiIHJ4PSIxOC4wMTgiIHJ5PSIxOC4wMTgiIGZpbGw9Im5vbmUiLz4KICAgICAgPC9nPgogICAgICA8ZyBpZD0iUGx1cy0zIiBkYXRhLW5hbWU9IlBsdXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU4NC4zNjQgNzM4Ljk4MSkiPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MTIzLTMiIGRhdGEtbmFtZT0iUGF0aCA4ODEyMyIgZD0iTTY5My4yNzYtNjQ4Ni4yNTVoNy45NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY5My4yNzYgNjQ5MC4yMzUpIiBmaWxsPSJub25lIiBzdHJva2U9IiM5OTkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgxMjQtMyIgZGF0YS1uYW1lPSJQYXRoIDg4MTI0IiBkPSJNMCwwSDcuOTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuOTggNy45Nikgcm90YXRlKC05MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzk5OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgICAgPC9nPgogICAgICA8ZyBpZD0iUGx1cy00IiBkYXRhLW5hbWU9IlBsdXMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExNjMuMjk2IDU5Mi4zMjIpIj4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODEyMy00IiBkYXRhLW5hbWU9IlBhdGggODgxMjMiIGQ9Ik02OTMuMjc2LTY0ODYuMjU1aDcuOTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02OTMuMjc2IDY0OTAuMjM1KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTk5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MTI0LTQiIGRhdGEtbmFtZT0iUGF0aCA4ODEyNCIgZD0iTTAsMEg3Ljk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjk4IDcuOTYpIHJvdGF0ZSgtOTApIiBmaWxsPSJub25lIiBzdHJva2U9IiM5OTkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICAgIDwvZz4KICAgICAgPGcgaWQ9IlBsdXMtNSIgZGF0YS1uYW1lPSJQbHVzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODAuMDQgMzkwLjYzNikiPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MTIzLTUiIGRhdGEtbmFtZT0iUGF0aCA4ODEyMyIgZD0iTTY5My4yNzYtNjQ4Ni4yNTVoNy45NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY5My4yNzYgNjQ5MC4yMzUpIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgxMjQtNSIgZGF0YS1uYW1lPSJQYXRoIDg4MTI0IiBkPSJNMCwwSDcuOTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuOTggNy45Nikgcm90YXRlKC05MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9IlNQQUNFU0hJUF9zIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg5OSwgMC40MzgsIC0wLjQzOCwgMC44OTksIDEyMzEuOTIsIDU2NS42NDUpIj4KICAgICAgPHBhdGggaWQ9InNwYWNlc2hpcF8xXyIgZD0iTTU5LjU4MSwxMjIuMTcybC0xLjQ3My0yLjU1NmM0LjctMjYuODkxLTM0LjItNDkuMzQzLTU1LjE1My0zMS43ODJIMFY2OC43OTFhMS40NzYsMS40NzYsMCwwLDEsMS40NzctMS40NzdoMjAuOUwzMi4zNCw0NS4yOEE2OC44NDcsNjguODQ3LDAsMCwxLDYwLjgyLDEzLjg0M0w4My4yMzUuOWE2LjY2MSw2LjY2MSwwLDAsMSw5Ljk4Nyw1Ljc3M1YzMi41NDlhNjguODU5LDY4Ljg1OSwwLDAsMS0xMyw0MC4zNzhsLTE0LjEsMTkuNjUsMTAuNDQyLDE4LjA5YTEuNDc0LDEuNDc0LDAsMCwxLS41NDIsMi4wMTVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDMzLjQwOCkgcm90YXRlKC0yMSkiIGZpbGw9IiNlOGU4ZTgiLz4KICAgICAgPGcgaWQ9Ikdyb3VwXzMzMjA5IiBkYXRhLW5hbWU9Ikdyb3VwIDMzMjA5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMC45NjQgMTA1LjY5Nikgcm90YXRlKC0zOSkiPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MTIwIiBkYXRhLW5hbWU9IlBhdGggODgxMjAiIGQ9Ik0wLDMyLjMwOCwyMC4xLDAiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTY2LCAwLjI1OSwgLTAuMjU5LCAwLjk2NiwgMjUuNywgMCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzk5OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODEyMiIgZGF0YS1uYW1lPSJQYXRoIDg4MTIyIiBkPSJNMCwzMi4zMDgsMjAuMSwwIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk2NiwgMC4yNTksIC0wLjI1OSwgMC45NjYsIDIzLjgwNCwgMTcuMzM3KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTk5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MTIxIiBkYXRhLW5hbWU9IlBhdGggODgxMjEiIGQ9Ik0wLDMyLjMwOCwyMC4xLDAiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTY2LCAwLjI1OSwgLTAuMjU5LCAwLjk2NiwgOC4zNjIsIDEuODk2KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTk5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0iU1BBQ0VTSElQX0wiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMTIuMzQxKSI+CiAgICAgIDxnIGlkPSJNYXNrX0dyb3VwXzE4OTgyIiBkYXRhLW5hbWU9Ik1hc2sgR3JvdXAgMTg5ODIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY1Ni41MjggNTA0Ljc2Nykgcm90YXRlKC03KSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aCkiPgogICAgICAgIDxnIGlkPSJCR19UZXh0dXJlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTguNTEgLTMyOS45NjgpIj4KICAgICAgICAgIDxnIGlkPSJHcm91cF8zMzIxMiIgZGF0YS1uYW1lPSJHcm91cCAzMzIxMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxNjMuNzg4KSByb3RhdGUoLTkpIiBvcGFjaXR5PSIwLjIiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgtMikiPgogICAgICAgICAgICA8ZyBpZD0iR3JvdXBfMzMyMTEiIGRhdGEtbmFtZT0iR3JvdXAgMzMyMTEiPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICAgIDxwYXRoIGlkPSJQYXRoXzg4NDc2IiBkYXRhLW5hbWU9IlBhdGggODg0NzYiIGQ9Ik0zMTIuNTE0LDEuNGMxNzEuNy03LjQsMzEwLjE1OCwxNS4xNTIsMzA5LjI2LDUwLjM2NXMtMTQwLjgxMyw2OS43NTQtMzEyLjUxLDc3LjE1MVMtLjg5MywxMTMuNzY4LDAsNzguNTU2LDE0MC44MTcsOC44LDMxMi41MTQsMS40WiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTYsIC0wLjI5MiwgMC4yOTIsIDAuOTU2LCA2MzcuNjI5LCA1NzguNDk4KSIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iMC42NSIvPgogICAgICA8ZyBpZD0iTWFza19Hcm91cF8xODk4MyIgZGF0YS1uYW1lPSJNYXNrIEdyb3VwIDE4OTgzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3ODIuMDM2IDQ3OS45ODgpIHJvdGF0ZSgtNykiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgtNCkiPgogICAgICAgIDxnIGlkPSJCR19UZXh0dXJlLTIiIGRhdGEtbmFtZT0iQkdfVGV4dHVyZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI0LjU5OSAtMTM4LjcyNikiPgogICAgICAgICAgPGcgaWQ9Ikdyb3VwXzMzMjEyLTIiIGRhdGEtbmFtZT0iR3JvdXAgMzMyMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgNjguODYpIHJvdGF0ZSgtOSkiIG9wYWNpdHk9IjAuMiIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aC01KSI+CiAgICAgICAgICAgIDxnIGlkPSJHcm91cF8zMzIxMS0yIiBkYXRhLW5hbWU9Ikdyb3VwIDMzMjExIj4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgPC9nPgogICAgICA8cGF0aCBpZD0iUGF0aF84ODQ3OCIgZGF0YS1uYW1lPSJQYXRoIDg4NDc4IiBkPSJNMTMxLjM4OC41OTFjNzIuMTg1LTMuMTEsMTMwLjQsNi4zNywxMzAuMDIsMjEuMTc1UzIwMi4yMDcsNTEuMDkxLDEzMC4wMjEsNTQuMi0uMzc1LDQ3LjgzLDAsMzMuMDI2LDU5LjIsMy43LDEzMS4zODguNTkxWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NTYsIC0wLjI5MiwgMC4yOTIsIDAuOTU2LCA3NzQuMDkxLCA1MTAuOTg1KSIgZmlsbD0iI2ZmZiIgb3BhY2l0eT0iMC42NSIvPgogICAgPC9nPgogICAgPGcgaWQ9IlBMQU5FVF9zIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjY0MywgLTAuNzY2LCAwLjc2NiwgMC42NDMsIDEyNzEuMTU1LCAzMTUuOTAxKSI+CiAgICAgIDxjaXJjbGUgaWQ9IkVsbGlwc2VfMTMzNy0yIiBkYXRhLW5hbWU9IkVsbGlwc2UgMTMzNyIgY3g9IjE3Ljc1NCIgY3k9IjE3Ljc1NCIgcj0iMTcuNzU0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy41MzIgMCkiIGZpbGw9IiNlOGU4ZTgiLz4KICAgICAgPHBhdGggaWQ9IlBhdGhfODgyODciIGRhdGEtbmFtZT0iUGF0aCA4ODI4NyIgZD0iTTE1LjIsMFMtNi45MTEsMS4yNDMsMi4yLDUuODg1czM2Ljg2LDExLjM0OSw1My4zNDQsOC42MzYtNy4wMTItNy45NzgtNy4wMTItNy45NzgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuNDA3IDMuMDA0KSByb3RhdGUoMTMpIiBmaWxsPSJub25lIiBzdHJva2U9IiM5OTkiIHN0cm9rZS13aWR0aD0iMSIvPgogICAgPC9nPgogICAgPGcgaWQ9IlBMQU5FVF9MIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk5LCAtMC4xMzksIDAuMTM5LCAwLjk5LCA1MDcuMTQ0LCAzNDIuNTE1KSI+CiAgICAgIDxnIGlkPSJHcm91cF8zMzMwNCIgZGF0YS1uYW1lPSJHcm91cCAzMzMwNCI+CiAgICAgICAgPGcgaWQ9Ik1hc2tfR3JvdXBfMTg5ODEiIGRhdGEtbmFtZT0iTWFzayBHcm91cCAxODk4MSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aC03KSI+CiAgICAgICAgICA8ZyBpZD0iQkdfVGV4dHVyZS0zIiBkYXRhLW5hbWU9IkJHX1RleHR1cmUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03My4zNjkgLTM2Ny42MTcpIHJvdGF0ZSgxMikiPgogICAgICAgICAgICA8ZyBpZD0iR3JvdXBfMzMyMTItMyIgZGF0YS1uYW1lPSJHcm91cCAzMzIxMiIgb3BhY2l0eT0iMC4yIiBjbGlwLXBhdGg9InVybCgjY2xpcC1wYXRoLTgpIj4KICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXBfMzMyMTEtMyIgZGF0YS1uYW1lPSJHcm91cCAzMzIxMSI+CiAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4Mjg3LTIiIGRhdGEtbmFtZT0iUGF0aCA4ODI4NyIgZD0iTTU1LjcxNiwwUy0yNS4zMzUsNC4yODcsOC4wNzcsMjAuM3MxMzUuMTI5LDM5LjE1NiwxOTUuNTYsMjkuOC0yNS43MDYtMjcuNTI0LTI1LjcwNi0yNy41MjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLjc5IDEyLjA4Mykgcm90YXRlKDEzKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOTk5IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9IkRPR19TUEFDRSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NzgsIC0wLjIwOCwgMC4yMDgsIDAuOTc4LCA3OTcuOTE3LCA0MzUuMjY3KSI+CiAgICAgIDxnIGlkPSJHcm91cF8zMzE4NSIgZGF0YS1uYW1lPSJHcm91cCAzMzE4NSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NzgsIC0wLjIwOCwgMC4yMDgsIDAuOTc4LCAwLCA0Mi44ODcpIj4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI3NyIgZGF0YS1uYW1lPSJQYXRoIDg4Mjc3IiBkPSJNMTkuNSw1LjAxN1MzLjI0Ny03LjEuNyw2LjMzMSwzLjE0LDI2Ljc0NCw1LjQ1OCwyOS40M3MxMy4zNDYsMTEuODM1LDIyLjYsMi43MjljMS4yODEtNS4wOTItLjM3Mi0xMC45NjctMi4yNjQtMTUuN0E0Ny42MjksNDcuNjI5LDAsMCwwLDE5LjUsNS4wMTdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0Ny41MDMgMjY0LjQ1OSkgcm90YXRlKDUpIiBmaWxsPSIjZmZhODAzIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI3NSIgZGF0YS1uYW1lPSJQYXRoIDg4Mjc1IiBkPSJNMTAuNzcyLDEwOC41MTZjMTAuOTA4LDMxLjEzLDEzLjAzOSwyOC4yMTUsMTkuODMzLDQzLjQ5czIuNCwyNy4zMjIsNC41NDIsNDAuMzI0LDkuMTcyLDEzLjkxNCw5LjE3MiwxMy45MTQsMjMuMTQ0LDEuNjU4LDI1LjM0OS00LjE2NCwxLjE3Ni05Ljg5NCwwLTE1LjQxMy0zLjUtMTMuMywyLjU0Ni0xOC4wMSwxNy4wMDgtMy4yLDI2LjItMTAuNDQ5LDkuNDEyLTEzLjQ5MywxNC41Ny0xMy42ODgsOS43NTYsNS41NDYsMTYuNDc5LDcuNzM1LDE1LjkxOCwzLjIzNiwyMS43LDAsMy45NzctMTUuNjM1LDAtMTkuMDM2LTcuMTUzLTMuOS0xMy4zMTQtOC44NzItOC4yOC0xNC4yNjEtOC40OTEtMjYuOTMzLS42NDItMTIuMDU1LTEuNzctMjUuMzEzUzg3LjM0OCwwLDg3LjM0OCwwcy04LjU4LDEwLjA1Ny0zMC45MzksMTUuN1MwLDcuNzcxLDAsNy43NzFaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk5OCwgMC4wNywgLTAuMDcsIDAuOTk4LCA1MS44MSwgMTM1Ljc4OCkiIGZpbGw9IiNmZmE4MDMiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4Mjc4IiBkYXRhLW5hbWU9IlBhdGggODgyNzgiIGQ9Ik0xLjE1NCwxMC41MVMtNC44ODEsNDMsMTAuNjU1LDQ1LjQ0M3MyNi45NDItLjQwOCwyNS45MzMtOS40Ni0yLjM3Ni0xNy4zNjctMi4zNzYtMTcuMzY3LTYuMTI0LTkuMzI4LTEyLjMxLTcuMTMtOS40MzMsMS41NzMtOS45ODEsMFM3Ljg1NS0uNCw0LjQzOC4wMTIsMS4xNTQsMTAuNTEsMS4xNTQsMTAuNTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3My4wMzYgMjk5LjgzOCkiIGZpbGw9IiNmMGYwZjAiLz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI4MCIgZGF0YS1uYW1lPSJQYXRoIDg4MjgwIiBkPSJNMTYuMDQ2LDBhMjIuNzQzLDIyLjc0MywwLDAsMCwxMC40OCwxOC4xODhDMzcuMjc5LDI1LjM4OCwzNy4yLDI4LjUsMzcuMiwyOC41czMuNjE4LDE1LjQ2Ny03LjMyMywxNi4xMDhTMTIuMSw0My4xLDQuMzkxLDM3LjE2MSwxLjEsMzEuODY5LDIuOSwyNy4xMjZzOS4zNC4zMzksOC42NjctOC45MzhTMTYuMDQ2LDAsMTYuMDQ2LDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNTguMzc4IDI1NC42NjgpIiBmaWxsPSIjZjBmMGYwIi8+CiAgICAgICAgPGcgaWQ9Ikdyb3VwXzMzMTg0IiBkYXRhLW5hbWU9Ikdyb3VwIDMzMTg0IiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAxLCAxOTAuODY0LCAyODkuMDk2KSI+CiAgICAgICAgICA8bGluZSBpZD0iTGluZV8xODU2MCIgZGF0YS1uYW1lPSJMaW5lIDE4NTYwIiB5Mj0iNy43MjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgIDwvZz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI3OSIgZGF0YS1uYW1lPSJQYXRoIDg4Mjc5IiBkPSJNOS43NjYsMTA4LjUxNmMxMC45MDgsMzEuMTMsMTMuMDM5LDI4LjIxNSwxOS44MzMsNDMuNDlzMi40LDI3LjMyMiw0LjU0Miw0MC4zMjQsOS4xNzIsMTMuOTE0LDkuMTcyLDEzLjkxNCwyMy4xNDQsMS42NTgsMjUuMzQ5LTQuMTY0LDEuMTc2LTkuODk0LDAtMTUuNDEzLTMuNS0xMy4zLDIuNTQ2LTE4LjAxLDE3LjAwOC0zLjIsMjYuMi0xMC40NDksOS40MTItMTMuNDkzLDE0LjU3LTEzLjY4OCw5Ljc1Niw1LjU0NiwxNi40NzksNy43MzUsMTUuOTE4LDMuMjM2LDIxLjcsMCwzLjk3Ny0xNS42MzUsMC0xOS4wMzYtNy4xNTMtMy45LTEzLjMxNC04Ljg3Mi04LjI4LTE0LjI2MS04LjQ5MS0yNi45MzMtLjY0Mi0xMi4wNTUtMS43Ny0yNS4zMTNTODYuMzQyLDAsODYuMzQyLDAsNzcuOTksMTAuMDg5LDU1LjYzMSwxNS43MzEsMCwxMS4yNzMsMCwxMS4yNzNaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk5OCwgMC4wNywgLTAuMDcsIDAuOTk4LCA1Mi44MTMsIDEzNS44NTgpIiBmaWxsPSJub25lIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI3NCIgZGF0YS1uYW1lPSJQYXRoIDg4Mjc0IiBkPSJNNDAuNzI3LDBDMjQuMDg2LDQuOTc0LDE0LjkwOCwzMy44NzIsNi44NDgsNTMuODIzQTk1LjkyOCw5NS45MjgsMCwwLDAsLjA3Niw5Mi4yM3MuMzA5LDcuMTA3LDcuMTA2LDcuMTA3SDIyLjE3czcuNzkzLS4yMzEsNy42NjItNy4xMDctLjQtOC4xNTksMC0xMS40MzYsNC4wMzMtMTEuMDA2LDQuMDMzLTExLjAwNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTMuNTkzIDE1Mi43MzMpIHJvdGF0ZSgtMTUpIiBmaWxsPSIjZmZhODAzIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8ZyBpZD0iR3JvdXBfMzMxODMiIGRhdGEtbmFtZT0iR3JvdXAgMzMxODMiIHRyYW5zZm9ybT0ibWF0cml4KDEsIDAsIDAsIDEsIDg3LjUwMywgMzM3LjUyNykiPgogICAgICAgICAgPGxpbmUgaWQ9IkxpbmVfMTg1NjAtMiIgZGF0YS1uYW1lPSJMaW5lIDE4NTYwIiB5Mj0iNy43MjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgICAgPGxpbmUgaWQ9IkxpbmVfMTg1NjIiIGRhdGEtbmFtZT0iTGluZSAxODU2MiIgeTI9IjcuNzIzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5LjkyOSAwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNDE0MTQxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MjczIiBkYXRhLW5hbWU9IlBhdGggODgyNzMiIGQ9Ik0zLjA4MSw2My41NDdzMy42MjgsNy43MjksNC4wMzMsMTEuMDA3LjEzMiw0LjU2MSwwLDExLjQzNlMxNC43NzYsOTMuMSwxNC43NzYsOTMuMXM5LjQyOS0uMjA2LDE0Ljk4OCwwLDYuMjI2LTMuMTU0LDcuMTA2LTcuMTA3UzM1LjE0LDY4LjQsMzMuNyw1Mi45ODUsMzAuMDA4LDMxLjYyNCwyNC4wNCwxOC41MzIsMTguMzk0LDMuMjMxLDEyLjM1OC4yMTFDOC42NjItMS42MzksMy4wNDEsOS4zLDAsOC4wNjQiIHRyYW5zZm9ybT0ibWF0cml4KDAuODkxLCAtMC40NTQsIDAuNDU0LCAwLjg5MSwgMTIyLjg0OSwgMTMyLjcyNCkiIGZpbGw9IiNmZmE4MDMiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MjgxIiBkYXRhLW5hbWU9IlBhdGggODgyODEiIGQ9Ik0uODMzLDEyYy0yLjU4MywzLjQ2MywxLjU3Niw5LjE1NCwyLjU4NiwxMy44NTNTNS42MiwzNy4wNjYsMTIuMywzNS44YTEzMi4yNjQsMTMyLjI2NCwwLDAsMCwxNS44ODUtNC41NjFzNi45NjUtLjYxNiw0Ljc3My0xMC4wMjRTMjguMTg1LDMuOTYyLDI4LjE4NSwzLjk2MiwyNC4zMS0zLjE4MywxOS42NjUsMS43MTcsMTguMjA5LDEwLjQ3LDEzLjc1MSwxMiwzLjQxNiw4LjUzMi44MzMsMTJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNTcuOTQyIDE3Ni41MzEpIHJvdGF0ZSgtMTEpIiBmaWxsPSIjZjBmMGYwIi8+CiAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgyODIiIGRhdGEtbmFtZT0iUGF0aCA4ODI4MiIgZD0iTTMxLjk0NCwxMS43NzFjMi41MzUsMy40LTEuNTQ2LDguOTg0LTIuNTM5LDEzLjU5NHMtMi4xNiwxMS4wMDktOC43MTUsOS43NjNBMTI5LjczNSwxMjkuNzM1LDAsMCwxLDUuMSwzMC42NTNzLTYuODM2LS42MDUtNC42ODQtOS44MzdTNS4xLDMuODg5LDUuMSwzLjg4OXMzLjgtNy4wMTIsOC4zNi0yLjIsMS40MjksOC41ODksNS44LDEwLjA4N1MyOS40MDksOC4zNzMsMzEuOTQ0LDExLjc3MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2Ljk0NyAyMjMuMjE3KSByb3RhdGUoLTMxKSIgZmlsbD0iI2YwZjBmMCIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4MjgzIiBkYXRhLW5hbWU9IlBhdGggODgyODMiIGQ9Ik00MC43MjcsMEMyNC4wODYsNC45NzQsMTQuOTA4LDMzLjg3Miw2Ljg0OCw1My44MjNBOTUuOTI4LDk1LjkyOCwwLDAsMCwuMDc2LDkyLjIzcy4zMDksNy4xMDcsNy4xMDYsNy4xMDdIMjIuMTdzNy43OTMtLjIzMSw3LjY2Mi03LjEwNy0uNC04LjE1OSwwLTExLjQzNiw0LjAzMy0xMS4wMDYsNC4wMzMtMTEuMDA2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy41OTMgMTUyLjczMykgcm90YXRlKC0xNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4Mjg0IiBkYXRhLW5hbWU9IlBhdGggODgyODQiIGQ9Ik0zLjA4MSw2Mi42MTJzMy42MjgsNy43MjksNC4wMzMsMTEuMDA3LjEzMiw0LjU2MSwwLDExLjQzNiw3LjY2Miw3LjEwNyw3LjY2Miw3LjEwNyw5LjQyOS0uMjA2LDE0Ljk4OCwwLDYuMjI2LTMuMTU0LDcuMTA2LTcuMTA3LTEuMjY0LTE3LjA0MS0yLjctMzIuNDU3LTMuNjkxLTIxLjM2MS05LjY1OS0zNC40NTNTMTYuMzI2LDMuMjQ5LDEwLjI5LjIyOUM2LjU5NC0xLjYyMSwzLjA0MSw4LjM2NCwwLDcuMTI5IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg5MSwgLTAuNDU0LCAwLjQ1NCwgMC44OTEsIDEyMy4yNzMsIDEzMy41NTcpIiBmaWxsPSJub25lIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8ZyBpZD0iR3JvdXBfMzMxODAiIGRhdGEtbmFtZT0iR3JvdXAgMzMxODAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4OS41NDkgMjAxLjY0OSkgcm90YXRlKDE1NSkiPgogICAgICAgICAgPGxpbmUgaWQ9IkxpbmVfMTg1NjAtMyIgZGF0YS1uYW1lPSJMaW5lIDE4NTYwIiB5MT0iNy43MjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgICAgPGxpbmUgaWQ9IkxpbmVfMTg1NjItMiIgZGF0YS1uYW1lPSJMaW5lIDE4NTYyIiB5MT0iNy43MjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuOTI5IDApIiBmaWxsPSJub25lIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9Ikdyb3VwXzMzMTgyIiBkYXRhLW5hbWU9Ikdyb3VwIDMzMTgyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0Ni45MDUgMjM3LjAwNCkgcm90YXRlKC0xNSkiPgogICAgICAgICAgPGxpbmUgaWQ9IkxpbmVfMTg1NjAtNCIgZGF0YS1uYW1lPSJMaW5lIDE4NTYwIiB5Mj0iNy43MjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgICAgPGxpbmUgaWQ9IkxpbmVfMTg1NjItMyIgZGF0YS1uYW1lPSJMaW5lIDE4NTYyIiB5Mj0iNy43MjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuOTI5IDApIiBmaWxsPSJub25lIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgyODUiIGRhdGEtbmFtZT0iUGF0aCA4ODI4NSIgZD0iTS4yNTQsMTEuNTYyQTQ5LjIwOCw0OS4yMDgsMCwwLDAsMTIuMTM3LDQ4LjYxQzI3LjA1NSw2NS40NCwyNS44MjgsNzkuMzIsMzEuNTQsOTguMzI5czIyLjUsNDcuMzA5LDM1LjQsNDcuNjU1LDIyLjEyNC0xMi45ODksMjYtMjIuMiwxMS44NDgtMjMuMDgxLDQuNTUtMzYuODVTNzguNDExLDU1LjEyNiw4MS40NjYsNDIuNTI2LDc5LjksNS43ODMsNTguNjE0LjkzOS4yNTQsMTEuNTYyLjI1NCwxMS41NjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MS4yMjYgMTM2LjAzNikiIGZpbGw9IiNmMGYwZjAiLz4KICAgICAgICA8ZyBpZD0iRE9HIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk3OCwgMC4yMDgsIC0wLjIwOCwgMC45NzgsIDQ0LjA4OCwgMjEuNzMxKSI+CiAgICAgICAgICA8ZyBpZD0iR3JvdXBfMzMxNjYiIGRhdGEtbmFtZT0iR3JvdXAgMzMxNjYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI0MCIgZGF0YS1uYW1lPSJQYXRoIDg4MjQwIiBkPSJNMzEuODgyLDM5LjUxN2wyOS4xLTEzLjQyMlM2NC4wNzkuNjIzLDcwLjc4Ny4wMjUsODcuNzU3LDkuNTQsODguNTQ0LDMxLjY4M2MwLDAsMTAuMzY2LDMuOTE0LDE4LjcsMTUuOTg4czUuNDUxLDMyLjY3OS0zLjg2LDQ3LjMzOVM3Ni4yLDExNS42MjksNzYuMiwxMTUuNjI5cy0yMi4xMjMsNy4wNzUtNDAuNzg4LTMuMTkzLTIzLjI4Mi0yNC42NjEtMTguMS00Mi40N2MwLDAtMjIuMzkxLTMwLjY1MS0xNi4yNTQtMzYuOTg4UzI4LjgxNywzOC43NywzMS44ODIsMzkuNTE3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4zMTUgMCkiIGZpbGw9IiNmMGYwZjAiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICAgICAgPHBhdGggaWQ9IlN1YnRyYWN0aW9uXzEzNiIgZGF0YS1uYW1lPSJTdWJ0cmFjdGlvbiAxMzYiIGQ9Ik01OS40NTEsMTE4aDBjLjEzNC0uMjE4LjIzMS0uMzguMzMyLS41NjFhMzMuMTY2LDMzLjE2NiwwLDAsMCw0LjQzNi4zMWwuMzcyLDBDNjIuODYzLDExNy45LDYxLjEzNSwxMTcuOTg3LDU5LjQ1MSwxMThabTEzLjk0My0xLjYzNWgwYzEuMDcyLS4zMjIsMi4yMDctLjcxNiwzLjM3My0xLjE3MmE4Ny44MjYsODcuODI2LDAsMCwwLDE0LjUxNS03Ljc0OGMuNDI3LS4yNzEuODQ2LS41NDksMS4yNDYtLjgyNUE2My44MSw2My44MSwwLDAsMSw4MS4zLDExMy40ODNhNDkuOSw0OS45LDAsMCwxLTUuMDkyLDIuMTQ0bC0uMDA4LDAtLjAwOSwwYy0uMTEyLjAzNS0xLjE0Mi4zNTMtMi44LjczNVptLTUxLjMzLTE0LjU0NmgwYTI5Ljk3NCwyOS45NzQsMCwwLDEtNC4yOTQtNi45NjQsMjguOTU5LDI4Ljk1OSwwLDAsMS0yLjEzNS03LjY0NSwzNS4yODgsMzUuMjg4LDAsMCwxLS4xMDYtOC4zLDQ5Ljk0NSw0OS45NDUsMCwwLDEsMS43OS04Ljk0MWwwLS4wMDVjLS4yMzMtLjMyMS01Ljc2MS03Ljk1Mi0xMC40MjUtMTYuMTEyQTcxLjMxNyw3MS4zMTcsMCwwLDEsMS4wMTQsNDEuNDMxYy0xLjM2OC00LjE2NC0xLjM1MS03LjAwOC4wNDktOC40NTMsMS4xNzItMS4yMTIsMy4wMDktMS44MjYsNS40NTktMS44MjYsNi40NzcsMCwxNS43NjYsNC4xOCwyMS4zMTYsNi42NzdsLjAwOCwwLC4wMjUuMDExYTM2LjAxOCwzNi4wMTgsMCwwLDAsNC4wMDgsMS42NzNsMjkuMS0xMy40MjJ2LS4wMDhhMTE5Ljk4MywxMTkuOTgzLDAsMCwxLDIuMzg4LTEyLjgsNDUuMyw0NS4zLDAsMCwxLDMuMDU3LTguOTMzQzY3Ljc4NywxLjYxNyw2OS4yNTUuMTYxLDcwLjc4Ni4wMjVjLjE2OS0uMDE3LjM2LS4wMjUuNTY5LS4wMjVBOS43MTksOS43MTksMCwwLDEsNzYuNzYsMS45MjNhMjAuNjc2LDIwLjY3NiwwLDAsMSw1LjQxNSw1Ljg0NWMyLjY2NCw0LjE0NCw1LjkzMSwxMS42NTgsNi4zNjcsMjMuOTE1YTMxLjAyMywzMS4wMjMsMCwwLDEsNC44NywyLjU3NSw0Ny42Niw0Ny42NiwwLDAsMSwxMC41Miw5LjEyNEEyMC42NDEsMjAuNjQxLDAsMCwwLDkyLjQsNTQuMzQ3YTgyLjYxNCw4Mi42MTQsMCwwLDEtOS44MiwxMy44OTIsNjIuMDI3LDYyLjAyNywwLDAsMS00Ljg4LDUuMDM5bC0zLjk0Miw3LjY3OGExMC44NSwxMC44NSwwLDAsMC01LjgzNi0yLjI2NUE1LjIsNS4yLDAsMCwwLDYzLjYsODAuOTU2Yy0uODY3LDEuMTYzLTIuNTQ3LDIuMTg5LTQuOTk0LDMuMDVhNDMuMzA4LDQzLjMwOCwwLDAsMS03LjI4LDEuNzM4LDg3LjE4Miw4Ny4xODIsMCwwLDEtOS40MjMuOTYzLDIwLjU3NywyMC41NzcsMCwwLDAtMTkuODM3LDE1LjExM1pNNDcuNCw2MC4wNDRjLTEuMjQ5LDAtMi40MzYuMzMyLTIuNjQ4LjczOS0uMy41NzItMS4yNzkuODA4LTIuOTA3LDEuMi0uNTQxLjEzLTEuMTU1LjI3Ny0xLjgzNy40NTgtMi4yNjIuNi0yLjM0OSwxLjUxMS0yLjQ4MSwyLjg4NC0uMDI3LjI4NC0uMDU2LjU3OC0uMS45YS45ODYuOTg2LDAsMCwwLC4xODMuODI2LDEuNzUsMS43NSwwLDAsMCwxLjM2My40MjgsNi42NTMsNi42NTMsMCwwLDAsMS4zODUtLjE2OCw5MC4yLDkwLjIsMCwwLDEsOC44NjgtMi4zODMsMS44NTIsMS44NTIsMCwwLDAsMS42MTUtMS4wMzdjLjMzNi0uODg0LS4yNjMtMi4xODctMS4wMDUtMy4wODZBMy4yMTYsMy4yMTYsMCwwLDAsNDcuNCw2MC4wNDRaTTguOSwzNi40ODJjLTEuNjU1LDAtMi42MDYuNS0yLjgyNywxLjUtLjUxNywyLjMyNywxLjE0Miw3LjA3OCw0LjIyNSwxMi4xLDMuMjc3LDUuMzQxLDcuMjUsOS41NDMsMTAuNjI4LDExLjI0bC4wMDctLjAxYTQ2LjIxOSw0Ni4yMTksMCwwLDAsMi42NDUtNC40YzIuMDQ1LTMuOTM4LDEuOTkxLTUuNzI5LDEuNTg2LTYuNTM4YTEuNzUxLDEuNzUxLDAsMCwxLC40ODctMi40NjdjLjMtLjI3Ny41NzctLjUzOS41NzMtLjg5cy0uMjgzLS43NTQtLjg3NS0xLjI3NGEyLjgsMi44LDAsMCwxLTEuMTc3LTIuMjE2LDIuNjUsMi42NSwwLDAsMSwxLjEwNi0xLjc5MmwtLjAyOS0uMDE0Yy0uNjkzLS4zMjUtMy4xOS0xLjQ3NC02LjIzMS0yLjYzNS0zLjExNy0xLjE5LTcuNC0yLjYxLTEwLjExNi0yLjYxWk02Ny4zOTMsNDYuNTY5Yy0uMzcxLDAtMSwuNTYxLTEuNTczLDEuNC0uNjMzLjkyOC0xLjE5MywyLjIxOS0uODY0LDMuMDU4LjM0OS44ODcsMS4yNDYsMi4zODgsMi40LDIuMzg4YTEuOTgyLDEuOTgyLDAsMCwwLDEuNS0uOTI0LDkwLjM0OSw5MC4zNDksMCwwLDEsNi4zODQtNi42Yy4wMTQtLjAxNSwxLjM2Mi0xLjQ4MywxLjEzNC0yLjQzM2EuOTQ4Ljk0OCwwLDAsMC0uNjYzLS42NTljLS4zLS4xMDgtLjU2LS4yMjMtLjgxNS0uMzM0bC0uMDIxLS4wMDlhNC4wNDYsNC4wNDYsMCwwLDAtMS41NjYtLjQ1OSwzLjEzOSwzLjEzOSwwLDAsMC0yLjE2LDEuMjMxYy0uNDkyLjUxLS45MTcuOTc0LTEuMjkyLDEuMzg0LTEuMTE5LDEuMjIyLTEuNzk1LDEuOTYtMi40MzIsMS45NmgtLjAzNFptMy43NjItMjBhMS43NjEsMS43NjEsMCwwLDEsMS41MjQsMS4wNjhjLjU1OC45NTEsMi4xNjksMS42MzYsNC43ODYsMi4wMzhhNDAuMTgzLDQwLjE4MywwLDAsMCw1LjcxOC4zODNjLjM3LDAsLjY5NCwwLC45NjMtLjAxMmguMDIxYy40MTgtMy43NTQtLjk0Mi05LjM3NS0zLjYzNi0xNS4wMzRDNzgsOS42OTEsNzQuOTEzLDUuNzEyLDcyLjY3OSw0Ljg3OGExLjY2NiwxLjY2NiwwLDAsMC0uNTgzLS4xMDljLS45ODgsMC0xLjk1Ni45Ni0yLjg3NywyLjg1M0EzMy4yNjMsMzMuMjYzLDAsMCwwLDY3LjExLDEzLjljLTEuMDY3LDQuMjc3LTEuNjcxLDguNjM2LTEuNzM3LDkuMTE5bDAsLjAxMi4wMDcsMGEzLjA1NCwzLjA1NCwwLDAsMSwxLjA2NS0uMmMuODYzLDAsMS45NTQuNDI0LDIuMjUxLDIuNDQ2LjIsMS4zNTkuNjIyLDEuNTQyLDEuMDA4LDEuNTQyYTIuNzMzLDIuNzMzLDAsMCwwLC42MjQtLjEwNmwuMDA5LDAsLjAwOSwwLC4wNDMtLjAxMUEzLjExNywzLjExNywwLDAsMSw3MS4xNTUsMjYuNTczWm00Ljc2OCw2OS42Yy0yLjMyNCwwLTQuMDQ1LS41My00LjI4My0xLjMxOS0uMTQ1LS40NzkuMjQ2LTEuMDQ0LDEuMTMtMS42MzNhNS43MzMsNS43MzMsMCwwLDAsMi4yNzYtMi45NzQsOC45NjksOC45NjksMCwwLDAsLjQtMy40NzMsMTQuNzQ3LDE0Ljc0NywwLDAsMC0uODc2LTQuMDg1LDEzLjE0MywxMy4xNDMsMCwwLDAsNy4xMDgsMi41MjNBNy41MDcsNy41MDcsMCwwLDAsODUuOSw4My45NDksNi4zNTEsNi4zNTEsMCwwLDAsODcuMjkxLDgyLjdsMC0uMDA1YS4wMDcuMDA3LDAsMCwxLDAsLjAwN3YuMDFhMjEuMDMyLDIxLjAzMiwwLDAsMS0uMjY0LDQuMzc2Yy0uMzczLDIuMi0xLjMsNS4yLTMuNTksNi45ODJDODEuNDQ2LDk1LjYxOSw3OC4yNDksOTYuMTczLDc1LjkyMyw5Ni4xNzNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjMxNyAwKSIgZmlsbD0iI2ZmYTgwMyIvPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI0MSIgZGF0YS1uYW1lPSJQYXRoIDg4MjQxIiBkPSJNMTguOCwyNS4yOEMxOS43MTYsMTcsMTIuMDA3LDEuODY0LDcuMzA4LjEwOVMwLDE4LjI2MiwwLDE4LjI2MnMyLjgxNi0xLjIsMy4zMjMsMi4yNDIsMi4zNzYtLjM3LDMuOTg1LDIuMzY4UzE4LjgsMjUuMjgsMTguOCwyNS4yOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY1LjY4OSA0Ljc2OSkiIGZpbGw9IiNmYWZhZmEiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICAgICAgPHBhdGggaWQ9IlBhdGhfODgyNDIiIGRhdGEtbmFtZT0iUGF0aCA4ODI0MiIgZD0iTS4wNzUsMjUuMjgxQy0uODQ0LDE3LDYuODY1LDEuODY0LDExLjU2NC4xMDlzNy4zMDgsMTguMTUzLDcuMzA4LDE4LjE1My0yLjgxNi0xLjItMy4zMjMsMi4yNDItMi4zNzYtLjM2OS0zLjk4NSwyLjM2OFMuMDc1LDI1LjI4MS4wNzUsMjUuMjgxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCA0Ny42MjIpIHJvdGF0ZSgtNTcpIiBmaWxsPSIjZmFmYWZhIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CiAgICAgICAgICAgIDxsaW5lIGlkPSJMaW5lXzE4NTU5IiBkYXRhLW5hbWU9IkxpbmUgMTg1NTkiIHkxPSIzLjY5NyIgeDI9IjUuNDE3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4Mi45OTkgOTUuOTc2KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNDE0MTQxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMi41Ii8+CiAgICAgICAgICAgIDxnIGlkPSJFbGxpcHNlXzEzMzIiIGRhdGEtbmFtZT0iRWxsaXBzZSAxMzMyIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjU4OCwgLTAuODA5LCAwLjgwOSwgMC41ODgsIDcwLjk2NCwgNTYuMjU3KSIgZmlsbD0iI2YwZjBmMCIgc3Ryb2tlPSIjNDE0MTQxIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICAgIDxlbGxpcHNlIGN4PSI2Ljg3OCIgY3k9IjQuOTkxIiByeD0iNi44NzgiIHJ5PSI0Ljk5MSIgc3Ryb2tlPSJub25lIi8+CiAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9IjYuODc4IiBjeT0iNC45OTEiIHJ4PSI1Ljg3OCIgcnk9IjMuOTkxIiBmaWxsPSJub25lIi8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPGcgaWQ9IkVsbGlwc2VfMTMzMyIgZGF0YS1uYW1lPSJFbGxpcHNlIDEzMzMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM4LjgxMyA3MC43NjQpIHJvdGF0ZSgtMTQpIiBmaWxsPSIjZjBmMGYwIiBzdHJva2U9IiM0MTQxNDEiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9IjcuMDYzIiBjeT0iNS4wNDMiIHJ4PSI3LjA2MyIgcnk9IjUuMDQzIiBzdHJva2U9Im5vbmUiLz4KICAgICAgICAgICAgICA8ZWxsaXBzZSBjeD0iNy4wNjMiIGN5PSI1LjA0MyIgcng9IjYuMDYzIiByeT0iNC4wNDMiIGZpbGw9Im5vbmUiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI0NyIgZGF0YS1uYW1lPSJQYXRoIDg4MjQ3IiBkPSJNMS4wMjksMTQuOTM4Yy0uNDczLDEuNjM5LTIuNzA3LDguMzkxLDEuNDEsMTQuMDc2czE0LjI5Miw4LjkwNywzNy4zNDgsMTguNCwyMC43MzEsMTkuNjc0LDIyLjIsMjAuNTA3LDEyLjEtNS4zMjUsMjEuMjcxLTI4LjQ4M1M5Ny43MTUsNS41NDcsOTQuMi43NDksODcuMDI5LDE1LjQ0NCw3My42MzMsMjMuOGMtNi45NjYsNC4zNDYtMjAuNDc0LDEwLjc5MS0zMy44NDUsOS42LTExLjg1OC0xLjA1Ni0yNC42LTMuNzI3LTM4Ljc1OC0xOC40NjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjAwMSA4OS4yNDYpIHJvdGF0ZSgtNykiIGZpbGw9IiNmMGYwZjAiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgICAgICA8cGF0aCBpZD0iVW5pb25fMjY1IiBkYXRhLW5hbWU9IlVuaW9uIDI2NSIgZD0iTS4zMzUsMy4yMzZDLS43NTcuNTc4LDEuMDU0LjEyMywyLjQzMS4wMThBNTQuNiw1NC42LDAsMCwxLDcuOTg0LjMxLDU0Ljc0Nyw1NC43NDcsMCwwLDEsMTMuNTM3LjAxN2MxLjM3Ny4xMDYsMy4xODguNTYsMi4xLDMuMjE5QTcuODc2LDcuODc2LDAsMCwxLDguMTkyLDguMjc3bC0uMDcsMGgtLjE0QTcuODkzLDcuODkzLDAsMCwxLC4zMzUsMy4yMzZaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjgzOSwgLTAuNTQ1LCAwLjU0NSwgMC44MzksIDYyLjk1MSwgNzguNTA5KSIgZmlsbD0iIzQxNDE0MSIgc3Ryb2tlPSIjNDE0MTQxIiBzdHJva2Utd2lkdGg9IjIuNCIvPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI0NSIgZGF0YS1uYW1lPSJQYXRoIDg4MjQ1IiBkPSJNOS4zNjMsMFMxNi4zMjIsMTIuODg0LDAsMTQuMTc2IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjk5OSwgLTAuMDM1LCAwLjAzNSwgMC45OTksIDY0LjY5LCA4MS44MSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI0NiIgZGF0YS1uYW1lPSJQYXRoIDg4MjQ2IiBkPSJNMS40NzQsMHMtNi45NTksMTIuODg0LDkuMzYzLDE0LjE3NSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4zMjYsIC0wLjk0NiwgMC45NDYsIDAuMzI2LCA3My45MzIsIDgyLjg2NykiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF84ODI4NiIgZGF0YS1uYW1lPSJQYXRoIDg4Mjg2IiBkPSJNMzEuODgyLDM5LjUxN2wyOS4xLTEzLjQyMlM2NC4wNzkuNjIzLDcwLjc4Ny4wMjUsODcuNzU3LDkuNTQsODguNTQ0LDMxLjY4M2MwLDAsMTAuMzY2LDMuOTE0LDE4LjcsMTUuOTg4czUuNDUxLDMyLjY3OS0zLjg2LDQ3LjMzOVM3Ni4yLDExNS42MjksNzYuMiwxMTUuNjI5cy0yMi4xMjMsNy4wNzUtNDAuNzg4LTMuMTkzLTIzLjI4Mi0yNC42NjEtMTguMS00Mi40N2MwLDAtMjIuMzkxLTMwLjY1MS0xNi4yNTQtMzYuOTg4UzI4LjgxNywzOC43NywzMS44ODIsMzkuNTE3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4zMTUgMCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4KICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9IkVsbGlwc2VfMTMzNiIgZGF0YS1uYW1lPSJFbGxpcHNlIDEzMzYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLXdpZHRoPSIyLjUiPgogICAgICAgICAgPGVsbGlwc2UgY3g9IjgzLjQyNSIgY3k9IjgzLjQyNSIgcng9IjgzLjQyNSIgcnk9IjgzLjQyNSIgc3Ryb2tlPSJub25lIi8+CiAgICAgICAgICA8ZWxsaXBzZSBjeD0iODMuNDI1IiBjeT0iODMuNDI1IiByeD0iODIuMTc1IiByeT0iODIuMTc1IiBmaWxsPSJub25lIi8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzg4Mjc2IiBkYXRhLW5hbWU9IlBhdGggODgyNzYiIGQ9Ik0wLDEuMzI0UzI3LjA2Mi00LjExLDQ3LjU2OSw3LjAzOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjEuNTAyIDQ3Ljk0OCkgcm90YXRlKC00NikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQxNDE0MSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuNSIvPgogICAgICA8L2c+CiAgICAgIDxlbGxpcHNlIGlkPSJFbGxpcHNlXzEzMzgiIGRhdGEtbmFtZT0iRWxsaXBzZSAxMzM4IiBjeD0iMi44NjciIGN5PSIyLjg2NyIgcng9IjIuODY3IiByeT0iMi44NjciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNS45ODYgMTA1Ljg0OSkiIGZpbGw9IiM0MTQxNDEiLz4KICAgICAgPGVsbGlwc2UgaWQ9IkVsbGlwc2VfMTMzOSIgZGF0YS1uYW1lPSJFbGxpcHNlIDEzMzkiIGN4PSIyLjg2NyIgY3k9IjIuODY3IiByeD0iMi44NjciIHJ5PSIyLjg2NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTMuMDk1IDEyNy4yMDUpIiBmaWxsPSIjNDE0MTQxIi8+CiAgICA8L2c+CiAgPC9nPgogIDx0ZXh0Lz4KPC9zdmc+Cg==\""],"names":["DogeSpace"],"mappings":"AAAA,MAAeA,IAAA;"}
@@ -0,0 +1,14 @@
1
+ import { jsx as e } from "@emotion/react/jsx-runtime";
2
+ import { useTranslation as s } from "react-i18next";
3
+ import c from "./404.svg.js";
4
+ import d from "../ErrorPage/ErrorPage.js";
5
+ const u = () => {
6
+ const {
7
+ t: o
8
+ } = s(), r = o("errors.notFound.code"), t = o("errors.notFound.title"), n = o("errors.notFound.image_description");
9
+ return /* @__PURE__ */ e(d, { code: r, title: t, backgroundLabel: n, background: `url(${c})` });
10
+ }, l = u;
11
+ export {
12
+ l as default
13
+ };
14
+ //# sourceMappingURL=NotFound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotFound.js","sources":["../../../../src/pages/NotFound/NotFound.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\n\nimport ErrorPage from \"../ErrorPage\";\nimport DogeSpace from \"./404.svg\";\n\nconst NotFound = () => {\n const { t } = useTranslation();\n\n const code = t(\"errors.notFound.code\");\n const title = t(\"errors.notFound.title\");\n const backgroundLabel = t(\"errors.notFound.image_description\");\n return (\n <ErrorPage\n code={code}\n title={title}\n backgroundLabel={backgroundLabel}\n background={`url(${DogeSpace})`}\n />\n );\n};\n\nexport default NotFound;\n"],"names":["NotFound","t","useTranslation","code","title","backgroundLabel","jsx","ErrorPage","DogeSpace","NotFound$1"],"mappings":";;;;AAKA,MAAMA,IAAWA,MAAM;AACf,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GAEvBC,IAAOF,EAAE,sBAAsB,GAC/BG,IAAQH,EAAE,uBAAuB,GACjCI,IAAkBJ,EAAE,mCAAmC;AAE3D,SAAA,gBAAAK,EAACC,KACC,MAAAJ,GACA,OAAAC,GACA,iBAAAC,GACA,YAAa,OAAMG,CAAU,IAC7B,CAAA;AAEN,GAEAC,IAAeT;"}
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./NotFound.js";
2
+ export {
3
+ o as default
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,72 @@
1
+ import { jsxs as e, jsx as h } from "@emotion/react/jsx-runtime";
2
+ import { createContext as o, useState as V, useMemo as W, useEffect as B } from "react";
3
+ import { css as p } from "@emotion/css";
4
+ import { v4 as N } from "uuid";
5
+ import { theme as g, HvBanner as Y } from "@hitachivantara/uikit-react-core";
6
+ import { useTranslation as F } from "react-i18next";
7
+ import x from "./hooks/useNavigationContext.js";
8
+ import { SUB_HEADER_HEIGHT as H } from "../components/layout/Main/styles.js";
9
+ import J from "./hooks/useLayoutContext.js";
10
+ const v = o({
11
+ show: () => {
12
+ },
13
+ dismiss: () => {
14
+ }
15
+ }), y = ({
16
+ children: n
17
+ }) => {
18
+ const {
19
+ t: Z
20
+ } = F(), {
21
+ showHeaderSubMenu: u,
22
+ isCompactMode: A
23
+ } = x(), {
24
+ verticalNavigationWidth: m,
25
+ setBannerMaxHeight: G
26
+ } = J(), [c, d] = V([]), a = (I) => {
27
+ const b = {
28
+ id: N(),
29
+ ...I,
30
+ variant: I.variant || "default"
31
+ };
32
+ d((C) => [...C, b]);
33
+ }, X = (I) => {
34
+ d((l) => l.filter((b) => b.id !== I));
35
+ }, i = W(() => ({
36
+ show: a,
37
+ dismiss: X
38
+ }), []);
39
+ B(() => {
40
+ if (c.length > 0) {
41
+ const I = c.map((b) => {
42
+ const C = document.getElementById(b.id);
43
+ return C ? C.clientHeight : 0;
44
+ }), l = Math.max(...I);
45
+ G(l);
46
+ } else
47
+ G(0);
48
+ }, [c, G]);
49
+ const t = W(() => /* @__PURE__ */ p({
50
+ marginTop: u && !A ? `calc(${H}px + ${g.space.sm})` : g.space.sm,
51
+ left: `calc(${m}px + ${g.space.sm})`,
52
+ width: `calc(100% - (${m}px + ${g.space.sm}) - ${g.space.sm})`,
53
+ transform: "unset",
54
+ minWidth: "unset",
55
+ zIndex: g.zIndices.banner
56
+ }, process.env.NODE_ENV === "production" ? "" : ";label:styles;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9fX3cvaHYtYXBwLXNoZWxsL2h2LWFwcC1zaGVsbC9jbGllbnQvcGFja2FnZXMvYXBwLXNoZWxsLXVpL3NyYy9wcm92aWRlcnMvQmFubmVyUHJvdmlkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtGTSIsImZpbGUiOiIvX193L2h2LWFwcC1zaGVsbC9odi1hcHAtc2hlbGwvY2xpZW50L3BhY2thZ2VzL2FwcC1zaGVsbC11aS9zcmMvcHJvdmlkZXJzL0Jhbm5lclByb3ZpZGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9jc3NcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuXG5pbXBvcnQgeyBIdkJhbm5lciwgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXJlYWN0LWNvcmVcIjtcbmltcG9ydCB7IEh2QXBwU2hlbGxFdmVudE5vdGlmaWNhdGlvbiB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvYXBwLXNoZWxsLWV2ZW50c1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHVzZU5hdmlnYXRpb25Db250ZXh0IGZyb20gXCIuL2hvb2tzL3VzZU5hdmlnYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBTVUJfSEVBREVSX0hFSUdIVCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2xheW91dC9NYWluL3N0eWxlc1wiO1xuaW1wb3J0IHVzZUxheW91dENvbnRleHQgZnJvbSBcIi4vaG9va3MvdXNlTGF5b3V0Q29udGV4dFwiO1xuXG5leHBvcnQgdHlwZSBCYW5uZXJQcm92aWRlclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCYW5uZXIgZXh0ZW5kcyBPbWl0PEh2QXBwU2hlbGxFdmVudE5vdGlmaWNhdGlvbiwgXCJ0eXBlXCI+IHtcbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYW5uZXJDb250ZXh0VmFsdWUge1xuICBzaG93OiAobm90aWZpY2F0aW9uOiBIdkFwcFNoZWxsRXZlbnROb3RpZmljYXRpb24pID0+IHZvaWQ7XG4gIGRpc21pc3M6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgQmFubmVyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8QmFubmVyQ29udGV4dFZhbHVlPih7XG4gIHNob3c6ICgpID0+IHtcbiAgICAvLyBFbXB0eSBmdW5jdGlvblxuICB9LFxuICBkaXNtaXNzOiAoKSA9PiB7XG4gICAgLy8gRW1wdHkgZnVuY3Rpb25cbiAgfVxufSk7XG5cbmNvbnN0IEJhbm5lclByb3ZpZGVyID0gKHsgY2hpbGRyZW4gfTogQmFubmVyUHJvdmlkZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IHsgc2hvd0hlYWRlclN1Yk1lbnUsIGlzQ29tcGFjdE1vZGUgfSA9IHVzZU5hdmlnYXRpb25Db250ZXh0KCk7XG4gIGNvbnN0IHsgdmVydGljYWxOYXZpZ2F0aW9uV2lkdGgsIHNldEJhbm5lck1heEhlaWdodCB9ID0gdXNlTGF5b3V0Q29udGV4dCgpO1xuICBjb25zdCBbYmFubmVycywgc2V0QmFubmVyc10gPSB1c2VTdGF0ZTxCYW5uZXJbXT4oW10pO1xuXG4gIGNvbnN0IHNob3cgPSAobm90aWZpY2F0aW9uOiBIdkFwcFNoZWxsRXZlbnROb3RpZmljYXRpb24pID0+IHtcbiAgICBjb25zdCBpZCA9IHV1aWQoKTtcblxuICAgIGNvbnN0IG5ld0Jhbm5lcjogQmFubmVyID0ge1xuICAgICAgaWQsXG4gICAgICAuLi5ub3RpZmljYXRpb24sXG4gICAgICB2YXJpYW50OiBub3RpZmljYXRpb24udmFyaWFudCB8fCBcImRlZmF1bHRcIlxuICAgIH07XG4gICAgc2V0QmFubmVycyhwcmV2QmFubmVycyA9PiBbLi4ucHJldkJhbm5lcnMsIG5ld0Jhbm5lcl0pO1xuICB9O1xuXG4gIGNvbnN0IGRpc21pc3MgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHNldEJhbm5lcnMocHJldkJhbm5lcnMgPT4gcHJldkJhbm5lcnMuZmlsdGVyKGJhbm5lciA9PiBiYW5uZXIuaWQgIT09IGlkKSk7XG4gIH07XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBzaG93LFxuICAgICAgZGlzbWlzc1xuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYmFubmVycy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBHZXQgYWxsIGhlaWdodHMgZnJvbSB0aGUgcmVuZGVyZWQgYmFubmVyc1xuICAgICAgY29uc3QgYmFubmVySGVpZ2h0cyA9IGJhbm5lcnMubWFwKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBiYW5uZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaXRlbS5pZCk7XG4gICAgICAgIHJldHVybiBiYW5uZXJFbGVtZW50ID8gYmFubmVyRWxlbWVudC5jbGllbnRIZWlnaHQgOiAwO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEZpbmQgdGhlICd0YWxsZXN0JyBiYW5uZXJcbiAgICAgIGNvbnN0IG1heEJhbm5lckhlaWdodCA9IE1hdGgubWF4KC4uLmJhbm5lckhlaWdodHMpO1xuXG4gICAgICAvLyBVcGRhdGUgcGFkZGluZyB2YWx1ZVxuICAgICAgc2V0QmFubmVyTWF4SGVpZ2h0KG1heEJhbm5lckhlaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEJhbm5lck1heEhlaWdodCgwKTtcbiAgICB9XG4gIH0sIFtiYW5uZXJzLCBzZXRCYW5uZXJNYXhIZWlnaHRdKTtcblxuICBjb25zdCBzdHlsZXMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBjc3Moe1xuICAgICAgICBtYXJnaW5Ub3A6XG4gICAgICAgICAgc2hvd0hlYWRlclN1Yk1lbnUgJiYgIWlzQ29tcGFjdE1vZGVcbiAgICAgICAgICAgID8gYGNhbGMoJHtTVUJfSEVBREVSX0hFSUdIVH1weCArICR7dGhlbWUuc3BhY2Uuc219KWBcbiAgICAgICAgICAgIDogdGhlbWUuc3BhY2Uuc20sXG4gICAgICAgIGxlZnQ6IGBjYWxjKCR7dmVydGljYWxOYXZpZ2F0aW9uV2lkdGh9cHggKyAke3RoZW1lLnNwYWNlLnNtfSlgLFxuICAgICAgICB3aWR0aDogYGNhbGMoMTAwJSAtICgke3ZlcnRpY2FsTmF2aWdhdGlvbldpZHRofXB4ICsgJHt0aGVtZS5zcGFjZS5zbX0pIC0gJHt0aGVtZS5zcGFjZS5zbX0pYCxcbiAgICAgICAgdHJhbnNmb3JtOiBcInVuc2V0XCIsXG4gICAgICAgIG1pbldpZHRoOiBcInVuc2V0XCIsXG4gICAgICAgIHpJbmRleDogdGhlbWUuekluZGljZXMuYmFubmVyXG4gICAgICB9KSxcbiAgICBbaXNDb21wYWN0TW9kZSwgc2hvd0hlYWRlclN1Yk1lbnUsIHZlcnRpY2FsTmF2aWdhdGlvbldpZHRoXVxuICApO1xuXG4gIGNvbnN0IGNsb3NlQmFubmVyTGFiZWwgPSB0KFwibm90aWZpY2F0aW9ucy5iYW5uZXIuY2xvc2VcIik7XG5cbiAgcmV0dXJuIChcbiAgICA8QmFubmVyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PlxuICAgICAge2Jhbm5lcnMubWFwKGJhbm5lciA9PiAoXG4gICAgICAgIDxIdkJhbm5lclxuICAgICAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgICAgIGFuY2hvck9yaWdpblRvcENlbnRlcjogc3R5bGVzXG4gICAgICAgICAgfX1cbiAgICAgICAgICBpZD17YmFubmVyLmlkfVxuICAgICAgICAgIGtleT17YmFubmVyLmlkfVxuICAgICAgICAgIG9wZW5cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBkaXNtaXNzKGJhbm5lci5pZCl9XG4gICAgICAgICAgdmFyaWFudD17YmFubmVyLnZhcmlhbnR9XG4gICAgICAgICAgbGFiZWw9e2Jhbm5lci5tZXNzYWdlfVxuICAgICAgICAgIHNob3dJY29uXG4gICAgICAgICAgYWN0aW9ucz17YmFubmVyLmFjdGlvbnN9XG4gICAgICAgICAgYWN0aW9uc0NhbGxiYWNrPXtiYW5uZXIuYWN0aW9uc0NhbGxiYWNrfVxuICAgICAgICAgIGJhbm5lckNvbnRlbnRQcm9wcz17e1xuICAgICAgICAgICAgYWN0aW9uUHJvcHM6IHsgXCJhcmlhLWxhYmVsXCI6IGNsb3NlQmFubmVyTGFiZWwgfVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0Jhbm5lckNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCYW5uZXJQcm92aWRlcjtcbiJdfQ== */"), [A, u, m]), s = Z("notifications.banner.close");
57
+ return /* @__PURE__ */ e(v.Provider, { value: i, children: [
58
+ c.map((I) => /* @__PURE__ */ h(Y, { classes: {
59
+ anchorOriginTopCenter: t
60
+ }, id: I.id, open: !0, onClose: () => X(I.id), variant: I.variant, label: I.message, showIcon: !0, actions: I.actions, actionsCallback: I.actionsCallback, bannerContentProps: {
61
+ actionProps: {
62
+ "aria-label": s
63
+ }
64
+ } }, I.id)),
65
+ n
66
+ ] });
67
+ }, f = y;
68
+ export {
69
+ v as BannerContext,
70
+ f as default
71
+ };
72
+ //# sourceMappingURL=BannerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerProvider.js","sources":["../../../src/providers/BannerProvider.tsx"],"sourcesContent":["import { createContext, useEffect, useMemo, useState } from \"react\";\nimport { css } from \"@emotion/css\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { HvBanner, theme } from \"@hitachivantara/uikit-react-core\";\nimport { HvAppShellEventNotification } from \"@hitachivantara/app-shell-events\";\nimport { useTranslation } from \"react-i18next\";\nimport useNavigationContext from \"./hooks/useNavigationContext\";\nimport { SUB_HEADER_HEIGHT } from \"../components/layout/Main/styles\";\nimport useLayoutContext from \"./hooks/useLayoutContext\";\n\nexport type BannerProviderProps = {\n children: React.ReactNode;\n};\n\nexport interface Banner extends Omit<HvAppShellEventNotification, \"type\"> {\n id: string;\n}\n\nexport interface BannerContextValue {\n show: (notification: HvAppShellEventNotification) => void;\n dismiss: (id: string) => void;\n}\n\nexport const BannerContext = createContext<BannerContextValue>({\n show: () => {\n // Empty function\n },\n dismiss: () => {\n // Empty function\n }\n});\n\nconst BannerProvider = ({ children }: BannerProviderProps) => {\n const { t } = useTranslation();\n const { showHeaderSubMenu, isCompactMode } = useNavigationContext();\n const { verticalNavigationWidth, setBannerMaxHeight } = useLayoutContext();\n const [banners, setBanners] = useState<Banner[]>([]);\n\n const show = (notification: HvAppShellEventNotification) => {\n const id = uuid();\n\n const newBanner: Banner = {\n id,\n ...notification,\n variant: notification.variant || \"default\"\n };\n setBanners(prevBanners => [...prevBanners, newBanner]);\n };\n\n const dismiss = (id: string) => {\n setBanners(prevBanners => prevBanners.filter(banner => banner.id !== id));\n };\n\n const value = useMemo(\n () => ({\n show,\n dismiss\n }),\n []\n );\n\n useEffect(() => {\n if (banners.length > 0) {\n // Get all heights from the rendered banners\n const bannerHeights = banners.map(item => {\n const bannerElement = document.getElementById(item.id);\n return bannerElement ? bannerElement.clientHeight : 0;\n });\n\n // Find the 'tallest' banner\n const maxBannerHeight = Math.max(...bannerHeights);\n\n // Update padding value\n setBannerMaxHeight(maxBannerHeight);\n } else {\n setBannerMaxHeight(0);\n }\n }, [banners, setBannerMaxHeight]);\n\n const styles = useMemo(\n () =>\n css({\n marginTop:\n showHeaderSubMenu && !isCompactMode\n ? `calc(${SUB_HEADER_HEIGHT}px + ${theme.space.sm})`\n : theme.space.sm,\n left: `calc(${verticalNavigationWidth}px + ${theme.space.sm})`,\n width: `calc(100% - (${verticalNavigationWidth}px + ${theme.space.sm}) - ${theme.space.sm})`,\n transform: \"unset\",\n minWidth: \"unset\",\n zIndex: theme.zIndices.banner\n }),\n [isCompactMode, showHeaderSubMenu, verticalNavigationWidth]\n );\n\n const closeBannerLabel = t(\"notifications.banner.close\");\n\n return (\n <BannerContext.Provider value={value}>\n {banners.map(banner => (\n <HvBanner\n classes={{\n anchorOriginTopCenter: styles\n }}\n id={banner.id}\n key={banner.id}\n open\n onClose={() => dismiss(banner.id)}\n variant={banner.variant}\n label={banner.message}\n showIcon\n actions={banner.actions}\n actionsCallback={banner.actionsCallback}\n bannerContentProps={{\n actionProps: { \"aria-label\": closeBannerLabel }\n }}\n />\n ))}\n {children}\n </BannerContext.Provider>\n );\n};\n\nexport default BannerProvider;\n"],"names":["BannerContext","createContext","show","dismiss","BannerProvider","children","t","useTranslation","showHeaderSubMenu","isCompactMode","useNavigationContext","verticalNavigationWidth","setBannerMaxHeight","useLayoutContext","banners","setBanners","useState","notification","newBanner","id","uuid","variant","prevBanners","filter","banner","value","useMemo","useEffect","length","bannerHeights","map","item","bannerElement","document","getElementById","clientHeight","maxBannerHeight","Math","max","styles","css","marginTop","SUB_HEADER_HEIGHT","theme","space","sm","left","width","transform","minWidth","zIndex","zIndices","process","env","NODE_ENV","closeBannerLabel","jsxs","jsx","HvBanner","anchorOriginTopCenter","message","actions","actionsCallback","actionProps","BannerProvider$1"],"mappings":";;;;;;;;;AAwBO,MAAMA,IAAgBC,EAAkC;AAAA,EAC7DC,MAAMA,MAAM;AAAA,EACV;AAAA,EAEFC,SAASA,MAAM;AAAA,EACb;AAEJ,CAAC,GAEKC,IAAiBA,CAAC;AAAA,EAAEC,UAAAA;AAA8B,MAAM;AACtD,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GACvB;AAAA,IAAEC,mBAAAA;AAAAA,IAAmBC,eAAAA;AAAAA,MAAkBC,EAAqB,GAC5D;AAAA,IAAEC,yBAAAA;AAAAA,IAAyBC,oBAAAA;AAAAA,MAAuBC,EAAiB,GACnE,CAACC,GAASC,CAAU,IAAIC,EAAmB,CAAE,CAAA,GAE7Cd,IAAOA,CAACe,MAA8C;AAG1D,UAAMC,IAAoB;AAAA,MACxBC,IAHSC;MAIT,GAAGH;AAAAA,MACHI,SAASJ,EAAaI,WAAW;AAAA,IAAA;AAEnCN,IAAAA,EAAWO,CAAeA,MAAA,CAAC,GAAGA,GAAaJ,CAAS,CAAC;AAAA,EAAA,GAGjDf,IAAUA,CAACgB,MAAe;AAC9BJ,IAAAA,EAAWO,OAAeA,EAAYC,OAAOC,OAAUA,EAAOL,OAAOA,CAAE,CAAC;AAAA,EAAA,GAGpEM,IAAQC,EACZ,OAAO;AAAA,IACLxB,MAAAA;AAAAA,IACAC,SAAAA;AAAAA,EAAAA,IAEF,CACF,CAAA;AAEAwB,EAAAA,EAAU,MAAM;AACVb,QAAAA,EAAQc,SAAS,GAAG;AAEhBC,YAAAA,IAAgBf,EAAQgB,IAAIC,CAAQA,MAAA;AACxC,cAAMC,IAAgBC,SAASC,eAAeH,EAAKZ,EAAE;AAC9Ca,eAAAA,IAAgBA,EAAcG,eAAe;AAAA,MAAA,CACrD,GAGKC,IAAkBC,KAAKC,IAAI,GAAGT,CAAa;AAGjDjB,MAAAA,EAAmBwB,CAAe;AAAA,IAAA;AAElCxB,MAAAA,EAAmB,CAAC;AAAA,EACtB,GACC,CAACE,GAASF,CAAkB,CAAC;AAE1B2B,QAAAA,IAASb,EACb,MACM,gBAAAc,EAAA;AAAA,IACFC,WACEjC,KAAqB,CAACC,IACjB,QAAOiC,CAAkB,QAAOC,EAAMC,MAAMC,EAAG,MAChDF,EAAMC,MAAMC;AAAAA,IAClBC,MAAO,QAAOnC,CAAwB,QAAOgC,EAAMC,MAAMC,EAAG;AAAA,IAC5DE,OAAQ,gBAAepC,CAAwB,QAAOgC,EAAMC,MAAMC,EAAG,OAAMF,EAAMC,MAAMC,EAAG;AAAA,IAC1FG,WAAW;AAAA,IACXC,UAAU;AAAA,IACVC,QAAQP,EAAMQ,SAAS3B;AAAAA,EAAAA,GACxB4B,QAAAC,IAAAC,aAAA,eAAA,KAAA,kBAAAF,QAAAC,IAAAC,aAAA,eAAA,KAAA,y0KAAA,GACH,CAAC7C,GAAeD,GAAmBG,CAAuB,CAC5D,GAEM4C,IAAmBjD,EAAE,4BAA4B;AAEvD,SACG,gBAAAkD,EAAAxD,EAAc,UAAd,EAAuB,OAAAyB,GACrBX,UAAAA;AAAAA,IAAAA,EAAQgB,IAAIN,CAAAA,MACV,gBAAAiC,EAAAC,GAAA,EACC,SAAS;AAAA,MACPC,uBAAuBpB;AAAAA,IACzB,GACA,IAAIf,EAAOL,IAEX,MAAI,IACJ,SAAS,MAAMhB,EAAQqB,EAAOL,EAAE,GAChC,SAASK,EAAOH,SAChB,OAAOG,EAAOoC,SACd,UAAQ,IACR,SAASpC,EAAOqC,SAChB,iBAAiBrC,EAAOsC,iBACxB,oBAAoB;AAAA,MAClBC,aAAa;AAAA,QAAE,cAAcR;AAAAA,MAAiB;AAAA,IAAA,KAT3C/B,EAAOL,GAYf;AAAA,IACAd;AAAAA,EACH,EAAA,CAAA;AAEJ,GAEA2D,IAAe5D;"}
@@ -0,0 +1,25 @@
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({
4
+ bannerMaxHeight: 0,
5
+ setBannerMaxHeight: () => {
6
+ },
7
+ verticalNavigationWidth: 0,
8
+ setVerticalNavigationWidth: () => {
9
+ }
10
+ }), g = ({
11
+ children: i
12
+ }) => {
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;
21
+ export {
22
+ d as LayoutContext,
23
+ x as default
24
+ };
25
+ //# sourceMappingURL=LayoutProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutProvider.js","sources":["../../../src/providers/LayoutProvider.tsx"],"sourcesContent":["import { createContext, useMemo, useState } from \"react\";\n\nexport type LayoutProviderProps = {\n children: React.ReactNode;\n};\n\nexport interface LayoutContextValue {\n bannerMaxHeight: number;\n setBannerMaxHeight: (height: number) => void;\n verticalNavigationWidth: number;\n setVerticalNavigationWidth: (height: number) => void;\n}\n\nexport const LayoutContext = createContext<LayoutContextValue>({\n bannerMaxHeight: 0,\n setBannerMaxHeight: () => {\n // Empty function\n },\n verticalNavigationWidth: 0,\n setVerticalNavigationWidth: () => {\n // Empty function\n }\n});\n\nconst LayoutProvider = ({ children }: LayoutProviderProps) => {\n const [bannerMaxHeight, setBannerMaxHeight] = useState<number>(0);\n const [verticalNavigationWidth, setVerticalNavigationWidth] =\n useState<number>(0);\n\n const value = useMemo(\n () => ({\n bannerMaxHeight,\n setBannerMaxHeight,\n verticalNavigationWidth,\n setVerticalNavigationWidth\n }),\n [bannerMaxHeight, verticalNavigationWidth]\n );\n\n return (\n <LayoutContext.Provider value={value}>{children}</LayoutContext.Provider>\n );\n};\n\nexport default LayoutProvider;\n"],"names":["LayoutContext","createContext","bannerMaxHeight","setBannerMaxHeight","verticalNavigationWidth","setVerticalNavigationWidth","LayoutProvider","children","useState","value","useMemo","jsx","LayoutProvider$1"],"mappings":";;AAaO,MAAMA,IAAgBC,EAAkC;AAAA,EAC7DC,iBAAiB;AAAA,EACjBC,oBAAoBA,MAAM;AAAA,EACxB;AAAA,EAEFC,yBAAyB;AAAA,EACzBC,4BAA4BA,MAAM;AAAA,EAChC;AAEJ,CAAC,GAEKC,IAAiBA,CAAC;AAAA,EAAEC,UAAAA;AAA8B,MAAM;AAC5D,QAAM,CAACL,GAAiBC,CAAkB,IAAIK,EAAiB,CAAC,GAC1D,CAACJ,GAAyBC,CAA0B,IACxDG,EAAiB,CAAC,GAEdC,IAAQC,EACZ,OAAO;AAAA,IACLR,iBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,4BAAAA;AAAAA,EAEF,IAAA,CAACH,GAAiBE,CAAuB,CAC3C;AAEA,SACG,gBAAAO,EAAAX,EAAc,UAAd,EAAuB,OAAAS,GAAeF,UAAAA,EAAS,CAAA;AAEpD,GAEAK,IAAeN;"}
@@ -0,0 +1,56 @@
1
+ import { jsx as I } from "@emotion/react/jsx-runtime";
2
+ import { createContext as C, useState as f, useMemo as n, useEffect as N, useCallback as L } from "react";
3
+ import { useTheme as P, useMediaQuery as p } from "@mui/material";
4
+ import { useHvAppShellConfig as O } from "@hitachivantara/app-shell-shared";
5
+ import { removeHrefFromMenuItemsWithChildren as M, findItemById as S } from "../lib/utils/navigationUtil.js";
6
+ import A from "../lib/hooks/useNavigationMenuItems.js";
7
+ const w = C({
8
+ selectedMenuItemId: void 0,
9
+ rootMenuItemId: void 0,
10
+ items: [],
11
+ verticalNavigationItems: [],
12
+ hasVerticalNavigation: !1,
13
+ showHeaderSubMenu: !1,
14
+ isCompactMode: !1,
15
+ verticalNavigationMode: "EXPANDED",
16
+ switchVerticalNavigationMode: () => {
17
+ }
18
+ }), T = ({
19
+ children: E
20
+ }) => {
21
+ const {
22
+ navigationMode: i
23
+ } = O(), {
24
+ items: t,
25
+ selectedMenuItemId: s,
26
+ rootMenuItemId: a
27
+ } = A(), g = P(), e = p(g.breakpoints.down("md")), [u, m] = f(e ? "CLOSED" : "EXPANDED"), [c, D] = f(!1), r = n(() => {
28
+ var v;
29
+ if (e)
30
+ return t;
31
+ if (i === "ONLY_LEFT")
32
+ return M(t);
33
+ const o = a && ((v = S(t, a)) == null ? void 0 : v.data) || [];
34
+ return M(o);
35
+ }, [t, i, a, e]), d = n(() => e ? !0 : i === "ONLY_TOP" ? !1 : r && r.length > 0, [i, r, e]);
36
+ N(() => m(e ? "CLOSED" : "EXPANDED"), [e]), N(() => D(i === "ONLY_TOP" && t.some((o) => o.data && o.data.length > 0)), [i, t]);
37
+ const l = L(() => {
38
+ m((o) => e ? o === "CLOSED" ? "EXPANDED" : "CLOSED" : o === "COLLAPSED" ? "EXPANDED" : "COLLAPSED");
39
+ }, [e]), h = n(() => ({
40
+ selectedMenuItemId: s,
41
+ rootMenuItemId: a,
42
+ items: t,
43
+ verticalNavigationItems: r,
44
+ hasVerticalNavigation: d,
45
+ showHeaderSubMenu: c,
46
+ isCompactMode: e,
47
+ verticalNavigationMode: u,
48
+ switchVerticalNavigationMode: l
49
+ }), [s, a, t, r, d, c, e, u, l]);
50
+ return /* @__PURE__ */ I(w.Provider, { value: h, children: E });
51
+ }, _ = T;
52
+ export {
53
+ w as NavigationContext,
54
+ _ as default
55
+ };
56
+ //# sourceMappingURL=NavigationProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationProvider.js","sources":["../../../src/providers/NavigationProvider.tsx"],"sourcesContent":["import {\n createContext,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState\n} from \"react\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { useHvAppShellConfig } from \"@hitachivantara/app-shell-shared\";\n\nimport {\n findItemById,\n removeHrefFromMenuItemsWithChildren\n} from \"../lib/utils/navigationUtil\";\nimport { NavigationMenuItem } from \"../lib/types\";\nimport useNavigationMenuItems from \"../lib/hooks/useNavigationMenuItems\";\n\nexport type NavigationProviderProps = {\n children: ReactNode;\n};\n\nexport type VerticalNavigationMode = \"EXPANDED\" | \"COLLAPSED\" | \"CLOSED\";\n\nexport interface NavigationContextValue {\n selectedMenuItemId: string | undefined;\n rootMenuItemId: string | undefined;\n items: NavigationMenuItem[];\n verticalNavigationItems: NavigationMenuItem[];\n hasVerticalNavigation: boolean;\n showHeaderSubMenu: boolean;\n isCompactMode: boolean;\n verticalNavigationMode: VerticalNavigationMode;\n switchVerticalNavigationMode: () => void;\n}\n\nexport const NavigationContext = createContext<NavigationContextValue>({\n selectedMenuItemId: undefined,\n rootMenuItemId: undefined,\n items: [],\n verticalNavigationItems: [],\n hasVerticalNavigation: false,\n showHeaderSubMenu: false,\n isCompactMode: false,\n verticalNavigationMode: \"EXPANDED\",\n switchVerticalNavigationMode: () => {\n // Empty function\n }\n});\n\nconst NavigationProvider = ({ children }: NavigationProviderProps) => {\n const { navigationMode } = useHvAppShellConfig();\n const { items, selectedMenuItemId, rootMenuItemId } =\n useNavigationMenuItems();\n const muiTheme = useTheme();\n\n const isCompactMode = useMediaQuery(muiTheme.breakpoints.down(\"md\"));\n const [verticalNavigationMode, setVerticalNavigationMode] =\n useState<VerticalNavigationMode>(isCompactMode ? \"CLOSED\" : \"EXPANDED\");\n const [showHeaderSubMenu, setShowHeaderSubMenu] = useState(false);\n\n const verticalNavigationItems = useMemo(() => {\n if (isCompactMode) {\n return items;\n }\n\n if (navigationMode === \"ONLY_LEFT\") {\n return removeHrefFromMenuItemsWithChildren(items);\n }\n\n const itemsToReturn =\n (rootMenuItemId && findItemById(items, rootMenuItemId)?.data) || [];\n\n return removeHrefFromMenuItemsWithChildren(itemsToReturn);\n }, [items, navigationMode, rootMenuItemId, isCompactMode]);\n\n const hasVerticalNavigation = useMemo(() => {\n if (isCompactMode) {\n return true;\n }\n\n if (navigationMode === \"ONLY_TOP\") {\n return false;\n }\n\n return verticalNavigationItems && verticalNavigationItems.length > 0;\n }, [navigationMode, verticalNavigationItems, isCompactMode]);\n\n // We need to change the verticalNavigationMode when the isCompactMode changes\n useEffect(\n () => setVerticalNavigationMode(isCompactMode ? \"CLOSED\" : \"EXPANDED\"),\n [isCompactMode]\n );\n\n useEffect(\n () =>\n setShowHeaderSubMenu(\n navigationMode === \"ONLY_TOP\" &&\n items.some(item => item.data && item.data.length > 0)\n ),\n [navigationMode, items]\n );\n\n const switchVerticalNavigationMode = useCallback(() => {\n setVerticalNavigationMode((prevState: VerticalNavigationMode) => {\n if (isCompactMode) {\n return prevState === \"CLOSED\" ? \"EXPANDED\" : \"CLOSED\";\n }\n return prevState === \"COLLAPSED\" ? \"EXPANDED\" : \"COLLAPSED\";\n });\n }, [isCompactMode]);\n\n const value = useMemo(\n () => ({\n selectedMenuItemId,\n rootMenuItemId,\n items,\n verticalNavigationItems,\n hasVerticalNavigation,\n showHeaderSubMenu,\n isCompactMode,\n verticalNavigationMode,\n switchVerticalNavigationMode\n }),\n [\n selectedMenuItemId,\n rootMenuItemId,\n items,\n verticalNavigationItems,\n hasVerticalNavigation,\n showHeaderSubMenu,\n isCompactMode,\n verticalNavigationMode,\n switchVerticalNavigationMode\n ]\n );\n\n return (\n <NavigationContext.Provider value={value}>\n {children}\n </NavigationContext.Provider>\n );\n};\n\nexport default NavigationProvider;\n"],"names":["NavigationContext","createContext","selectedMenuItemId","undefined","rootMenuItemId","items","verticalNavigationItems","hasVerticalNavigation","showHeaderSubMenu","isCompactMode","verticalNavigationMode","switchVerticalNavigationMode","NavigationProvider","children","navigationMode","useHvAppShellConfig","useNavigationMenuItems","muiTheme","useTheme","useMediaQuery","breakpoints","down","setVerticalNavigationMode","useState","setShowHeaderSubMenu","useMemo","removeHrefFromMenuItemsWithChildren","itemsToReturn","findItemById","data","length","useEffect","some","item","useCallback","prevState","value","jsx","NavigationProvider$1"],"mappings":";;;;;;AAqCO,MAAMA,IAAoBC,EAAsC;AAAA,EACrEC,oBAAoBC;AAAAA,EACpBC,gBAAgBD;AAAAA,EAChBE,OAAO,CAAE;AAAA,EACTC,yBAAyB,CAAE;AAAA,EAC3BC,uBAAuB;AAAA,EACvBC,mBAAmB;AAAA,EACnBC,eAAe;AAAA,EACfC,wBAAwB;AAAA,EACxBC,8BAA8BA,MAAM;AAAA,EAClC;AAEJ,CAAC,GAEKC,IAAqBA,CAAC;AAAA,EAAEC,UAAAA;AAAkC,MAAM;AAC9D,QAAA;AAAA,IAAEC,gBAAAA;AAAAA,MAAmBC,EAAoB,GACzC;AAAA,IAAEV,OAAAA;AAAAA,IAAOH,oBAAAA;AAAAA,IAAoBE,gBAAAA;AAAAA,MACjCY,EAAuB,GACnBC,IAAWC,KAEXT,IAAgBU,EAAcF,EAASG,YAAYC,KAAK,IAAI,CAAC,GAC7D,CAACX,GAAwBY,CAAyB,IACtDC,EAAiCd,IAAgB,WAAW,UAAU,GAClE,CAACD,GAAmBgB,CAAoB,IAAID,EAAS,EAAK,GAE1DjB,IAA0BmB,EAAQ,MAAM;;AAC5C,QAAIhB;AACKJ,aAAAA;AAGT,QAAIS,MAAmB;AACrB,aAAOY,EAAoCrB,CAAK;AAGlD,UAAMsB,IACHvB,OAAkBwB,IAAAA,EAAavB,GAAOD,CAAc,MAAlCwB,gBAAAA,EAAqCC,SAAS;AAEnE,WAAOH,EAAoCC,CAAa;AAAA,KACvD,CAACtB,GAAOS,GAAgBV,GAAgBK,CAAa,CAAC,GAEnDF,IAAwBkB,EAAQ,MAChChB,IACK,KAGLK,MAAmB,aACd,KAGFR,KAA2BA,EAAwBwB,SAAS,GAClE,CAAChB,GAAgBR,GAAyBG,CAAa,CAAC;AAIzD,EAAAsB,EAAA,MAAMT,EAA0Bb,IAAgB,WAAW,UAAU,GACrE,CAACA,CAAa,CAChB,GAEAsB,EACE,MACEP,EACEV,MAAmB,cACjBT,EAAM2B,KAAKC,OAAQA,EAAKJ,QAAQI,EAAKJ,KAAKC,SAAS,CAAC,CACxD,GACF,CAAChB,GAAgBT,CAAK,CACxB;AAEMM,QAAAA,IAA+BuB,EAAY,MAAM;AACrDZ,IAAAA,EAA0B,CAACa,MACrB1B,IACK0B,MAAc,WAAW,aAAa,WAExCA,MAAc,cAAc,aAAa,WACjD;AAAA,EAAA,GACA,CAAC1B,CAAa,CAAC,GAEZ2B,IAAQX,EACZ,OAAO;AAAA,IACLvB,oBAAAA;AAAAA,IACAE,gBAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,mBAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,8BAAAA;AAAAA,EACF,IACA,CACET,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,CAA4B,CAEhC;AAEA,SACG,gBAAA0B,EAAArC,EAAkB,UAAlB,EAA2B,OAAAoC,GACzBvB,UAAAA,EACH,CAAA;AAEJ,GAEAyB,IAAe1B;"}
@@ -0,0 +1,10 @@
1
+ import { useContext as e } from "react";
2
+ import { BannerContext as o } from "../BannerProvider.js";
3
+ const n = () => {
4
+ const t = e(o);
5
+ return t === void 0 && console.error("BannerContext was used outside of its Provider"), t;
6
+ }, a = n;
7
+ export {
8
+ a as default
9
+ };
10
+ //# sourceMappingURL=useBannerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBannerContext.js","sources":["../../../../src/providers/hooks/useBannerContext.tsx"],"sourcesContent":["import { useContext } from \"react\";\n\nimport { BannerContext } from \"../BannerProvider\";\n\nconst useBannerContext = () => {\n const context = useContext(BannerContext);\n\n if (context === undefined) {\n console.error(\"BannerContext was used outside of its Provider\");\n }\n\n return context;\n};\n\nexport default useBannerContext;\n"],"names":["useBannerContext","context","useContext","BannerContext","undefined","console","error","useBannerContext$1"],"mappings":";;AAIA,MAAMA,IAAmBA,MAAM;AACvBC,QAAAA,IAAUC,EAAWC,CAAa;AAExC,SAAIF,MAAYG,UACdC,QAAQC,MAAM,gDAAgD,GAGzDL;AACT,GAEAM,IAAeP;"}
@@ -0,0 +1,10 @@
1
+ import { useContext as o } from "react";
2
+ import { LayoutContext as e } from "../LayoutProvider.js";
3
+ const r = () => {
4
+ const t = o(e);
5
+ return t === void 0 && console.error("LayoutContext was used outside of its Provider"), t;
6
+ }, u = r;
7
+ export {
8
+ u as default
9
+ };
10
+ //# sourceMappingURL=useLayoutContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLayoutContext.js","sources":["../../../../src/providers/hooks/useLayoutContext.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { LayoutContext } from \"../LayoutProvider\";\n\nconst useLayoutContext = () => {\n const context = useContext(LayoutContext);\n\n if (context === undefined) {\n console.error(\"LayoutContext was used outside of its Provider\");\n }\n\n return context;\n};\n\nexport default useLayoutContext;\n"],"names":["useLayoutContext","context","useContext","LayoutContext","undefined","console","error","useLayoutContext$1"],"mappings":";;AAGA,MAAMA,IAAmBA,MAAM;AACvBC,QAAAA,IAAUC,EAAWC,CAAa;AAExC,SAAIF,MAAYG,UACdC,QAAQC,MAAM,gDAAgD,GAGzDL;AACT,GAEAM,IAAeP;"}
@@ -0,0 +1,10 @@
1
+ import { useContext as o } from "react";
2
+ import { NavigationContext as e } from "../NavigationProvider.js";
3
+ const i = () => {
4
+ const t = o(e);
5
+ return t === void 0 && console.error("NavigationContext was used outside of its Provider"), t;
6
+ }, s = i;
7
+ export {
8
+ s as default
9
+ };
10
+ //# sourceMappingURL=useNavigationContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNavigationContext.js","sources":["../../../../src/providers/hooks/useNavigationContext.tsx"],"sourcesContent":["import { useContext } from \"react\";\n\nimport { NavigationContext } from \"../NavigationProvider\";\n\nconst useNavigationContext = () => {\n const context = useContext(NavigationContext);\n\n if (context === undefined) {\n console.error(\"NavigationContext was used outside of its Provider\");\n }\n\n return context;\n};\n\nexport default useNavigationContext;\n"],"names":["useNavigationContext","context","useContext","NavigationContext","undefined","console","error","useNavigationContext$1"],"mappings":";;AAIA,MAAMA,IAAuBA,MAAM;AAC3BC,QAAAA,IAAUC,EAAWC,CAAiB;AAE5C,SAAIF,MAAYG,UACdC,QAAQC,MAAM,oDAAoD,GAG7DL;AACT,GAEAM,IAAeP;"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@hitachivantara/app-shell-ui",
3
+ "version": "0.38.0",
4
+ "description": "AppShell Component",
5
+ "author": "Hitachi Vantara - Boba Fett Team",
6
+ "license": "Apache-2.0",
7
+ "type": "module",
8
+ "sideEffects": false,
9
+ "module": "dist/esm/index.js",
10
+ "typings": "./dist/dts/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/dts/index.d.ts",
14
+ "import": "./dist/esm/index.js",
15
+ "default": "./dist/esm/index.js"
16
+ },
17
+ "./package.json": "./package.json"
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "scripts": {
26
+ "build": "npm-run-all clean build:*",
27
+ "build:js": "tsc -p tsconfig.prod.json && vite build",
28
+ "clean": "npx rimraf ./dist *.tgz tsconfig.tsbuildinfo",
29
+ "dev": "vite build --watch",
30
+ "lint-check": "npx eslint --ext .js,.jsx,.ts,.tsx src --color",
31
+ "lint": "npm-run-all --parallel lint:*",
32
+ "lint:eslint": "npm run lint-check -- --cache --fix",
33
+ "lint:prettier": "npx prettier --write \"src/**/*.{html,css,js,jsx,ts,tsx}\"",
34
+ "test": "vitest run",
35
+ "coverage": "vitest run --coverage"
36
+ },
37
+ "dependencies": {
38
+ "@emotion/css": "^11.10.5",
39
+ "@emotion/react": "^11.10.5",
40
+ "@emotion/styled": "^11.10.5",
41
+ "@hitachivantara/app-shell-events": "0.1.0",
42
+ "@hitachivantara/app-shell-navigation": "0.1.0",
43
+ "@hitachivantara/app-shell-shared": "0.13.0",
44
+ "@hitachivantara/uikit-react-core": "^5.31.0",
45
+ "@hitachivantara/uikit-react-icons": "^5.6.8",
46
+ "@mui/material": "^5.12.3",
47
+ "i18next": "^23.7.7",
48
+ "i18next-browser-languagedetector": "^7.0.1",
49
+ "path-to-regexp": "^6.2.1",
50
+ "react-error-boundary": "^4.0.10",
51
+ "react-helmet-async": "^2.0.1",
52
+ "react-i18next": "^13.5.0",
53
+ "uuid": "^9.0.0"
54
+ },
55
+ "peerDependencies": {
56
+ "react": "^18.2.0",
57
+ "react-dom": "^18.2.0",
58
+ "react-router-dom": "^6.9.0"
59
+ },
60
+ "devDependencies": {
61
+ "@types/react": "^18.0.28",
62
+ "@types/uuid": "^9.0.1",
63
+ "@vitejs/plugin-react": "^4.2.0",
64
+ "npm-run-all": "^4.1.5",
65
+ "rimraf": "^5.0.5",
66
+ "typescript": "^5.3.2",
67
+ "vite": "^5.0.4",
68
+ "vite-plugin-dts": "^3.6.4",
69
+ "vite-tsconfig-paths": "^4.0.5"
70
+ },
71
+ "gitHead": "851f27979a0cd393a55e664d6c025839803ecfd4"
72
+ }