@dnanpm/styleguide 3.1.0 → 3.2.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.
- package/README.md +86 -86
- package/build/cjs/assets/{bundle-8de31ca3.css → bundle-f9dcdcfa.css} +129 -129
- package/build/cjs/components/Accordion/Accordion.d.ts +2 -1
- package/build/cjs/components/Accordion/Accordion.js +4 -4
- package/build/cjs/components/AccordionItem/AccordionItem.d.ts +4 -3
- package/build/cjs/components/AccordionItem/AccordionItem.js +2 -2
- package/build/cjs/components/Box/Box.d.ts +2 -1
- package/build/cjs/components/Box/Box.js +1 -1
- package/build/cjs/components/Button/Button.d.ts +4 -3
- package/build/cjs/components/Button/ButtonArrow.d.ts +2 -1
- package/build/cjs/components/Button/ButtonArrow.js +1 -3
- package/build/cjs/components/Checkbox/Checkbox.js +1 -1
- package/build/cjs/components/Chip/Chip.d.ts +3 -2
- package/build/cjs/components/DateTimePicker/DateTimePicker.d.ts +102 -0
- package/build/cjs/components/DateTimePicker/DateTimePicker.js +282 -0
- package/build/cjs/components/Divider/Divider.d.ts +2 -1
- package/build/cjs/components/DnaLogo/DnaLogo.d.ts +2 -1
- package/build/cjs/components/Drawer/Drawer.d.ts +2 -1
- package/build/cjs/components/EmptyState/EmptyState.d.ts +2 -1
- package/build/cjs/components/Floater/Floater.d.ts +2 -1
- package/build/cjs/components/Footer/Components/FooterComponents.d.ts +2 -67
- package/build/cjs/components/Footer/Components/FooterComponents.js +17 -67
- package/build/cjs/components/Footer/Footer.d.ts +4 -13
- package/build/cjs/components/Footer/Footer.js +2 -5
- package/build/cjs/components/Footer/context/FooterContext.d.ts +5 -4
- package/build/cjs/components/Footer/context/FooterContext.js +1 -5
- package/build/cjs/components/Icon/Icon.d.ts +3 -2
- package/build/cjs/components/Icons/hlLink.d.ts +4 -0
- package/build/cjs/components/Icons/hlLink.js +19 -0
- package/build/cjs/components/Icons/index.d.ts +1 -0
- package/build/cjs/components/Icons/index.js +2 -0
- package/build/cjs/components/Input/Input.d.ts +28 -11
- package/build/cjs/components/Input/Input.js +56 -29
- package/build/cjs/components/Label/Label.d.ts +2 -1
- package/build/cjs/components/LabelText/LabelText.d.ts +2 -1
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.d.ts +6 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +70 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.d.ts +3 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +207 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.d.ts +4 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +40 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +10 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +44 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.d.ts +7 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +24 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +193 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +120 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +169 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +68 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +7 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +27 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.d.ts +3 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +196 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.d.ts +6 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +24 -0
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +36 -0
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +322 -0
- package/build/cjs/components/MainHeaderNavigation/context/MobileMenuContext.d.ts +6 -0
- package/build/cjs/components/MainHeaderNavigation/context/MobileMenuContext.js +11 -0
- package/build/cjs/components/MainHeaderNavigation/context/NavContext.d.ts +29 -0
- package/build/cjs/components/MainHeaderNavigation/context/NavContext.js +56 -0
- package/build/cjs/components/MainHeaderNavigation/globalNavStyles.d.ts +1482 -0
- package/build/cjs/components/MainHeaderNavigation/globalNavStyles.js +189 -0
- package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.d.ts +2 -2
- package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.js +33 -33
- package/build/cjs/components/MainNavigation/ChildComponents/HeaderNavigationElements.d.ts +2 -2
- package/build/cjs/components/MainNavigation/ChildComponents/HeaderNavigationElements.js +1 -1
- package/build/cjs/components/MainNavigation/ChildComponents/LanguageSelector.d.ts +1 -1
- package/build/cjs/components/MainNavigation/ChildComponents/LanguageSelector.js +11 -14
- package/build/cjs/components/MainNavigation/ChildComponents/LinkModifier.d.ts +1 -1
- package/build/cjs/components/MainNavigation/ChildComponents/LinkModifier.js +9 -9
- package/build/cjs/components/MainNavigation/ChildComponents/LoginTooltip.js +3 -5
- package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenu.d.ts +5 -4
- package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +10 -10
- package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +4 -2
- package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +2 -2
- package/build/cjs/components/MainNavigation/ChildComponents/MinicartTooltip.js +4 -6
- package/build/cjs/components/MainNavigation/ChildComponents/MobileMenu.d.ts +1 -1
- package/build/cjs/components/MainNavigation/ChildComponents/MobileMenu.js +21 -17
- package/build/cjs/components/MainNavigation/ChildComponents/PageSearch.js +3 -5
- package/build/cjs/components/MainNavigation/ChildComponents/Ribbon.d.ts +2 -2
- package/build/cjs/components/MainNavigation/MainNavigation.d.ts +5 -5
- package/build/cjs/components/MainNavigation/MainNavigation.js +100 -74
- package/build/cjs/components/MainNavigation/context/MobileMenuContext.d.ts +3 -3
- package/build/cjs/components/MainNavigation/context/MobileMenuContext.js +1 -5
- package/build/cjs/components/MainNavigation/context/NavContext.d.ts +14 -15
- package/build/cjs/components/MainNavigation/context/NavContext.js +6 -5
- package/build/cjs/components/MainNavigation/globalNavStyles.d.ts +4 -4
- package/build/cjs/components/Modal/Modal.d.ts +2 -1
- package/build/cjs/components/Notification/Notification.d.ts +3 -2
- package/build/cjs/components/NotificationBadge/NotificationBadge.d.ts +2 -1
- package/build/cjs/components/Pill/Pill.d.ts +3 -2
- package/build/cjs/components/ProgressIndicator/ProgressIndicator.d.ts +2 -1
- package/build/cjs/components/RadioButton/RadioButton.d.ts +2 -1
- package/build/cjs/components/ReadMore/ReadMore.d.ts +4 -4
- package/build/cjs/components/Search/Search.d.ts +7 -6
- package/build/cjs/components/Search/Search.js +1 -1
- package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -2
- package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.js +23 -29
- package/build/cjs/components/Selectbox/Selectbox.js +2 -2
- package/build/cjs/components/Selectbox/__tests__/Selectbox.spec.d.ts +1 -0
- package/build/cjs/components/Tabs/Tab.d.ts +5 -3
- package/build/cjs/components/Tabs/Tab.js +1 -1
- package/build/cjs/components/Tabs/Tabs.d.ts +18 -19
- package/build/cjs/components/Tabs/Tabs.js +3 -3
- package/build/cjs/components/Textarea/Textarea.d.ts +6 -5
- package/build/cjs/components/Toaster/Toaster.d.ts +3 -2
- package/build/cjs/components/Tooltip/Tooltip.d.ts +2 -1
- package/build/cjs/components/Tooltip/Tooltip.js +1 -1
- package/build/cjs/components/TooltipMenu/ChildComponents/TooltipMenuExportedStyles.d.ts +2 -2
- package/build/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -1
- package/build/cjs/components/index.d.ts +3 -1
- package/build/cjs/hooks/useCloseOutsideOrElementClicked.js +3 -2
- package/build/cjs/hooks/useDebounce.d.ts +2 -0
- package/build/cjs/hooks/useDebounce.js +23 -0
- package/build/cjs/hooks/useDocHeight.d.ts +2 -1
- package/build/cjs/hooks/useDocHeight.js +5 -25
- package/build/cjs/hooks/useResizeObserver.d.ts +6 -0
- package/build/cjs/hooks/{useElementDimensions.js → useResizeObserver.js} +5 -5
- package/build/cjs/hooks/useScrollPosition.d.ts +2 -3
- package/build/cjs/hooks/useScrollPosition.js +8 -14
- package/build/cjs/index.js +6 -0
- package/build/cjs/themes/globalStyles.d.ts +3 -3
- package/build/cjs/themes/styled.d.ts +7 -7
- package/build/cjs/themes/theme.d.ts +1 -1
- package/build/cjs/themes/themeComponents/navigation.d.ts +7 -0
- package/build/cjs/themes/themeComponents/navigation.js +13 -1
- package/build/cjs/utils/common.d.ts +2 -1
- package/build/cjs/utils/common.js +1 -1
- package/build/cjs/utils/createStyled.d.ts +163 -2
- package/build/cjs/utils/createStyled.js +2 -2
- package/build/cjs/utils/styledUtils.d.ts +1 -1
- package/build/es/assets/{bundle-8de31ca3.css → bundle-f9dcdcfa.css} +129 -129
- package/build/es/components/Accordion/Accordion.d.ts +2 -1
- package/build/es/components/Accordion/Accordion.js +5 -5
- package/build/es/components/AccordionItem/AccordionItem.d.ts +4 -3
- package/build/es/components/AccordionItem/AccordionItem.js +1 -1
- package/build/es/components/Box/Box.d.ts +2 -1
- package/build/es/components/Box/Box.js +1 -1
- package/build/es/components/Button/Button.d.ts +4 -3
- package/build/es/components/Button/ButtonArrow.d.ts +2 -1
- package/build/es/components/Button/ButtonArrow.js +2 -4
- package/build/es/components/Checkbox/Checkbox.js +1 -1
- package/build/es/components/Chip/Chip.d.ts +3 -2
- package/build/es/components/DateTimePicker/DateTimePicker.d.ts +102 -0
- package/build/es/components/DateTimePicker/DateTimePicker.js +272 -0
- package/build/es/components/Divider/Divider.d.ts +2 -1
- package/build/es/components/DnaLogo/DnaLogo.d.ts +2 -1
- package/build/es/components/Drawer/Drawer.d.ts +2 -1
- package/build/es/components/EmptyState/EmptyState.d.ts +2 -1
- package/build/es/components/Floater/Floater.d.ts +2 -1
- package/build/es/components/Footer/Components/FooterComponents.d.ts +2 -67
- package/build/es/components/Footer/Components/FooterComponents.js +18 -68
- package/build/es/components/Footer/Footer.d.ts +4 -13
- package/build/es/components/Footer/Footer.js +3 -6
- package/build/es/components/Footer/context/FooterContext.d.ts +5 -4
- package/build/es/components/Footer/context/FooterContext.js +2 -2
- package/build/es/components/Icon/Icon.d.ts +3 -2
- package/build/es/components/Icons/hlLink.d.ts +4 -0
- package/build/es/components/Icons/hlLink.js +11 -0
- package/build/es/components/Icons/index.d.ts +1 -0
- package/build/es/components/Icons/index.js +1 -0
- package/build/es/components/Input/Input.d.ts +28 -11
- package/build/es/components/Input/Input.js +56 -29
- package/build/es/components/Label/Label.d.ts +2 -1
- package/build/es/components/LabelText/LabelText.d.ts +2 -1
- package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.d.ts +6 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +62 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.d.ts +3 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +199 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.d.ts +4 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +32 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +10 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +35 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.d.ts +7 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +16 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +193 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +111 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +169 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +63 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +7 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +19 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.d.ts +3 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +188 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.d.ts +6 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.js +16 -0
- package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +36 -0
- package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.js +314 -0
- package/build/es/components/MainHeaderNavigation/context/MobileMenuContext.d.ts +6 -0
- package/build/es/components/MainHeaderNavigation/context/MobileMenuContext.js +7 -0
- package/build/es/components/MainHeaderNavigation/context/NavContext.d.ts +29 -0
- package/build/es/components/MainHeaderNavigation/context/NavContext.js +52 -0
- package/build/es/components/MainHeaderNavigation/globalNavStyles.d.ts +1482 -0
- package/build/es/components/MainHeaderNavigation/globalNavStyles.js +177 -0
- package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.d.ts +2 -2
- package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.js +33 -33
- package/build/es/components/MainNavigation/ChildComponents/HeaderNavigationElements.d.ts +2 -2
- package/build/es/components/MainNavigation/ChildComponents/HeaderNavigationElements.js +1 -1
- package/build/es/components/MainNavigation/ChildComponents/LanguageSelector.d.ts +1 -1
- package/build/es/components/MainNavigation/ChildComponents/LanguageSelector.js +12 -15
- package/build/es/components/MainNavigation/ChildComponents/LinkModifier.d.ts +1 -1
- package/build/es/components/MainNavigation/ChildComponents/LinkModifier.js +9 -9
- package/build/es/components/MainNavigation/ChildComponents/LoginTooltip.js +4 -6
- package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenu.d.ts +5 -4
- package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +11 -11
- package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +4 -2
- package/build/es/components/MainNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +2 -3
- package/build/es/components/MainNavigation/ChildComponents/MinicartTooltip.js +5 -7
- package/build/es/components/MainNavigation/ChildComponents/MobileMenu.d.ts +1 -1
- package/build/es/components/MainNavigation/ChildComponents/MobileMenu.js +22 -18
- package/build/es/components/MainNavigation/ChildComponents/PageSearch.js +4 -6
- package/build/es/components/MainNavigation/ChildComponents/Ribbon.d.ts +2 -2
- package/build/es/components/MainNavigation/MainNavigation.d.ts +5 -5
- package/build/es/components/MainNavigation/MainNavigation.js +101 -75
- package/build/es/components/MainNavigation/context/MobileMenuContext.d.ts +3 -3
- package/build/es/components/MainNavigation/context/MobileMenuContext.js +2 -2
- package/build/es/components/MainNavigation/context/NavContext.d.ts +14 -15
- package/build/es/components/MainNavigation/context/NavContext.js +7 -2
- package/build/es/components/MainNavigation/globalNavStyles.d.ts +4 -4
- package/build/es/components/Modal/Modal.d.ts +2 -1
- package/build/es/components/Notification/Notification.d.ts +3 -2
- package/build/es/components/NotificationBadge/NotificationBadge.d.ts +2 -1
- package/build/es/components/Pill/Pill.d.ts +3 -2
- package/build/es/components/ProgressIndicator/ProgressIndicator.d.ts +2 -1
- package/build/es/components/RadioButton/RadioButton.d.ts +2 -1
- package/build/es/components/ReadMore/ReadMore.d.ts +4 -4
- package/build/es/components/Search/Search.d.ts +7 -6
- package/build/es/components/Search/Search.js +2 -2
- package/build/es/components/SecondaryNavigation/SecondaryNavigation.d.ts +19 -2
- package/build/es/components/SecondaryNavigation/SecondaryNavigation.js +23 -29
- package/build/es/components/Selectbox/Selectbox.js +2 -2
- package/build/es/components/Selectbox/__tests__/Selectbox.spec.d.ts +1 -0
- package/build/es/components/Tabs/Tab.d.ts +5 -3
- package/build/es/components/Tabs/Tab.js +2 -2
- package/build/es/components/Tabs/Tabs.d.ts +18 -19
- package/build/es/components/Tabs/Tabs.js +4 -4
- package/build/es/components/Textarea/Textarea.d.ts +6 -5
- package/build/es/components/Toaster/Toaster.d.ts +3 -2
- package/build/es/components/Tooltip/Tooltip.d.ts +2 -1
- package/build/es/components/Tooltip/Tooltip.js +1 -1
- package/build/es/components/TooltipMenu/ChildComponents/TooltipMenuExportedStyles.d.ts +2 -2
- package/build/es/components/TooltipMenu/TooltipMenu.d.ts +2 -1
- package/build/es/components/index.d.ts +3 -1
- package/build/es/hooks/useCloseOutsideOrElementClicked.js +3 -2
- package/build/es/hooks/useDebounce.d.ts +2 -0
- package/build/es/hooks/useDebounce.js +19 -0
- package/build/es/hooks/useDocHeight.d.ts +2 -1
- package/build/es/hooks/useDocHeight.js +6 -6
- package/build/es/hooks/useResizeObserver.d.ts +6 -0
- package/build/es/hooks/{useElementDimensions.js → useResizeObserver.js} +5 -5
- package/build/es/hooks/useScrollPosition.d.ts +2 -3
- package/build/es/hooks/useScrollPosition.js +9 -11
- package/build/es/index.js +3 -0
- package/build/es/themes/globalStyles.d.ts +3 -3
- package/build/es/themes/styled.d.ts +7 -7
- package/build/es/themes/theme.d.ts +1 -1
- package/build/es/themes/themeComponents/navigation.d.ts +7 -0
- package/build/es/themes/themeComponents/navigation.js +9 -2
- package/build/es/utils/common.d.ts +2 -1
- package/build/es/utils/common.js +1 -1
- package/build/es/utils/createStyled.d.ts +163 -2
- package/build/es/utils/createStyled.js +2 -2
- package/build/es/utils/styledUtils.d.ts +1 -1
- package/package.json +22 -11
- package/build/cjs/hooks/modifyBodyClass.d.ts +0 -1
- package/build/cjs/hooks/modifyBodyClass.js +0 -20
- package/build/cjs/hooks/useDebounceFunc.d.ts +0 -1
- package/build/cjs/hooks/useDebounceFunc.js +0 -39
- package/build/cjs/hooks/useElementDimensions.d.ts +0 -5
- package/build/es/hooks/modifyBodyClass.d.ts +0 -1
- package/build/es/hooks/modifyBodyClass.js +0 -16
- package/build/es/hooks/useDebounceFunc.d.ts +0 -1
- package/build/es/hooks/useDebounceFunc.js +0 -15
- package/build/es/hooks/useElementDimensions.d.ts +0 -5
|
@@ -22,7 +22,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
22
22
|
|
|
23
23
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
24
24
|
|
|
25
|
-
// @ts-nocheck
|
|
26
25
|
const MobileMenuWrapper = styled["default"].div `
|
|
27
26
|
width: ${100 * navigation.menuLevelsAmount}%;
|
|
28
27
|
`;
|
|
@@ -101,7 +100,7 @@ const MobileMenu = styled["default"].div `
|
|
|
101
100
|
}
|
|
102
101
|
`;
|
|
103
102
|
const MenuItemBackLink = ({ currentLevel }) => {
|
|
104
|
-
const { handleNavMenuClick, lang
|
|
103
|
+
const { handleNavMenuClick, lang, menuLevel: { scrollPosition }, level1Items, level2Items, getBackLink, } = React.useContext(NavContext["default"]);
|
|
105
104
|
const levels = {
|
|
106
105
|
level1Items,
|
|
107
106
|
level2Items,
|
|
@@ -115,19 +114,21 @@ const MenuItemBackLink = ({ currentLevel }) => {
|
|
|
115
114
|
const tabNavigationDisabled = scrollPosition !== currentLevel - 1;
|
|
116
115
|
const backLink = getBackLink(menuElements, currentLevel - 1);
|
|
117
116
|
return (React__default["default"].createElement(globalNavStyles.MenuItem, { key: `back-${backLink.id}`, "data-testid": `mobile-nav-menu-backlink-level-${currentLevel}` },
|
|
118
|
-
React__default["default"].createElement(MenuLinkBackLink, { role: "
|
|
117
|
+
React__default["default"].createElement(MenuLinkBackLink, { role: "menuitem", as: "button", onClick: mobileMenuBackClick, tabIndex: tabNavigationDisabled ? -1 : undefined },
|
|
119
118
|
React__default["default"].createElement(Icon["default"], { icon: hlChevronLeft["default"], size: "1rem" }),
|
|
120
|
-
backLink.titles[
|
|
119
|
+
backLink.titles[lang])));
|
|
121
120
|
};
|
|
122
121
|
const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
|
|
123
|
-
|
|
122
|
+
var _a;
|
|
123
|
+
const { handleNavMenuClick, menuLevel: { scrollPosition }, lang, currentUrl, } = React.useContext(NavContext["default"]);
|
|
124
124
|
const { mobileMenuRef } = React.useContext(MobileMenuContext["default"]);
|
|
125
|
-
const hasChildren = menuItem
|
|
125
|
+
const hasChildren = (_a = menuItem === null || menuItem === void 0 ? void 0 : menuItem.pages) === null || _a === void 0 ? void 0 : _a.length;
|
|
126
126
|
const indexLevel = currentLevel - 1;
|
|
127
127
|
const tabNavigationDisabled = () => scrollPosition !== indexLevel;
|
|
128
|
-
const menuUrl = menuItem.urls[
|
|
128
|
+
const menuUrl = menuItem.urls[lang] || '';
|
|
129
129
|
const mobileMenuClick = (element) => (e) => {
|
|
130
|
-
|
|
130
|
+
var _a;
|
|
131
|
+
if (typeof ((_a = mobileMenuRef === null || mobileMenuRef === void 0 ? void 0 : mobileMenuRef.current) === null || _a === void 0 ? void 0 : _a.scroll) === 'function') {
|
|
131
132
|
mobileMenuRef.current.scroll({
|
|
132
133
|
top: 0,
|
|
133
134
|
left: 0,
|
|
@@ -140,7 +141,7 @@ const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
|
|
|
140
141
|
if (hasChildren && currentLevel < 3) {
|
|
141
142
|
return (React__default["default"].createElement(globalNavStyles.MenuItem, { key: menuItem.id, "aria-haspopup": "true", "data-testid": `mobile-menu-level-${currentLevel}-link-${itemIndex + 1}`, isActive: LinkModifier.isSelected(currentUrl, menuUrl) },
|
|
142
143
|
React__default["default"].createElement(globalNavStyles.MenuLink, { as: "button", onClick: mobileMenuClick(menuItem), role: "menuitem", tabIndex: tabNavigationDisabled() ? -1 : undefined },
|
|
143
|
-
menuItem.titles[
|
|
144
|
+
menuItem.titles[lang],
|
|
144
145
|
React__default["default"].createElement(Icon["default"], { icon: hlChevronRight["default"], size: "1rem" }))));
|
|
145
146
|
}
|
|
146
147
|
return (React__default["default"].createElement(globalNavStyles.MenuItem, { key: menuItem.id, role: "menuitem", "data-testid": `mobile-menu-level-${currentLevel}-link-${itemIndex + 1}`, isActive: LinkModifier.isSelected(currentUrl, menuUrl, true) },
|
|
@@ -156,9 +157,9 @@ const SubMenuMobile = ({ currentLevel, menuItem }) => {
|
|
|
156
157
|
navElements.map((subMenuItem, index) => (React__default["default"].createElement(CreateSubMenuItem, { menuItem: subMenuItem, currentLevel: currentLevel, key: subMenuItem.id, itemIndex: index })))));
|
|
157
158
|
};
|
|
158
159
|
const NavigationMenuMobile = () => {
|
|
159
|
-
const { items
|
|
160
|
-
const { mainNavigation } =
|
|
161
|
-
if (!mainNavigation.pages.length) {
|
|
160
|
+
const { items, menuLevel, level1Items, level2Items } = React.useContext(NavContext["default"]);
|
|
161
|
+
const { mainNavigation } = items;
|
|
162
|
+
if (!(mainNavigation === null || mainNavigation === void 0 ? void 0 : mainNavigation.pages.length)) {
|
|
162
163
|
return null;
|
|
163
164
|
}
|
|
164
165
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
@@ -173,19 +174,22 @@ const NavigationMenuMobile = () => {
|
|
|
173
174
|
};
|
|
174
175
|
const RenderMobileMenu = () => {
|
|
175
176
|
const { menuLevel, isMobileMenuOpen } = React.useContext(NavContext["default"]);
|
|
176
|
-
const mobileMenuRef =
|
|
177
|
+
const mobileMenuRef = React.useRef(null);
|
|
177
178
|
const slidingMenuAnimation = reactSpring.useSpring({
|
|
178
179
|
transform: `translateX(${(menuLevel.scrollPosition / navigation.menuLevelsAmount) * -100}%)`,
|
|
179
180
|
});
|
|
180
|
-
const mobileMenuContext = {
|
|
181
|
+
const mobileMenuContext = React.useMemo(() => ({
|
|
181
182
|
mobileMenuRef,
|
|
182
|
-
};
|
|
183
|
-
|
|
183
|
+
}), [mobileMenuRef]);
|
|
184
|
+
if (!isMobileMenuOpen) {
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
return (React__default["default"].createElement(MobileMenuContainer, { ref: mobileMenuRef },
|
|
184
188
|
React__default["default"].createElement(MobileMenuContext["default"].Provider, { value: mobileMenuContext },
|
|
185
189
|
React__default["default"].createElement(MobileMenu, null,
|
|
186
190
|
React__default["default"].createElement(MobileMenuWrapper, null,
|
|
187
191
|
React__default["default"].createElement(reactSpring.animated.div, { style: slidingMenuAnimation },
|
|
188
|
-
React__default["default"].createElement(NavigationMenuMobile, null)))))))
|
|
192
|
+
React__default["default"].createElement(NavigationMenuMobile, null)))))));
|
|
189
193
|
};
|
|
190
194
|
|
|
191
195
|
exports["default"] = RenderMobileMenu;
|
|
@@ -8,7 +8,6 @@ require('tslib');
|
|
|
8
8
|
var hlMagnifyingGlass = require('../../Icons/hlMagnifyingGlass.js');
|
|
9
9
|
var NavContext = require('../context/NavContext.js');
|
|
10
10
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
11
|
-
var MainNavTooltipMenuExportedStyles = require('./MainNavTooltipMenuExportedStyles.js');
|
|
12
11
|
|
|
13
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
13
|
|
|
@@ -16,11 +15,10 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
16
15
|
|
|
17
16
|
const PageSearch = ({ searchLabel }) => {
|
|
18
17
|
const globalStateString = 'search';
|
|
19
|
-
const { navZIndex, searchComponent: SearchComponent
|
|
18
|
+
const { navZIndex, searchComponent: SearchComponent } = React.useContext(NavContext["default"]);
|
|
20
19
|
return (React__default["default"].createElement(MainNavTooltipMenu["default"], { zIndex: navZIndex + 1, tooltipRight: "0", contentComponent: SearchComponent, contentWidth: "100%", globalStateString: globalStateString, fullWidthDesktop: true, closeWhenTagClicked: ['a'] },
|
|
21
|
-
React__default["default"].createElement(
|
|
22
|
-
|
|
23
|
-
React__default["default"].createElement("span", null, searchLabel))));
|
|
20
|
+
React__default["default"].createElement(Icon["default"], { icon: hlMagnifyingGlass["default"], size: "2rem" }),
|
|
21
|
+
React__default["default"].createElement("span", null, searchLabel)));
|
|
24
22
|
};
|
|
25
23
|
|
|
26
24
|
exports["default"] = PageSearch;
|
|
@@ -5,9 +5,9 @@ export interface RibbonDataProps {
|
|
|
5
5
|
ribbonIcon: string;
|
|
6
6
|
ribbonTexts: LangProps;
|
|
7
7
|
}
|
|
8
|
-
interface
|
|
8
|
+
interface Props {
|
|
9
9
|
ribbonData: RibbonDataProps[];
|
|
10
10
|
lang?: string;
|
|
11
11
|
}
|
|
12
|
-
declare const Ribbon: ({ ribbonData, lang }:
|
|
12
|
+
declare const Ribbon: ({ ribbonData, lang }: Props) => React.JSX.Element;
|
|
13
13
|
export default Ribbon;
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import type { RibbonDataProps } from './ChildComponents/Ribbon';
|
|
3
4
|
import type { GlobalNavItems } from './types/globalNavProps';
|
|
4
5
|
export interface MainNavigationProps {
|
|
5
6
|
/** Allows to pass a custom className */
|
|
6
7
|
className?: string;
|
|
7
|
-
children?: React.ReactNode;
|
|
8
8
|
items?: GlobalNavItems;
|
|
9
9
|
language?: string;
|
|
10
10
|
zIndex?: number;
|
|
11
11
|
search?: boolean;
|
|
12
12
|
searchText?: string;
|
|
13
|
-
searchComponent?:
|
|
13
|
+
searchComponent?: ReactNode | boolean;
|
|
14
14
|
minicart?: boolean;
|
|
15
15
|
minicartText?: string;
|
|
16
16
|
minicartAmount?: number;
|
|
17
|
-
minicartComponent?:
|
|
17
|
+
minicartComponent?: ReactNode | boolean;
|
|
18
18
|
showMinicart?: boolean;
|
|
19
19
|
showLoginTooltip?: boolean;
|
|
20
20
|
login?: boolean;
|
|
21
21
|
loginText?: string;
|
|
22
|
-
loginComponent?:
|
|
22
|
+
loginComponent?: ReactNode | boolean;
|
|
23
23
|
isLoggedIn?: boolean;
|
|
24
24
|
collapseSize?: number;
|
|
25
25
|
languageSelector?: boolean;
|
|
26
|
-
nextJSLinkComponent:
|
|
26
|
+
nextJSLinkComponent: ReactNode | boolean;
|
|
27
27
|
ribbon?: boolean;
|
|
28
28
|
ribbonData?: RibbonDataProps[];
|
|
29
29
|
currentUrl?: string;
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var ramda = require('ramda');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var modifyBodyClass = require('../../hooks/modifyBodyClass.js');
|
|
8
7
|
var useScrollPosition = require('../../hooks/useScrollPosition.js');
|
|
9
8
|
var useWindowSize = require('../../hooks/useWindowSize.js');
|
|
10
9
|
var styled = require('../../themes/styled.js');
|
|
@@ -28,7 +27,7 @@ const GlobalStyle = styled.createGlobalStyle `
|
|
|
28
27
|
`;
|
|
29
28
|
// detect common touch screen devices
|
|
30
29
|
const isIosDevice = () => {
|
|
31
|
-
const validate =
|
|
30
|
+
const validate = /iPad|iPhone|iPod|iPad Simulator|iPhone Simulator/i;
|
|
32
31
|
if (typeof navigator !== 'undefined' && typeof window !== 'undefined') {
|
|
33
32
|
return (validate.test(navigator.userAgent) &&
|
|
34
33
|
!window.MSStream);
|
|
@@ -51,7 +50,7 @@ const fadeIn = styled.keyframes `
|
|
|
51
50
|
}
|
|
52
51
|
`;
|
|
53
52
|
const preventBodyScroll = () => {
|
|
54
|
-
const scrollY = window
|
|
53
|
+
const { scrollY } = window;
|
|
55
54
|
document.body.style.position = 'fixed';
|
|
56
55
|
document.body.style.top = `-${scrollY}px`;
|
|
57
56
|
};
|
|
@@ -62,7 +61,7 @@ const resumeBodyScroll = () => {
|
|
|
62
61
|
// if the call to close overlay is done multiple times, scroll only the first time
|
|
63
62
|
if (scrollY) {
|
|
64
63
|
setTimeout(() => {
|
|
65
|
-
window.scrollTo(0, parseInt(scrollY,
|
|
64
|
+
window.scrollTo(0, parseInt(scrollY, 10) * -1);
|
|
66
65
|
});
|
|
67
66
|
}
|
|
68
67
|
};
|
|
@@ -120,7 +119,6 @@ const initiateScrollToHeader = (componentRef) => {
|
|
|
120
119
|
};
|
|
121
120
|
/** @visibleName Main Navigation */
|
|
122
121
|
const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSelector = false, search = true, searchText = 'Haku', searchComponent = false, minicart = true, minicartText = 'Ostoskori', minicartComponent = false, minicartAmount = 0, showMinicart = false, showLoginTooltip = false, login = true, loginText = 'Kirjaudu', loginComponent, isLoggedIn = false, collapseSize = 767, nextJSLinkComponent = false, ribbon = true, ribbonData, className, currentUrl = '', notificationText = '', }) => {
|
|
123
|
-
var _a, _b;
|
|
124
122
|
const { isMobile } = useWindowSize["default"](collapseSize);
|
|
125
123
|
const props = {
|
|
126
124
|
items,
|
|
@@ -147,14 +145,14 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
|
|
|
147
145
|
};
|
|
148
146
|
const navigationEl = React.useRef(null);
|
|
149
147
|
const key = ramda.prop('id');
|
|
150
|
-
const level1 = (_b = (_a = items.mainNavigation) === null || _a === void 0 ? void 0 : _a.pages) !== null && _b !== void 0 ? _b : [];
|
|
151
148
|
// Index & memoize menu levels
|
|
149
|
+
const level1 = React.useMemo(() => { var _a, _b; return (_b = (_a = items.mainNavigation) === null || _a === void 0 ? void 0 : _a.pages) !== null && _b !== void 0 ? _b : []; }, [items.mainNavigation]);
|
|
152
150
|
const level1Items = React.useMemo(() => ramda.indexBy(key, level1), [level1, key]);
|
|
153
151
|
const level2 = React.useMemo(() => level1.map(item => ramda.indexBy(key, item.pages)), [level1, key]);
|
|
154
152
|
const level2Items = Object.assign({}, ...level2);
|
|
155
153
|
// All states to for handling menus
|
|
156
154
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false);
|
|
157
|
-
const [menuLevel, setMenuLevel] =
|
|
155
|
+
const [menuLevel, setMenuLevel] = React.useState({
|
|
158
156
|
level1: null,
|
|
159
157
|
animate1: true,
|
|
160
158
|
level2: null,
|
|
@@ -165,26 +163,11 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
|
|
|
165
163
|
hideOnScroll: false,
|
|
166
164
|
});
|
|
167
165
|
const [lang] = React.useState(language);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
case 'level1':
|
|
172
|
-
clickedItself = newValue === menuLevel.level1;
|
|
173
|
-
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1: !clickedItself ? newValue : null, animate1: !clickedItself, level2: null, animate2: true }));
|
|
174
|
-
break;
|
|
175
|
-
case 'level2':
|
|
176
|
-
clickedItself = newValue === menuLevel.level2;
|
|
177
|
-
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2: newValue !== menuLevel.level2 ? newValue : null, animate1: false, animate2: !clickedItself }));
|
|
178
|
-
break;
|
|
179
|
-
case 'level1Mobile':
|
|
180
|
-
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1Mobile: newValue || menuLevel.level1Mobile, scrollPosition: newValue ? 1 : 0 }));
|
|
181
|
-
break;
|
|
182
|
-
case 'level2Mobile':
|
|
183
|
-
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2Mobile: newValue || menuLevel.level2Mobile, scrollPosition: newValue ? 2 : 1 }));
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
166
|
+
// As scroll position cannot be always retained, close mobile menu when orientation changes
|
|
167
|
+
const initRotation = () => {
|
|
168
|
+
setIsMobileMenuOpen(false);
|
|
186
169
|
};
|
|
187
|
-
|
|
170
|
+
React.useEffect(() => {
|
|
188
171
|
if (iosDevice && isMobileMenuOpen) {
|
|
189
172
|
window.addEventListener('orientationchange', initRotation, false);
|
|
190
173
|
preventBodyScroll();
|
|
@@ -198,83 +181,126 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
|
|
|
198
181
|
resumeBodyScroll();
|
|
199
182
|
};
|
|
200
183
|
}, [isMobileMenuOpen]);
|
|
201
|
-
|
|
202
|
-
const initRotation = () => {
|
|
203
|
-
setIsMobileMenuOpen(false);
|
|
204
|
-
};
|
|
205
|
-
const handleToggleClick = () => {
|
|
206
|
-
resetMenuEvents();
|
|
207
|
-
initiateScrollToHeader(navigationEl);
|
|
208
|
-
setIsMobileMenuOpen(!isMobileMenuOpen);
|
|
209
|
-
};
|
|
210
|
-
const initialTooltipItems = {
|
|
184
|
+
const [tooltipItems, setTooltipItems] = React.useState(React.useMemo(() => ({
|
|
211
185
|
minicart: false,
|
|
212
186
|
login: false,
|
|
213
187
|
search: false,
|
|
214
|
-
};
|
|
215
|
-
const [tooltipItems, setTooltipItems] = React.useState(initialTooltipItems);
|
|
188
|
+
}), []));
|
|
216
189
|
const tooltipMenuActive = tooltipItems.minicart || tooltipItems.login || tooltipItems.search;
|
|
217
190
|
const freezeOverflow = isMobileMenuOpen || (tooltipMenuActive && isMobile);
|
|
218
191
|
const isPageOverlay = tooltipMenuActive || menuLevel.level1 || menuLevel.level2;
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
192
|
+
React.useEffect(() => {
|
|
193
|
+
const bodyClasses = ['overflow-shown', 'overflow-hidden'];
|
|
194
|
+
document.body.classList.remove(...bodyClasses);
|
|
195
|
+
document.body.classList.add(bodyClasses[Number(Boolean(freezeOverflow))]);
|
|
196
|
+
}, [freezeOverflow]);
|
|
197
|
+
const navigationContext = React.useMemo(() => {
|
|
198
|
+
const handleNavMenuClick = (newValue, updatedLevel) => {
|
|
199
|
+
let clickedItself = false;
|
|
200
|
+
switch (updatedLevel) {
|
|
201
|
+
case 'level1':
|
|
202
|
+
clickedItself = newValue === menuLevel.level1;
|
|
203
|
+
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1: !clickedItself ? newValue : null, animate1: !clickedItself, level2: null, animate2: true }));
|
|
204
|
+
break;
|
|
205
|
+
case 'level2':
|
|
206
|
+
clickedItself = newValue === menuLevel.level2;
|
|
207
|
+
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2: newValue !== menuLevel.level2 ? newValue : null, animate1: false, animate2: !clickedItself }));
|
|
208
|
+
break;
|
|
209
|
+
case 'level1Mobile':
|
|
210
|
+
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level1Mobile: newValue || menuLevel.level1Mobile, scrollPosition: newValue ? 1 : 0 }));
|
|
211
|
+
break;
|
|
212
|
+
case 'level2Mobile':
|
|
213
|
+
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { level2Mobile: newValue || menuLevel.level2Mobile, scrollPosition: newValue ? 2 : 1 }));
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const resetMenuEvents = () => {
|
|
218
|
+
setMenuLevel({
|
|
219
|
+
level2: null,
|
|
220
|
+
animate2: true,
|
|
221
|
+
level1: null,
|
|
222
|
+
animate1: true,
|
|
223
|
+
level1Mobile: null,
|
|
224
|
+
level2Mobile: null,
|
|
225
|
+
scrollPosition: 0,
|
|
226
|
+
hideOnScroll: false,
|
|
227
|
+
});
|
|
228
|
+
if (isMobileMenuOpen) {
|
|
229
|
+
setIsMobileMenuOpen(false);
|
|
230
|
+
}
|
|
231
|
+
setTooltipItems({
|
|
232
|
+
minicart: false,
|
|
233
|
+
login: false,
|
|
234
|
+
search: false,
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
const handleToggleClick = () => {
|
|
238
|
+
resetMenuEvents();
|
|
239
|
+
initiateScrollToHeader(navigationEl);
|
|
240
|
+
setIsMobileMenuOpen(!isMobileMenuOpen);
|
|
241
|
+
};
|
|
242
|
+
const getBackLink = (menuElements, i) => {
|
|
243
|
+
const idValue = menuLevel[`level${i}Mobile`];
|
|
244
|
+
return menuElements[idValue];
|
|
245
|
+
};
|
|
246
|
+
// Resets menu states when menu content alters between mobile and desktop
|
|
247
|
+
const menuChanged = previousValue !== isMobile;
|
|
248
|
+
if (menuChanged) {
|
|
249
|
+
resetMenuEvents();
|
|
250
|
+
previousValue = isMobile;
|
|
233
251
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
252
|
+
return {
|
|
253
|
+
lang,
|
|
254
|
+
navZIndex: zIndex,
|
|
255
|
+
menuLevel,
|
|
256
|
+
handleNavMenuClick,
|
|
257
|
+
getBackLink,
|
|
258
|
+
isMobileMenu: isMobile,
|
|
259
|
+
items,
|
|
260
|
+
level1Items,
|
|
261
|
+
level2Items,
|
|
262
|
+
resetMenuEvents,
|
|
263
|
+
handleToggleClick,
|
|
264
|
+
isMobileMenuOpen,
|
|
265
|
+
nextJSLinkComponent,
|
|
266
|
+
loginComponent,
|
|
267
|
+
isLoggedIn,
|
|
268
|
+
collapseSize,
|
|
269
|
+
tooltipItems,
|
|
270
|
+
setTooltipItems,
|
|
271
|
+
minicartComponent,
|
|
272
|
+
showMinicart,
|
|
273
|
+
showLoginTooltip,
|
|
274
|
+
searchComponent,
|
|
275
|
+
currentUrl,
|
|
276
|
+
};
|
|
277
|
+
}, [
|
|
278
|
+
isMobile,
|
|
241
279
|
lang,
|
|
242
|
-
|
|
280
|
+
zIndex,
|
|
243
281
|
menuLevel,
|
|
244
|
-
handleNavMenuClick,
|
|
245
|
-
getBackLink,
|
|
246
|
-
isMobileMenu: isMobile,
|
|
247
282
|
items,
|
|
248
283
|
level1Items,
|
|
249
284
|
level2Items,
|
|
250
|
-
resetMenuEvents,
|
|
251
|
-
handleToggleClick,
|
|
252
285
|
isMobileMenuOpen,
|
|
253
286
|
nextJSLinkComponent,
|
|
254
287
|
loginComponent,
|
|
255
288
|
isLoggedIn,
|
|
256
289
|
collapseSize,
|
|
257
290
|
tooltipItems,
|
|
258
|
-
setTooltipItems,
|
|
259
291
|
minicartComponent,
|
|
260
292
|
showMinicart,
|
|
261
293
|
showLoginTooltip,
|
|
262
294
|
searchComponent,
|
|
263
295
|
currentUrl,
|
|
264
|
-
|
|
265
|
-
// Resets menu states when menu content alters between mobile and desktop
|
|
266
|
-
const menuChanged = previousValue !== isMobile;
|
|
267
|
-
if (menuChanged) {
|
|
268
|
-
resetMenuEvents();
|
|
269
|
-
previousValue = isMobile;
|
|
270
|
-
}
|
|
296
|
+
]);
|
|
271
297
|
useScrollPosition["default"](({ prevPos, currPos }) => {
|
|
272
298
|
const overThreshold = checkThreshold(prevPos.y, currPos.y);
|
|
273
299
|
const isShow = currPos.y < prevPos.y;
|
|
274
300
|
if (isShow !== menuLevel.hideOnScroll && overThreshold && !menuLevel.level1) {
|
|
275
301
|
setMenuLevel(Object.assign(Object.assign({}, menuLevel), { animate1: false, animate2: false, hideOnScroll: isShow }));
|
|
276
302
|
}
|
|
277
|
-
},
|
|
303
|
+
}, undefined, false, 200);
|
|
278
304
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
279
305
|
isPageOverlay && React__default["default"].createElement(PageOverlay, { "data-testid": "navigation-overlay", navZIndex: zIndex }),
|
|
280
306
|
React__default["default"].createElement(GlobalNavigationContainer, { className: className, ref: navigationEl, collapseSize: collapseSize, menuLevel: menuLevel, "data-testid": "main-navigation", navZIndex: zIndex, tooltipMenuActive: tooltipMenuActive },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
2
|
interface MobileMenuContextProps {
|
|
3
|
-
mobileMenuRef: HTMLElement | null;
|
|
3
|
+
mobileMenuRef: RefObject<HTMLElement> | null;
|
|
4
4
|
}
|
|
5
|
-
declare const MobileMenuContext:
|
|
5
|
+
declare const MobileMenuContext: import("react").Context<MobileMenuContextProps>;
|
|
6
6
|
export default MobileMenuContext;
|
|
@@ -4,11 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
|
-
|
|
11
|
-
const MobileMenuContext = React__default["default"].createContext({
|
|
7
|
+
const MobileMenuContext = React.createContext({
|
|
12
8
|
mobileMenuRef: null,
|
|
13
9
|
});
|
|
14
10
|
|
|
@@ -1,30 +1,29 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { GlobalNavItems, MenuLevelItem, MenuStates } from '../types/globalNavProps';
|
|
1
|
+
import type { Dispatch, ReactNode, SetStateAction } from 'react';
|
|
2
|
+
import type { GlobalNavItems, MenuLevelItem, MenuStates, MenuTooltipItems, MobileMenuLevel } from '../types/globalNavProps';
|
|
3
3
|
export interface NavContextProps {
|
|
4
4
|
collapseSize: number;
|
|
5
5
|
currentUrl: string;
|
|
6
|
-
getBackLink: (menuElements:
|
|
7
|
-
[key: string]: MenuLevelItem;
|
|
8
|
-
}, i: number) => MenuLevelItem;
|
|
6
|
+
getBackLink: (menuElements: MenuLevelItem[], i: number) => MenuLevelItem;
|
|
9
7
|
handleNavMenuClick: (id: string | null, level: string) => void;
|
|
10
8
|
handleToggleClick: () => void;
|
|
11
9
|
isLoggedIn: boolean;
|
|
12
10
|
isMobileMenu: boolean;
|
|
13
11
|
isMobileMenuOpen: boolean;
|
|
14
12
|
items: GlobalNavItems;
|
|
13
|
+
level1Items: MobileMenuLevel;
|
|
14
|
+
level2Items: MobileMenuLevel;
|
|
15
15
|
lang: string;
|
|
16
|
-
loginComponent?:
|
|
16
|
+
loginComponent?: ReactNode | boolean | undefined;
|
|
17
17
|
menuLevel: MenuStates;
|
|
18
|
-
minicartComponent?:
|
|
18
|
+
minicartComponent?: ReactNode | boolean | undefined;
|
|
19
19
|
navZIndex: number;
|
|
20
|
-
nextJSLinkComponent:
|
|
20
|
+
nextJSLinkComponent: ReactNode | boolean;
|
|
21
21
|
resetMenuEvents: () => void;
|
|
22
|
-
searchComponent?:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
22
|
+
searchComponent?: ReactNode | boolean | undefined;
|
|
23
|
+
setTooltipItems: Dispatch<SetStateAction<MenuTooltipItems>>;
|
|
24
|
+
showLoginTooltip: boolean;
|
|
25
|
+
showMinicart: boolean;
|
|
26
|
+
tooltipItems: MenuTooltipItems;
|
|
28
27
|
}
|
|
29
|
-
declare const NavContext:
|
|
28
|
+
declare const NavContext: import("react").Context<NavContextProps>;
|
|
30
29
|
export default NavContext;
|
|
@@ -4,11 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
|
-
|
|
11
|
-
const NavContext = React__default["default"].createContext({
|
|
7
|
+
const NavContext = React.createContext({
|
|
12
8
|
collapseSize: 767,
|
|
13
9
|
currentUrl: '',
|
|
14
10
|
getBackLink: () => ({ id: '', pages: [], titles: {}, urls: {} }),
|
|
@@ -19,6 +15,8 @@ const NavContext = React__default["default"].createContext({
|
|
|
19
15
|
isMobileMenuOpen: false,
|
|
20
16
|
items: {},
|
|
21
17
|
lang: 'fi',
|
|
18
|
+
level1Items: { level1: { id: '', pages: [], titles: {}, urls: {} } },
|
|
19
|
+
level2Items: { level2: { id: '', pages: [], titles: {}, urls: {} } },
|
|
22
20
|
loginComponent: false,
|
|
23
21
|
menuLevel: {
|
|
24
22
|
level1: null,
|
|
@@ -35,6 +33,9 @@ const NavContext = React__default["default"].createContext({
|
|
|
35
33
|
nextJSLinkComponent: false,
|
|
36
34
|
resetMenuEvents: () => { },
|
|
37
35
|
searchComponent: false,
|
|
36
|
+
setTooltipItems: () => { },
|
|
37
|
+
showLoginTooltip: false,
|
|
38
|
+
showMinicart: true,
|
|
38
39
|
tooltipItems: {
|
|
39
40
|
minicart: false,
|
|
40
41
|
login: false,
|
|
@@ -152,7 +152,7 @@ export declare const MenuItem: import("styled-components").StyledComponent<"li",
|
|
|
152
152
|
h1: string;
|
|
153
153
|
h2: string;
|
|
154
154
|
};
|
|
155
|
-
media: Record<string | number, (l: TemplateStringsArray, ...p:
|
|
155
|
+
media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
|
|
156
156
|
radius: {
|
|
157
157
|
default: string;
|
|
158
158
|
s: string;
|
|
@@ -317,7 +317,7 @@ export declare const MenuLink: import("styled-components").StyledComponent<"a",
|
|
|
317
317
|
h1: string;
|
|
318
318
|
h2: string;
|
|
319
319
|
};
|
|
320
|
-
media: Record<string | number, (l: TemplateStringsArray, ...p:
|
|
320
|
+
media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
|
|
321
321
|
radius: {
|
|
322
322
|
default: string;
|
|
323
323
|
s: string;
|
|
@@ -482,7 +482,7 @@ export declare const MenuLinkWithChildren: import("styled-components").StyledCom
|
|
|
482
482
|
h1: string;
|
|
483
483
|
h2: string;
|
|
484
484
|
};
|
|
485
|
-
media: Record<string | number, (l: TemplateStringsArray, ...p:
|
|
485
|
+
media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
|
|
486
486
|
radius: {
|
|
487
487
|
default: string;
|
|
488
488
|
s: string;
|
|
@@ -648,7 +648,7 @@ export declare const MenuList: import("styled-components").StyledComponent<"ul",
|
|
|
648
648
|
h1: string;
|
|
649
649
|
h2: string;
|
|
650
650
|
};
|
|
651
|
-
media: Record<string | number, (l: TemplateStringsArray, ...p:
|
|
651
|
+
media: Record<string | number, (l: TemplateStringsArray, ...p: (string | number)[]) => string>;
|
|
652
652
|
radius: {
|
|
653
653
|
default: string;
|
|
654
654
|
s: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import type { Props as ReactModalProps } from 'react-modal';
|
|
3
4
|
interface Props {
|
|
@@ -16,7 +17,7 @@ interface Props {
|
|
|
16
17
|
/**
|
|
17
18
|
* Content of the component
|
|
18
19
|
*/
|
|
19
|
-
children?:
|
|
20
|
+
children?: ReactNode;
|
|
20
21
|
/**
|
|
21
22
|
* Allows to hide application from assistive screenreaders and other assistive technologies while the modal is open
|
|
22
23
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MouseEvent, ReactNode } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
type NotificationType = 'info' | 'success' | 'warning' | 'error';
|
|
3
4
|
interface Props {
|
|
@@ -15,7 +16,7 @@ interface Props {
|
|
|
15
16
|
/**
|
|
16
17
|
* Content of the component
|
|
17
18
|
*/
|
|
18
|
-
children?:
|
|
19
|
+
children?: ReactNode;
|
|
19
20
|
/**
|
|
20
21
|
* Allows to show and hide close button
|
|
21
22
|
*
|
|
@@ -25,7 +26,7 @@ interface Props {
|
|
|
25
26
|
/**
|
|
26
27
|
* On close button click callback
|
|
27
28
|
*/
|
|
28
|
-
onClickCloseButton?: (e:
|
|
29
|
+
onClickCloseButton?: (e: MouseEvent<HTMLElement>) => void;
|
|
29
30
|
/**
|
|
30
31
|
* Allows to dismiss the notification programmatically
|
|
31
32
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
interface Props {
|
|
3
4
|
/**
|
|
@@ -7,7 +8,7 @@ interface Props {
|
|
|
7
8
|
/**
|
|
8
9
|
* Content of the component
|
|
9
10
|
*/
|
|
10
|
-
children?:
|
|
11
|
+
children?: ReactNode;
|
|
11
12
|
/**
|
|
12
13
|
* Allows to change CSS property `position`
|
|
13
14
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ChangeEvent, ReactNode } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
type PillType = 'none' | 'checkbox' | 'radio';
|
|
3
4
|
type Position = 'auto' | 'left' | 'right' | 'middle';
|
|
@@ -29,7 +30,7 @@ interface Props {
|
|
|
29
30
|
/**
|
|
30
31
|
* On checkbox/radiobutton change callback
|
|
31
32
|
*/
|
|
32
|
-
onChange?: (e:
|
|
33
|
+
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
33
34
|
/**
|
|
34
35
|
* Allows to set position of component relative to other content and adds appropriate margins
|
|
35
36
|
*
|
|
@@ -62,7 +63,7 @@ interface Props {
|
|
|
62
63
|
/**
|
|
63
64
|
* Content of the component
|
|
64
65
|
*/
|
|
65
|
-
children?:
|
|
66
|
+
children?: ReactNode;
|
|
66
67
|
/**
|
|
67
68
|
* Allows to pass testid string for testing purposes
|
|
68
69
|
*/
|