@nice-digital/global-nav 5.0.940 → 7.0.930
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -55
- package/lib/Footer/Footer.js +31 -55
- package/lib/Footer/Legal/Legal.js +76 -71
- package/lib/Footer/Legal/index.js +10 -7
- package/lib/Footer/Pages/Pages.js +34 -54
- package/lib/Footer/Pages/Pages.module.scss +1 -1
- package/lib/Footer/Pages/index.js +10 -7
- package/lib/Footer/Pages/links.json +2 -5
- package/lib/Footer/Services/Services.js +65 -86
- package/lib/Footer/Services/Services.module.scss +1 -1
- package/lib/Footer/Services/index.js +10 -7
- package/lib/Footer/Social/Social.js +46 -57
- package/lib/Footer/Social/index.js +10 -7
- package/lib/Footer/index.js +10 -7
- package/lib/Header/Account/Account.js +87 -109
- package/lib/Header/Account/index.js +10 -7
- package/lib/Header/Account/nice-accounts.js +7 -12
- package/lib/Header/Header.js +345 -171
- package/lib/Header/Header.module.scss +2 -2
- package/lib/Header/Nav/Dropdown/Components/AboutUs.js +216 -105
- package/lib/Header/Nav/Dropdown/Components/BNF.js +120 -75
- package/lib/Header/Nav/Dropdown/Components/BNFc.js +115 -73
- package/lib/Header/Nav/Dropdown/Components/Button.js +11 -14
- package/lib/Header/Nav/Dropdown/Components/CKS.js +115 -73
- package/lib/Header/Nav/Dropdown/Components/Grid.js +16 -22
- package/lib/Header/Nav/Dropdown/Components/Guidance.js +244 -128
- package/lib/Header/Nav/Dropdown/Components/LifeSciences.js +169 -108
- package/lib/Header/Nav/Dropdown/Components/StandardsAndIndicators.js +83 -45
- package/lib/Header/Nav/Dropdown/Components/index.js +46 -24
- package/lib/Header/Nav/Dropdown/Dropdown.js +48 -63
- package/lib/Header/Nav/Dropdown/Dropdown.module.scss +1 -1
- package/lib/Header/Nav/Dropdown/index.js +10 -7
- package/lib/Header/Nav/Nav.js +84 -102
- package/lib/Header/Nav/Nav.module.scss +2 -4
- package/lib/Header/Nav/NavLinks/NavLinks.js +118 -137
- package/lib/Header/Nav/NavLinks/NavLinks.module.scss +1 -1
- package/lib/Header/Nav/NavLinks/index.js +10 -7
- package/lib/Header/Nav/SubNav/SubNav.js +54 -90
- package/lib/Header/Nav/SubNav/index.js +10 -7
- package/lib/Header/Nav/__mocks__/services.json +3 -3
- package/lib/Header/Nav/index.js +10 -7
- package/lib/Header/OldIEMessage/OldIEMessage.js +65 -67
- package/lib/Header/OldIEMessage/ie.js +14 -0
- package/lib/Header/OldIEMessage/index.js +10 -7
- package/lib/Header/Search/Autocomplete/Autocomplete.js +169 -194
- package/lib/Header/Search/Autocomplete/Autocomplete.module.scss +9 -1
- package/lib/Header/Search/Autocomplete/index.js +10 -7
- package/lib/Header/Search/Autocomplete/suggester/index.js +21 -28
- package/lib/Header/Search/Autocomplete/suggester/phrase-finder.js +13 -14
- package/lib/Header/Search/Autocomplete/suggester/term-finder.js +18 -21
- package/lib/Header/Search/Autocomplete/suggester/tokenizer.js +12 -17
- package/lib/Header/Search/Search.js +73 -90
- package/lib/Header/Search/index.js +10 -7
- package/lib/Header/SkipLink/SkipLink.js +24 -62
- package/lib/Header/SkipLink/SkipLink.module.scss +5 -1
- package/lib/Header/SkipLink/index.js +10 -7
- package/lib/Header/_header-settings.scss +0 -2
- package/lib/Header/context/HeaderContext.js +28 -54
- package/lib/Header/index.js +10 -7
- package/lib/Main/BackToTop/BackToTop.js +22 -25
- package/lib/Main/BackToTop/BackToTop.module.scss +1 -4
- package/lib/Main/Main.js +22 -26
- package/lib/Main/index.js +10 -7
- package/lib/TrackedLink/TrackedLink.js +48 -74
- package/lib/TrackedLink/index.js +10 -7
- package/lib/hooks/useEscapeKeydown.js +8 -21
- package/lib/hooks/useIsClient.js +20 -0
- package/lib/index.js +22 -12
- package/lib/renderer.js +21 -30
- package/lib/tracker/index.js +8 -25
- package/lib/utils.js +4 -7
- package/package.json +68 -65
- package/types.d.ts +1 -0
- package/lib/Header/Account/AccountOld.js +0 -227
|
@@ -1,41 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
6
8
|
exports.NavLinks = NavLinks;
|
|
7
|
-
exports
|
|
8
|
-
|
|
9
|
-
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
|
|
10
|
-
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
|
|
13
12
|
var _useEscapeKeydown2 = _interopRequireDefault(require("../../../hooks/useEscapeKeydown"));
|
|
14
|
-
|
|
15
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
|
-
|
|
17
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
-
|
|
19
15
|
var _ChevronDown = _interopRequireDefault(require("@nice-digital/icons/lib/ChevronDown"));
|
|
20
|
-
|
|
21
16
|
var _ChevronUp = _interopRequireDefault(require("@nice-digital/icons/lib/ChevronUp"));
|
|
22
|
-
|
|
23
17
|
var _SubNav = _interopRequireDefault(require("../SubNav"));
|
|
24
|
-
|
|
25
18
|
var _Dropdown = _interopRequireDefault(require("../Dropdown"));
|
|
26
|
-
|
|
27
19
|
var _HeaderContext = require("../../context/HeaderContext");
|
|
28
|
-
|
|
29
20
|
var _Components = require("./../Dropdown/Components");
|
|
30
|
-
|
|
31
21
|
var _NavLinksModule = _interopRequireDefault(require("./NavLinks.module.scss"));
|
|
32
|
-
|
|
33
22
|
var _tracker = require("../../../tracker");
|
|
34
|
-
|
|
23
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
36
|
-
|
|
37
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
38
|
-
|
|
25
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
26
|
var components = {
|
|
40
27
|
about: _Components.AboutUs,
|
|
41
28
|
bnf: _Components.BNF,
|
|
@@ -45,148 +32,142 @@ var components = {
|
|
|
45
32
|
"life-sciences": _Components.LifeSciences,
|
|
46
33
|
"standards-and-indicators": _Components.StandardsAndIndicators
|
|
47
34
|
};
|
|
48
|
-
|
|
49
35
|
function NavLinks(_ref) {
|
|
50
|
-
var _this = this;
|
|
51
|
-
|
|
52
36
|
var servicesToDisplay = _ref.servicesToDisplay,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
37
|
+
currentService = _ref.currentService,
|
|
38
|
+
subLinks = _ref.subLinks,
|
|
39
|
+
onNavigating = _ref.onNavigating,
|
|
40
|
+
skipLinkId = _ref.skipLinkId;
|
|
41
|
+
var _useState = (0, _react.useState)(false),
|
|
42
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
43
|
+
canUseDOM = _useState2[0],
|
|
44
|
+
setCanUseDOM = _useState2[1];
|
|
62
45
|
var _useContext = (0, _react.useContext)(_HeaderContext.HeaderContext),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
46
|
+
idOfOpenDropdown = _useContext.idOfOpenDropdown,
|
|
47
|
+
setidOfOpenDropdown = _useContext.setidOfOpenDropdown;
|
|
66
48
|
(0, _react.useEffect)(function () {
|
|
67
|
-
(0, _newArrowCheck2["default"])(this, _this);
|
|
68
49
|
setCanUseDOM(true);
|
|
69
|
-
}
|
|
70
|
-
|
|
50
|
+
}, []);
|
|
71
51
|
function handleNavButtonClick(id) {
|
|
72
52
|
setidOfOpenDropdown(id === idOfOpenDropdown ? null : id);
|
|
73
53
|
}
|
|
74
|
-
|
|
75
54
|
function handleNavLinkClick(e) {
|
|
76
55
|
e.preventDefault();
|
|
77
56
|
setidOfOpenDropdown(null);
|
|
78
57
|
var href = e.currentTarget.getAttribute("href");
|
|
79
|
-
(0, _tracker.trackEvent)(_tracker.defaultEventCategory, _tracker.headerClickEventAction, e.currentTarget.textContent, null, function () {
|
|
80
|
-
window.location.href
|
|
81
|
-
}
|
|
58
|
+
(0, _tracker.trackEvent)(_tracker.defaultEventCategory, _tracker.headerClickEventAction, e.currentTarget.textContent, null, href, function () {
|
|
59
|
+
window.location.assign(href);
|
|
60
|
+
});
|
|
82
61
|
}
|
|
83
|
-
|
|
84
62
|
var escapeKeydown = (0, _react.useCallback)(function (result) {
|
|
85
63
|
if (result) setidOfOpenDropdown(null);
|
|
86
64
|
}, []);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return /*#__PURE__*/_react["default"].createElement("ul", {
|
|
92
|
-
className: _NavLinksModule["default"].menuList,
|
|
65
|
+
var _useEscapeKeydown = (0, _useEscapeKeydown2.default)(escapeKeydown),
|
|
66
|
+
keydownRef = _useEscapeKeydown.keydownRef;
|
|
67
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
|
|
68
|
+
className: _NavLinksModule.default.menuList,
|
|
93
69
|
"aria-labelledby": "header-menu-button",
|
|
94
|
-
ref: keydownRef
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
(0, _newArrowCheck2["default"])(this, _this);
|
|
101
|
-
var host = _ref2.host,
|
|
70
|
+
ref: keydownRef,
|
|
71
|
+
children: servicesToDisplay.filter(function (item) {
|
|
72
|
+
return item.header;
|
|
73
|
+
}).map(function (_ref2, index) {
|
|
74
|
+
var host = _ref2.host,
|
|
102
75
|
landingPath = _ref2.landingPath,
|
|
103
76
|
id = _ref2.id,
|
|
104
77
|
text = _ref2.text,
|
|
105
78
|
abbreviation = _ref2.abbreviation,
|
|
106
79
|
title = _ref2.title,
|
|
107
80
|
nestedLinks = _ref2.nestedLinks;
|
|
108
|
-
|
|
81
|
+
var href = "https://".concat(host).concat(landingPath),
|
|
109
82
|
dropdownComponent = components[id];
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
ariaCurrent = "page";
|
|
83
|
+
var ariaCurrent = null;
|
|
84
|
+
if (currentService && id === currentService) {
|
|
85
|
+
ariaCurrent = true;
|
|
86
|
+
if (typeof location !== "undefined" && location && href === "".concat(location.protocol, "//").concat(location.host).concat(location.pathname)) {
|
|
87
|
+
ariaCurrent = "page";
|
|
88
|
+
}
|
|
117
89
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
90
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("li", {
|
|
91
|
+
"data-tracking": text,
|
|
92
|
+
children: [dropdownComponent && canUseDOM ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", {
|
|
93
|
+
onClick: function onClick() {
|
|
94
|
+
return handleNavButtonClick(id);
|
|
95
|
+
},
|
|
96
|
+
"aria-current": ariaCurrent,
|
|
97
|
+
className: _NavLinksModule.default.link,
|
|
98
|
+
"aria-controls": "dropdown-".concat(id),
|
|
99
|
+
"aria-expanded": id === idOfOpenDropdown ? true : false,
|
|
100
|
+
id: "navlink-".concat(id),
|
|
101
|
+
"aria-label": abbreviation && title,
|
|
102
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
103
|
+
children: text
|
|
104
|
+
}), id === idOfOpenDropdown ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChevronUp.default, {
|
|
105
|
+
className: _NavLinksModule.default.icon,
|
|
106
|
+
pointerEvents: "none"
|
|
107
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
108
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChevronDown.default, {
|
|
109
|
+
className: _NavLinksModule.default.icon,
|
|
110
|
+
pointerEvents: "none"
|
|
111
|
+
})
|
|
112
|
+
})]
|
|
113
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
114
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("a", {
|
|
115
|
+
href: href,
|
|
116
|
+
"aria-current": ariaCurrent,
|
|
117
|
+
className: _NavLinksModule.default.link,
|
|
118
|
+
onClick: handleNavLinkClick,
|
|
119
|
+
id: "navlink-".concat(id),
|
|
120
|
+
"aria-label": abbreviation && title,
|
|
121
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
122
|
+
children: text
|
|
123
|
+
}), nestedLinks && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChevronDown.default, {
|
|
124
|
+
className: _NavLinksModule.default.icon,
|
|
125
|
+
pointerEvents: "none"
|
|
126
|
+
})]
|
|
127
|
+
}), nestedLinks && /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
128
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
|
|
129
|
+
id: id,
|
|
130
|
+
className: _NavLinksModule.default.nonJsDropdown,
|
|
131
|
+
"aria-label": "More NICE services",
|
|
132
|
+
children: nestedLinks.map(function (_ref3) {
|
|
133
|
+
var href = _ref3.href,
|
|
134
|
+
text = _ref3.text,
|
|
135
|
+
id = _ref3.id;
|
|
136
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
137
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
138
|
+
href: href,
|
|
139
|
+
children: text
|
|
140
|
+
})
|
|
141
|
+
}, id);
|
|
142
|
+
})
|
|
143
|
+
})
|
|
144
|
+
})]
|
|
145
|
+
}), dropdownComponent && canUseDOM ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default, {
|
|
146
|
+
component: dropdownComponent,
|
|
147
|
+
className: (0, _classnames.default)([_NavLinksModule.default.dropdown, id === idOfOpenDropdown && _NavLinksModule.default.active]),
|
|
148
|
+
text: text,
|
|
149
|
+
nextNavSlug: servicesToDisplay[index + 1] ? servicesToDisplay[index + 1]["id"] : skipLinkId,
|
|
150
|
+
closeDropdown: function closeDropdown() {
|
|
151
|
+
return setidOfOpenDropdown(null);
|
|
152
|
+
},
|
|
153
|
+
id: id,
|
|
154
|
+
currentService: currentService
|
|
155
|
+
}) : null, ariaCurrent && subLinks && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SubNav.default, {
|
|
156
|
+
links: subLinks,
|
|
157
|
+
text: text,
|
|
158
|
+
onNavigating: onNavigating
|
|
159
|
+
})]
|
|
160
|
+
}, id);
|
|
161
|
+
})
|
|
162
|
+
});
|
|
181
163
|
}
|
|
182
|
-
|
|
183
164
|
NavLinks.propTypes = {
|
|
184
|
-
skipLinkId: _propTypes
|
|
185
|
-
servicesToDisplay: _propTypes
|
|
186
|
-
currentService: _propTypes
|
|
187
|
-
subLinks: _propTypes
|
|
188
|
-
onNavigating: _propTypes
|
|
189
|
-
handleScrim: _propTypes
|
|
165
|
+
skipLinkId: _propTypes.default.string,
|
|
166
|
+
servicesToDisplay: _propTypes.default.array,
|
|
167
|
+
currentService: _propTypes.default.string,
|
|
168
|
+
subLinks: _propTypes.default.array,
|
|
169
|
+
onNavigating: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
|
|
170
|
+
handleScrim: _propTypes.default.func
|
|
190
171
|
};
|
|
191
172
|
var _default = NavLinks;
|
|
192
|
-
exports
|
|
173
|
+
exports.default = _default;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _NavLinks.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _NavLinks = _interopRequireDefault(require("./NavLinks"));
|
|
@@ -1,115 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
11
|
-
|
|
12
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
9
|
var _cks = _interopRequireDefault(require("./images/cks.svg"));
|
|
17
|
-
|
|
18
10
|
var _bnf = _interopRequireDefault(require("./images/bnf.svg"));
|
|
19
|
-
|
|
20
11
|
var _bnfc = _interopRequireDefault(require("./images/bnfc.svg"));
|
|
21
|
-
|
|
22
12
|
var _utils = require("../../../utils");
|
|
23
|
-
|
|
13
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
24
14
|
var _tracker = require("../../../tracker");
|
|
25
|
-
|
|
26
15
|
var _SubNavModule = _interopRequireDefault(require("./SubNav.module.scss"));
|
|
27
|
-
|
|
28
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
32
17
|
var images = {
|
|
33
|
-
cks: _cks
|
|
34
|
-
bnf: _bnf
|
|
35
|
-
bnfc: _bnfc
|
|
18
|
+
cks: _cks.default,
|
|
19
|
+
bnf: _bnf.default,
|
|
20
|
+
bnfc: _bnfc.default
|
|
36
21
|
};
|
|
37
|
-
|
|
38
|
-
var
|
|
39
|
-
(0, _inheritsLoose2["default"])(SubNav, _Component);
|
|
40
|
-
|
|
41
|
-
function SubNav(props) {
|
|
42
|
-
var _this;
|
|
43
|
-
|
|
44
|
-
_this = _Component.call(this, props) || this;
|
|
45
|
-
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2["default"])(_this));
|
|
46
|
-
return _this;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
var _proto = SubNav.prototype;
|
|
50
|
-
|
|
51
|
-
_proto.handleClick = function handleClick(e) {
|
|
22
|
+
var SubNav = function SubNav(props) {
|
|
23
|
+
var handleClick = function handleClick(e) {
|
|
52
24
|
e.preventDefault();
|
|
53
25
|
var currentTarget = e.currentTarget;
|
|
54
|
-
var href = currentTarget.getAttribute("href");
|
|
55
|
-
|
|
26
|
+
var href = currentTarget.getAttribute("href");
|
|
56
27
|
var eventLabel = currentTarget.textContent || currentTarget.innerText || currentTarget.ariaLabel;
|
|
57
28
|
(0, _tracker.trackEvent)(_tracker.defaultEventCategory, _tracker.headerClickEventAction, eventLabel, null, href, function () {
|
|
58
|
-
var onNavigating =
|
|
29
|
+
var onNavigating = props.onNavigating;
|
|
59
30
|
var onNavigatingCallback = (0, _utils.getCallbackFunction)(onNavigating);
|
|
60
|
-
|
|
61
31
|
if (onNavigatingCallback) {
|
|
62
32
|
onNavigatingCallback({
|
|
63
33
|
element: currentTarget,
|
|
64
34
|
href: href
|
|
65
35
|
});
|
|
66
|
-
} else window.location.href
|
|
67
|
-
}
|
|
36
|
+
} else window.location.assign(href);
|
|
37
|
+
});
|
|
68
38
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
className: _SubNavModule
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return SubNav;
|
|
103
|
-
}(_react.Component);
|
|
104
|
-
|
|
105
|
-
exports.SubNav = SubNav;
|
|
106
|
-
var _default = SubNav;
|
|
107
|
-
exports["default"] = _default;
|
|
39
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
40
|
+
className: _SubNavModule.default.wrapper,
|
|
41
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
|
|
42
|
+
className: _SubNavModule.default.list,
|
|
43
|
+
"aria-label": "".concat(props.text, " links"),
|
|
44
|
+
children: props.links.map(function (subLink, i) {
|
|
45
|
+
var ariaCurrent = null;
|
|
46
|
+
if (typeof window !== "undefined") {
|
|
47
|
+
if (window.location.pathname === subLink.href) {
|
|
48
|
+
ariaCurrent = "page";
|
|
49
|
+
} else if (window.location.pathname.indexOf(subLink.href) === 0) ariaCurrent = true;
|
|
50
|
+
}
|
|
51
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
52
|
+
className: subLink.image && _SubNavModule.default.imageLink,
|
|
53
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
54
|
+
href: subLink.href,
|
|
55
|
+
"aria-current": ariaCurrent,
|
|
56
|
+
className: _SubNavModule.default.link,
|
|
57
|
+
onClick: handleClick,
|
|
58
|
+
"aria-label": subLink.text,
|
|
59
|
+
children: subLink.image ? /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
60
|
+
src: images[subLink.image],
|
|
61
|
+
className: _SubNavModule.default.image,
|
|
62
|
+
alt: ""
|
|
63
|
+
}) : subLink.text
|
|
64
|
+
})
|
|
65
|
+
}, i);
|
|
66
|
+
})
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
var _default = SubNav; //TODO Convert proptypes to typescript
|
|
71
|
+
exports.default = _default;
|
|
108
72
|
SubNav.propTypes = {
|
|
109
|
-
text: _propTypes
|
|
110
|
-
links: _propTypes
|
|
111
|
-
href: _propTypes
|
|
112
|
-
text: _propTypes
|
|
73
|
+
text: _propTypes.default.string.isRequired,
|
|
74
|
+
links: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
75
|
+
href: _propTypes.default.string.isRequired,
|
|
76
|
+
text: _propTypes.default.string.isRequired
|
|
113
77
|
})),
|
|
114
|
-
onNavigating: _propTypes
|
|
78
|
+
onNavigating: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string])
|
|
115
79
|
};
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _SubNav.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _SubNav = _interopRequireDefault(require("./SubNav"));
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"host": "www.test.nice.org",
|
|
5
5
|
"landingPath": "/url1/",
|
|
6
6
|
"text": "First link",
|
|
7
|
-
"id": "
|
|
7
|
+
"id": "about",
|
|
8
8
|
"header": true
|
|
9
9
|
},
|
|
10
10
|
{
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"id": "link2",
|
|
15
15
|
"header": true,
|
|
16
16
|
"abbreviation": true,
|
|
17
|
-
"title": "
|
|
17
|
+
"title": "Second link abbreviation title",
|
|
18
18
|
"links": [
|
|
19
19
|
{
|
|
20
20
|
"text": "Sub link 1",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"id": "link3",
|
|
34
34
|
"header": true,
|
|
35
35
|
"abbreviation": true,
|
|
36
|
-
"title": "
|
|
36
|
+
"title": "Third link abbreviation title",
|
|
37
37
|
"links": [
|
|
38
38
|
{
|
|
39
39
|
"text": "Sub link 1",
|
package/lib/Header/Nav/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _Nav.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _Nav = _interopRequireDefault(require("./Nav"));
|