@nice-digital/global-nav 7.1.1152 → 7.1.1243-feature-branch-2

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 (56) hide show
  1. package/README.md +1 -1
  2. package/lib/Footer/Footer.js +2 -2
  3. package/lib/Footer/Legal/Legal.js +5 -5
  4. package/lib/Footer/Legal/index.js +1 -1
  5. package/lib/Footer/Pages/Pages.js +4 -4
  6. package/lib/Footer/Pages/index.js +1 -1
  7. package/lib/Footer/Services/Services.js +3 -3
  8. package/lib/Footer/Services/index.js +1 -1
  9. package/lib/Footer/Social/Social.js +1 -1
  10. package/lib/Footer/Social/index.js +1 -1
  11. package/lib/Footer/index.js +1 -1
  12. package/lib/Header/Account/Account.js +17 -19
  13. package/lib/Header/Account/index.js +1 -1
  14. package/lib/Header/Account/nice-accounts.js +7 -5
  15. package/lib/Header/Header.js +160 -191
  16. package/lib/Header/Nav/Dropdown/Components/AboutUs.js +1 -1
  17. package/lib/Header/Nav/Dropdown/Components/Grid.js +2 -2
  18. package/lib/Header/Nav/Dropdown/Components/LifeSciences.js +1 -1
  19. package/lib/Header/Nav/Dropdown/Components/MoreFromNICE.js +1 -1
  20. package/lib/Header/Nav/Dropdown/Components/StandardsAndIndicators.js +1 -1
  21. package/lib/Header/Nav/Dropdown/Components/index.js +4 -4
  22. package/lib/Header/Nav/Dropdown/Dropdown.js +8 -10
  23. package/lib/Header/Nav/Dropdown/index.js +1 -1
  24. package/lib/Header/Nav/Nav.js +32 -35
  25. package/lib/Header/Nav/NavLinks/NavLinks.js +17 -21
  26. package/lib/Header/Nav/NavLinks/index.js +1 -1
  27. package/lib/Header/Nav/SubNav/SubNav.js +9 -9
  28. package/lib/Header/Nav/SubNav/index.js +1 -1
  29. package/lib/Header/Nav/index.js +1 -1
  30. package/lib/Header/OldIEMessage/OldIEMessage.js +1 -1
  31. package/lib/Header/OldIEMessage/ie.js +5 -4
  32. package/lib/Header/OldIEMessage/index.js +1 -1
  33. package/lib/Header/Search/Autocomplete/Autocomplete.js +39 -47
  34. package/lib/Header/Search/Autocomplete/index.js +1 -1
  35. package/lib/Header/Search/Autocomplete/suggester/index.js +16 -15
  36. package/lib/Header/Search/Autocomplete/suggester/phrase-finder.js +4 -4
  37. package/lib/Header/Search/Autocomplete/suggester/term-finder.js +9 -9
  38. package/lib/Header/Search/Autocomplete/suggester/tokenizer.js +4 -4
  39. package/lib/Header/Search/Search.js +13 -13
  40. package/lib/Header/Search/index.js +1 -1
  41. package/lib/Header/SkipLink/SkipLink.js +4 -4
  42. package/lib/Header/SkipLink/index.js +1 -1
  43. package/lib/Header/context/HeaderContext.js +24 -23
  44. package/lib/Header/index.js +1 -1
  45. package/lib/Main/BackToTop/BackToTop.js +6 -5
  46. package/lib/Main/Main.js +2 -2
  47. package/lib/Main/index.js +1 -1
  48. package/lib/TrackedLink/TrackedLink.js +5 -5
  49. package/lib/TrackedLink/index.js +1 -1
  50. package/lib/hooks/useEscapeKeydown.js +6 -6
  51. package/lib/hooks/useIsClient.js +5 -4
  52. package/lib/index.js +3 -3
  53. package/lib/renderer.js +22 -20
  54. package/lib/tracker/index.js +16 -14
  55. package/lib/utils.js +1 -1
  56. package/package.json +6 -3
package/README.md CHANGED
@@ -849,7 +849,7 @@ V4 involved updating a lot of dependencies. Mostly this was internal implementat
849
849
 
850
850
  ## Upgrading to v5
851
851
 
852
- Version 5 includes updates for the summer 2022 brand refresh. It's mostly an internal refactor of typography and colour updates and shouldn't include any breaking API changes.
852
+ Version 5 includes updates for the summer 2022 brand refresh. It's mostly an internal refactor of typography and colour updates and should not include any breaking API changes.
853
853
 
854
854
  ## Upgrading to v6
855
855
 
@@ -16,8 +16,8 @@ var _TrackedLink = _interopRequireDefault(require("../TrackedLink"));
16
16
  var _tracker = require("../tracker");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  //TODO add string type for service prop
19
- var Footer = function Footer(_ref) {
20
- var service = _ref.service;
19
+ const Footer = _ref => {
20
+ let service = _ref.service;
21
21
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("footer", {
22
22
  className: _FooterModule.default.footer,
23
23
  "data-tracking": "Global footer",
@@ -9,14 +9,14 @@ var _LegalModule = _interopRequireDefault(require("./Legal.module.scss"));
9
9
  var _TrackedLink = _interopRequireDefault(require("../../TrackedLink"));
10
10
  var _tracker = require("../../tracker");
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
- var cyberEssentialsCertificate = {
12
+ const cyberEssentialsCertificate = {
13
13
  id: "99cdb154-4ee0-41a4-bdef-6d2fa58bf757",
14
14
  expiryDate: "2026-06-02"
15
15
  };
16
- var Legal = function Legal() {
17
- var today = new Date();
18
- var cyberEssentialsExpiryDate = new Date(cyberEssentialsCertificate.expiryDate);
19
- var isCyberEssentialsValid = today < cyberEssentialsExpiryDate;
16
+ const Legal = () => {
17
+ const today = new Date();
18
+ const cyberEssentialsExpiryDate = new Date(cyberEssentialsCertificate.expiryDate);
19
+ const isCyberEssentialsValid = today < cyberEssentialsExpiryDate;
20
20
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
21
21
  className: _LegalModule.default.wrapper,
22
22
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _Legal.default;
11
11
  }
12
12
  });
@@ -12,14 +12,14 @@ var _TrackedLink = _interopRequireDefault(require("../../TrackedLink"));
12
12
  var _tracker = require("../../tracker");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  //TODO add string type for service prop
15
- var Pages = function Pages(_ref) {
16
- var service = _ref.service;
15
+ const Pages = _ref => {
16
+ let service = _ref.service;
17
17
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("nav", {
18
18
  className: _PagesModule.default.wrapper,
19
19
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
20
20
  className: _PagesModule.default.list,
21
- children: _links.default.map(function (link) {
22
- var href = link.href;
21
+ children: _links.default.map(link => {
22
+ let href = link.href;
23
23
  if (link.hrefOverrides && service) {
24
24
  href = link.hrefOverrides[service] || href;
25
25
  }
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _Pages.default;
11
11
  }
12
12
  });
@@ -14,7 +14,7 @@ var _services = _interopRequireDefault(require("../../services.json"));
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
- var Services = function Services() {
17
+ const Services = () => {
18
18
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("nav", {
19
19
  className: _ServicesModule.default.wrapper,
20
20
  "aria-label": "Our services",
@@ -24,7 +24,7 @@ var Services = function Services() {
24
24
  return item.footer;
25
25
  }).map(function (link) {
26
26
  if (link.nestedLinks) {
27
- return link.nestedLinks.map(function (nestedLink) {
27
+ return link.nestedLinks.map(nestedLink => {
28
28
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(FooterLink, _objectSpread({}, nestedLink), nestedLink.id);
29
29
  });
30
30
  } else {
@@ -45,7 +45,7 @@ FooterLink.propTypes = {
45
45
  title: _propTypes.default.string
46
46
  };
47
47
  function FooterLink(_ref) {
48
- var host = _ref.host,
48
+ let host = _ref.host,
49
49
  landingPath = _ref.landingPath,
50
50
  text = _ref.text,
51
51
  abbreviation = _ref.abbreviation,
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _Services.default;
11
11
  }
12
12
  });
@@ -13,7 +13,7 @@ var _SocialModule = _interopRequireDefault(require("./Social.module.scss"));
13
13
  var _TrackedLink = _interopRequireDefault(require("../../TrackedLink"));
14
14
  var _tracker = require("../../tracker");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
- var Social = function Social() {
16
+ const Social = () => {
17
17
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
18
18
  className: _SocialModule.default.wrapper,
19
19
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _Social.default;
11
11
  }
12
12
  });
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _Footer.default;
11
11
  }
12
12
  });
@@ -18,29 +18,27 @@ var _jsxRuntime = require("react/jsx-runtime");
18
18
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
19
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
20
  function Account(props) {
21
- var _props$provider = props.provider,
21
+ const _props$provider = props.provider,
22
22
  provider = _props$provider === void 0 ? "niceAccounts" : _props$provider;
23
23
  // We've left this is state as per the pre-hook implementation
24
- var _useState = (0, _react.useState)(provider == Account.providers.idam),
24
+ const _useState = (0, _react.useState)(provider == Account.providers.idam),
25
25
  _useState2 = (0, _slicedToArray2.default)(_useState, 1),
26
26
  doesUseIdAM = _useState2[0];
27
- var _useContext = (0, _react.useContext)(_HeaderContext.HeaderContext),
27
+ const _useContext = (0, _react.useContext)(_HeaderContext.HeaderContext),
28
28
  accountMenuIsExpanded = _useContext.accountMenuIsExpanded,
29
29
  setAccountMenuIsExpanded = _useContext.setAccountMenuIsExpanded;
30
- var keypress = (0, _react.useRef)(),
30
+ const keypress = (0, _react.useRef)(),
31
31
  myAccountButton = (0, _react.useRef)(),
32
32
  myAccountMenu = (0, _react.useRef)();
33
- var handleMyAccountButtonClick = (0, _react.useCallback)(function (e) {
33
+ const handleMyAccountButtonClick = (0, _react.useCallback)(e => {
34
34
  keypress.current = e.pageX;
35
- setAccountMenuIsExpanded(function (prevState) {
36
- return !prevState;
37
- });
35
+ setAccountMenuIsExpanded(prevState => !prevState);
38
36
  }, []);
39
37
  function focusAccount() {
40
38
  myAccountMenu && myAccountMenu.current.setAttribute("tabIndex", -1);
41
39
  myAccountMenu && myAccountMenu.current.focus();
42
40
  }
43
- (0, _react.useEffect)(function () {
41
+ (0, _react.useEffect)(() => {
44
42
  if (!keypress.current && accountMenuIsExpanded) {
45
43
  focusAccount();
46
44
  }
@@ -53,8 +51,8 @@ function Account(props) {
53
51
  }
54
52
  }
55
53
  function handleMenuItemClick(e) {
56
- var href = e.currentTarget.getAttribute("href");
57
- var eventLabel;
54
+ const href = e.currentTarget.getAttribute("href");
55
+ let eventLabel;
58
56
  if (href.indexOf("editprofile") > -1) {
59
57
  eventLabel = "Edit profile";
60
58
  } else if (href.indexOf("signout") > -1) {
@@ -69,8 +67,8 @@ function Account(props) {
69
67
  });
70
68
  }
71
69
  }
72
- (0, _react.useEffect)(function () {
73
- var consultationsResponsesLink = {
70
+ (0, _react.useEffect)(() => {
71
+ const consultationsResponsesLink = {
74
72
  "Consultation responses": "https://www.nice.org.uk/consultations/"
75
73
  };
76
74
  if (doesUseIdAM) {
@@ -78,16 +76,16 @@ function Account(props) {
78
76
  //idam supplies links like:[{ key: "My profile", value: "/Account/todo" },{ key: "Sign out", value: "/Account/Logout" }]
79
77
  //the following just converts the idam format to the nice accounts format.
80
78
 
81
- var displayName = props.displayName;
82
- var isLoggedIn = !!displayName;
83
- var links = props.links.reduce(function (links, link) {
79
+ const displayName = props.displayName;
80
+ const isLoggedIn = !!displayName;
81
+ let links = props.links.reduce(function (links, link) {
84
82
  links[link.text] = link.url;
85
83
  return links;
86
84
  }, {});
87
85
  if (isLoggedIn) {
88
86
  links = _objectSpread(_objectSpread({}, consultationsResponsesLink), links);
89
87
  }
90
- var convertedData = {
88
+ const convertedData = {
91
89
  display_name: displayName,
92
90
  links: links
93
91
  };
@@ -106,10 +104,10 @@ function Account(props) {
106
104
  });
107
105
  }
108
106
  }, []);
109
- var accountsData = props.accountsData,
107
+ const accountsData = props.accountsData,
110
108
  _props$environment = props.environment,
111
109
  environment = _props$environment === void 0 ? "live" : _props$environment;
112
- var signInLink = {};
110
+ let signInLink = {};
113
111
  if (doesUseIdAM) {
114
112
  signInLink = props.links[0];
115
113
  } else {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _Account.default;
11
11
  }
12
12
  });
@@ -8,13 +8,13 @@ exports.getDomainBaseUrl = exports.checkIsLoggedIn = void 0;
8
8
  // Returns a promise that resolves with the data from NICE Accounts.
9
9
  // Returns a promise that rejects if the data could not be loaded.
10
10
 
11
- var checkIsLoggedIn = exports.checkIsLoggedIn = function checkIsLoggedIn(environment) {
11
+ const checkIsLoggedIn = function (environment) {
12
12
  return new Promise(function (resolve, reject) {
13
- var url = getDomainBaseUrl(environment) + "tophat";
13
+ const url = getDomainBaseUrl(environment) + "tophat";
14
14
  var body = document.body;
15
15
  var script = document.createElement("script");
16
16
  script.src = url + (~url.indexOf("?") ? "&" : "?") + Math.floor(Math.random() * 10000000000);
17
- var done = false;
17
+ let done = false;
18
18
  script.onload = script.onreadystatechange = function () {
19
19
  if (!done && (!script.readyState || script.readyState === "loaded" || script.readyState === "complete")) {
20
20
  done = true;
@@ -30,6 +30,8 @@ var checkIsLoggedIn = exports.checkIsLoggedIn = function checkIsLoggedIn(environ
30
30
  body.insertBefore(script, body.firstChild);
31
31
  });
32
32
  };
33
- var getDomainBaseUrl = exports.getDomainBaseUrl = function getDomainBaseUrl(environment) {
33
+ exports.checkIsLoggedIn = checkIsLoggedIn;
34
+ const getDomainBaseUrl = function (environment) {
34
35
  return "https://".concat(environment !== "live" ? environment + "-" : "", "accounts.nice.org.uk/");
35
- };
36
+ };
37
+ exports.getDomainBaseUrl = getDomainBaseUrl;