@dnanpm/styleguide 3.9.13 → 3.9.14
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/ButtonIcon/ButtonIcon.d.ts +4 -0
- package/build/cjs/components/ButtonIcon/ButtonIcon.js +49 -13
- package/build/cjs/components/Checkbox/Checkbox.js +1 -1
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +2 -3
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +15 -16
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +1 -2
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +2 -2
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +5 -7
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +3 -5
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +5 -5
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +4 -4
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +3 -2
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +6 -10
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +3 -3
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +3 -5
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +5 -1
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +7 -7
- package/build/cjs/components/MainHeaderNavigation/globalNavStyles.js +6 -0
- package/build/cjs/components/Pill/Pill.js +1 -1
- package/build/cjs/components/PriorityNavigation/PriorityNavigation.js +17 -2
- package/build/cjs/components/RadioButton/RadioButton.js +1 -1
- package/build/cjs/components/Switch/Switch.js +1 -1
- package/build/es/components/ButtonIcon/ButtonIcon.d.ts +4 -0
- package/build/es/components/ButtonIcon/ButtonIcon.js +49 -13
- package/build/es/components/Checkbox/Checkbox.js +1 -1
- package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +2 -3
- package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +15 -16
- package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +1 -2
- package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +2 -2
- package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +5 -7
- package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +3 -5
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +5 -5
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +4 -4
- package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +3 -2
- package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +6 -10
- package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +3 -3
- package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.js +3 -5
- package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +5 -1
- package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.js +8 -8
- package/build/es/components/MainHeaderNavigation/globalNavStyles.js +6 -0
- package/build/es/components/Pill/Pill.js +1 -1
- package/build/es/components/PriorityNavigation/PriorityNavigation.js +17 -2
- package/build/es/components/RadioButton/RadioButton.js +1 -1
- package/build/es/components/Switch/Switch.js +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,10 @@ interface Props extends Omit<ButtonProps, 'fullWidth'> {
|
|
|
30
30
|
* Screen reader label describing the purpose of the ButtonIcon,
|
|
31
31
|
*/
|
|
32
32
|
ariaLabel?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Show the element with link color (pink)
|
|
35
|
+
*/
|
|
36
|
+
isLinkStyle?: boolean;
|
|
33
37
|
}
|
|
34
38
|
/** @visibleName Button Icon */
|
|
35
39
|
declare const ButtonIcon: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -16,6 +16,47 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
16
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
17
17
|
var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
|
|
18
18
|
|
|
19
|
+
const getStandardStyle = ({ isLinkStyle }) => {
|
|
20
|
+
const colorValue = isLinkStyle ? theme.default.color.default.pink : theme.default.color.text.black;
|
|
21
|
+
const colorHoverValue = isLinkStyle ? theme.default.color.hover.pink : theme.default.color.text.black;
|
|
22
|
+
return `
|
|
23
|
+
color: ${colorValue};
|
|
24
|
+
&:focus-visible {
|
|
25
|
+
border: 2px solid ${theme.default.color.focus.light};
|
|
26
|
+
box-shadow: 0px 0px 0px 2px ${theme.default.color.focus.dark};
|
|
27
|
+
}
|
|
28
|
+
&:hover {
|
|
29
|
+
color: ${colorHoverValue};
|
|
30
|
+
}
|
|
31
|
+
&:active {
|
|
32
|
+
color: ${theme.default.color.text.black + theme.default.color.transparency.T80};
|
|
33
|
+
}
|
|
34
|
+
&:disabled,
|
|
35
|
+
&[disabled] {
|
|
36
|
+
color: ${theme.default.color.text.gray};
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
};
|
|
40
|
+
const getDarkBgStyle = () => {
|
|
41
|
+
const colorValue = theme.default.color.text.white;
|
|
42
|
+
return `
|
|
43
|
+
color: ${colorValue};
|
|
44
|
+
&:focus-visible {
|
|
45
|
+
border: 2px solid ${theme.default.color.focus.dark};
|
|
46
|
+
box-shadow: 0px 0px 0px 2px ${theme.default.color.focus.light};
|
|
47
|
+
}
|
|
48
|
+
&:hover {
|
|
49
|
+
color: ${colorValue};
|
|
50
|
+
}
|
|
51
|
+
&:active {
|
|
52
|
+
color: ${colorValue + theme.default.color.transparency.T90};
|
|
53
|
+
}
|
|
54
|
+
&:disabled,
|
|
55
|
+
&[disabled] {
|
|
56
|
+
color: ${colorValue + theme.default.color.transparency.T70};
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
};
|
|
19
60
|
const ButtonElement = styled__default.default.button `
|
|
20
61
|
display: inline-flex;
|
|
21
62
|
align-items: center;
|
|
@@ -24,10 +65,11 @@ const ButtonElement = styled__default.default.button `
|
|
|
24
65
|
font-size: ${({ small }) => (small ? theme.default.fontSize.s : theme.default.fontSize.default)};
|
|
25
66
|
line-height: ${({ small }) => (small ? theme.default.lineHeight.xs : theme.default.lineHeight.default)};
|
|
26
67
|
cursor: pointer;
|
|
27
|
-
color: ${({ darkBg }) => (darkBg ? theme.default.color.text.white : theme.default.color.text.black)};
|
|
28
68
|
background-color: transparent;
|
|
29
69
|
border: 2px solid transparent;
|
|
30
70
|
padding: ${styledUtils.getDividedSize(theme.default.base.baseWidth, 5)} 0;
|
|
71
|
+
text-align: left;
|
|
72
|
+
transition: all 0.2s ease-in-out;
|
|
31
73
|
|
|
32
74
|
& svg {
|
|
33
75
|
pointer-events: none;
|
|
@@ -35,29 +77,23 @@ const ButtonElement = styled__default.default.button `
|
|
|
35
77
|
|
|
36
78
|
${({ isReversed }) => isReversed && `flex-direction: row-reverse;`}
|
|
37
79
|
|
|
80
|
+
${({ darkBg, isLinkStyle }) => (darkBg ? getDarkBgStyle() : getStandardStyle({ isLinkStyle }))}
|
|
81
|
+
|
|
38
82
|
&:focus-visible {
|
|
39
83
|
border-radius: ${theme.default.radius.s};
|
|
40
84
|
text-decoration: underline;
|
|
41
|
-
border: 2px solid
|
|
42
|
-
${({ darkBg }) => (darkBg ? theme.default.color.focus.dark : theme.default.color.focus.light)};
|
|
43
|
-
box-shadow: 0px 0px 0px 2px
|
|
44
|
-
${({ darkBg }) => (darkBg ? theme.default.color.focus.light : theme.default.color.focus.dark)};
|
|
45
85
|
outline: none;
|
|
46
86
|
}
|
|
47
87
|
|
|
48
88
|
&:hover {
|
|
49
89
|
text-decoration: underline;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
color: ${({ darkBg }) => darkBg
|
|
54
|
-
? theme.default.color.text.white + theme.default.color.transparency.T90
|
|
55
|
-
: theme.default.color.text.black + theme.default.color.transparency.T80};
|
|
90
|
+
text-underline-offset: 0.2em;
|
|
91
|
+
text-decoration-skip-ink: auto;
|
|
92
|
+
text-decoration-thickness: from-font;
|
|
56
93
|
}
|
|
57
94
|
|
|
58
95
|
&:disabled,
|
|
59
96
|
&[disabled] {
|
|
60
|
-
color: ${({ darkBg }) => darkBg ? theme.default.color.text.white + theme.default.color.transparency.T70 : theme.default.color.text.gray};
|
|
61
97
|
pointer-events: none;
|
|
62
98
|
}
|
|
63
99
|
|
|
@@ -92,7 +128,7 @@ const ButtonElement = styled__default.default.button `
|
|
|
92
128
|
const ButtonIcon = React.forwardRef((_a, ref) => {
|
|
93
129
|
var { icon = icons.EditUnderline, 'data-testid': dataTestId, 'data-no-close': dataNoClose, 'data-track-value': dataTrackValue } = _a, props = tslib.__rest(_a, ["icon", 'data-testid', 'data-no-close', 'data-track-value']);
|
|
94
130
|
const position = props.isReversed ? 'right' : 'left';
|
|
95
|
-
return (React__default.default.createElement(ButtonElement, Object.assign({ ref: ref, id: props.id, name: props.name, type: props.type, onClick: props.onClick, onMouseDown: props.onMouseDown, small: props.small, darkBg: props.darkBg, "$loading": props.loading, tabIndex: props.loading ? -1 : 0, "data-loading": props.loading, disabled: props.disabled, hideChildrenMobile: props.hideChildrenMobile, isReversed: props.isReversed, className: props.className, "data-testid": dataTestId, "data-no-close": dataNoClose, "data-track-value": dataTrackValue, "aria-expanded": props.ariaExpanded, "aria-label": props.ariaLabel }, props.dataAttributes), props.loading ? (React__default.default.createElement(PixelLoader.default, { color: props.darkBg ? theme.default.color.default.white : theme.default.color.default.black, label: props.loadingLabel })) : (React__default.default.createElement(React__default.default.Fragment, null,
|
|
131
|
+
return (React__default.default.createElement(ButtonElement, Object.assign({ ref: ref, id: props.id, name: props.name, type: props.type, onClick: props.onClick, onMouseDown: props.onMouseDown, small: props.small, darkBg: props.darkBg, "$loading": props.loading, tabIndex: props.loading ? -1 : 0, "data-loading": props.loading, disabled: props.disabled, hideChildrenMobile: props.hideChildrenMobile, isReversed: props.isReversed, className: props.className, "data-testid": dataTestId, "data-no-close": dataNoClose, "data-track-value": dataTrackValue, "aria-expanded": props.ariaExpanded, "aria-label": props.ariaLabel, isLinkStyle: props.isLinkStyle }, props.dataAttributes), props.loading ? (React__default.default.createElement(PixelLoader.default, { color: props.darkBg ? theme.default.color.default.white : theme.default.color.default.black, label: props.loadingLabel })) : (React__default.default.createElement(React__default.default.Fragment, null,
|
|
96
132
|
React__default.default.createElement(Icon.default, { icon: icon, color: props.darkBg ? theme.default.color.default.white : theme.default.color.default.pink, size: props.small ? '1.25rem' : '1.5rem', position: props.children ? position : undefined, "aria-hidden": true }),
|
|
97
133
|
props.children && (React__default.default.createElement("span", { "data-testid": dataTestId && `${dataTestId}-text`, "data-no-close": dataNoClose }, props.children))))));
|
|
98
134
|
});
|
|
@@ -118,7 +118,7 @@ const Checkbox = (_a) => {
|
|
|
118
118
|
};
|
|
119
119
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
120
120
|
React__default.default.createElement(Container, null,
|
|
121
|
-
React__default.default.createElement(Input, { id: props.id, name: props.name, type: "checkbox", className: props.className, checked: Boolean(props.value), onChange: handleChange, disabled: props.disabled, "data-testid": dataTestId, "aria-required": props.required, "aria-invalid": props.error ? 'true' : undefined, "aria-errormessage": props.error && props.errorMessage ? errorId : undefined }),
|
|
121
|
+
React__default.default.createElement(Input, { id: props.id, name: props.name, type: "checkbox", className: props.className, checked: Boolean(props.value), onChange: handleChange, disabled: props.disabled, "data-testid": dataTestId, "aria-required": props.required, "aria-invalid": props.error ? 'true' : undefined, "aria-errormessage": props.error && props.errorMessage ? errorId : undefined, "data-checked": Boolean(props.value) }),
|
|
122
122
|
React__default.default.createElement("label", { htmlFor: props.id, "data-testid": dataTestId && `${dataTestId}-label` },
|
|
123
123
|
props.label,
|
|
124
124
|
props.required && React__default.default.createElement(Mandatory, null, "*"))),
|
|
@@ -47,8 +47,7 @@ const BusinessMenuLink = styled.default.a `
|
|
|
47
47
|
const BusinessMenuList = styled.default.nav `
|
|
48
48
|
display: flex;
|
|
49
49
|
gap: ${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 1)};
|
|
50
|
-
padding: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 0.5)}
|
|
51
|
-
${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 1)};
|
|
50
|
+
padding: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 0.5)} ${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 1)};
|
|
52
51
|
${styledUtils.media.md `
|
|
53
52
|
padding: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 1)} ${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 1.5)};
|
|
54
53
|
`};
|
|
@@ -57,7 +56,7 @@ const BusinessMenu = ({ ariaLabel, currentBusinessId, items, lang }) => {
|
|
|
57
56
|
if (!(items === null || items === void 0 ? void 0 : items.length)) {
|
|
58
57
|
return null;
|
|
59
58
|
}
|
|
60
|
-
return (React__default.default.createElement(BusinessMenuList, { "aria-label": ariaLabel, "data-testid": "business-menu"
|
|
59
|
+
return (React__default.default.createElement(BusinessMenuList, { "aria-label": ariaLabel, "data-testid": "business-menu" }, 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])))));
|
|
61
60
|
};
|
|
62
61
|
|
|
63
62
|
exports.default = BusinessMenu;
|
|
@@ -36,13 +36,12 @@ const noAnimation = styled.css `
|
|
|
36
36
|
const MegaMenuContent = styled.default.ul `
|
|
37
37
|
display: grid;
|
|
38
38
|
grid-template-columns: 25% 25% 25% 25%;
|
|
39
|
-
padding-left: 0;
|
|
40
39
|
`;
|
|
41
|
-
const CategoryTitle = styled.default.
|
|
40
|
+
const CategoryTitle = styled.default.h2 `
|
|
42
41
|
display: flex;
|
|
43
42
|
font-size: ${theme.default.fontSize.default};
|
|
44
43
|
line-height: ${theme.default.lineHeight.default};
|
|
45
|
-
|
|
44
|
+
margin: 0;
|
|
46
45
|
padding: 0 ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 2)}
|
|
47
46
|
${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 1)};
|
|
48
47
|
${styledUtils.media.xl `
|
|
@@ -129,21 +128,21 @@ const SubMenuLevel1 = ({ menuItem }) => {
|
|
|
129
128
|
const pagesWithSubItems = menuItem.pages.filter(element => element.pages.length > 0);
|
|
130
129
|
// Helper function to render a sub menu item
|
|
131
130
|
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}` },
|
|
132
|
-
React__default.default.createElement(LinkModifier.default, { menuItem: element,
|
|
131
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: element, disabledTabIndex: false })));
|
|
133
132
|
if (!level1HasElements) {
|
|
134
133
|
return null;
|
|
135
134
|
}
|
|
136
135
|
return (React__default.default.createElement(SubMenuList, { "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, navZIndex: navZIndex },
|
|
137
|
-
React__default.default.createElement(MegaMenuContent,
|
|
136
|
+
React__default.default.createElement(MegaMenuContent, { "aria-labelledby": `menu-id-${menuItem.id}` },
|
|
138
137
|
pagesWithSubItems.slice(0, 5).map(element => (React__default.default.createElement(CategoryBlock, { key: element.id },
|
|
139
|
-
React__default.default.createElement(CategoryTitle,
|
|
140
|
-
React__default.default.createElement("ul", { "data-testid": "desktop-nav-menu-ul-level-2" }, element.pages.map((subElement, index) => renderSubMenuItem(subElement, index, currentUrl)))))),
|
|
138
|
+
React__default.default.createElement(CategoryTitle, { id: `menu-id-${element.id}` }, element.titles[lang]),
|
|
139
|
+
React__default.default.createElement("ul", { "aria-labelledby": `menu-id-${element.id}`, "data-testid": "desktop-nav-menu-ul-level-2" }, element.pages.map((subElement, index) => renderSubMenuItem(subElement, index, currentUrl)))))),
|
|
141
140
|
pagesWithSubItems.length > 5 && (React__default.default.createElement(CategoryCollectionBlock, null,
|
|
142
|
-
React__default.default.createElement(CategoryTitle,
|
|
143
|
-
React__default.default.createElement("ul", { "data-testid": "desktop-nav-menu-ul-level-2" }, pagesWithSubItems
|
|
141
|
+
React__default.default.createElement(CategoryTitle, { id: "misc-categories" }, categoryCollectionText),
|
|
142
|
+
React__default.default.createElement("ul", { "aria-labelledby": "misc-categories", "data-testid": "desktop-nav-menu-ul-level-2" }, pagesWithSubItems
|
|
144
143
|
.slice(5)
|
|
145
144
|
.map((element, index) => renderSubMenuItem(element, index, currentUrl))))),
|
|
146
|
-
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,
|
|
145
|
+
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, disabledTabIndex: false })))))));
|
|
147
146
|
};
|
|
148
147
|
const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
149
148
|
const { lang, handleNavMenuClick, currentUrl, menuLevel } = React.useContext(NavContext.default);
|
|
@@ -152,9 +151,9 @@ const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
|
152
151
|
e.preventDefault();
|
|
153
152
|
handleNavMenuClick(element.id, 'level1');
|
|
154
153
|
};
|
|
155
|
-
return (React__default.default.createElement(DesktopMenuItem, { isActive: LinkModifier.isSelected(currentUrl,
|
|
156
|
-
React__default.default.createElement(globalNavStyles.MenuLinkWithChildren, { isOpen: menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), "data-testid": "menu-button-with-children", href: linkUrl },
|
|
157
|
-
React__default.default.createElement("span",
|
|
154
|
+
return (React__default.default.createElement(DesktopMenuItem, { isActive: LinkModifier.isSelected(currentUrl, linkUrl), "data-testid": `desktop-nav-item-level-1-${currentLevel + 1}` },
|
|
155
|
+
React__default.default.createElement(globalNavStyles.MenuLinkWithChildren, { isOpen: menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), "data-testid": "menu-button-with-children", "aria-current": LinkModifier.isSelected(currentUrl, linkUrl) ? 'true' : undefined, "aria-expanded": menuLevel.level1 === menuItem.id, href: linkUrl },
|
|
156
|
+
React__default.default.createElement("span", { id: `menu-id-${menuItem.id}` }, menuItem.titles[lang]),
|
|
158
157
|
React__default.default.createElement(icons.ChevronRight, { size: "1rem" })),
|
|
159
158
|
React__default.default.createElement(SubMenuLevel1, { menuItem: menuItem })));
|
|
160
159
|
};
|
|
@@ -174,10 +173,10 @@ const DesktopMenu = () => {
|
|
|
174
173
|
return (React__default.default.createElement(globalNavStyles.MenuList, { "aria-hidden": false, ref: ref, "data-testid": "desktop-nav-menu-ul" }, mainNavigation.map((navElement, index) => {
|
|
175
174
|
const displaySubMenu = !navElement.pageIsLinkInDesktopNavigation && !!navElement.pages.length;
|
|
176
175
|
if (displaySubMenu) {
|
|
177
|
-
return (React__default.default.createElement(MenuItemWithChildren, {
|
|
176
|
+
return (React__default.default.createElement(MenuItemWithChildren, { currentLevel: index, key: navElement.id, menuItem: navElement }));
|
|
178
177
|
}
|
|
179
|
-
return (React__default.default.createElement(DesktopMenuItem, {
|
|
180
|
-
React__default.default.createElement(LinkModifier.default, { menuItem: navElement,
|
|
178
|
+
return (React__default.default.createElement(DesktopMenuItem, { "data-testid": `desktop-nav-item-level-1-${index + 1}`, isActive: LinkModifier.isSelected(currentUrl, navElement.urls[lang]), key: navElement.id },
|
|
179
|
+
React__default.default.createElement(LinkModifier.default, { menuItem: navElement, disabledTabIndex: false })));
|
|
181
180
|
})));
|
|
182
181
|
};
|
|
183
182
|
|
|
@@ -8,7 +8,6 @@ var styled = require('../../../themes/styled.js');
|
|
|
8
8
|
var theme = require('../../../themes/theme.js');
|
|
9
9
|
var navigation = require('../../../themes/themeComponents/navigation.js');
|
|
10
10
|
var styledUtils = require('../../../utils/styledUtils.js');
|
|
11
|
-
var Icon = require('../../Icon/Icon.js');
|
|
12
11
|
var NavContext = require('../context/NavContext.js');
|
|
13
12
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
14
13
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
@@ -32,7 +31,7 @@ const LanguageSelector = ({ currentLanguage, languagesObject, languageSelectorLa
|
|
|
32
31
|
return null;
|
|
33
32
|
}
|
|
34
33
|
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(
|
|
34
|
+
React__default.default.createElement(icons.Globe, { size: navigation.navIconSize }),
|
|
36
35
|
React__default.default.createElement("span", { "data-testid": "header-lang-label" }, currentLanguage.toUpperCase())));
|
|
37
36
|
};
|
|
38
37
|
|
|
@@ -2,9 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import type { MenuLevelItem } from '../types/globalNavProps';
|
|
3
3
|
interface LinkModifierProps {
|
|
4
4
|
menuItem: MenuLevelItem;
|
|
5
|
-
|
|
5
|
+
disabledTabIndex?: boolean;
|
|
6
6
|
showIcon?: boolean;
|
|
7
7
|
}
|
|
8
8
|
export declare const isSelected: (currentUrl: string, linkUrl: string, exactMatch?: boolean) => boolean;
|
|
9
|
-
declare const LinkModifier: ({ menuItem,
|
|
9
|
+
declare const LinkModifier: ({ menuItem, disabledTabIndex, showIcon }: LinkModifierProps) => React.JSX.Element;
|
|
10
10
|
export default LinkModifier;
|
|
@@ -4,8 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var icons = require('@dnanpm/icons');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var theme = require('../../../themes/theme.js');
|
|
8
|
-
var Icon = require('../../Icon/Icon.js');
|
|
9
7
|
var NavContext = require('../context/NavContext.js');
|
|
10
8
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
11
9
|
|
|
@@ -24,12 +22,12 @@ const isSelected = (currentUrl, linkUrl, exactMatch = false) => {
|
|
|
24
22
|
return false;
|
|
25
23
|
};
|
|
26
24
|
const isMenuItemLinkAbsolute = (menuItemLink) => menuItemLink.includes('http');
|
|
27
|
-
const LinkModifier = ({ menuItem,
|
|
28
|
-
const { lang, nextJSLinkComponent, resetMenuEvents } = React.useContext(NavContext.default);
|
|
29
|
-
const menuItemLink = menuItem.urls[lang]
|
|
25
|
+
const LinkModifier = ({ menuItem, disabledTabIndex, showIcon }) => {
|
|
26
|
+
const { lang, currentUrl, nextJSLinkComponent, resetMenuEvents } = React.useContext(NavContext.default);
|
|
27
|
+
const menuItemLink = menuItem.urls[lang];
|
|
30
28
|
const isExternalLink = menuItem.target === '_blank';
|
|
31
|
-
const MenuLinkComponent = (React__default.default.createElement(globalNavStyles.MenuLink, { href: menuItemLink, id: menuItem.id, onClick: resetMenuEvents, tabIndex:
|
|
32
|
-
showIcon && (React__default.default.createElement(
|
|
29
|
+
const MenuLinkComponent = (React__default.default.createElement(globalNavStyles.MenuLink, { "aria-current": isSelected(currentUrl, menuItemLink) ? 'page' : undefined, href: menuItemLink, id: menuItem.id, onClick: resetMenuEvents, tabIndex: disabledTabIndex ? -1 : undefined, target: isExternalLink ? '_blank' : '_self' },
|
|
30
|
+
showIcon && (isExternalLink ? React__default.default.createElement(icons.Open, null) : React__default.default.createElement(icons.ArrowRight, null)),
|
|
33
31
|
React__default.default.createElement("span", null, menuItem.titles[lang])));
|
|
34
32
|
if (nextJSLinkComponent && !isMenuItemLinkAbsolute(menuItemLink)) {
|
|
35
33
|
const NextJSLinkComponent = nextJSLinkComponent;
|
|
@@ -4,8 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var icons = require('@dnanpm/icons');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var navigation = require('../../../themes/themeComponents/navigation.js');
|
|
8
|
-
var Icon = require('../../Icon/Icon.js');
|
|
9
7
|
var NavContext = require('../context/NavContext.js');
|
|
10
8
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
11
9
|
|
|
@@ -14,9 +12,9 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
14
12
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
13
|
|
|
16
14
|
const LoginTooltip = ({ isLogged, loginLabel }) => {
|
|
17
|
-
const { navZIndex, isMobileMenu, loginComponent
|
|
18
|
-
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent:
|
|
19
|
-
React__default.default.createElement(
|
|
15
|
+
const { navZIndex, isMobileMenu, loginComponent } = React.useContext(NavContext.default);
|
|
16
|
+
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,
|
|
17
|
+
React__default.default.createElement(icons.User, null),
|
|
20
18
|
React__default.default.createElement("span", { "data-testid": "header-login-label" }, loginLabel)))));
|
|
21
19
|
};
|
|
22
20
|
|
|
@@ -28,19 +28,19 @@ const IconContainer = styled.default.div `
|
|
|
28
28
|
min-width: ${navigation.IconContainerMinWidth};
|
|
29
29
|
transition: color 0.2s ease-in-out;
|
|
30
30
|
|
|
31
|
-
>
|
|
31
|
+
> svg {
|
|
32
32
|
display: block;
|
|
33
33
|
height: ${navigation.navIconSize};
|
|
34
34
|
width: ${navigation.navIconSize};
|
|
35
35
|
}
|
|
36
|
-
>
|
|
37
|
-
|
|
36
|
+
> svg,
|
|
37
|
+
+ span {
|
|
38
38
|
color: ${p => (p.isActive ? theme.default.color.text.pink : 'inherit')};
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
@media (min-width: ${p => p.collapseSize + 1}px) {
|
|
42
42
|
min-width: ${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 6)};
|
|
43
|
-
|
|
43
|
+
+ span {
|
|
44
44
|
display: block;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -111,7 +111,7 @@ const MainNavTooltipMenu = (_a) => {
|
|
|
111
111
|
}
|
|
112
112
|
});
|
|
113
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)),
|
|
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, "aria-expanded": tooltipItems[globalStateKey], isLoggedIn: isLoginItemAndLoggedIn, collapseSize: collapseSize, isHighlighted: tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
|
|
115
115
|
tooltipItems[globalStateKey] && ContentComponent && (React__default.default.createElement(React__default.default.Fragment, null,
|
|
116
116
|
React__default.default.createElement(Caret, { zIndex: zIndex, collapseSize: collapseSize }),
|
|
117
117
|
React__default.default.createElement(Tooltip, { zIndex: zIndex, tooltipRight: tooltipRight, contentWidth: contentWidth, collapseSize: collapseSize, fullWidthDesktop: fullWidthDesktop, fullWidthBreakpoint: fullWidthBreakpoint },
|
|
@@ -24,7 +24,7 @@ const TooltipWrapper = styled.default.button `
|
|
|
24
24
|
border-left: ${p => (p.isLoggedIn ? `2px solid ${theme.default.color.line.L03}` : 'none')};
|
|
25
25
|
&:active,
|
|
26
26
|
&:focus {
|
|
27
|
-
|
|
27
|
+
> svg,
|
|
28
28
|
> span {
|
|
29
29
|
color: ${theme.default.color.text.pink};
|
|
30
30
|
}
|
|
@@ -34,12 +34,12 @@ const TooltipWrapper = styled.default.button `
|
|
|
34
34
|
border-radius: ${theme.default.radius.s};
|
|
35
35
|
box-shadow: 0px 0px 0px 2px ${theme.default.color.focus.light},
|
|
36
36
|
0px 0px 0px 4px ${theme.default.color.focus.dark};
|
|
37
|
-
|
|
37
|
+
> svg,
|
|
38
38
|
> span {
|
|
39
39
|
color: ${theme.default.color.text.black};
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
> svg {
|
|
43
43
|
align-content: center;
|
|
44
44
|
display: flex;
|
|
45
45
|
margin: 0 auto;
|
|
@@ -48,7 +48,7 @@ const TooltipWrapper = styled.default.button `
|
|
|
48
48
|
width: 1.625em;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
> span {
|
|
52
52
|
display: none;
|
|
53
53
|
@media (min-width: ${p => p.collapseSize + 1}px) {
|
|
54
54
|
font-size: ${theme.default.fontSize.xs};
|
|
@@ -2,7 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import type { MainHeaderNavigationProps } from '../MainHeaderNavigation';
|
|
3
3
|
interface MinicartTooltipProps extends Pick<MainHeaderNavigationProps, 'onCartButtonClick'> {
|
|
4
4
|
minicartAmount: number;
|
|
5
|
-
minicartLabel
|
|
5
|
+
minicartLabel: string;
|
|
6
|
+
minicartAmountLabel: string;
|
|
6
7
|
}
|
|
7
|
-
declare const MinicartTooltip: ({ minicartAmount, minicartLabel,
|
|
8
|
+
declare const MinicartTooltip: ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }: MinicartTooltipProps) => React.JSX.Element;
|
|
8
9
|
export default MinicartTooltip;
|
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib = require('tslib');
|
|
6
5
|
var icons = require('@dnanpm/icons');
|
|
7
6
|
var React = require('react');
|
|
8
7
|
var theme = require('../../../themes/theme.js');
|
|
9
|
-
var navigation = require('../../../themes/themeComponents/navigation.js');
|
|
10
|
-
var Icon = require('../../Icon/Icon.js');
|
|
11
8
|
var NotificationBadge = require('../../NotificationBadge/NotificationBadge.js');
|
|
12
9
|
var NavContext = require('../context/NavContext.js');
|
|
13
10
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
@@ -16,13 +13,12 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
13
|
|
|
17
14
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
18
15
|
|
|
19
|
-
const MinicartTooltip = (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
React__default.default.createElement(
|
|
24
|
-
React__default.default.createElement("
|
|
25
|
-
minicartAmount > 0 && (React__default.default.createElement(NotificationBadge.default, { top: "-5px", right: "5px", "data-testid": "header-minicart-amount" }, minicartAmount))));
|
|
16
|
+
const MinicartTooltip = ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }) => {
|
|
17
|
+
const { navZIndex, minicartComponent } = React.useContext(NavContext.default);
|
|
18
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: minicartLabel, closeWhenTagClicked: ['a', 'button'], onCartButtonClick: onCartButtonClick, contentComponent: minicartComponent, contentWidth: "35rem", fullWidthBreakpoint: theme.default.breakpoints.md, globalStateString: "minicart", tooltipRight: "5rem", zIndex: navZIndex + 1 },
|
|
19
|
+
React__default.default.createElement(icons.Cart, null),
|
|
20
|
+
React__default.default.createElement("span", { "aria-hidden": true }, minicartLabel),
|
|
21
|
+
minicartAmount > 0 && (React__default.default.createElement(NotificationBadge.default, { "data-testid": "header-minicart-amount", right: "5px", top: "-5px", visuallyHiddenText: minicartAmountLabel }, minicartAmount))));
|
|
26
22
|
};
|
|
27
23
|
|
|
28
24
|
exports.default = MinicartTooltip;
|
|
@@ -132,7 +132,7 @@ const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
|
|
|
132
132
|
menuItem.titles[lang],
|
|
133
133
|
React__default.default.createElement(icons.ChevronRight, { color: theme.default.color.default.pink })));
|
|
134
134
|
}
|
|
135
|
-
return renderMenuItem(React__default.default.createElement(LinkModifier.default, { menuItem: menuItem,
|
|
135
|
+
return renderMenuItem(React__default.default.createElement(LinkModifier.default, { menuItem: menuItem, disabledTabIndex: tabNavigationDisabled }));
|
|
136
136
|
};
|
|
137
137
|
const SubMenuMobile = ({ currentLevel, menuItem }) => {
|
|
138
138
|
const featuredItems = menuItem.pages.filter(subMenuItem => !subMenuItem.pages.length && currentLevel === 2);
|
|
@@ -144,7 +144,7 @@ const SubMenuMobile = ({ currentLevel, menuItem }) => {
|
|
|
144
144
|
}
|
|
145
145
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
146
146
|
currentLevel > 1 && React__default.default.createElement(MenuItemBackLink, { currentLevel: currentLevel }),
|
|
147
|
-
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,
|
|
147
|
+
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, disabledTabIndex: tabNavigationDisabled }))))),
|
|
148
148
|
menuItem.pages
|
|
149
149
|
.filter(subMenuItem => !featuredItems.includes(subMenuItem))
|
|
150
150
|
.map((subMenuItem, index) => (React__default.default.createElement(CreateSubMenuItem, { currentLevel: currentLevel, itemIndex: index, key: subMenuItem.id, menuItem: subMenuItem })))));
|
|
@@ -155,7 +155,7 @@ const NavigationMenuMobile = () => {
|
|
|
155
155
|
if (!(mainNavigation === null || mainNavigation === void 0 ? void 0 : mainNavigation.pages.length)) {
|
|
156
156
|
return null;
|
|
157
157
|
}
|
|
158
|
-
const renderMenuList = (scrollPosition, level, menuItem) => (React__default.default.createElement(globalNavStyles.MenuList, {
|
|
158
|
+
const renderMenuList = (scrollPosition, level, menuItem) => (React__default.default.createElement(globalNavStyles.MenuList, { "aria-hidden": menuLevel.scrollPosition !== scrollPosition, "aria-disabled": menuLevel.scrollPosition !== scrollPosition, "data-testid": `mobile-nav-menu-level-${level}`, isInView: menuLevel.scrollPosition === scrollPosition },
|
|
159
159
|
React__default.default.createElement(SubMenuMobile, { currentLevel: level, menuItem: menuItem })));
|
|
160
160
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
161
161
|
renderMenuList(0, 1, mainNavigation),
|
|
@@ -4,8 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var icons = require('@dnanpm/icons');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var navigation = require('../../../themes/themeComponents/navigation.js');
|
|
8
|
-
var Icon = require('../../Icon/Icon.js');
|
|
9
7
|
var NavContext = require('../context/NavContext.js');
|
|
10
8
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
11
9
|
|
|
@@ -14,9 +12,9 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
14
12
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
13
|
|
|
16
14
|
const PageSearch = ({ searchLabel }) => {
|
|
17
|
-
const { navZIndex, searchComponent
|
|
18
|
-
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent:
|
|
19
|
-
React__default.default.createElement(
|
|
15
|
+
const { navZIndex, searchComponent } = React.useContext(NavContext.default);
|
|
16
|
+
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 },
|
|
17
|
+
React__default.default.createElement(icons.Search, null),
|
|
20
18
|
React__default.default.createElement("span", null, searchLabel)));
|
|
21
19
|
};
|
|
22
20
|
|
|
@@ -16,6 +16,7 @@ export interface MainHeaderNavigationProps {
|
|
|
16
16
|
minicart?: boolean;
|
|
17
17
|
minicartText?: string;
|
|
18
18
|
minicartAmount?: number;
|
|
19
|
+
minicartAmountLabel?: string;
|
|
19
20
|
/**
|
|
20
21
|
* Defines MinicartComponent when used. If minicart is true but component is not provided, shown as disabled element.
|
|
21
22
|
*
|
|
@@ -27,6 +28,9 @@ export interface MainHeaderNavigationProps {
|
|
|
27
28
|
* On Cart button click callback
|
|
28
29
|
*/
|
|
29
30
|
onCartButtonClick?: (e: MouseEvent<HTMLElement>) => void;
|
|
31
|
+
dnaLogoLinkAriaLabel?: string;
|
|
32
|
+
openMainMenuAriaLabel?: string;
|
|
33
|
+
closeMainMenuAriaLabel?: string;
|
|
30
34
|
showLoginTooltip?: boolean;
|
|
31
35
|
languageSelector?: boolean;
|
|
32
36
|
languageSelectorText?: string;
|
|
@@ -40,6 +44,6 @@ export interface MainHeaderNavigationProps {
|
|
|
40
44
|
notificationText?: string;
|
|
41
45
|
}
|
|
42
46
|
/** @visibleName MainHeaderNavigation */
|
|
43
|
-
declare const MainHeaderNavigation: ({ businessMenuAriaLabel, categoryCollectionText, className, collapseSize, currentUrl, isLoggedIn, items, language, languageSelector, languageSelectorText, login, loginComponent, loginText, mainMenuAriaLabel, minicart, minicartAmount, minicartComponent, minicartText, nextJSLinkComponent, notificationText, search, searchComponent, searchText, showLoginTooltip, showMinicart, zIndex, ...props }: MainHeaderNavigationProps) => React.JSX.Element;
|
|
47
|
+
declare const MainHeaderNavigation: ({ businessMenuAriaLabel, categoryCollectionText, closeMainMenuAriaLabel, className, collapseSize, currentUrl, dnaLogoLinkAriaLabel, isLoggedIn, items, language, languageSelector, languageSelectorText, login, loginComponent, loginText, mainMenuAriaLabel, minicart, minicartAmount, minicartAmountLabel, minicartComponent, minicartText, nextJSLinkComponent, notificationText, openMainMenuAriaLabel, search, searchComponent, searchText, showLoginTooltip, showMinicart, zIndex, ...props }: MainHeaderNavigationProps) => React.JSX.Element;
|
|
44
48
|
/** @component */
|
|
45
49
|
export default MainHeaderNavigation;
|
|
@@ -13,7 +13,6 @@ var theme = require('../../themes/theme.js');
|
|
|
13
13
|
var navigation = require('../../themes/themeComponents/navigation.js');
|
|
14
14
|
var styledUtils = require('../../utils/styledUtils.js');
|
|
15
15
|
var DnaLogo = require('../DnaLogo/DnaLogo.js');
|
|
16
|
-
var Icon = require('../Icon/Icon.js');
|
|
17
16
|
var Notification = require('../Notification/Notification.js');
|
|
18
17
|
var BusinessMenu = require('./ChildComponents/BusinessMenu.js');
|
|
19
18
|
var DesktopMenu = require('./ChildComponents/DesktopMenu.js');
|
|
@@ -135,7 +134,7 @@ const initiateScrollToHeader = (componentRef) => {
|
|
|
135
134
|
/** @visibleName MainHeaderNavigation */
|
|
136
135
|
const MainHeaderNavigation = (_a) => {
|
|
137
136
|
var _b, _c, _d;
|
|
138
|
-
var { businessMenuAriaLabel = 'Sivustot', categoryCollectionText = 'Muut kategoriat', className, collapseSize = 767, currentUrl = '', isLoggedIn = false, items = {}, language = 'fi', languageSelector = false, languageSelectorText = 'Vaihda kieltä', login = true, loginComponent, loginText = 'Kirjaudu', mainMenuAriaLabel = 'Päänavigaatio', minicart = true, minicartAmount = 0, minicartComponent = false, minicartText = 'Ostoskori', nextJSLinkComponent = false, notificationText = '', search = true, searchComponent = false, searchText = 'Haku', showLoginTooltip = false, showMinicart = false, zIndex = 1030 } = _a, props = tslib.__rest(_a, ["businessMenuAriaLabel", "categoryCollectionText", "className", "collapseSize", "currentUrl", "isLoggedIn", "items", "language", "languageSelector", "languageSelectorText", "login", "loginComponent", "loginText", "mainMenuAriaLabel", "minicart", "minicartAmount", "minicartComponent", "minicartText", "nextJSLinkComponent", "notificationText", "search", "searchComponent", "searchText", "showLoginTooltip", "showMinicart", "zIndex"]);
|
|
137
|
+
var { businessMenuAriaLabel = 'Sivustot', categoryCollectionText = 'Muut kategoriat', closeMainMenuAriaLabel, className, collapseSize = 767, currentUrl = '', dnaLogoLinkAriaLabel, isLoggedIn = false, items = {}, language = 'fi', languageSelector = false, languageSelectorText = 'Vaihda kieltä', login = true, loginComponent, loginText = 'Kirjaudu', mainMenuAriaLabel = 'Päänavigaatio', minicart = true, minicartAmount = 0, minicartAmountLabel, minicartComponent = false, minicartText = 'Ostoskori', nextJSLinkComponent = false, notificationText = '', openMainMenuAriaLabel, search = true, searchComponent = false, searchText = 'Haku', showLoginTooltip = false, showMinicart = false, zIndex = 1030 } = _a, props = tslib.__rest(_a, ["businessMenuAriaLabel", "categoryCollectionText", "closeMainMenuAriaLabel", "className", "collapseSize", "currentUrl", "dnaLogoLinkAriaLabel", "isLoggedIn", "items", "language", "languageSelector", "languageSelectorText", "login", "loginComponent", "loginText", "mainMenuAriaLabel", "minicart", "minicartAmount", "minicartAmountLabel", "minicartComponent", "minicartText", "nextJSLinkComponent", "notificationText", "openMainMenuAriaLabel", "search", "searchComponent", "searchText", "showLoginTooltip", "showMinicart", "zIndex"]);
|
|
139
138
|
const { isMobile } = useWindowSize.default(collapseSize);
|
|
140
139
|
const navigationEl = React.useRef(null);
|
|
141
140
|
const key = ramda.prop('id');
|
|
@@ -301,24 +300,25 @@ const MainHeaderNavigation = (_a) => {
|
|
|
301
300
|
};
|
|
302
301
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
303
302
|
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
|
|
303
|
+
React__default.default.createElement(GlobalNavigationContainer, { className: className, collapseSize: collapseSize, "data-testid": "dna-main-header", navZIndex: zIndex, ref: navigationEl },
|
|
305
304
|
React__default.default.createElement(NavContext.default.Provider, { value: navigationContext },
|
|
306
305
|
React__default.default.createElement(GlobalStyle, null),
|
|
307
306
|
!items.mainNavigation && notificationText && (React__default.default.createElement(Notification.default, { type: "info" }, notificationText)),
|
|
308
307
|
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
308
|
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],
|
|
309
|
+
React__default.default.createElement(globalNavStyles.LogoLink, { "data-testid": "dna-logo-link", href: currentBusinessSite === null || currentBusinessSite === void 0 ? void 0 : currentBusinessSite.urls[language], "aria-label": dnaLogoLinkAriaLabel },
|
|
311
310
|
React__default.default.createElement(DnaLogo.default, { size: navigation.headerLogoSize })),
|
|
312
311
|
React__default.default.createElement(globalNavStyles.DesktopMenuContainer, { "aria-label": mainMenuAriaLabel, collapseSize: collapseSize },
|
|
313
312
|
React__default.default.createElement(DesktopMenu.default, null)),
|
|
314
313
|
React__default.default.createElement(globalNavStyles.HeaderIconContainer, { collapseSize: collapseSize },
|
|
315
314
|
languagesObject && languageSelector && (React__default.default.createElement(LanguageSelector.default, { currentLanguage: language, languagesObject: languagesObject, languageSelectorLabel: languageSelectorText })),
|
|
316
315
|
search && React__default.default.createElement(PageSearch.default, { searchLabel: searchText }),
|
|
317
|
-
minicart && (React__default.default.createElement(MinicartTooltip.default, { minicartAmount: minicartAmount, minicartLabel: minicartText, onCartButtonClick: props.onCartButtonClick })),
|
|
316
|
+
minicart && (React__default.default.createElement(MinicartTooltip.default, { minicartAmount: minicartAmount, minicartAmountLabel: minicartAmountLabel !== null && minicartAmountLabel !== void 0 ? minicartAmountLabel : '', minicartLabel: minicartText, onCartButtonClick: props.onCartButtonClick })),
|
|
318
317
|
login && React__default.default.createElement(LoginTooltip.default, { loginLabel: loginText, isLogged: isLoggedIn }),
|
|
319
318
|
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":
|
|
321
|
-
|
|
319
|
+
React__default.default.createElement(globalNavStyles.MobileMenuButton, { "aria-expanded": isMobileMenuOpen, "aria-label": isMobileMenuOpen
|
|
320
|
+
? closeMainMenuAriaLabel
|
|
321
|
+
: openMainMenuAriaLabel, "data-testid": "header-mobile-menu-toggle", onClick: handleToggleClick }, isMobileMenuOpen ? React__default.default.createElement(icons.Close, null) : React__default.default.createElement(icons.Menu, null)))),
|
|
322
322
|
isMobile && React__default.default.createElement(MobileMenu.default, null))))));
|
|
323
323
|
};
|
|
324
324
|
|
|
@@ -94,6 +94,12 @@ const MenuLink = styled.default.a `
|
|
|
94
94
|
overflow: visible;
|
|
95
95
|
text-decoration: none;
|
|
96
96
|
color: ${p => (p.isActive ? theme.default.color.text.pink : theme.default.color.text.black)};
|
|
97
|
+
> svg {
|
|
98
|
+
fill: ${theme.default.color.text.pink};
|
|
99
|
+
height: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 2)};
|
|
100
|
+
width: ${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 2)};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
97
103
|
`;
|
|
98
104
|
const MenuLinkWithChildren = styled.default.a `
|
|
99
105
|
line-height: ${theme.default.lineHeight.xs};
|
|
@@ -124,7 +124,7 @@ const Pill = (_a) => {
|
|
|
124
124
|
const isDefaultType = type === 'none';
|
|
125
125
|
return (React__default.default.createElement(Label, { as: isDefaultType ? 'button' : 'label', id: isDefaultType ? props.id : undefined, htmlFor: !isDefaultType ? props.id : undefined, type: isDefaultType ? 'button' : undefined, position: props.position, isChecked: props.isChecked || props.isDefaultChecked, isDisabled: props.isDisabled, className: props.className, "data-testid": dataTestId, isDefaultButtonStyle: props.isDefaultButtonStyle, "aria-label": props.ariaLabel, disabled: isDefaultType ? props.isDisabled : undefined, onClick: isDefaultType && !props.isDisabled ? props.onClick : undefined },
|
|
126
126
|
props.children,
|
|
127
|
-
!isDefaultType && (React__default.default.createElement(Input, { id: props.id, name: props.name, type: type, defaultChecked: props.isDefaultChecked, checked: props.isChecked, value: props.value, onChange: props.onChange, disabled: props.isDisabled, readOnly: !props.onChange, "data-testid": dataTestId && `${dataTestId}-input
|
|
127
|
+
!isDefaultType && (React__default.default.createElement(Input, { id: props.id, name: props.name, type: type, defaultChecked: props.isDefaultChecked, checked: props.isChecked, value: props.value, onChange: props.onChange, disabled: props.isDisabled, readOnly: !props.onChange, "data-testid": dataTestId && `${dataTestId}-input`, "data-checked": props.isChecked }))));
|
|
128
128
|
};
|
|
129
129
|
|
|
130
130
|
exports.default = Pill;
|