@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.
- package/dist/esm/components/AppShell/AppShell.js +8 -6
- package/dist/esm/components/AppShellProvider/AppShellProvider.js +80 -56
- package/dist/esm/components/AppShellRoutes/AppShellRoutes.js +74 -65
- package/dist/esm/components/AppShellViewProvider/AppShellViewProvider.js +13 -13
- package/dist/esm/components/CustomHooksInitializer/CustomHooksInitializer.js +9 -5
- package/dist/esm/components/GlobalStyles/GlobalStyles.js +8 -8
- package/dist/esm/components/GlobalStyles/index.js +2 -3
- package/dist/esm/components/IconUiKit/IconUiKit.js +10 -8
- package/dist/esm/components/IconUiKit/index.js +4 -5
- package/dist/esm/components/hoc/withClickAwayListener.js +19 -12
- package/dist/esm/components/hoc/withGlobalProvider.js +30 -25
- package/dist/esm/components/layout/Header/BrandLogo/BrandLogo.js +27 -16
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi.js +12 -0
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada.js +17 -0
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Pentaho.js +12 -0
- package/dist/esm/components/layout/Header/Header.js +54 -42
- package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/DynamicAction.js +22 -18
- package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/index.js +2 -3
- package/dist/esm/components/layout/Header/HeaderActions/HeaderActions.js +17 -14
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/AppSwitcherToggle.js +59 -40
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/index.js +2 -3
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/styles.js +6 -6
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/ColorModeSwitcher.js +19 -17
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/index.js +2 -3
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/HelpButton.js +23 -20
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/index.js +2 -3
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/InternalAction/InternalAction.js +23 -21
- package/dist/esm/components/layout/Header/HeaderActions/index.js +2 -3
- package/dist/esm/components/layout/Header/styles.js +7 -7
- package/dist/esm/components/layout/Loading/Loading.js +9 -7
- package/dist/esm/components/layout/Loading/styles.js +20 -8
- package/dist/esm/components/layout/Main/Main.js +23 -22
- package/dist/esm/components/layout/Main/styles.js +17 -8
- package/dist/esm/components/layout/VerticalNavigation/VerticalNavigation.js +67 -49
- package/dist/esm/components/layout/VerticalNavigation/styles.js +15 -16
- package/dist/esm/index.js +2 -3
- package/dist/esm/lib/hooks/useClearLocationState.js +14 -14
- package/dist/esm/lib/hooks/useCustomEventListener.js +19 -14
- package/dist/esm/lib/hooks/useLocalStorage.js +22 -16
- package/dist/esm/lib/hooks/useNavigationMenuItems.js +36 -28
- package/dist/esm/lib/hooks/useNotificationsEventListener.js +47 -37
- package/dist/esm/lib/hooks/useThemeEventListener.js +25 -20
- package/dist/esm/lib/i18n/index.js +23 -19
- package/dist/esm/lib/i18n/localization/en.json.js +18 -15
- package/dist/esm/lib/i18n/localization/pt.json.js +18 -15
- package/dist/esm/lib/utils/CombinedProviders.js +19 -14
- package/dist/esm/lib/utils/basePathUtils.js +4 -3
- package/dist/esm/lib/utils/documentUtil.js +10 -6
- package/dist/esm/lib/utils/navigationUtil.js +65 -38
- package/dist/esm/lib/utils/textUtil.js +4 -3
- package/dist/esm/pages/ErrorPage/ErrorPage.js +24 -24
- package/dist/esm/pages/ErrorPage/Footer/Footer.js +47 -31
- package/dist/esm/pages/ErrorPage/Footer/styles.js +8 -8
- package/dist/esm/pages/ErrorPage/styles.js +25 -15
- package/dist/esm/pages/GenericError/500.svg.js +2 -3
- package/dist/esm/pages/GenericError/GenericError.js +13 -13
- package/dist/esm/pages/LoadingPage/LoadingPage.js +12 -12
- package/dist/esm/pages/LoadingPage/index.js +2 -3
- package/dist/esm/pages/LoadingPage/styles.js +15 -9
- package/dist/esm/pages/NotFound/404.svg.js +2 -3
- package/dist/esm/pages/NotFound/NotFound.js +11 -11
- package/dist/esm/pages/NotFound/index.js +2 -3
- package/dist/esm/pages/Root/Root.js +22 -22
- package/dist/esm/providers/BannerProvider.js +67 -57
- package/dist/esm/providers/LayoutProvider.js +19 -16
- package/dist/esm/providers/NavigationProvider.js +87 -55
- package/dist/esm/providers/hooks/useBannerContext.js +9 -7
- package/dist/esm/providers/hooks/useLayoutContext.js +9 -7
- package/dist/esm/providers/hooks/useNavigationContext.js +9 -7
- package/package.json +5 -5
- package/dist/esm/components/AppShell/AppShell.js.map +0 -1
- package/dist/esm/components/AppShellProvider/AppShellProvider.js.map +0 -1
- package/dist/esm/components/AppShellRoutes/AppShellRoutes.js.map +0 -1
- package/dist/esm/components/AppShellViewProvider/AppShellViewProvider.js.map +0 -1
- package/dist/esm/components/CustomHooksInitializer/CustomHooksInitializer.js.map +0 -1
- package/dist/esm/components/GlobalStyles/GlobalStyles.js.map +0 -1
- package/dist/esm/components/GlobalStyles/index.js.map +0 -1
- package/dist/esm/components/IconUiKit/IconUiKit.js.map +0 -1
- package/dist/esm/components/IconUiKit/index.js.map +0 -1
- package/dist/esm/components/hoc/withClickAwayListener.js.map +0 -1
- package/dist/esm/components/hoc/withGlobalProvider.js.map +0 -1
- package/dist/esm/components/layout/Header/BrandLogo/BrandLogo.js.map +0 -1
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/Hitachi.js +0 -10
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/Hitachi.js.map +0 -1
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/styles.js +0 -28
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Hitachi/styles.js.map +0 -1
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/Lumada.js +0 -15
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/Lumada.js.map +0 -1
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/styles.js +0 -34
- package/dist/esm/components/layout/Header/BrandLogo/Logos/Lumada/styles.js.map +0 -1
- package/dist/esm/components/layout/Header/Header.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/DynamicAction.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/DynamicAction/index.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/HeaderActions.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/AppSwitcherToggle.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/index.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/AppSwitcherToggle/styles.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/ColorModeSwitcher.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/ColorModeSwitcher/index.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/HelpButton.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/HelpButton/index.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/InternalActions/InternalAction/InternalAction.js.map +0 -1
- package/dist/esm/components/layout/Header/HeaderActions/index.js.map +0 -1
- package/dist/esm/components/layout/Header/styles.js.map +0 -1
- package/dist/esm/components/layout/Loading/Loading.js.map +0 -1
- package/dist/esm/components/layout/Loading/styles.js.map +0 -1
- package/dist/esm/components/layout/Main/Main.js.map +0 -1
- package/dist/esm/components/layout/Main/styles.js.map +0 -1
- package/dist/esm/components/layout/VerticalNavigation/VerticalNavigation.js.map +0 -1
- package/dist/esm/components/layout/VerticalNavigation/styles.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/hooks/useClearLocationState.js.map +0 -1
- package/dist/esm/lib/hooks/useCustomEventListener.js.map +0 -1
- package/dist/esm/lib/hooks/useLocalStorage.js.map +0 -1
- package/dist/esm/lib/hooks/useNavigationMenuItems.js.map +0 -1
- package/dist/esm/lib/hooks/useNotificationsEventListener.js.map +0 -1
- package/dist/esm/lib/hooks/useThemeEventListener.js.map +0 -1
- package/dist/esm/lib/i18n/index.js.map +0 -1
- package/dist/esm/lib/i18n/localization/en.json.js.map +0 -1
- package/dist/esm/lib/i18n/localization/pt.json.js.map +0 -1
- package/dist/esm/lib/utils/CombinedProviders.js.map +0 -1
- package/dist/esm/lib/utils/basePathUtils.js.map +0 -1
- package/dist/esm/lib/utils/documentUtil.js.map +0 -1
- package/dist/esm/lib/utils/navigationUtil.js.map +0 -1
- package/dist/esm/lib/utils/textUtil.js.map +0 -1
- package/dist/esm/pages/ErrorPage/ErrorPage.js.map +0 -1
- package/dist/esm/pages/ErrorPage/Footer/Footer.js.map +0 -1
- package/dist/esm/pages/ErrorPage/Footer/styles.js.map +0 -1
- package/dist/esm/pages/ErrorPage/styles.js.map +0 -1
- package/dist/esm/pages/GenericError/500.svg.js.map +0 -1
- package/dist/esm/pages/GenericError/GenericError.js.map +0 -1
- package/dist/esm/pages/LoadingPage/LoadingPage.js.map +0 -1
- package/dist/esm/pages/LoadingPage/index.js.map +0 -1
- package/dist/esm/pages/LoadingPage/styles.js.map +0 -1
- package/dist/esm/pages/NotFound/404.svg.js.map +0 -1
- package/dist/esm/pages/NotFound/NotFound.js.map +0 -1
- package/dist/esm/pages/NotFound/index.js.map +0 -1
- package/dist/esm/pages/Root/Root.js.map +0 -1
- package/dist/esm/providers/BannerProvider.js.map +0 -1
- package/dist/esm/providers/LayoutProvider.js.map +0 -1
- package/dist/esm/providers/NavigationProvider.js.map +0 -1
- package/dist/esm/providers/hooks/useBannerContext.js.map +0 -1
- package/dist/esm/providers/hooks/useLayoutContext.js.map +0 -1
- package/dist/esm/providers/hooks/useNavigationContext.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../src/pages/LoadingPage/styles.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\r\n\r\nimport { theme } from \"@hitachivantara/uikit-react-core\";\r\n\r\ninterface StyledLoadingPageProps {\r\n showHeaderSubMenu?: boolean;\r\n isCompactMode?: boolean;\r\n}\r\n\r\n/**\r\n * Calculates the height of the image wrapper based on the header sub menu and compact mode.\r\n */\r\nconst calcHeight = ({\r\n showHeaderSubMenu,\r\n isCompactMode\r\n}: StyledLoadingPageProps) => {\r\n if (showHeaderSubMenu && !isCompactMode) {\r\n return `calc(100vh - (${theme.header.height} + ${theme.header.secondLevelHeight}px + ${theme.space.lg} + ${theme.space.lg}))`;\r\n }\r\n return `calc(100vh - (${theme.header.height} + ${theme.space.lg} + ${theme.space.lg}))`;\r\n};\r\n\r\nconst StyledLoadingPage = styled.div<StyledLoadingPageProps>`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n margin-top: ${theme.space.lg};\r\n height: ${(props: StyledLoadingPageProps) => calcHeight(props)};\r\n`;\r\n\r\nexport default StyledLoadingPage;\r\n"],"names":["calcHeight","showHeaderSubMenu","isCompactMode","theme","header","height","secondLevelHeight","space","lg","StyledLoadingPage","_styled","process","env","NODE_ENV","target","label","props","StyledLoadingPage$1"],"mappings":";;AAYA,MAAMA,IAAaA,CAAC;AAAA,EAClBC,mBAAAA;AAAAA,EACAC,eAAAA;AACsB,MAClBD,KAAqB,CAACC,IAChB,iBAAgBC,EAAMC,OAAOC,MAAO,MAAKF,EAAMC,OAAOE,iBAAkB,QAAOH,EAAMI,MAAMC,EAAG,MAAKL,EAAMI,MAAMC,EAAG,OAEpH,iBAAgBL,EAAMC,OAAOC,MAAO,MAAKF,EAAMI,MAAMC,EAAG,MAAKL,EAAMI,MAAMC,EAAG,MAGhFC,IAAiB,gBAAAC,EAAA,OAAAC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAIPZ,EAAAA,yDAAAA,EAAMI,MAAMC,IAChB,YAAA,CAACQ,MAAkChB,EAAWgB,CAAK,GAAC,OAAAL,QAAAC,IAAAC,aAC/D,eAAA,KAAA,0vDAAA,GAEDI,IAAeR;"}
|
|
@@ -1 +0,0 @@
|
|
|
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;"}
|
|
@@ -1 +0,0 @@
|
|
|
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(undefined, { keyPrefix: \"errors.notFound\" });\n\n return (\n <ErrorPage\n code={t(\"code\")}\n title={t(\"title\")}\n backgroundLabel={t(\"image_description\")}\n background={`url(${DogeSpace})`}\n />\n );\n};\n\nexport default NotFound;\n"],"names":["NotFound","t","useTranslation","undefined","keyPrefix","ErrorPage","DogeSpace","NotFound$1"],"mappings":";;;;AAKA,MAAMA,IAAWA,MAAM;AACf,QAAA;AAAA,IAAEC,GAAAA;AAAAA,EAAAA,IAAMC,EAAeC,QAAW;AAAA,IAAEC,WAAW;AAAA,EAAA,CAAmB;AAExE,2BACGC,GACC,EAAA,MAAMJ,EAAE,MAAM,GACd,OAAOA,EAAE,OAAO,GAChB,iBAAiBA,EAAE,mBAAmB,GACtC,YAAa,OAAMK,CAAU,IAC7B,CAAA;AAEN,GAEAC,IAAeP;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","sources":["../../../../src/pages/Root/Root.tsx"],"sourcesContent":["import { Suspense } from \"react\";\nimport { Outlet } from \"react-router-dom\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport GenericError from \"../GenericError\";\nimport CustomHooksInitializer from \"../../components/CustomHooksInitializer\";\nimport Header from \"../../components/layout/Header\";\nimport Main from \"../../components/layout/Main\";\nimport CombinedProviders from \"../../lib/utils/CombinedProviders\";\nimport BannerProvider from \"../../providers/BannerProvider\";\nimport NavigationProvider from \"../../providers/NavigationProvider\";\nimport LoadingPage from \"../LoadingPage\";\n\ninterface RootProps {\n providers?: React.ComponentType<{\n children: React.ReactNode;\n }>[];\n}\n\nconst Root = ({ providers }: RootProps) => (\n <ErrorBoundary fallback={<GenericError fullPage />}>\n <CombinedProviders providers={providers}>\n <NavigationProvider>\n <BannerProvider>\n <CustomHooksInitializer />\n <>\n <Header />\n <Main>\n <Suspense fallback={<LoadingPage />}>\n <Outlet />\n </Suspense>\n </Main>\n </>\n </BannerProvider>\n </NavigationProvider>\n </CombinedProviders>\n </ErrorBoundary>\n);\n\nexport default Root;\n"],"names":["Root","providers","jsx","ErrorBoundary","GenericError","CombinedProviders","NavigationProvider","BannerProvider","CustomHooksInitializer","jsxs","Fragment","Header","Main","Suspense","LoadingPage","Outlet","RootRoute"],"mappings":";;;;;;;;;;;;AAkBA,MAAMA,IAAOA,CAAC;AAAA,EAAEC,WAAAA;AAAqB,MAClC,gBAAAC,EAAAC,GAAA,EAAc,UAAU,gBAAAD,EAACE,KAAa,UAAQ,OAC7C,UAAA,gBAAAF,EAACG,GAAkB,EAAA,WAAAJ,GACjB,UAAC,gBAAAC,EAAAI,GAAA,EACC,4BAACC,GACC,EAAA,UAAA;AAAA,EAAA,gBAAAL,EAACM,GAAsB,EAAA;AAAA,EAErB,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAR,EAACS,GAAM,EAAA;AAAA,IACP,gBAAAT,EAACU,GACC,EAAA,UAAA,gBAAAV,EAACW,GAAS,EAAA,UAAW,gBAAAX,EAAAY,GAAA,CAAW,CAAA,GAC9B,UAAA,gBAAAZ,EAACa,GAAM,CAAA,CAAA,EACT,CAAA,GACF;AAAA,EAAA,GACF;AAAA,EACF,CAAA,EACF,CAAA,GACF,EACF,CAAA,GAGFC,IAAehB;"}
|
|
@@ -1 +0,0 @@
|
|
|
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 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(undefined, {\n keyPrefix: \"notifications.banner\"\n });\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(${theme.header.height} + ${theme.header.secondLevelHeight} + ${theme.space.sm})`\n : `calc(${theme.header.height} + ${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 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 offset={0}\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\": t(\"close\") }\n }}\n />\n ))}\n {children}\n </BannerContext.Provider>\n );\n};\n\nexport default BannerProvider;\n"],"names":["BannerContext","createContext","show","dismiss","BannerProvider","children","t","useTranslation","undefined","keyPrefix","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","theme","header","height","secondLevelHeight","space","sm","left","width","transform","minWidth","zIndex","zIndices","process","env","NODE_ENV","jsxs","jsx","HvBanner","anchorOriginTopCenter","message","actions","actionsCallback","actionProps","BannerProvider$1"],"mappings":";;;;;;;;AAuBO,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,EAAAA,IAAMC,EAAeC,QAAW;AAAA,IACtCC,WAAW;AAAA,EAAA,CACZ,GACK;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,GAE7ChB,IAAOA,CAACiB,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,GAGjDjB,IAAUA,CAACkB,MAAe;AAC9BJ,IAAAA,EAAWO,OAAeA,EAAYC,OAAOC,OAAUA,EAAOL,OAAOA,CAAE,CAAC;AAAA,EAAA,GAGpEM,IAAQC,EACZ,OAAO;AAAA,IACL1B,MAAAA;AAAAA,IACAC,SAAAA;AAAAA,EAAAA,IAEF,CACF,CAAA;AAEA0B,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,EAAMC,OAAOC,MAAO,MAAKF,EAAMC,OAAOE,iBAAkB,MAAKH,EAAMI,MAAMC,EAAG,MACnF,QAAOL,EAAMC,OAAOC,MAAO,MAAKF,EAAMI,MAAMC,EAAG;AAAA,IACtDC,MAAO,QAAOrC,CAAwB,QAAO+B,EAAMI,MAAMC,EAAG;AAAA,IAC5DE,OAAQ,gBAAetC,CAAwB,QAAO+B,EAAMI,MAAMC,EAAG,OAAML,EAAMI,MAAMC,EAAG;AAAA,IAC1FG,WAAW;AAAA,IACXC,UAAU;AAAA,IACVC,QAAQV,EAAMW,SAAS7B;AAAAA,EAAAA,GACxB8B,QAAAC,IAAAC,aAAA,eAAA,KAAA,kBAAAF,QAAAC,IAAAC,aAAA,eAAA,KAAA,q1KAAA,GACH,CAAC/C,GAAeD,GAAmBG,CAAuB,CAC5D;AAEA,SACG,gBAAA8C,EAAA3D,EAAc,UAAd,EAAuB,OAAA2B,GACrBX,UAAAA;AAAAA,IAAAA,EAAQgB,IAAIN,CAAAA,MACV,gBAAAkC,EAAAC,GAAA,EACC,SAAS;AAAA,MACPC,uBAAuBrB;AAAAA,IAEzB,GAAA,IAAIf,EAAOL,IAEX,QAAQ,GACR,MAAI,IACJ,SAAS,MAAMlB,EAAQuB,EAAOL,EAAE,GAChC,SAASK,EAAOH,SAChB,OAAOG,EAAOqC,SACd,UAAQ,IACR,SAASrC,EAAOsC,SAChB,iBAAiBtC,EAAOuC,iBACxB,oBAAoB;AAAA,MAClBC,aAAa;AAAA,QAAE,cAAc5D,EAAE,OAAO;AAAA,MAAE;AAAA,IAAA,KAVrCoB,EAAOL,GAaf;AAAA,IACAhB;AAAAA,EACH,EAAA,CAAA;AAEJ,GAEA8D,IAAe/D;"}
|
|
@@ -1 +0,0 @@
|
|
|
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;"}
|
|
@@ -1 +0,0 @@
|
|
|
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\";\nimport useLocalStorage from \"../lib/hooks/useLocalStorage\";\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 visible in the header */\n items: NavigationMenuItem[];\n /** Items visible in the vertical navigation */\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 { value: storedExpanded, setStoredValue: setStoreExpanded } =\n useLocalStorage(\"NAV_EXPANDED\");\n const [isExpanded, setIsExpanded] = useState(\n storedExpanded == null ? true : storedExpanded === \"true\"\n );\n const [isClosed, setIsClosed] = useState(isCompactMode);\n const [showHeaderSubMenu, setShowHeaderSubMenu] = useState(false);\n\n const verticalNavigationMode = useMemo<VerticalNavigationMode>(() => {\n if (isCompactMode) {\n return isClosed ? \"CLOSED\" : \"EXPANDED\";\n }\n return isExpanded ? \"EXPANDED\" : \"COLLAPSED\";\n }, [isClosed, isCompactMode, isExpanded]);\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 // sync isMinimized with the stored value\n useEffect(() => {\n setStoreExpanded(String(isExpanded));\n }, [isExpanded, setStoreExpanded]);\n\n // sync isCompactMode media query\n useEffect(() => {\n setIsClosed(isCompactMode);\n }, [isCompactMode]);\n\n useEffect(() => {\n setShowHeaderSubMenu(\n navigationMode === \"ONLY_TOP\" &&\n items.some(item => item.data && item.data.length > 0)\n );\n }, [navigationMode, items]);\n\n const switchVerticalNavigationMode = useCallback(() => {\n if (isCompactMode) {\n setIsClosed(prevState => !prevState);\n } else {\n setIsExpanded(prevState => !prevState);\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","value","storedExpanded","setStoredValue","setStoreExpanded","useLocalStorage","isExpanded","setIsExpanded","useState","isClosed","setIsClosed","setShowHeaderSubMenu","useMemo","removeHrefFromMenuItemsWithChildren","itemsToReturn","findItemById","data","length","useEffect","String","some","item","useCallback","prevState","jsx","NavigationProvider$1"],"mappings":";;;;;;;AAwCO,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;AAAA,IAAEC,OAAOC;AAAAA,IAAgBC,gBAAgBC;AAAAA,EAAAA,IAC7CC,EAAgB,cAAc,GAC1B,CAACC,GAAYC,CAAa,IAAIC,EAClCN,KAAkB,OAAO,KAAOA,MAAmB,MACrD,GACM,CAACO,GAAUC,CAAW,IAAIF,EAASpB,CAAa,GAChD,CAACD,GAAmBwB,CAAoB,IAAIH,EAAS,EAAK,GAE1DnB,IAAyBuB,EAAgC,MACzDxB,IACKqB,IAAW,WAAW,aAExBH,IAAa,aAAa,aAChC,CAACG,GAAUrB,GAAekB,CAAU,CAAC,GAElCrB,IAA0B2B,EAAQ,MAAM;;AAC5C,QAAIxB;AACKJ,aAAAA;AAGT,QAAIS,MAAmB;AACrB,aAAOoB,EAAoC7B,CAAK;AAGlD,UAAM8B,IACH/B,OAAkBgC,IAAAA,EAAa/B,GAAOD,CAAc,MAAlCgC,gBAAAA,EAAqCC,SAAS;AAEnE,WAAOH,EAAoCC,CAAa;AAAA,KACvD,CAAC9B,GAAOS,GAAgBV,GAAgBK,CAAa,CAAC,GAEnDF,IAAwB0B,EAAQ,MAChCxB,IACK,KAGLK,MAAmB,aACd,KAGFR,KAA2BA,EAAwBgC,SAAS,GAClE,CAACxB,GAAgBR,GAAyBG,CAAa,CAAC;AAG3D8B,EAAAA,EAAU,MAAM;AACGC,IAAAA,EAAAA,OAAOb,CAAU,CAAC;AAAA,EAAA,GAClC,CAACA,GAAYF,CAAgB,CAAC,GAGjCc,EAAU,MAAM;AACdR,IAAAA,EAAYtB,CAAa;AAAA,EAAA,GACxB,CAACA,CAAa,CAAC,GAElB8B,EAAU,MAAM;AAEZzB,IAAAA,EAAAA,MAAmB,cACjBT,EAAMoC,KAAKC,CAAAA,MAAQA,EAAKL,QAAQK,EAAKL,KAAKC,SAAS,CAAC,CACxD;AAAA,EAAA,GACC,CAACxB,GAAgBT,CAAK,CAAC;AAEpBM,QAAAA,IAA+BgC,EAAY,MAAM;AACrD,IAAIlC,IACUmC,EAAAA,CAAAA,MAAa,CAACA,CAAS,IAErBA,EAAAA,CAAAA,MAAa,CAACA,CAAS;AAAA,EACvC,GACC,CAACnC,CAAa,CAAC,GAEZa,IAAQW,EACZ,OAAO;AAAA,IACL/B,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,gBAAAkC,EAAA7C,EAAkB,UAAlB,EAA2B,OAAAsB,GACzBT,UAAAA,EACH,CAAA;AAEJ,GAEAiC,IAAelC;"}
|
|
@@ -1 +0,0 @@
|
|
|
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"],"mappings":";;AAIA,MAAMA,IAAmBA,MAAM;AACvBC,QAAAA,IAAUC,EAAWC,CAAa;AAExC,SAAIF,MAAYG,UACdC,QAAQC,MAAM,gDAAgD,GAGzDL;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
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"],"mappings":";;AAGA,MAAMA,IAAmBA,MAAM;AACvBC,QAAAA,IAAUC,EAAWC,CAAa;AAExC,SAAIF,MAAYG,UACdC,QAAQC,MAAM,gDAAgD,GAGzDL;AACT;"}
|
|
@@ -1 +0,0 @@
|
|
|
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"],"mappings":";;AAIA,MAAMA,IAAuBA,MAAM;AAC3BC,QAAAA,IAAUC,EAAWC,CAAiB;AAE5C,SAAIF,MAAYG,UACdC,QAAQC,MAAM,oDAAoD,GAG7DL;AACT;"}
|