@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.
Files changed (74) hide show
  1. package/README.md +18 -55
  2. package/lib/Footer/Footer.js +31 -55
  3. package/lib/Footer/Legal/Legal.js +76 -71
  4. package/lib/Footer/Legal/index.js +10 -7
  5. package/lib/Footer/Pages/Pages.js +34 -54
  6. package/lib/Footer/Pages/Pages.module.scss +1 -1
  7. package/lib/Footer/Pages/index.js +10 -7
  8. package/lib/Footer/Pages/links.json +2 -5
  9. package/lib/Footer/Services/Services.js +65 -86
  10. package/lib/Footer/Services/Services.module.scss +1 -1
  11. package/lib/Footer/Services/index.js +10 -7
  12. package/lib/Footer/Social/Social.js +46 -57
  13. package/lib/Footer/Social/index.js +10 -7
  14. package/lib/Footer/index.js +10 -7
  15. package/lib/Header/Account/Account.js +87 -109
  16. package/lib/Header/Account/index.js +10 -7
  17. package/lib/Header/Account/nice-accounts.js +7 -12
  18. package/lib/Header/Header.js +345 -171
  19. package/lib/Header/Header.module.scss +2 -2
  20. package/lib/Header/Nav/Dropdown/Components/AboutUs.js +216 -105
  21. package/lib/Header/Nav/Dropdown/Components/BNF.js +120 -75
  22. package/lib/Header/Nav/Dropdown/Components/BNFc.js +115 -73
  23. package/lib/Header/Nav/Dropdown/Components/Button.js +11 -14
  24. package/lib/Header/Nav/Dropdown/Components/CKS.js +115 -73
  25. package/lib/Header/Nav/Dropdown/Components/Grid.js +16 -22
  26. package/lib/Header/Nav/Dropdown/Components/Guidance.js +244 -128
  27. package/lib/Header/Nav/Dropdown/Components/LifeSciences.js +169 -108
  28. package/lib/Header/Nav/Dropdown/Components/StandardsAndIndicators.js +83 -45
  29. package/lib/Header/Nav/Dropdown/Components/index.js +46 -24
  30. package/lib/Header/Nav/Dropdown/Dropdown.js +48 -63
  31. package/lib/Header/Nav/Dropdown/Dropdown.module.scss +1 -1
  32. package/lib/Header/Nav/Dropdown/index.js +10 -7
  33. package/lib/Header/Nav/Nav.js +84 -102
  34. package/lib/Header/Nav/Nav.module.scss +2 -4
  35. package/lib/Header/Nav/NavLinks/NavLinks.js +118 -137
  36. package/lib/Header/Nav/NavLinks/NavLinks.module.scss +1 -1
  37. package/lib/Header/Nav/NavLinks/index.js +10 -7
  38. package/lib/Header/Nav/SubNav/SubNav.js +54 -90
  39. package/lib/Header/Nav/SubNav/index.js +10 -7
  40. package/lib/Header/Nav/__mocks__/services.json +3 -3
  41. package/lib/Header/Nav/index.js +10 -7
  42. package/lib/Header/OldIEMessage/OldIEMessage.js +65 -67
  43. package/lib/Header/OldIEMessage/ie.js +14 -0
  44. package/lib/Header/OldIEMessage/index.js +10 -7
  45. package/lib/Header/Search/Autocomplete/Autocomplete.js +169 -194
  46. package/lib/Header/Search/Autocomplete/Autocomplete.module.scss +9 -1
  47. package/lib/Header/Search/Autocomplete/index.js +10 -7
  48. package/lib/Header/Search/Autocomplete/suggester/index.js +21 -28
  49. package/lib/Header/Search/Autocomplete/suggester/phrase-finder.js +13 -14
  50. package/lib/Header/Search/Autocomplete/suggester/term-finder.js +18 -21
  51. package/lib/Header/Search/Autocomplete/suggester/tokenizer.js +12 -17
  52. package/lib/Header/Search/Search.js +73 -90
  53. package/lib/Header/Search/index.js +10 -7
  54. package/lib/Header/SkipLink/SkipLink.js +24 -62
  55. package/lib/Header/SkipLink/SkipLink.module.scss +5 -1
  56. package/lib/Header/SkipLink/index.js +10 -7
  57. package/lib/Header/_header-settings.scss +0 -2
  58. package/lib/Header/context/HeaderContext.js +28 -54
  59. package/lib/Header/index.js +10 -7
  60. package/lib/Main/BackToTop/BackToTop.js +22 -25
  61. package/lib/Main/BackToTop/BackToTop.module.scss +1 -4
  62. package/lib/Main/Main.js +22 -26
  63. package/lib/Main/index.js +10 -7
  64. package/lib/TrackedLink/TrackedLink.js +48 -74
  65. package/lib/TrackedLink/index.js +10 -7
  66. package/lib/hooks/useEscapeKeydown.js +8 -21
  67. package/lib/hooks/useIsClient.js +20 -0
  68. package/lib/index.js +22 -12
  69. package/lib/renderer.js +21 -30
  70. package/lib/tracker/index.js +8 -25
  71. package/lib/utils.js +4 -7
  72. package/package.json +68 -65
  73. package/types.d.ts +1 -0
  74. 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.__esModule = true;
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
6
8
  exports.NavLinks = NavLinks;
7
- exports["default"] = void 0;
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
- currentService = _ref.currentService,
54
- subLinks = _ref.subLinks,
55
- onNavigating = _ref.onNavigating,
56
- skipLinkId = _ref.skipLinkId;
57
-
58
- var _React$useState = _react["default"].useState(false),
59
- canUseDOM = _React$useState[0],
60
- setCanUseDOM = _React$useState[1];
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
- idOfOpenDropdown = _useContext.idOfOpenDropdown,
64
- setidOfOpenDropdown = _useContext.setidOfOpenDropdown;
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
- }.bind(this), []);
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 = 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
- var _useEscapeKeydown = (0, _useEscapeKeydown2["default"])(escapeKeydown),
89
- keydownRef = _useEscapeKeydown.keydownRef;
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
- }, servicesToDisplay.filter(function (item) {
96
- return item.header;
97
- }).map(function (_ref2, index) {
98
- var _this2 = this;
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
- var href = "https://" + host + landingPath,
81
+ var href = "https://".concat(host).concat(landingPath),
109
82
  dropdownComponent = components[id];
110
- var ariaCurrent = null;
111
-
112
- if (currentService && id === currentService) {
113
- ariaCurrent = true;
114
-
115
- if (typeof location !== "undefined" && location && href === location.protocol + "//" + location.host + location.pathname) {
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
- return /*#__PURE__*/_react["default"].createElement("li", {
121
- key: id,
122
- "data-tracking": text
123
- }, dropdownComponent && canUseDOM ? /*#__PURE__*/_react["default"].createElement("button", {
124
- onClick: function () {
125
- (0, _newArrowCheck2["default"])(this, _this2);
126
- return handleNavButtonClick(id);
127
- }.bind(this),
128
- "aria-current": ariaCurrent,
129
- className: _NavLinksModule["default"].link,
130
- "aria-controls": "dropdown-" + id,
131
- "aria-expanded": id === idOfOpenDropdown ? true : false,
132
- id: "navlink-" + id,
133
- "aria-label": abbreviation && title
134
- }, /*#__PURE__*/_react["default"].createElement("span", null, text), id === idOfOpenDropdown ? /*#__PURE__*/_react["default"].createElement(_ChevronUp["default"], {
135
- className: _NavLinksModule["default"].icon,
136
- pointerEvents: "none"
137
- }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_ChevronDown["default"], {
138
- className: _NavLinksModule["default"].icon,
139
- pointerEvents: "none"
140
- }))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("a", {
141
- href: href,
142
- "aria-current": ariaCurrent,
143
- className: _NavLinksModule["default"].link,
144
- onClick: handleNavLinkClick,
145
- id: "navlink-" + id,
146
- "aria-label": abbreviation && title
147
- }, /*#__PURE__*/_react["default"].createElement("span", null, text), nestedLinks && /*#__PURE__*/_react["default"].createElement(_ChevronDown["default"], {
148
- className: _NavLinksModule["default"].icon,
149
- pointerEvents: "none"
150
- })), nestedLinks && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("ul", {
151
- id: id,
152
- className: _NavLinksModule["default"].nonJsDropdown,
153
- "aria-label": "More NICE services"
154
- }, nestedLinks.map(function (_ref3) {
155
- (0, _newArrowCheck2["default"])(this, _this2);
156
- var href = _ref3.href,
157
- text = _ref3.text,
158
- id = _ref3.id;
159
- return /*#__PURE__*/_react["default"].createElement("li", {
160
- key: id
161
- }, /*#__PURE__*/_react["default"].createElement("a", {
162
- href: href
163
- }, text));
164
- }.bind(this))))), dropdownComponent && canUseDOM ? /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
165
- component: dropdownComponent,
166
- className: (0, _classnames["default"])([_NavLinksModule["default"].dropdown, id === idOfOpenDropdown && _NavLinksModule["default"].active]),
167
- text: text,
168
- nextNavSlug: servicesToDisplay[index + 1] ? servicesToDisplay[index + 1]["id"] : skipLinkId,
169
- closeDropdown: function () {
170
- (0, _newArrowCheck2["default"])(this, _this2);
171
- return setidOfOpenDropdown(null);
172
- }.bind(this),
173
- id: id,
174
- currentService: currentService
175
- }) : null, ariaCurrent && subLinks && /*#__PURE__*/_react["default"].createElement(_SubNav["default"], {
176
- links: subLinks,
177
- text: text,
178
- onNavigating: onNavigating
179
- }));
180
- }.bind(this)));
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["default"].string,
185
- servicesToDisplay: _propTypes["default"].array,
186
- currentService: _propTypes["default"].string,
187
- subLinks: _propTypes["default"].array,
188
- onNavigating: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].string]),
189
- handleScrim: _propTypes["default"].func
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["default"] = _default;
173
+ exports.default = _default;
@@ -55,7 +55,7 @@ button.link {
55
55
  .dropdown {
56
56
  background-color: $body;
57
57
  box-shadow: 0 utils.rem(spacing.$small) utils.rem(spacing.$small) 0
58
- rgba(0, 0, 0, 0.1);
58
+ rgba(0 0 0 / 10%);
59
59
  display: none;
60
60
  left: 0;
61
61
  position: relative;
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports["default"] = void 0;
7
-
8
- var _NavLinks = _interopRequireDefault(require("./NavLinks"));
9
-
10
- exports["default"] = _NavLinks["default"];
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
- exports.__esModule = true;
6
- exports["default"] = exports.SubNav = void 0;
7
-
8
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
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["default"],
34
- bnf: _bnf["default"],
35
- bnfc: _bnfc["default"]
18
+ cks: _cks.default,
19
+ bnf: _bnf.default,
20
+ bnfc: _bnfc.default
36
21
  };
37
-
38
- var SubNav = /*#__PURE__*/function (_Component) {
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"); // To support IE8
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 = this.props.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 = href;
67
- }.bind(this));
36
+ } else window.location.assign(href);
37
+ });
68
38
  };
69
-
70
- _proto.render = function render() {
71
- return /*#__PURE__*/_react["default"].createElement("div", {
72
- className: _SubNavModule["default"].wrapper
73
- }, /*#__PURE__*/_react["default"].createElement("ul", {
74
- className: _SubNavModule["default"].list,
75
- "aria-label": this.props.text + " links"
76
- }, this.props.links.map(function (subLink, i) {
77
- var ariaCurrent = null;
78
-
79
- if (typeof window !== "undefined") {
80
- if (window.location.pathname === subLink.href) {
81
- ariaCurrent = "page";
82
- } else if (window.location.pathname.indexOf(subLink.href) === 0) ariaCurrent = true;
83
- }
84
-
85
- return /*#__PURE__*/_react["default"].createElement("li", {
86
- key: i,
87
- className: subLink.image && _SubNavModule["default"].imageLink
88
- }, /*#__PURE__*/_react["default"].createElement("a", {
89
- href: subLink.href,
90
- "aria-current": ariaCurrent,
91
- className: _SubNavModule["default"].link,
92
- onClick: this.handleClick,
93
- "aria-label": subLink.text
94
- }, subLink.image ? /*#__PURE__*/_react["default"].createElement("img", {
95
- src: images[subLink.image],
96
- className: _SubNavModule["default"].image,
97
- alt: ""
98
- }) : subLink.text));
99
- }.bind(this))));
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["default"].string.isRequired,
110
- links: _propTypes["default"].arrayOf(_propTypes["default"].shape({
111
- href: _propTypes["default"].string.isRequired,
112
- text: _propTypes["default"].string.isRequired
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["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].string])
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
- exports.__esModule = true;
6
- exports["default"] = void 0;
7
-
8
- var _SubNav = _interopRequireDefault(require("./SubNav"));
9
-
10
- exports["default"] = _SubNav["default"];
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": "link1",
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": "Abbreviation 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": "Abbreviation title",
36
+ "title": "Third link abbreviation title",
37
37
  "links": [
38
38
  {
39
39
  "text": "Sub link 1",
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports["default"] = void 0;
7
-
8
- var _Nav = _interopRequireDefault(require("./Nav"));
9
-
10
- exports["default"] = _Nav["default"];
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"));