@dnanpm/styleguide 3.9.0 → 3.9.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/build/cjs/components/Accordion/Accordion.js +8 -3
- package/build/cjs/components/AccordionItem/AccordionItem.js +19 -14
- package/build/cjs/components/AmountSelector/AmountSelector.js +8 -4
- package/build/cjs/components/Box/Box.js +7 -2
- package/build/cjs/components/Button/Button.js +8 -3
- package/build/cjs/components/ButtonArrow/ButtonArrow.js +8 -3
- package/build/cjs/components/ButtonCard/ButtonCard.js +21 -16
- package/build/cjs/components/ButtonClose/ButtonClose.js +5 -1
- package/build/cjs/components/ButtonIcon/ButtonIcon.js +9 -4
- package/build/cjs/components/ButtonPrimary/ButtonPrimary.js +5 -1
- package/build/cjs/components/ButtonRound/ButtonRound.js +7 -2
- package/build/cjs/components/ButtonSecondary/ButtonSecondary.js +5 -1
- package/build/cjs/components/Carousel/Carousel.js +18 -14
- package/build/cjs/components/Checkbox/Checkbox.js +10 -6
- package/build/cjs/components/Chip/Chip.js +7 -2
- package/build/cjs/components/DateTimePicker/DateTimePicker.js +16 -10
- package/build/cjs/components/Divider/Divider.js +7 -2
- package/build/cjs/components/DnaLogo/DnaLogo.js +16 -12
- package/build/cjs/components/Drawer/Drawer.js +22 -17
- package/build/cjs/components/EmptyState/EmptyState.js +8 -4
- package/build/cjs/components/Expander/Expander.js +9 -5
- package/build/cjs/components/Floater/Floater.js +7 -2
- package/build/cjs/components/Footer/Components/FooterComponents.js +21 -17
- package/build/cjs/components/Footer/Footer.js +25 -21
- package/build/cjs/components/Icon/Icon.js +9 -5
- package/build/cjs/components/Icons/Small/hlArrowBackSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlArrowForwardSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlArrowUnderSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlCalendarSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlChevronDownSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlChevronLeftSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlChevronRightSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlChevronUpSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlClockSmall.js +7 -3
- package/build/cjs/components/Icons/Small/hlDownloadSmall.js +8 -4
- package/build/cjs/components/Icons/Small/hlExternalSmall.js +6 -2
- package/build/cjs/components/Icons/Small/hlUploadSmall.js +8 -4
- package/build/cjs/components/Icons/Social/facebook.js +6 -2
- package/build/cjs/components/Icons/Social/instagram.js +6 -2
- package/build/cjs/components/Icons/Social/linkedin.js +6 -2
- package/build/cjs/components/Icons/Social/tiktok.js +6 -2
- package/build/cjs/components/Icons/Social/twitter.js +6 -2
- package/build/cjs/components/Icons/Social/youtube.js +6 -2
- package/build/cjs/components/Icons/hl404.js +6 -2
- package/build/cjs/components/Icons/hl4gSim.js +6 -2
- package/build/cjs/components/Icons/hl5gSim.js +6 -2
- package/build/cjs/components/Icons/hlBattery.js +8 -4
- package/build/cjs/components/Icons/hlBell.js +6 -2
- package/build/cjs/components/Icons/hlCableTVCard.js +6 -2
- package/build/cjs/components/Icons/hlCalendar.js +17 -13
- package/build/cjs/components/Icons/hlCall.js +6 -2
- package/build/cjs/components/Icons/hlCameraBack.js +8 -4
- package/build/cjs/components/Icons/hlCameraFront.js +7 -3
- package/build/cjs/components/Icons/hlCart.js +8 -4
- package/build/cjs/components/Icons/hlCartEmpty.js +8 -4
- package/build/cjs/components/Icons/hlChat.js +9 -5
- package/build/cjs/components/Icons/hlCheck.js +6 -2
- package/build/cjs/components/Icons/hlChevronDown.js +6 -2
- package/build/cjs/components/Icons/hlChevronLeft.js +6 -2
- package/build/cjs/components/Icons/hlChevronRight.js +6 -2
- package/build/cjs/components/Icons/hlChevronUp.js +6 -2
- package/build/cjs/components/Icons/hlCompensation.js +6 -2
- package/build/cjs/components/Icons/hlCookie.js +6 -2
- package/build/cjs/components/Icons/hlCopy.js +7 -3
- package/build/cjs/components/Icons/hlCoupon.js +8 -4
- package/build/cjs/components/Icons/hlDelivery.js +6 -2
- package/build/cjs/components/Icons/hlDigiturva.js +6 -2
- package/build/cjs/components/Icons/hlDisplaySize.js +8 -4
- package/build/cjs/components/Icons/hlDocument.js +7 -3
- package/build/cjs/components/Icons/hlDownload.js +8 -4
- package/build/cjs/components/Icons/hlEnvelope.js +6 -2
- package/build/cjs/components/Icons/hlError.js +8 -4
- package/build/cjs/components/Icons/hlEuro.js +6 -2
- package/build/cjs/components/Icons/hlExclamationMark.js +6 -2
- package/build/cjs/components/Icons/hlExpand.js +6 -2
- package/build/cjs/components/Icons/hlExternal.js +6 -2
- package/build/cjs/components/Icons/hlEyeClosed.js +6 -2
- package/build/cjs/components/Icons/hlEyeOpen.js +7 -3
- package/build/cjs/components/Icons/hlFaceId.js +6 -2
- package/build/cjs/components/Icons/hlFastDelivery.js +6 -2
- package/build/cjs/components/Icons/hlFingerprint.js +10 -6
- package/build/cjs/components/Icons/hlGlobe.js +6 -2
- package/build/cjs/components/Icons/hlHeadphones.js +6 -2
- package/build/cjs/components/Icons/hlHeadset.js +8 -4
- package/build/cjs/components/Icons/hlHeart.js +6 -2
- package/build/cjs/components/Icons/hlHome.js +6 -2
- package/build/cjs/components/Icons/hlHub.js +7 -3
- package/build/cjs/components/Icons/hlImage.js +6 -2
- package/build/cjs/components/Icons/hlInfo.js +8 -4
- package/build/cjs/components/Icons/hlInstallment.js +7 -3
- package/build/cjs/components/Icons/hlIotSim.js +7 -3
- package/build/cjs/components/Icons/hlLaptop.js +6 -2
- package/build/cjs/components/Icons/hlLink.js +7 -3
- package/build/cjs/components/Icons/hlLiveVideo.js +6 -2
- package/build/cjs/components/Icons/hlLock.js +8 -4
- package/build/cjs/components/Icons/hlMagnifyingGlass.js +7 -3
- package/build/cjs/components/Icons/hlMarker.js +7 -3
- package/build/cjs/components/Icons/hlMemory.js +7 -3
- package/build/cjs/components/Icons/hlMenu.js +6 -2
- package/build/cjs/components/Icons/hlMinimize.js +6 -2
- package/build/cjs/components/Icons/hlMinus.js +6 -2
- package/build/cjs/components/Icons/hlMobileData.js +6 -2
- package/build/cjs/components/Icons/hlMobilePayment.js +8 -4
- package/build/cjs/components/Icons/hlModem.js +10 -6
- package/build/cjs/components/Icons/hlMore.js +8 -4
- package/build/cjs/components/Icons/hlOs.js +7 -3
- package/build/cjs/components/Icons/hlPackage.js +6 -2
- package/build/cjs/components/Icons/hlPaperclip.js +6 -2
- package/build/cjs/components/Icons/hlPaytime.js +6 -2
- package/build/cjs/components/Icons/hlPen.js +6 -2
- package/build/cjs/components/Icons/hlPerson.js +6 -2
- package/build/cjs/components/Icons/hlPhone.js +7 -3
- package/build/cjs/components/Icons/hlPlaylist.js +6 -2
- package/build/cjs/components/Icons/hlPlus.js +7 -3
- package/build/cjs/components/Icons/hlPrepaid.js +6 -2
- package/build/cjs/components/Icons/hlProcessor.js +7 -3
- package/build/cjs/components/Icons/hlServices.js +6 -2
- package/build/cjs/components/Icons/hlSettings.js +6 -2
- package/build/cjs/components/Icons/hlShield.js +7 -3
- package/build/cjs/components/Icons/hlSim.js +7 -3
- package/build/cjs/components/Icons/hlSimSimple.js +8 -4
- package/build/cjs/components/Icons/hlSmile.js +9 -5
- package/build/cjs/components/Icons/hlSpeechBubble.js +7 -3
- package/build/cjs/components/Icons/hlSquaretrade.js +6 -2
- package/build/cjs/components/Icons/hlStar.js +6 -2
- package/build/cjs/components/Icons/hlStarFilled.js +6 -2
- package/build/cjs/components/Icons/hlTrash.js +7 -3
- package/build/cjs/components/Icons/hlTv.js +6 -2
- package/build/cjs/components/Icons/hlUnlock.js +7 -3
- package/build/cjs/components/Icons/hlUpload.js +8 -4
- package/build/cjs/components/Icons/hlWarning.js +8 -4
- package/build/cjs/components/Icons/hlWifi.js +8 -4
- package/build/cjs/components/Icons/hlWrench.js +6 -2
- package/build/cjs/components/Icons/hlX.js +6 -2
- package/build/cjs/components/InfoDialog/InfoDialog.js +5 -1
- package/build/cjs/components/Input/Input.js +15 -11
- package/build/cjs/components/Label/Label.js +5 -1
- package/build/cjs/components/LabelText/LabelText.js +6 -2
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +5 -1
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +24 -20
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +10 -6
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +8 -4
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +7 -3
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +11 -7
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +8 -4
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +23 -19
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +7 -3
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +25 -21
- package/build/cjs/components/MainNavigation/ChildComponents/BusinessMenu.js +6 -2
- package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.js +27 -23
- package/build/cjs/components/MainNavigation/ChildComponents/HeaderNavigationElements.js +29 -25
- package/build/cjs/components/MainNavigation/ChildComponents/LanguageSelector.js +10 -6
- package/build/cjs/components/MainNavigation/ChildComponents/LinkModifier.js +9 -5
- package/build/cjs/components/MainNavigation/ChildComponents/LoginTooltip.js +7 -3
- package/build/cjs/components/MainNavigation/ChildComponents/MainNavTooltipMenu.js +10 -6
- package/build/cjs/components/MainNavigation/ChildComponents/MinicartTooltip.js +8 -4
- package/build/cjs/components/MainNavigation/ChildComponents/MobileMenu.js +30 -26
- package/build/cjs/components/MainNavigation/ChildComponents/PageSearch.js +7 -3
- package/build/cjs/components/MainNavigation/ChildComponents/Ribbon.js +12 -8
- package/build/cjs/components/MainNavigation/MainNavigation.js +14 -10
- package/build/cjs/components/Modal/Modal.js +16 -11
- package/build/cjs/components/Notification/Notification.js +15 -10
- package/build/cjs/components/NotificationBadge/NotificationBadge.js +5 -1
- package/build/cjs/components/Overlay/Overlay.js +6 -2
- package/build/cjs/components/Pill/Pill.js +9 -4
- package/build/cjs/components/PixelLoader/PixelLoader.js +9 -5
- package/build/cjs/components/PriorityNavigation/PriorityNavigation.js +20 -16
- package/build/cjs/components/PriorityNavigationItem/PriorityNavigationItem.js +5 -1
- package/build/cjs/components/ProgressIndicator/ProgressIndicator.js +9 -5
- package/build/cjs/components/RadioButton/RadioButton.js +7 -3
- package/build/cjs/components/ReadMore/ReadMore.js +8 -4
- package/build/cjs/components/Search/Search.js +7 -3
- package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.js +20 -16
- package/build/cjs/components/Selectbox/Selectbox.js +18 -13
- package/build/cjs/components/Switch/Switch.js +3 -2
- package/build/cjs/components/Tab/Tab.js +10 -6
- package/build/cjs/components/Tabs/Tabs.js +8 -4
- package/build/cjs/components/Textarea/Textarea.js +9 -5
- package/build/cjs/components/Toaster/Toaster.js +17 -12
- package/build/cjs/components/Tooltip/Tooltip.js +8 -4
- package/build/cjs/components/TooltipMenu/TooltipMenu.js +15 -11
- package/build/cjs/utils/createStyled.js +3 -2
- package/package.json +2 -2
|
@@ -8,6 +8,10 @@ var styled = require('../../themes/styled.js');
|
|
|
8
8
|
var theme = require('../../themes/theme.js');
|
|
9
9
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
10
10
|
|
|
11
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
14
|
+
|
|
11
15
|
const Label = styled.default.label `
|
|
12
16
|
display: block;
|
|
13
17
|
color: ${({ status }) => (status ? theme.default.color.notification[status] : theme.default.color.text.gray)};
|
|
@@ -23,9 +27,9 @@ const Mandatory = styled.default.span `
|
|
|
23
27
|
/** @visibleName Label Text */
|
|
24
28
|
const LabelText = (_a) => {
|
|
25
29
|
var { 'data-testid': dataTestId } = _a, props = tslib.__rest(_a, ['data-testid']);
|
|
26
|
-
return (
|
|
30
|
+
return (React__default.default.createElement(Label, { id: props.id, htmlFor: props.htmlFor, className: props.className, "data-testid": dataTestId, status: props.status },
|
|
27
31
|
props.children,
|
|
28
|
-
props.isMandatory &&
|
|
32
|
+
props.isMandatory && React__default.default.createElement(Mandatory, null, "*")));
|
|
29
33
|
};
|
|
30
34
|
|
|
31
35
|
exports.default = LabelText;
|
|
@@ -7,6 +7,10 @@ var styled = require('../../../themes/styled.js');
|
|
|
7
7
|
var theme = require('../../../themes/theme.js');
|
|
8
8
|
var styledUtils = require('../../../utils/styledUtils.js');
|
|
9
9
|
|
|
10
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
13
|
+
|
|
10
14
|
const BusinessMenuLink = styled.default.a `
|
|
11
15
|
background-color: ${p => p.isActive ? theme.default.color.background.white.default : theme.default.color.background.plum.E02};
|
|
12
16
|
color: ${p => (p.isActive ? theme.default.color.text.black : theme.default.color.text.white)};
|
|
@@ -52,7 +56,7 @@ const BusinessMenu = ({ ariaLabel, currentBusinessId, items, lang }) => {
|
|
|
52
56
|
if (!(items === null || items === void 0 ? void 0 : items.length)) {
|
|
53
57
|
return null;
|
|
54
58
|
}
|
|
55
|
-
return (
|
|
59
|
+
return (React__default.default.createElement(BusinessMenuList, { "aria-label": ariaLabel, "data-testid": "business-menu", role: "navigation" }, items.map(item => (React__default.default.createElement(BusinessMenuLink, { className: `menu-link ${item.businessId === currentBusinessId ? 'active-site' : ''}`, href: item.urls[lang], isActive: item.businessId === currentBusinessId, key: item.businessId }, item.titles[lang])))));
|
|
56
60
|
};
|
|
57
61
|
|
|
58
62
|
exports.default = BusinessMenu;
|
|
@@ -14,6 +14,10 @@ var NavContext = require('../context/NavContext.js');
|
|
|
14
14
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
15
15
|
var LinkModifier = require('./LinkModifier.js');
|
|
16
16
|
|
|
17
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
18
|
+
|
|
19
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
20
|
+
|
|
17
21
|
const fadeIn = styled.keyframes `
|
|
18
22
|
0% {
|
|
19
23
|
opacity: 0;
|
|
@@ -147,33 +151,33 @@ const SubMenuLevel1 = ({ menuItem }) => {
|
|
|
147
151
|
const level1HasElements = !!menuItem.pages.length;
|
|
148
152
|
const pagesWithSubItems = menuItem.pages.filter(element => element.pages.length > 0);
|
|
149
153
|
// Helper function to render a sub menu item
|
|
150
|
-
const renderSubMenuItem = (element, index, currUrl) => (
|
|
151
|
-
|
|
154
|
+
const renderSubMenuItem = (element, index, currUrl) => (React__default.default.createElement(SubMenuItem, { key: element.id, isHighlighted: LinkModifier.isSelected(currUrl, element.urls[lang], true), "data-testid": `desktop-nav-item-level-2-${index + 1}` },
|
|
155
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: element, tabIndex: false })));
|
|
152
156
|
if (!level1HasElements) {
|
|
153
157
|
return null;
|
|
154
158
|
}
|
|
155
|
-
return (
|
|
156
|
-
|
|
157
|
-
pagesWithSubItems.slice(0, 5).map(element => (
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
pagesWithSubItems.length > 5 && (
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
return (React__default.default.createElement(SubMenuList, { "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, navZIndex: navZIndex },
|
|
160
|
+
React__default.default.createElement(MegaMenuContent, null,
|
|
161
|
+
pagesWithSubItems.slice(0, 5).map(element => (React__default.default.createElement(CategoryBlock, { key: element.id },
|
|
162
|
+
React__default.default.createElement(CategoryTitle, null, element.titles[lang]),
|
|
163
|
+
React__default.default.createElement("ul", { "data-testid": "desktop-nav-menu-ul-level-2" }, element.pages.map((subElement, index) => renderSubMenuItem(subElement, index, currentUrl)))))),
|
|
164
|
+
pagesWithSubItems.length > 5 && (React__default.default.createElement(CategoryCollectionBlock, null,
|
|
165
|
+
React__default.default.createElement(CategoryTitle, null, categoryCollectionText),
|
|
166
|
+
React__default.default.createElement("ul", { "data-testid": "desktop-nav-menu-ul-level-2" }, pagesWithSubItems
|
|
163
167
|
.slice(5)
|
|
164
168
|
.map((element, index) => renderSubMenuItem(element, index, currentUrl))))),
|
|
165
|
-
|
|
169
|
+
React__default.default.createElement(globalNavStyles.FeaturedBlock, { collapseSize: collapseSize, "data-testid": "desktop-nav-menu-level-2-featured" }, menuItem.pages.map(element => element.pages.length ? null : (React__default.default.createElement(LinkModifier.default, { key: element.id, showIcon: true, menuItem: element, tabIndex: false })))))));
|
|
166
170
|
};
|
|
167
171
|
const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
168
172
|
const { lang, handleNavMenuClick, currentUrl, menuLevel } = React.useContext(NavContext.default);
|
|
169
173
|
const menuClickMain = (element) => () => {
|
|
170
174
|
handleNavMenuClick(element.id, 'level1');
|
|
171
175
|
};
|
|
172
|
-
return (
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
return (React__default.default.createElement(DesktopMenuItem, { isActive: LinkModifier.isSelected(currentUrl, menuItem.urls[lang]), "data-testid": `desktop-nav-item-level-1-${currentLevel + 1}`, role: "presentation" },
|
|
177
|
+
React__default.default.createElement(globalNavStyles.MenuLinkWithChildren, { isOpen: menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), role: "menuitem", "aria-haspopup": "true", "data-testid": "menu-button-with-children" },
|
|
178
|
+
React__default.default.createElement("span", null, menuItem.titles[lang]),
|
|
179
|
+
React__default.default.createElement(Icon.default, { icon: icons.ChevronRight, size: "1rem" })),
|
|
180
|
+
React__default.default.createElement(SubMenuLevel1, { menuItem: menuItem })));
|
|
177
181
|
};
|
|
178
182
|
const DesktopMenu = () => {
|
|
179
183
|
var _a;
|
|
@@ -188,14 +192,14 @@ const DesktopMenu = () => {
|
|
|
188
192
|
if (!mainNavigation.length) {
|
|
189
193
|
return null;
|
|
190
194
|
}
|
|
191
|
-
return (
|
|
195
|
+
return (React__default.default.createElement(DesktopMenuList, { role: "menu", "aria-hidden": false, ref: ref, "data-testid": "desktop-nav-menu-ul", collapseSize: collapseSize }, mainNavigation.map((navElement, index) => {
|
|
192
196
|
var _a;
|
|
193
197
|
const displaySubMenu = !navElement.pageIsLinkInDesktopNavigation && !!((_a = navElement.pages) === null || _a === void 0 ? void 0 : _a.length);
|
|
194
198
|
if (displaySubMenu) {
|
|
195
|
-
return (
|
|
199
|
+
return (React__default.default.createElement(MenuItemWithChildren, { menuItem: navElement, key: navElement.id, currentLevel: index }));
|
|
196
200
|
}
|
|
197
|
-
return (
|
|
198
|
-
|
|
201
|
+
return (React__default.default.createElement(DesktopMenuItem, { key: navElement.id, role: "presentation", "data-testid": `desktop-nav-item-level-1-${index + 1}`, isActive: LinkModifier.isSelected(currentUrl, navElement.urls[lang]) },
|
|
202
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: navElement, tabIndex: false })));
|
|
199
203
|
})));
|
|
200
204
|
};
|
|
201
205
|
|
|
@@ -13,23 +13,27 @@ var NavContext = require('../context/NavContext.js');
|
|
|
13
13
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
14
14
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
15
15
|
|
|
16
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
17
|
+
|
|
18
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
19
|
+
|
|
16
20
|
const MenuItem = styled.default(globalNavStyles.MenuLink) `
|
|
17
21
|
font-weight: ${theme.default.fontWeight.medium};
|
|
18
22
|
margin: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 1)} auto;
|
|
19
23
|
text-align: center;
|
|
20
24
|
`;
|
|
21
|
-
const LangComponent = ({ currentLanguage, languagesObject }) => (
|
|
25
|
+
const LangComponent = ({ currentLanguage, languagesObject }) => (React__default.default.createElement(React__default.default.Fragment, null, Object.entries(languagesObject)
|
|
22
26
|
.filter(([key]) => key.toLowerCase() !== currentLanguage.toLowerCase())
|
|
23
|
-
.map(([key, value]) => (
|
|
27
|
+
.map(([key, value]) => (React__default.default.createElement(MenuItem, { key: `language-${key}`, href: value }, key.toUpperCase())))));
|
|
24
28
|
const LanguageSelector = ({ currentLanguage, languagesObject, languageSelectorLabel, }) => {
|
|
25
29
|
const { isMobileMenu, navZIndex } = React.useContext(NavContext.default);
|
|
26
|
-
const LngComponent = React.useCallback(() => (
|
|
30
|
+
const LngComponent = React.useCallback(() => (React__default.default.createElement(LangComponent, { languageSelectorLabel: languageSelectorLabel, currentLanguage: currentLanguage, languagesObject: languagesObject })), [currentLanguage, languagesObject, languageSelectorLabel]);
|
|
27
31
|
if (Object.keys(languagesObject).length < 2) {
|
|
28
32
|
return null;
|
|
29
33
|
}
|
|
30
|
-
return (
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: languageSelectorLabel, closeWhenTagClicked: ['a'], contentComponent: LngComponent, contentWidth: "5rem", globalStateString: "lang", tooltipRight: isMobileMenu ? '13.8rem' : '11.8rem', zIndex: navZIndex + 1 },
|
|
35
|
+
React__default.default.createElement(Icon.default, { icon: icons.Globe, size: navigation.navIconSize }),
|
|
36
|
+
React__default.default.createElement("span", { "data-testid": "header-lang-label" }, currentLanguage.toUpperCase())));
|
|
33
37
|
};
|
|
34
38
|
|
|
35
39
|
exports.default = LanguageSelector;
|
|
@@ -9,6 +9,10 @@ var Icon = require('../../Icon/Icon.js');
|
|
|
9
9
|
var NavContext = require('../context/NavContext.js');
|
|
10
10
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
11
11
|
|
|
12
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
|
+
|
|
12
16
|
const isSelected = (currentUrl, linkUrl, exactMatch = false) => {
|
|
13
17
|
if (currentUrl && linkUrl) {
|
|
14
18
|
let url = linkUrl;
|
|
@@ -24,12 +28,12 @@ const LinkModifier = ({ menuItem, tabIndex, showIcon }) => {
|
|
|
24
28
|
const { lang, nextJSLinkComponent, resetMenuEvents } = React.useContext(NavContext.default);
|
|
25
29
|
const menuItemLink = menuItem.urls[lang] || '';
|
|
26
30
|
const isExternalLink = menuItem.target === '_blank';
|
|
27
|
-
const MenuLinkComponent = (
|
|
28
|
-
showIcon && (
|
|
29
|
-
|
|
31
|
+
const MenuLinkComponent = (React__default.default.createElement(globalNavStyles.MenuLink, { href: menuItemLink, id: menuItem.id, onClick: resetMenuEvents, role: "menuitem", tabIndex: tabIndex ? -1 : undefined, target: isExternalLink ? '_blank' : '_self' },
|
|
32
|
+
showIcon && (React__default.default.createElement(Icon.default, { icon: isExternalLink ? icons.Open : icons.ArrowRight, size: "1rem", color: theme.default.color.default.pink })),
|
|
33
|
+
React__default.default.createElement("span", null, menuItem.titles[lang])));
|
|
30
34
|
if (nextJSLinkComponent && !isMenuItemLinkAbsolute(menuItemLink)) {
|
|
31
35
|
const NextJSLinkComponent = nextJSLinkComponent;
|
|
32
|
-
return (
|
|
36
|
+
return (React__default.default.createElement(NextJSLinkComponent, { linkUrl: menuItemLink }, MenuLinkComponent));
|
|
33
37
|
}
|
|
34
38
|
return MenuLinkComponent;
|
|
35
39
|
};
|
|
@@ -9,11 +9,15 @@ var Icon = require('../../Icon/Icon.js');
|
|
|
9
9
|
var NavContext = require('../context/NavContext.js');
|
|
10
10
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
11
11
|
|
|
12
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
|
+
|
|
12
16
|
const LoginTooltip = ({ isLogged, loginLabel }) => {
|
|
13
17
|
const { navZIndex, isMobileMenu, loginComponent: LoginComponent } = React.useContext(NavContext.default);
|
|
14
|
-
return (
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: LoginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem', zIndex: navZIndex + 1 }, !isLogged ? (loginLabel) : (React__default.default.createElement(React__default.default.Fragment, null,
|
|
19
|
+
React__default.default.createElement(Icon.default, { icon: icons.User, size: navigation.navIconSize }),
|
|
20
|
+
React__default.default.createElement("span", { "data-testid": "header-login-label" }, loginLabel)))));
|
|
17
21
|
};
|
|
18
22
|
|
|
19
23
|
exports.default = LoginTooltip;
|
|
@@ -15,6 +15,10 @@ var ButtonPrimary = require('../../ButtonPrimary/ButtonPrimary.js');
|
|
|
15
15
|
var NavContext = require('../context/NavContext.js');
|
|
16
16
|
var MainNavTooltipMenuExportedStyles = require('./MainNavTooltipMenuExportedStyles.js');
|
|
17
17
|
|
|
18
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
|
+
|
|
20
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
21
|
+
|
|
18
22
|
const IconContainer = styled.default.div `
|
|
19
23
|
margin: 0;
|
|
20
24
|
display: flex;
|
|
@@ -106,13 +110,13 @@ const MainNavTooltipMenu = (_a) => {
|
|
|
106
110
|
setTooltipItems(prevItems => (Object.assign(Object.assign({}, prevItems), { [globalStateKey]: false })));
|
|
107
111
|
}
|
|
108
112
|
});
|
|
109
|
-
return (
|
|
110
|
-
globalStateKey === 'login' && !isLoggedIn ? (
|
|
111
|
-
tooltipItems[globalStateKey] && ContentComponent && (
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
return (React__default.default.createElement(IconContainer, { "data-testid": `header-${globalStateKey}-container`, collapseSize: collapseSize, ref: ref },
|
|
114
|
+
globalStateKey === 'login' && !isLoggedIn ? (React__default.default.createElement(ButtonPrimary.default, { onClick: ContentComponent ? toggleState : undefined, small: true }, children)) : (React__default.default.createElement(MainNavTooltipMenuExportedStyles.default, { "aria-label": ariaLabel, isLoggedIn: isLoginItemAndLoggedIn, collapseSize: collapseSize, isHighlighted: tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
|
|
115
|
+
tooltipItems[globalStateKey] && ContentComponent && (React__default.default.createElement(React__default.default.Fragment, null,
|
|
116
|
+
React__default.default.createElement(Caret, { zIndex: zIndex, collapseSize: collapseSize }),
|
|
117
|
+
React__default.default.createElement(Tooltip, { zIndex: zIndex, tooltipRight: tooltipRight, contentWidth: contentWidth, collapseSize: collapseSize, fullWidthDesktop: fullWidthDesktop, fullWidthBreakpoint: fullWidthBreakpoint },
|
|
118
|
+
React__default.default.createElement(TooltipBox, { elevation: "high", padding: "0", width: "100%" },
|
|
119
|
+
React__default.default.createElement(ContentComponent, { mobileView: isMobileMenu })))))));
|
|
116
120
|
};
|
|
117
121
|
|
|
118
122
|
exports.IconContainer = IconContainer;
|
|
@@ -12,13 +12,17 @@ var NotificationBadge = require('../../NotificationBadge/NotificationBadge.js');
|
|
|
12
12
|
var NavContext = require('../context/NavContext.js');
|
|
13
13
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
14
14
|
|
|
15
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
16
|
+
|
|
17
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
18
|
+
|
|
15
19
|
const MinicartTooltip = (_a) => {
|
|
16
20
|
var { minicartAmount, minicartLabel } = _a, props = tslib.__rest(_a, ["minicartAmount", "minicartLabel"]);
|
|
17
21
|
const { navZIndex, minicartComponent: MinicartComponent } = React.useContext(NavContext.default);
|
|
18
|
-
return (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
minicartAmount > 0 && (
|
|
22
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: minicartLabel, closeWhenTagClicked: ['a', 'button'], onCartButtonClick: props.onCartButtonClick, contentComponent: MinicartComponent, contentWidth: "35rem", fullWidthBreakpoint: theme.default.breakpoints.md, globalStateString: "minicart", tooltipRight: "5rem", zIndex: navZIndex + 1 },
|
|
23
|
+
React__default.default.createElement(Icon.default, { icon: icons.Cart, size: navigation.navIconSize }),
|
|
24
|
+
React__default.default.createElement("span", null, minicartLabel),
|
|
25
|
+
minicartAmount > 0 && (React__default.default.createElement(NotificationBadge.default, { top: "-5px", right: "5px", "data-testid": "header-minicart-amount" }, minicartAmount))));
|
|
22
26
|
};
|
|
23
27
|
|
|
24
28
|
exports.default = MinicartTooltip;
|
|
@@ -15,6 +15,10 @@ var NavContext = require('../context/NavContext.js');
|
|
|
15
15
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
16
16
|
var LinkModifier = require('./LinkModifier.js');
|
|
17
17
|
|
|
18
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
|
+
|
|
20
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
21
|
+
|
|
18
22
|
const MobileMenuWrapper = styled.default.div `
|
|
19
23
|
width: ${100 * navigation.menuLevelsAmount}%;
|
|
20
24
|
button {
|
|
@@ -107,9 +111,9 @@ const MenuItemBackLink = ({ currentLevel }) => {
|
|
|
107
111
|
};
|
|
108
112
|
const tabNavigationDisabled = scrollPosition !== currentLevel - 1;
|
|
109
113
|
const backLink = getBackLink(menuElements, currentLevel - 1);
|
|
110
|
-
return (
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
return (React__default.default.createElement(globalNavStyles.MenuItem, { key: `back-${backLink.id}`, "data-testid": `mobile-nav-menu-backlink-level-${currentLevel}` },
|
|
115
|
+
React__default.default.createElement(MenuLinkBackLink, { role: "menuitem", as: "button", onClick: mobileMenuBackClick, tabIndex: tabNavigationDisabled ? -1 : undefined },
|
|
116
|
+
React__default.default.createElement(Icon.default, { icon: icons.ChevronLeft, size: "1rem" }),
|
|
113
117
|
backLink.titles[lang])));
|
|
114
118
|
};
|
|
115
119
|
const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
|
|
@@ -130,13 +134,13 @@ const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
|
|
|
130
134
|
e.preventDefault();
|
|
131
135
|
handleNavMenuClick(element.id, `level${currentLevel}Mobile`);
|
|
132
136
|
};
|
|
133
|
-
const renderMenuItem = (children) => (
|
|
137
|
+
const renderMenuItem = (children) => (React__default.default.createElement(globalNavStyles.MenuItem, { key: menuItem.id, role: "presentation", "data-testid": `mobile-menu-level-${currentLevel}-link-${itemIndex + 1}`, isActive: LinkModifier.isSelected(currentUrl, menuUrl, true) }, children));
|
|
134
138
|
if (hasChildren && currentLevel < 3) {
|
|
135
|
-
return renderMenuItem(
|
|
139
|
+
return renderMenuItem(React__default.default.createElement(globalNavStyles.MenuLink, { as: "button", onClick: mobileMenuClick(menuItem), role: "menuitem", tabIndex: tabNavigationDisabled ? -1 : undefined },
|
|
136
140
|
menuItem.titles[lang],
|
|
137
|
-
|
|
141
|
+
React__default.default.createElement(Icon.default, { icon: icons.ChevronRight, color: theme.default.color.default.pink })));
|
|
138
142
|
}
|
|
139
|
-
return renderMenuItem(
|
|
143
|
+
return renderMenuItem(React__default.default.createElement(LinkModifier.default, { menuItem: menuItem, tabIndex: tabNavigationDisabled }));
|
|
140
144
|
};
|
|
141
145
|
const SubMenuMobile = ({ currentLevel, menuItem }) => {
|
|
142
146
|
const featuredItems = menuItem.pages.filter(subMenuItem => !subMenuItem.pages.length && currentLevel === 2);
|
|
@@ -146,12 +150,12 @@ const SubMenuMobile = ({ currentLevel, menuItem }) => {
|
|
|
146
150
|
if (!menuItem.pages.length) {
|
|
147
151
|
return null;
|
|
148
152
|
}
|
|
149
|
-
return (
|
|
150
|
-
currentLevel > 1 &&
|
|
151
|
-
featuredItems.length > 0 && (
|
|
153
|
+
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
154
|
+
currentLevel > 1 && React__default.default.createElement(MenuItemBackLink, { currentLevel: currentLevel }),
|
|
155
|
+
featuredItems.length > 0 && (React__default.default.createElement(globalNavStyles.FeaturedBlock, { collapseSize: collapseSize }, featuredItems.map(subMenuItem => (React__default.default.createElement(LinkModifier.default, { key: subMenuItem.id, menuItem: subMenuItem, showIcon: true, tabIndex: tabNavigationDisabled }))))),
|
|
152
156
|
menuItem.pages
|
|
153
157
|
.filter(subMenuItem => !featuredItems.includes(subMenuItem))
|
|
154
|
-
.map((subMenuItem, index) => (
|
|
158
|
+
.map((subMenuItem, index) => (React__default.default.createElement(CreateSubMenuItem, { currentLevel: currentLevel, itemIndex: index, key: subMenuItem.id, menuItem: subMenuItem })))));
|
|
155
159
|
};
|
|
156
160
|
const NavigationMenuMobile = () => {
|
|
157
161
|
const { items, menuLevel, level1Items, level2Items } = React.useContext(NavContext.default);
|
|
@@ -159,9 +163,9 @@ const NavigationMenuMobile = () => {
|
|
|
159
163
|
if (!(mainNavigation === null || mainNavigation === void 0 ? void 0 : mainNavigation.pages.length)) {
|
|
160
164
|
return null;
|
|
161
165
|
}
|
|
162
|
-
const renderMenuList = (scrollPosition, level, menuItem) => (
|
|
163
|
-
|
|
164
|
-
return (
|
|
166
|
+
const renderMenuList = (scrollPosition, level, menuItem) => (React__default.default.createElement(globalNavStyles.MenuList, { role: "menu", "aria-hidden": menuLevel.scrollPosition !== scrollPosition, "aria-disabled": menuLevel.scrollPosition !== scrollPosition, "data-testid": `mobile-nav-menu-level-${level}`, isInView: menuLevel.scrollPosition === scrollPosition },
|
|
167
|
+
React__default.default.createElement(SubMenuMobile, { currentLevel: level, menuItem: menuItem })));
|
|
168
|
+
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
165
169
|
renderMenuList(0, 1, mainNavigation),
|
|
166
170
|
menuLevel.level1Mobile !== null &&
|
|
167
171
|
renderMenuList(1, 2, level1Items[menuLevel.level1Mobile]),
|
|
@@ -180,11 +184,11 @@ const RenderMobileMenu = () => {
|
|
|
180
184
|
if (!isMobileMenuOpen) {
|
|
181
185
|
return null;
|
|
182
186
|
}
|
|
183
|
-
return (
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
187
|
+
return (React__default.default.createElement(MobileMenuContainer, { ref: mobileMenuRef },
|
|
188
|
+
React__default.default.createElement(MobileMenuContext.default.Provider, { value: mobileMenuContext },
|
|
189
|
+
React__default.default.createElement(MobileMenuWrapper, null,
|
|
190
|
+
React__default.default.createElement(reactSpring.animated.div, { style: slidingMenuAnimation },
|
|
191
|
+
React__default.default.createElement(NavigationMenuMobile, null))))));
|
|
188
192
|
};
|
|
189
193
|
|
|
190
194
|
exports.default = RenderMobileMenu;
|
|
@@ -9,11 +9,15 @@ var Icon = require('../../Icon/Icon.js');
|
|
|
9
9
|
var NavContext = require('../context/NavContext.js');
|
|
10
10
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
11
11
|
|
|
12
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
|
+
|
|
12
16
|
const PageSearch = ({ searchLabel }) => {
|
|
13
17
|
const { navZIndex, searchComponent: SearchComponent } = React.useContext(NavContext.default);
|
|
14
|
-
return (
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent: SearchComponent, contentWidth: "100%", "data-testid": "header-search-container", fullWidthDesktop: true, globalStateString: "search", tooltipRight: "0", zIndex: navZIndex + 1 },
|
|
19
|
+
React__default.default.createElement(Icon.default, { icon: icons.Search, size: navigation.navIconSize }),
|
|
20
|
+
React__default.default.createElement("span", null, searchLabel)));
|
|
17
21
|
};
|
|
18
22
|
|
|
19
23
|
exports.default = PageSearch;
|
|
@@ -26,6 +26,10 @@ var PageSearch = require('./ChildComponents/PageSearch.js');
|
|
|
26
26
|
var NavContext = require('./context/NavContext.js');
|
|
27
27
|
var globalNavStyles = require('./globalNavStyles.js');
|
|
28
28
|
|
|
29
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
30
|
+
|
|
31
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
32
|
+
|
|
29
33
|
const GlobalStyle = styled.createGlobalStyle `
|
|
30
34
|
body.overflow-hidden {
|
|
31
35
|
overflow: hidden;
|
|
@@ -295,27 +299,27 @@ const MainHeaderNavigation = (_a) => {
|
|
|
295
299
|
initiateScrollToHeader(navigationEl);
|
|
296
300
|
setIsMobileMenuOpen(!isMobileMenuOpen);
|
|
297
301
|
};
|
|
298
|
-
return (
|
|
299
|
-
isPageOverlay &&
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
!items.mainNavigation && notificationText && (
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
languagesObject && languageSelector && (
|
|
312
|
-
search &&
|
|
313
|
-
minicart && (
|
|
314
|
-
login &&
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
isMobile &&
|
|
302
|
+
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
303
|
+
isPageOverlay && React__default.default.createElement(PageOverlay, { "data-testid": "navigation-overlay", navZIndex: zIndex }),
|
|
304
|
+
React__default.default.createElement(GlobalNavigationContainer, { className: className, collapseSize: collapseSize, "data-testid": "dna-main-header", navZIndex: zIndex, ref: navigationEl, role: "banner" },
|
|
305
|
+
React__default.default.createElement(NavContext.default.Provider, { value: navigationContext },
|
|
306
|
+
React__default.default.createElement(GlobalStyle, null),
|
|
307
|
+
!items.mainNavigation && notificationText && (React__default.default.createElement(Notification.default, { type: "info" }, notificationText)),
|
|
308
|
+
React__default.default.createElement(BusinessMenu.default, { ariaLabel: businessMenuAriaLabel, currentBusinessId: items.businessId, items: (_d = items.businessSelector) === null || _d === void 0 ? void 0 : _d.items, lang: language }),
|
|
309
|
+
React__default.default.createElement(NavigationWrapper, { collapseSize: collapseSize },
|
|
310
|
+
React__default.default.createElement(globalNavStyles.LogoLink, { "data-testid": "dna-logo-link", href: currentBusinessSite === null || currentBusinessSite === void 0 ? void 0 : currentBusinessSite.urls[language], title: "DNA" },
|
|
311
|
+
React__default.default.createElement(DnaLogo.default, { size: navigation.headerLogoSize })),
|
|
312
|
+
React__default.default.createElement(globalNavStyles.DesktopMenuContainer, { "aria-label": mainMenuAriaLabel, collapseSize: collapseSize },
|
|
313
|
+
React__default.default.createElement(DesktopMenu.default, null)),
|
|
314
|
+
React__default.default.createElement(globalNavStyles.HeaderIconContainer, { collapseSize: collapseSize },
|
|
315
|
+
languagesObject && languageSelector && (React__default.default.createElement(LanguageSelector.default, { currentLanguage: language, languagesObject: languagesObject, languageSelectorLabel: languageSelectorText })),
|
|
316
|
+
search && React__default.default.createElement(PageSearch.default, { searchLabel: searchText }),
|
|
317
|
+
minicart && (React__default.default.createElement(MinicartTooltip.default, { minicartAmount: minicartAmount, minicartLabel: minicartText, onCartButtonClick: props.onCartButtonClick })),
|
|
318
|
+
login && React__default.default.createElement(LoginTooltip.default, { loginLabel: loginText, isLogged: isLoggedIn }),
|
|
319
|
+
React__default.default.createElement(MainNavTooltipMenu.IconContainer, { collapseSize: collapseSize, "data-testid": "header-mobile-menu-container" },
|
|
320
|
+
React__default.default.createElement(globalNavStyles.MobileMenuButton, { "aria-expanded": isMobileMenuOpen, "aria-label": "menu toggle", "data-testid": "header-mobile-menu-toggle", onClick: handleToggleClick },
|
|
321
|
+
React__default.default.createElement(Icon.default, { icon: isMobileMenuOpen ? icons.Close : icons.Menu, size: navigation.navIconSize })))),
|
|
322
|
+
isMobile && React__default.default.createElement(MobileMenu.default, null))))));
|
|
319
323
|
};
|
|
320
324
|
|
|
321
325
|
exports.default = MainHeaderNavigation;
|
|
@@ -8,6 +8,10 @@ var theme = require('../../../themes/theme.js');
|
|
|
8
8
|
var styledUtils = require('../../../utils/styledUtils.js');
|
|
9
9
|
var NavContext = require('../context/NavContext.js');
|
|
10
10
|
|
|
11
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
14
|
+
|
|
11
15
|
const BusinessMenuLink = styled.default.a `
|
|
12
16
|
color: ${p => (p.isActive ? theme.default.color.text.pink : theme.default.color.text.black)};
|
|
13
17
|
display: block;
|
|
@@ -47,8 +51,8 @@ const BusinessMenu = () => {
|
|
|
47
51
|
(!items.businessSelector && (businessMenuItems === null || businessMenuItems === void 0 ? void 0 : businessMenuItems.length) > 0)) {
|
|
48
52
|
return null;
|
|
49
53
|
}
|
|
50
|
-
return (
|
|
51
|
-
|
|
54
|
+
return (React__default.default.createElement(BusinessMenuList, { isMobileMenu: isMobileMenu, ref: ref, role: "menubar", "aria-hidden": "false", "data-testid": "business-menu-ul" }, businessMenuItems.map((item, index) => (React__default.default.createElement(BusinessMenuItem, { className: "menu-item", key: item.businessId, "data-testid": `business-menu-selection-item-${index + 1}`, role: "none" },
|
|
55
|
+
React__default.default.createElement(BusinessMenuLink, { className: "menu-link", href: item.urls[lang], onClick: resetMenuEvents, isActive: item.businessId === currentBusinessId, isMobileMenu: isMobileMenu, role: "menuitem" }, item.titles[lang]))))));
|
|
52
56
|
};
|
|
53
57
|
|
|
54
58
|
exports.default = BusinessMenu;
|
|
@@ -15,6 +15,10 @@ var NavContext = require('../context/NavContext.js');
|
|
|
15
15
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
16
16
|
var LinkModifier = require('./LinkModifier.js');
|
|
17
17
|
|
|
18
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
|
+
|
|
20
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
21
|
+
|
|
18
22
|
const fadeIn = styled.keyframes `
|
|
19
23
|
0% {
|
|
20
24
|
opacity: 0;
|
|
@@ -182,12 +186,12 @@ const SubMenuLevel2 = ({ menuItem }) => {
|
|
|
182
186
|
};
|
|
183
187
|
handleOffSet();
|
|
184
188
|
}, [menuLevel.level2, menuItem.id]);
|
|
185
|
-
return (
|
|
186
|
-
|
|
187
|
-
|
|
189
|
+
return (React__default.default.createElement(SubMenuListRight, { role: "menu", menuStates: menuLevel, navItemId: menuItem.id, "data-testid": "desktop-nav-menu-ul-level-3", ref: measureRef },
|
|
190
|
+
React__default.default.createElement(Box.default, { elevation: "high", padding: styledUtils.getMultipliedSize(theme.default.base.baseHeight, 1) },
|
|
191
|
+
React__default.default.createElement("ul", null, menuItem.pages.map((item, index) => {
|
|
188
192
|
const menuUrl = item.urls[lang];
|
|
189
|
-
return (
|
|
190
|
-
|
|
193
|
+
return (React__default.default.createElement(SubMenuItem, { key: item.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl, true), role: "none", "data-testid": `desktop-nav-item-level-3-link-${index + 1}` },
|
|
194
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: item, tabIndex: false })));
|
|
191
195
|
})))));
|
|
192
196
|
};
|
|
193
197
|
const SubMenuLevel1 = ({ menuItem }) => {
|
|
@@ -200,19 +204,19 @@ const SubMenuLevel1 = ({ menuItem }) => {
|
|
|
200
204
|
if (!level1HasElements) {
|
|
201
205
|
return null;
|
|
202
206
|
}
|
|
203
|
-
return (
|
|
204
|
-
|
|
205
|
-
|
|
207
|
+
return (React__default.default.createElement(SubMenuList, { "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, "data-testid": "desktop-nav-menu-ul-level-2", navZIndex: navZIndex },
|
|
208
|
+
React__default.default.createElement(Box.default, { elevation: "high", padding: styledUtils.getMultipliedSize(theme.default.base.baseHeight, 1) },
|
|
209
|
+
React__default.default.createElement("ul", null, menuItem.pages.map((element, index) => {
|
|
206
210
|
const menuUrl = element.urls[lang];
|
|
207
211
|
if (element.pages.length) {
|
|
208
|
-
return (
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
212
|
+
return (React__default.default.createElement(SubMenuItem, { key: element.id, role: "none", "data-testid": `desktop-nav-item-level-2-link-${index + 1}` },
|
|
213
|
+
React__default.default.createElement(globalNavStyles.MenuLinkWithChildren, { isActive: menuLevel.level2 === element.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl), onClick: menuClick(element), role: "menuitem", "aria-haspopup": "true", "data-testid": "menu-button-with-children" },
|
|
214
|
+
React__default.default.createElement("span", null, element.titles[lang]),
|
|
215
|
+
React__default.default.createElement(Icon.default, { icon: icons.ChevronRight, size: "1rem" })),
|
|
216
|
+
React__default.default.createElement(SubMenuLevel2, { menuItem: element })));
|
|
213
217
|
}
|
|
214
|
-
return (
|
|
215
|
-
|
|
218
|
+
return (React__default.default.createElement(SubMenuItem, { key: element.id, isHighlighted: LinkModifier.isSelected(currentUrl, menuUrl, true), role: "none", "data-testid": `desktop-nav-item-level-2-link-${index + 1}` },
|
|
219
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: element, tabIndex: false })));
|
|
216
220
|
})))));
|
|
217
221
|
};
|
|
218
222
|
const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
@@ -222,10 +226,10 @@ const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
|
222
226
|
handleNavMenuClick(element.id, 'level1');
|
|
223
227
|
};
|
|
224
228
|
const menuUrl = menuItem.urls[lang];
|
|
225
|
-
return (
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
+
return (React__default.default.createElement(DesktopMenuItem, { isActive: menuLevel.level1 === menuItem.id || LinkModifier.isSelected(currentUrl, menuUrl), role: "none", "data-testid": `desktop-nav-item-level-1-link-${currentLevel + 1}` },
|
|
230
|
+
React__default.default.createElement(globalNavStyles.MenuLinkWithChildren, { onClick: menuClickMain(menuItem), role: "menuitem", "aria-haspopup": "true", "data-testid": "menu-button-with-children" },
|
|
231
|
+
React__default.default.createElement("span", null, menuItem.titles[lang])),
|
|
232
|
+
React__default.default.createElement(SubMenuLevel1, { menuItem: menuItem })));
|
|
229
233
|
};
|
|
230
234
|
const DesktopMenu = () => {
|
|
231
235
|
var _a;
|
|
@@ -240,15 +244,15 @@ const DesktopMenu = () => {
|
|
|
240
244
|
if (!mainNavigation.length) {
|
|
241
245
|
return null;
|
|
242
246
|
}
|
|
243
|
-
return (
|
|
247
|
+
return (React__default.default.createElement(DesktopMenuList, { role: "menubar", "aria-hidden": false, ref: ref, "data-testid": "desktop-nav-menu-ul" }, mainNavigation.map((navElement, index) => {
|
|
244
248
|
var _a;
|
|
245
249
|
const menuHasChildren = !!((_a = navElement.pages) === null || _a === void 0 ? void 0 : _a.length);
|
|
246
250
|
if (menuHasChildren) {
|
|
247
|
-
return (
|
|
251
|
+
return (React__default.default.createElement(MenuItemWithChildren, { menuItem: navElement, key: navElement.id, currentLevel: index }));
|
|
248
252
|
}
|
|
249
|
-
return (
|
|
253
|
+
return (React__default.default.createElement(DesktopMenuItem, { key: navElement.id, role: "none", "data-testid": `desktop-nav-item-level-1-link-${index + 1}`, isActive: menuLevel.level1 === navElement.id ||
|
|
250
254
|
LinkModifier.isSelected(currentUrl, navElement.urls[lang]) },
|
|
251
|
-
|
|
255
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: navElement, tabIndex: false })));
|
|
252
256
|
})));
|
|
253
257
|
};
|
|
254
258
|
|