@comicrelief/component-library 8.54.1 → 8.55.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Atoms/Logo/Logo.js +0 -5
- package/dist/components/Atoms/Logo/Logo.test.js +1 -1
- package/dist/components/Atoms/LogoNav2026/LogoNav2026.test.js +94 -0
- package/dist/components/Atoms/LogoNav2026/_LogoNav2026.js +63 -0
- package/dist/components/Atoms/LogoNav2026/assets/cr-logo-mob.svg +14 -0
- package/dist/components/Atoms/LogoNav2026/assets/cr-logo.svg +14 -0
- package/dist/components/Molecules/HeroBanner/HeroBanner.style.js +68 -62
- package/dist/components/Molecules/HeroBanner/__snapshots__/HeroBanner.test.js.snap +7 -4
- package/dist/components/Molecules/LogoLinked/LogoLinked.md +6 -1
- package/dist/components/Organisms/Header/HeaderNav/HeaderNav.style.js +3 -3
- package/dist/components/Organisms/Header2025/Header2025.md +1 -1
- package/dist/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.js +1 -1
- package/dist/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.style.js +3 -3
- package/dist/components/Organisms/Header2026/Burger/BurgerMenu.js +25 -0
- package/dist/components/Organisms/Header2026/Burger/BurgerMenu.style.js +58 -0
- package/dist/components/Organisms/Header2026/Header2026.js +148 -0
- package/dist/components/Organisms/Header2026/Header2026.md +14 -0
- package/dist/components/Organisms/Header2026/Header2026.style.js +129 -0
- package/dist/components/Organisms/Header2026/Navs/Navs.js +209 -0
- package/dist/components/Organisms/Header2026/Navs/Navs.style.js +104 -0
- package/dist/components/Organisms/Header2026/Navs/PrimaryNavItem.js +227 -0
- package/dist/components/Organisms/Header2026/Navs/PrimaryNavItem.style.js +401 -0
- package/dist/components/Organisms/Header2026/Navs/arrow-right.png +0 -0
- package/dist/components/Organisms/Header2026/Navs/arrow.svg +6 -0
- package/dist/components/Organisms/Header2026/Navs/chevron-down.svg +3 -0
- package/dist/components/Organisms/Header2026/assets/arrow-icon.svg +3 -0
- package/dist/components/Organisms/Header2026/assets/chevron-icon.svg +3 -0
- package/dist/components/Organisms/Header2026/assets/search-icon.svg +10 -0
- package/dist/components/Organisms/Header2026/header2026.test.js +24 -0
- package/dist/components/Organisms/Header2026/mockData/mockData.json +569 -0
- package/dist/components/Organisms/Header2026/mockData/query.graphql +64 -0
- package/dist/theme/shared/animations.js +15 -1
- package/dist/utils/navHelper.js +75 -3
- package/dist/utils/remove-extra-styles-in-preview.css +14 -0
- package/dist/utils/urlHelper.js +30 -0
- package/package.json +1 -1
- package/src/components/Atoms/Logo/Logo.js +0 -4
- package/src/components/Atoms/Logo/Logo.test.js +5 -5
- package/src/components/Atoms/LogoNav2026/LogoNav2026.test.js +91 -0
- package/src/components/Atoms/LogoNav2026/_LogoNav2026.js +75 -0
- package/src/components/Atoms/LogoNav2026/assets/cr-logo-mob.svg +14 -0
- package/src/components/Atoms/LogoNav2026/assets/cr-logo.svg +14 -0
- package/src/components/Molecules/HeroBanner/HeroBanner.style.js +4 -3
- package/src/components/Molecules/HeroBanner/__snapshots__/HeroBanner.test.js.snap +7 -4
- package/src/components/Molecules/LogoLinked/LogoLinked.md +6 -1
- package/src/components/Organisms/Header/HeaderNav/HeaderNav.style.js +2 -2
- package/src/components/Organisms/Header2025/Header2025.md +1 -1
- package/src/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.js +1 -1
- package/src/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.style.js +2 -2
- package/src/components/Organisms/Header2026/Burger/BurgerMenu.js +26 -0
- package/src/components/Organisms/Header2026/Burger/BurgerMenu.style.js +104 -0
- package/src/components/Organisms/Header2026/Header2026.js +215 -0
- package/src/components/Organisms/Header2026/Header2026.md +14 -0
- package/src/components/Organisms/Header2026/Header2026.style.js +195 -0
- package/src/components/Organisms/Header2026/Navs/Navs.js +251 -0
- package/src/components/Organisms/Header2026/Navs/Navs.style.js +168 -0
- package/src/components/Organisms/Header2026/Navs/PrimaryNavItem.js +354 -0
- package/src/components/Organisms/Header2026/Navs/PrimaryNavItem.style.js +658 -0
- package/src/components/Organisms/Header2026/Navs/arrow-right.png +0 -0
- package/src/components/Organisms/Header2026/Navs/arrow.svg +6 -0
- package/src/components/Organisms/Header2026/Navs/chevron-down.svg +3 -0
- package/src/components/Organisms/Header2026/assets/arrow-icon.svg +3 -0
- package/src/components/Organisms/Header2026/assets/chevron-icon.svg +3 -0
- package/src/components/Organisms/Header2026/assets/search-icon.svg +10 -0
- package/src/components/Organisms/Header2026/header2026.test.js +22 -0
- package/src/components/Organisms/Header2026/mockData/mockData.json +569 -0
- package/src/components/Organisms/Header2026/mockData/query.graphql +64 -0
- package/src/theme/crTheme/theme.js +0 -1
- package/src/theme/shared/animations.js +67 -3
- package/src/utils/navHelper.js +82 -2
- package/src/utils/remove-extra-styles-in-preview.css +14 -0
- package/src/utils/urlHelper.js +27 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SearchWrapperMobile = exports.SearchLinkMobile = exports.SearchIconWrapperMobile = exports.PrimaryMenuWrapper = exports.PrimaryMenu = exports.Navigation = exports.DonateButtonMobileModalWrapper = void 0;
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
var _Link = _interopRequireDefault(require("../../../Atoms/Link/Link"));
|
|
10
|
+
var _hideVisually = _interopRequireDefault(require("../../../../theme/shared/hideVisually"));
|
|
11
|
+
var _zIndex = _interopRequireDefault(require("../../../../theme/shared/zIndex"));
|
|
12
|
+
const Navigation = exports.Navigation = _styledComponents.default.nav.withConfig({
|
|
13
|
+
displayName: "Navsstyle__Navigation",
|
|
14
|
+
componentId: "sc-1hd9a50-0"
|
|
15
|
+
})(["display:", ";width:100%;position:absolute;top:75px;left:0;", ";@media ", "{", ";position:static;top:0;display:block;margin:0;width:100%;height:100%;box-shadow:none;}> h2{", ";}"], _ref => {
|
|
16
|
+
let {
|
|
17
|
+
isMenuOpen
|
|
18
|
+
} = _ref;
|
|
19
|
+
return isMenuOpen ? 'block' : 'none';
|
|
20
|
+
}, (0, _zIndex.default)('higher'), _ref2 => {
|
|
21
|
+
let {
|
|
22
|
+
theme
|
|
23
|
+
} = _ref2;
|
|
24
|
+
return theme.breakpoints2026('L');
|
|
25
|
+
}, (0, _zIndex.default)('medium'), _hideVisually.default);
|
|
26
|
+
const PrimaryMenuWrapper = exports.PrimaryMenuWrapper = _styledComponents.default.div.withConfig({
|
|
27
|
+
displayName: "Navsstyle__PrimaryMenuWrapper",
|
|
28
|
+
componentId: "sc-1hd9a50-1"
|
|
29
|
+
})(["background-color:", ";box-shadow:0 5px 20px 0 rgba(0,0,0,0.05);border-radius:16px;overflow:hidden;position:static;@media ", "{box-shadow:none;border-radius:0;height:100%;display:flex;justify-content:center;align-items:center;overflow:visible;}"], _ref3 => {
|
|
30
|
+
let {
|
|
31
|
+
theme
|
|
32
|
+
} = _ref3;
|
|
33
|
+
return theme.color('white');
|
|
34
|
+
}, _ref4 => {
|
|
35
|
+
let {
|
|
36
|
+
theme
|
|
37
|
+
} = _ref4;
|
|
38
|
+
return theme.breakpoints2026('L');
|
|
39
|
+
});
|
|
40
|
+
const PrimaryMenu = exports.PrimaryMenu = _styledComponents.default.ul.withConfig({
|
|
41
|
+
displayName: "Navsstyle__PrimaryMenu",
|
|
42
|
+
componentId: "sc-1hd9a50-2"
|
|
43
|
+
})(["background-color:transparent;list-style:none outside;padding:0;margin:0;width:100%;height:100%;position:relative border:1px solid green;@media ", "{position:static;display:flex;justify-content:center;align-items:center;gap:24px;width:100%;height:100%;background-color:", ";}"], _ref5 => {
|
|
44
|
+
let {
|
|
45
|
+
theme
|
|
46
|
+
} = _ref5;
|
|
47
|
+
return theme.breakpoints2026('L');
|
|
48
|
+
}, _ref6 => {
|
|
49
|
+
let {
|
|
50
|
+
theme
|
|
51
|
+
} = _ref6;
|
|
52
|
+
return theme.color('white');
|
|
53
|
+
});
|
|
54
|
+
const DonateButtonMobileModalWrapper = exports.DonateButtonMobileModalWrapper = _styledComponents.default.div.withConfig({
|
|
55
|
+
displayName: "Navsstyle__DonateButtonMobileModalWrapper",
|
|
56
|
+
componentId: "sc-1hd9a50-3"
|
|
57
|
+
})(["display:block;background-color:inherit;margin-top:48px;width:100%;a{box-sizing:border-box;display:block;text-align:center;border-radius:16px;width:100%;margin:0;font-family:Montserrat;height:auto;padding:18px 0;&:hover,&:focus{width:100%;box-shadow:0 5px 20px 0 rgba(0,0,0,0.05);}}@media ", "{display:none;}"], _ref7 => {
|
|
58
|
+
let {
|
|
59
|
+
theme
|
|
60
|
+
} = _ref7;
|
|
61
|
+
return theme.breakpoints2026('L');
|
|
62
|
+
});
|
|
63
|
+
const SearchWrapperMobile = exports.SearchWrapperMobile = _styledComponents.default.div.withConfig({
|
|
64
|
+
displayName: "Navsstyle__SearchWrapperMobile",
|
|
65
|
+
componentId: "sc-1hd9a50-4"
|
|
66
|
+
})(["display:block;width:100%;border-top:1px solid ", ";@media ", "{display:none;}"], _ref8 => {
|
|
67
|
+
let {
|
|
68
|
+
theme
|
|
69
|
+
} = _ref8;
|
|
70
|
+
return theme.color('grey_medium');
|
|
71
|
+
}, _ref9 => {
|
|
72
|
+
let {
|
|
73
|
+
theme
|
|
74
|
+
} = _ref9;
|
|
75
|
+
return theme.breakpoints2026('L');
|
|
76
|
+
});
|
|
77
|
+
const SearchLinkMobile = exports.SearchLinkMobile = (0, _styledComponents.default)(_Link.default).withConfig({
|
|
78
|
+
displayName: "Navsstyle__SearchLinkMobile",
|
|
79
|
+
componentId: "sc-1hd9a50-5"
|
|
80
|
+
})(["display:flex;align-items:center;justify-content:space-between;padding:25px;width:100%;text-decoration:none;font-family:Montserrat;font-weight:600;color:", ";transition:color 0.2s ease;outline-offset:-3px;&:hover,&:focus{color:", ";background-color:", ";}"], _ref10 => {
|
|
81
|
+
let {
|
|
82
|
+
theme
|
|
83
|
+
} = _ref10;
|
|
84
|
+
return theme.color('black');
|
|
85
|
+
}, _ref11 => {
|
|
86
|
+
let {
|
|
87
|
+
theme
|
|
88
|
+
} = _ref11;
|
|
89
|
+
return theme.color('red');
|
|
90
|
+
}, _ref12 => {
|
|
91
|
+
let {
|
|
92
|
+
theme
|
|
93
|
+
} = _ref12;
|
|
94
|
+
return theme.color('grey_extra_light');
|
|
95
|
+
});
|
|
96
|
+
const SearchIconWrapperMobile = exports.SearchIconWrapperMobile = _styledComponents.default.div.withConfig({
|
|
97
|
+
displayName: "Navsstyle__SearchIconWrapperMobile",
|
|
98
|
+
componentId: "sc-1hd9a50-6"
|
|
99
|
+
})(["overflow:visible;img{width:18px;height:18px;transition:transform 0.2s ease;transform-origin:center;}a{overflow:visible;display:block;}&:hover img,&:focus-within img{transform:scale(1.33);}@media ", "{display:none;}"], _ref13 => {
|
|
100
|
+
let {
|
|
101
|
+
theme
|
|
102
|
+
} = _ref13;
|
|
103
|
+
return theme.breakpoints2026('L');
|
|
104
|
+
});
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _Text = _interopRequireDefault(require("../../../Atoms/Text/Text"));
|
|
11
|
+
var _chevronIcon = _interopRequireDefault(require("../assets/chevron-icon.svg"));
|
|
12
|
+
var _urlHelper = _interopRequireDefault(require("../../../../utils/urlHelper"));
|
|
13
|
+
var _PrimaryNavItem = require("./PrimaryNavItem.style");
|
|
14
|
+
// Helper to group tertiary links (pageLevel: false)
|
|
15
|
+
// so that they sit under their parent secondary links (pageLevel: true)
|
|
16
|
+
const groupTertiaryLinks = links => {
|
|
17
|
+
if (!links) return {};
|
|
18
|
+
const groups = {};
|
|
19
|
+
let currentSecondaryId = null;
|
|
20
|
+
links.forEach(link => {
|
|
21
|
+
if (link.pageLevel) {
|
|
22
|
+
currentSecondaryId = link.id;
|
|
23
|
+
groups[currentSecondaryId] = [];
|
|
24
|
+
} else if (currentSecondaryId) {
|
|
25
|
+
groups[currentSecondaryId].push(link);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return groups;
|
|
29
|
+
};
|
|
30
|
+
const PrimaryNavItem = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
thisID,
|
|
33
|
+
relNoopener,
|
|
34
|
+
hasSubMenu,
|
|
35
|
+
index,
|
|
36
|
+
openedSubMenu,
|
|
37
|
+
isNotDesktop,
|
|
38
|
+
hasPopUp,
|
|
39
|
+
thisUrl,
|
|
40
|
+
toggleSubMenu,
|
|
41
|
+
group,
|
|
42
|
+
navHelperNew,
|
|
43
|
+
internalLinkHelper,
|
|
44
|
+
devMode = false,
|
|
45
|
+
onTertiaryMenuChange,
|
|
46
|
+
isTertiaryOpenGlobal = false,
|
|
47
|
+
isSubMenuOpenGlobal = false,
|
|
48
|
+
...rest
|
|
49
|
+
} = _ref;
|
|
50
|
+
const [openTertiaryMenu, setOpenTertiaryMenu] = (0, _react.useState)(null);
|
|
51
|
+
const handleTertiaryToggle = (e, linkId) => {
|
|
52
|
+
e.preventDefault();
|
|
53
|
+
e.stopPropagation();
|
|
54
|
+
const isOpening = openTertiaryMenu !== linkId;
|
|
55
|
+
setOpenTertiaryMenu(isOpening ? linkId : null);
|
|
56
|
+
if (onTertiaryMenuChange) {
|
|
57
|
+
onTertiaryMenuChange(isOpening, isOpening ? group.primaryPageName : null, () => {
|
|
58
|
+
setOpenTertiaryMenu(null);
|
|
59
|
+
onTertiaryMenuChange(false, null, null);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Reset tertiary menu state when the secondary submenu closes
|
|
65
|
+
(0, _react.useEffect)(() => {
|
|
66
|
+
if (!openedSubMenu[thisID]) {
|
|
67
|
+
setOpenTertiaryMenu(null);
|
|
68
|
+
}
|
|
69
|
+
}, [openedSubMenu, thisID]);
|
|
70
|
+
|
|
71
|
+
// Collect all column links into a single array for iteration
|
|
72
|
+
const allColumnLinks = (0, _react.useMemo)(() => [group.column1PageLinks, group.column2PageLinks, group.column3PageLinks], [group.column1PageLinks, group.column2PageLinks, group.column3PageLinks]);
|
|
73
|
+
|
|
74
|
+
// Group tertiary links for all columns (run once per data change)
|
|
75
|
+
const tertiaryGroups = (0, _react.useMemo)(() => allColumnLinks.reduce((acc, links) => ({
|
|
76
|
+
...acc,
|
|
77
|
+
...groupTertiaryLinks(links)
|
|
78
|
+
}), {}), [allColumnLinks]);
|
|
79
|
+
|
|
80
|
+
// All links flattened (run once per data change)
|
|
81
|
+
const allLinks = (0, _react.useMemo)(() => allColumnLinks.flatMap(links => links || []), [allColumnLinks]);
|
|
82
|
+
|
|
83
|
+
// Check if a secondary link has tertiary children
|
|
84
|
+
const hasTertiaryChildren = linkId => {
|
|
85
|
+
var _tertiaryGroups$linkI;
|
|
86
|
+
return ((_tertiaryGroups$linkI = tertiaryGroups[linkId]) === null || _tertiaryGroups$linkI === void 0 ? void 0 : _tertiaryGroups$linkI.length) > 0;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// Get the currently active tertiary menu data
|
|
90
|
+
const activeTertiaryLinks = tertiaryGroups[openTertiaryMenu] || [];
|
|
91
|
+
|
|
92
|
+
// Find the parent link (pageLevel: true) for the currently open tertiary menu
|
|
93
|
+
const activeParentLink = (0, _react.useMemo)(() => openTertiaryMenu ? allLinks.find(link => link.id === openTertiaryMenu) : null, [openTertiaryMenu, allLinks]);
|
|
94
|
+
|
|
95
|
+
// Pre-process URLs for all links (run once per data change)
|
|
96
|
+
const processedLinkUrls = (0, _react.useMemo)(() => {
|
|
97
|
+
const urls = {};
|
|
98
|
+
allLinks.forEach(link => {
|
|
99
|
+
urls[link.id] = internalLinkHelper(navHelperNew(link));
|
|
100
|
+
});
|
|
101
|
+
return urls;
|
|
102
|
+
}, [allLinks, navHelperNew, internalLinkHelper]);
|
|
103
|
+
|
|
104
|
+
// Helper to render a column's links
|
|
105
|
+
const renderColumnLinks = (links, ColumnComponent) => {
|
|
106
|
+
if (!links) return null;
|
|
107
|
+
return links.map(child => {
|
|
108
|
+
// On mobile, only show secondary links (pageLevel: true)
|
|
109
|
+
// Tertiary links (pageLevel: false) will be shown in the third modal
|
|
110
|
+
if (isNotDesktop && !child.pageLevel) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
const linkId = child.id;
|
|
114
|
+
const hasChildren = hasTertiaryChildren(linkId);
|
|
115
|
+
return /*#__PURE__*/_react.default.createElement(ColumnComponent, {
|
|
116
|
+
key: child.id,
|
|
117
|
+
$isSecondary: child.pageLevel
|
|
118
|
+
}, hasChildren && isNotDesktop ? /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.SecondaryNavLinkWithChildren, {
|
|
119
|
+
href: "#",
|
|
120
|
+
inline: true,
|
|
121
|
+
role: "menuitem",
|
|
122
|
+
onClick: e => handleTertiaryToggle(e, linkId),
|
|
123
|
+
$isSecondary: child.pageLevel
|
|
124
|
+
}, /*#__PURE__*/_react.default.createElement(_Text.default, null, child.pageName), /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.SecondaryChevronWrapper, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
125
|
+
src: _chevronIcon.default,
|
|
126
|
+
alt: "chevron icon"
|
|
127
|
+
}))) : /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.SecondaryNavLink, {
|
|
128
|
+
href: (0, _urlHelper.default)(processedLinkUrls[linkId], devMode),
|
|
129
|
+
inline: true,
|
|
130
|
+
role: "menuitem",
|
|
131
|
+
$isSecondary: child.pageLevel
|
|
132
|
+
}, /*#__PURE__*/_react.default.createElement(_Text.default, null, child.pageName)));
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// Determine what to render for the primary nav link
|
|
137
|
+
const renderPrimaryLink = () => {
|
|
138
|
+
// Mobile: Hide NavLink when secondary or tertiary menu is open
|
|
139
|
+
if (isNotDesktop) {
|
|
140
|
+
if (isTertiaryOpenGlobal || isSubMenuOpenGlobal) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
return /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.NavLink, {
|
|
144
|
+
"data-testid": "NavLink",
|
|
145
|
+
href: hasPopUp ? '#' : (0, _urlHelper.default)(thisUrl, devMode),
|
|
146
|
+
inline: true,
|
|
147
|
+
rel: relNoopener,
|
|
148
|
+
"aria-expanded": !!openedSubMenu[thisID],
|
|
149
|
+
"aria-haspopup": hasPopUp,
|
|
150
|
+
onClick: hasPopUp ? e => toggleSubMenu(e, thisID) : null,
|
|
151
|
+
role: "button",
|
|
152
|
+
isExpanded: !!openedSubMenu[thisID]
|
|
153
|
+
}, group.primaryPageName, hasSubMenu && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.ChevronWrapper, {
|
|
154
|
+
"data-testid": "ChevronWrapper"
|
|
155
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
156
|
+
src: _chevronIcon.default,
|
|
157
|
+
alt: "chevron icon"
|
|
158
|
+
})));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Desktop: Always show StyledText with DesktopNavLink
|
|
162
|
+
return /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.StyledText, {
|
|
163
|
+
"data-testid": "StyledText"
|
|
164
|
+
}, /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.DesktopNavLink, Object.assign({
|
|
165
|
+
"data-testid": "DesktopNavLink",
|
|
166
|
+
href: (0, _urlHelper.default)(thisUrl, devMode),
|
|
167
|
+
inline: true,
|
|
168
|
+
rel: relNoopener,
|
|
169
|
+
"aria-haspopup": hasPopUp,
|
|
170
|
+
hasSubMenu: hasSubMenu
|
|
171
|
+
}, rest), group.primaryPageName, hasSubMenu && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.ChevronWrapper, {
|
|
172
|
+
"data-testid": "ChevronWrapper"
|
|
173
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
174
|
+
src: _chevronIcon.default,
|
|
175
|
+
alt: "chevron down icon"
|
|
176
|
+
}))));
|
|
177
|
+
};
|
|
178
|
+
return /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.StyledNavItem, {
|
|
179
|
+
"data-testid": "StyledNavItem",
|
|
180
|
+
role: "none",
|
|
181
|
+
index: index,
|
|
182
|
+
isSubMenuOpen: !!openedSubMenu,
|
|
183
|
+
isTertiaryOpen: isTertiaryOpenGlobal
|
|
184
|
+
}, renderPrimaryLink(), hasSubMenu && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.SecondaryNavMenu, {
|
|
185
|
+
role: "list",
|
|
186
|
+
isSubMenuOpen: !!openedSubMenu[thisID],
|
|
187
|
+
isTertiaryOpen: isTertiaryOpenGlobal
|
|
188
|
+
}, isNotDesktop && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.SecondaryMenuPrimaryLink, null, /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.SecondaryMenuPrimaryLinkAnchor, {
|
|
189
|
+
href: (0, _urlHelper.default)(thisUrl, devMode),
|
|
190
|
+
inline: true,
|
|
191
|
+
role: "menuitem"
|
|
192
|
+
}, /*#__PURE__*/_react.default.createElement(_Text.default, null, group.primaryPageName))), allColumnLinks.map((links, colIndex) => {
|
|
193
|
+
var _group$column3PageCar;
|
|
194
|
+
return (
|
|
195
|
+
/*#__PURE__*/
|
|
196
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
197
|
+
_react.default.createElement(_PrimaryNavItem.ColumnWrapper, {
|
|
198
|
+
key: colIndex
|
|
199
|
+
}, colIndex === 2 && !isNotDesktop && ((_group$column3PageCar = group.column3PageCards) === null || _group$column3PageCar === void 0 ? void 0 : _group$column3PageCar.length) > 0 ? group.column3PageCards.map(card => {
|
|
200
|
+
var _card$image;
|
|
201
|
+
return /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.NavCard, {
|
|
202
|
+
key: card.id,
|
|
203
|
+
href: (0, _urlHelper.default)(card.primaryPageUrlIfExternal || '', devMode)
|
|
204
|
+
}, ((_card$image = card.image) === null || _card$image === void 0 ? void 0 : _card$image.url) && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.NavCardImage, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
205
|
+
src: card.image.url,
|
|
206
|
+
alt: card.image.title || card.pageName
|
|
207
|
+
})), /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.NavCardContent, null, /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.NavCardTitle, null, card.pageName), card.pageDescription && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.NavCardDescription, null, card.pageDescription)));
|
|
208
|
+
}) : renderColumnLinks(links, _PrimaryNavItem.SecondaryNavItem))
|
|
209
|
+
);
|
|
210
|
+
})), hasSubMenu && isNotDesktop && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.TertiaryNavMenu, {
|
|
211
|
+
isOpen: openTertiaryMenu !== null
|
|
212
|
+
}, activeParentLink && /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.TertiaryNavItem, {
|
|
213
|
+
$isParent: true
|
|
214
|
+
}, /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.TertiaryNavLink, {
|
|
215
|
+
href: (0, _urlHelper.default)(processedLinkUrls[activeParentLink.id], devMode),
|
|
216
|
+
inline: true,
|
|
217
|
+
role: "menuitem",
|
|
218
|
+
$isParent: true
|
|
219
|
+
}, /*#__PURE__*/_react.default.createElement(_Text.default, null, activeParentLink.pageName))), activeTertiaryLinks.map(tertiaryLink => /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.TertiaryNavItem, {
|
|
220
|
+
key: tertiaryLink.id
|
|
221
|
+
}, /*#__PURE__*/_react.default.createElement(_PrimaryNavItem.TertiaryNavLink, {
|
|
222
|
+
href: (0, _urlHelper.default)(processedLinkUrls[tertiaryLink.id], devMode),
|
|
223
|
+
inline: true,
|
|
224
|
+
role: "menuitem"
|
|
225
|
+
}, /*#__PURE__*/_react.default.createElement(_Text.default, null, tertiaryLink.pageName))))));
|
|
226
|
+
};
|
|
227
|
+
var _default = exports.default = PrimaryNavItem;
|