luna-one 3.1.508 → 3.1.510

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.
@@ -122,7 +122,8 @@ var NavBarHandler = function NavBarHandler(_ref) {
122
122
  navigate: navigate,
123
123
  authLabels: data === null || data === void 0 ? void 0 : data.authLabels,
124
124
  setGlobalSearch: setGlobalSearch,
125
- globalSearch: globalSearch
125
+ globalSearch: globalSearch,
126
+ waffleMenu: data === null || data === void 0 ? void 0 : data.waffleMenu
126
127
  });
127
128
  };
128
129
 
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _downCaretDarkBlue = _interopRequireDefault(require("../../images/down-caret-dark-blue.svg"));
15
+
16
+ var _rightCaretLightGray = _interopRequireDefault(require("../../images/right-caret-light-gray.svg"));
17
+
18
+ var _formatID = _interopRequireDefault(require("../../utils/formatID"));
19
+
20
+ var _useMouse = _interopRequireDefault(require("../../utils/hooks/useMouse"));
21
+
22
+ var _useFocus5 = require("../../utils/hooks/useFocus");
23
+
24
+ var _waffle = _interopRequireDefault(require("../../images/waffle.svg"));
25
+
26
+ var MobileDashboardMenu = function MobileDashboardMenu(_ref) {
27
+ var links = _ref.links,
28
+ cta = _ref.cta,
29
+ text = _ref.text,
30
+ toggleDropDown = _ref.toggleDropDown,
31
+ isOpen = _ref.isOpen,
32
+ closeDropDown = _ref.closeDropDown,
33
+ Link = _ref.Link,
34
+ currentOpenMenu = _ref.currentOpenMenu,
35
+ hamburgerIsOpen = _ref.hamburgerIsOpen;
36
+ var mouse = _useMouse["default"].mouse;
37
+
38
+ var _useFocus = (0, _useFocus5.useFocus)(),
39
+ _useFocus2 = (0, _slicedToArray2["default"])(_useFocus, 2),
40
+ collapsedMenu = _useFocus2[0],
41
+ setCollapsedMenu = _useFocus2[1];
42
+
43
+ var _useFocus3 = (0, _useFocus5.useFocus)(),
44
+ _useFocus4 = (0, _slicedToArray2["default"])(_useFocus3, 2),
45
+ uncollapsedMenu = _useFocus4[0],
46
+ setUncollapsedMenu = _useFocus4[1];
47
+
48
+ var generateMenuLinks = function generateMenuLinks() {
49
+ return links.map(function (_ref2, i) {
50
+ var title = _ref2.title,
51
+ description = _ref2.description,
52
+ linkText = _ref2.linkText,
53
+ externalUrl = _ref2.externalUrl;
54
+ return /*#__PURE__*/_react["default"].createElement("li", {
55
+ key: i,
56
+ className: "luna-waffle-menu__drop-down__menu-item"
57
+ }, /*#__PURE__*/_react["default"].createElement("h4", {
58
+ className: "luna-waffle-menu__drop-down__menu-item__product-name"
59
+ }, title), /*#__PURE__*/_react["default"].createElement("div", {
60
+ className: "luna-waffle-menu__drop-down__menu-item__description"
61
+ }, description), /*#__PURE__*/_react["default"].createElement("div", {
62
+ className: "luna-waffle-menu__drop-down__menu-item__cta"
63
+ }, /*#__PURE__*/_react["default"].createElement("a", {
64
+ href: externalUrl,
65
+ className: "luna-waffle-menu__drop-down__menu-item__cta__link",
66
+ target: "_blank"
67
+ }, linkText)));
68
+ });
69
+ };
70
+
71
+ var toggleWithEnter = function toggleWithEnter(e, name, direction) {
72
+ if (e.keyCode === 13) {
73
+ toggleDropDown(name);
74
+
75
+ if (direction === "open") {
76
+ setCollapsedMenu();
77
+ } else {
78
+ setUncollapsedMenu();
79
+ }
80
+ }
81
+ };
82
+
83
+ var invisible = currentOpenMenu !== null;
84
+
85
+ if (Array.isArray(links) && links.length > 0) {
86
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("section", {
87
+ className: "ter-mobile-mega-menu ".concat(isOpen ? "ter-mobile-mega-menu--reveal" : "ter-mobile-mega-menu--reveal--from-right")
88
+ }, /*#__PURE__*/_react["default"].createElement("p", {
89
+ id: (0, _formatID["default"])("".concat(text, "-mini-menu-name")),
90
+ className: "ter-mobile-mega-menu__name ".concat(isOpen ? "ter-mobile-mega-menu__name--open" : "", " ").concat(mouse ? "" : "tabFocus"),
91
+ tabIndex: mouse ? "" : "0",
92
+ onClick: function onClick() {
93
+ return toggleDropDown(text);
94
+ },
95
+ onKeyDown: function onKeyDown(e) {
96
+ return toggleWithEnter(e, text, "open");
97
+ },
98
+ "aria-haspopup": "menu",
99
+ "aria-expanded": isOpen,
100
+ ref: uncollapsedMenu,
101
+ "data-depth": 1
102
+ }, text, /*#__PURE__*/_react["default"].createElement("img", {
103
+ className: "ter-mobile-menu__caret ".concat(isOpen ? "ter-mobile-menu__caret--up" : "ter-mobile-menu__caret--down"),
104
+ src: _rightCaretLightGray["default"],
105
+ alt: "caret icon"
106
+ })), /*#__PURE__*/_react["default"].createElement("ul", {
107
+ className: "ter-mobile-menu__link-container ter-mobile-menu__link-container--is-open"
108
+ }, generateMenuLinks()), (cta === null || cta === void 0 ? void 0 : cta.reference) && /*#__PURE__*/_react["default"].createElement("footer", {
109
+ className: "luna-waffle-menu__drop-down__footer"
110
+ }, /*#__PURE__*/_react["default"].createElement(Link, {
111
+ to: cta.reference.slug,
112
+ className: "luna-waffle-menu__drop-down__footer__link"
113
+ }, cta.title))), /*#__PURE__*/_react["default"].createElement("section", {
114
+ className: "ter-mobile-mega-menu ".concat(invisible ? "ter-mobile-mega-menu--inactive" : "")
115
+ }, /*#__PURE__*/_react["default"].createElement("p", {
116
+ id: (0, _formatID["default"])("".concat(text, "-mini-menu-name")),
117
+ className: "ter-mobile-mega-menu__name ter-mobile-mega-menu__name__flex ter-mobile-mega-menu__name__utility-link ter-mobile-mega-menu__name__utility-link__last ".concat(currentOpenMenu || !hamburgerIsOpen ? "" : "ter-mobile-mega-menu__name--open-parent", " ").concat(mouse ? "" : "tabFocus"),
118
+ onClick: function onClick() {
119
+ return toggleDropDown(text);
120
+ },
121
+ onKeyDown: function onKeyDown(e) {
122
+ return toggleWithEnter(e, text, "close");
123
+ },
124
+ tabIndex: mouse ? "" : "0",
125
+ "aria-haspopup": "menu",
126
+ "aria-expanded": !isOpen,
127
+ ref: collapsedMenu,
128
+ "data-depth": 1
129
+ }, /*#__PURE__*/_react["default"].createElement("img", {
130
+ src: _waffle["default"],
131
+ className: "ter-mobile-mega-menu__name__flex__icon",
132
+ width: "16",
133
+ height: "16",
134
+ alt: ""
135
+ }), text, /*#__PURE__*/_react["default"].createElement("img", {
136
+ className: "ter-mobile-menu__caret ".concat(isOpen ? "ter-mobile-menu__caret--up" : "ter-mobile-menu__caret--down"),
137
+ src: _downCaretDarkBlue["default"],
138
+ alt: "caret icon"
139
+ }))));
140
+ }
141
+
142
+ return null;
143
+ };
144
+
145
+ var _default = MobileDashboardMenu;
146
+ exports["default"] = _default;
@@ -88,6 +88,20 @@
88
88
  &:hover {
89
89
  cursor: pointer;
90
90
  }
91
+
92
+ &__flex {
93
+ display: flex;
94
+ align-items: center;
95
+ &__icon {
96
+ margin-right: 10px;
97
+ }
98
+ }
99
+
100
+ &__utility-link {
101
+ background: white;
102
+ color: $trimble-blue;
103
+ border-bottom: 1px solid rgba(0, 99, 163);
104
+ }
91
105
  }
92
106
 
93
107
  &__caret {
@@ -23,6 +23,10 @@ require("./MobileNav.scss");
23
23
 
24
24
  var _logoIcon = _interopRequireDefault(require("../../images/logo-icon.svg"));
25
25
 
26
+ var _user = _interopRequireDefault(require("../../images/user.svg"));
27
+
28
+ var _downCaretDarkBlue = _interopRequireDefault(require("../../images/down-caret-dark-blue.svg"));
29
+
26
30
  var _lodash = _interopRequireDefault(require("lodash"));
27
31
 
28
32
  var _useNavigator2 = _interopRequireDefault(require("../../utils/hooks/useNavigator"));
@@ -57,6 +61,11 @@ var MobileMenu = (0, _component["default"])(function () {
57
61
  return (0, _interopRequireWildcard2["default"])(require("../MobileMenu/MobileMenu"));
58
62
  });
59
63
  });
64
+ var MobileDashboardMenu = (0, _component["default"])(function () {
65
+ return Promise.resolve().then(function () {
66
+ return (0, _interopRequireWildcard2["default"])(require("../MobileDashboardMenu/MobileDashboardMenu"));
67
+ });
68
+ });
60
69
  var TopMobileNav = (0, _component["default"])(function () {
61
70
  return Promise.resolve().then(function () {
62
71
  return (0, _interopRequireWildcard2["default"])(require("./TopMobileNav"));
@@ -88,7 +97,8 @@ var MobileNav = function MobileNav(props) {
88
97
  logout = props.logout,
89
98
  login = props.login,
90
99
  Link = props.Link,
91
- authLabels = props.authLabels;
100
+ authLabels = props.authLabels,
101
+ waffleMenu = props.waffleMenu;
92
102
 
93
103
  var _useContext = (0, _react.useContext)(_NavBar.NavBarContext),
94
104
  mouse = _useContext.mouse,
@@ -193,6 +203,7 @@ var MobileNav = function MobileNav(props) {
193
203
  saveLanguage(region);
194
204
  };
195
205
 
206
+ var myDashboardLabel = (authLabels === null || authLabels === void 0 ? void 0 : authLabels.myDashboard) || 'My Dashboard';
196
207
  return /*#__PURE__*/_react["default"].createElement("section", {
197
208
  className: "ter-mobile-nav ".concat(hamburgerIsOpen ? "ter-mobile-nav--is-open" : "ter-mobile-nav--is-hidden", " ").concat(!disableSectorFlyOut && hamburgerIsOpen ? "ter-mobile-nav__flyout--active ".concat(flyoutPaddingClass) : ""),
198
209
  tabIndex: "-1"
@@ -225,7 +236,35 @@ var MobileNav = function MobileNav(props) {
225
236
  userProfile: userProfile,
226
237
  logout: logout,
227
238
  authLabels: authLabels
228
- })), !disableSectorFlyOut && /*#__PURE__*/_react["default"].createElement("section", {
239
+ })), !disableLogin && /*#__PURE__*/_react["default"].createElement("section", {
240
+ className: "ter-mobile-mega-menu ".concat(isOpen !== null ? "ter-mobile-mega-menu--inactive" : ""),
241
+ onClick: function onClick() {
242
+ return handleSectorFlyoutDeployed();
243
+ }
244
+ }, /*#__PURE__*/_react["default"].createElement("div", {
245
+ className: "ter-mobile-mega-menu__name ter-mobile-mega-menu__name__flex ter-mobile-mega-menu__name__utility-link ter-mobile-mega-menu__name--open-parent tabFocus"
246
+ }, /*#__PURE__*/_react["default"].createElement("img", {
247
+ src: _user["default"],
248
+ width: "16",
249
+ alt: "User",
250
+ className: "ter-mobile-mega-menu__name__flex__icon"
251
+ }), authLabels.myAccount || 'My Account', /*#__PURE__*/_react["default"].createElement("img", {
252
+ className: "ter-mobile-menu__caret ter-mobile-menu__caret--down",
253
+ src: _downCaretDarkBlue["default"],
254
+ alt: "caret icon"
255
+ }))), /*#__PURE__*/_react["default"].createElement(MobileDashboardMenu, {
256
+ text: myDashboardLabel,
257
+ links: waffleMenu === null || waffleMenu === void 0 ? void 0 : waffleMenu.links,
258
+ cta: waffleMenu === null || waffleMenu === void 0 ? void 0 : waffleMenu.cta,
259
+ key: myDashboardLabel,
260
+ isOpen: isOpen === myDashboardLabel,
261
+ currentOpenMenu: isOpen,
262
+ openDropDown: openDropDown,
263
+ closeDropDown: closeAll,
264
+ toggleDropDown: toggleDropDown,
265
+ Link: Link,
266
+ hamburgerIsOpen: hamburgerIsOpen
267
+ }), !disableSectorFlyOut && /*#__PURE__*/_react["default"].createElement("section", {
229
268
  className: "ter-mobile-nav__flyout-wrapper ".concat(isOpen !== null ? "ter-mobile-nav__flyout-wrapper--inactive" : ""),
230
269
  onClick: function onClick() {
231
270
  return handleSectorFlyoutDeployed();
@@ -95,7 +95,6 @@
95
95
  &--active {
96
96
  display: flex;
97
97
  flex-direction: column;
98
- justify-content: space-between;
99
98
  }
100
99
 
101
100
  &--regular-padding {
@@ -214,7 +213,7 @@
214
213
  }
215
214
 
216
215
  &__globe-icon {
217
- width: 14px;
216
+ width: 16px;
218
217
  transform: translateY(-2px);
219
218
  }
220
219
 
@@ -124,6 +124,7 @@ var TopMobileNav = function TopMobileNav(props) {
124
124
  "aria-expanded": languageSelectorDeployed
125
125
  }, /*#__PURE__*/_react["default"].createElement("img", {
126
126
  src: _iconGlobe["default"],
127
+ width: "16",
127
128
  alt: "globe wireframe icon",
128
129
  className: "ter-top-mobile-nav__globe-icon"
129
130
  }), /*#__PURE__*/_react["default"].createElement("p", {
@@ -135,17 +136,6 @@ var TopMobileNav = function TopMobileNav(props) {
135
136
  className: "ter-mobile-mega-menu__caret ter-mobile-menu__caret--down",
136
137
  src: _downCaretDarkBlue["default"],
137
138
  alt: "caret icon"
138
- })), !disableLogin && /*#__PURE__*/_react["default"].createElement("section", {
139
- className: "ter-top-mobile-nav__login-wrapper ".concat(currentOpenMenu !== null ? "ter-top-mobile-nav__login-wrapper--inactive" : "", " ").concat(!hamburgerIsOpen ? "ter-top-mobile-nav__login-wrapper--hidden" : "")
140
- }, /*#__PURE__*/_react["default"].createElement(MobileLogin, {
141
- loginPage: loginPage,
142
- login: login,
143
- isHidden: isHidden,
144
- Link: Link,
145
- isAuthenticated: isAuthenticated,
146
- userProfile: userProfile,
147
- logout: logout,
148
- authLabels: authLabels
149
139
  })));
150
140
  };
151
141
 
@@ -78,13 +78,16 @@ var NavBarTop = function NavBarTop(props) {
78
78
  setDesktopSearchDeployed = props.setDesktopSearchDeployed,
79
79
  desktopSearchDeployed = props.desktopSearchDeployed,
80
80
  globalSearch = props.globalSearch,
81
- setGlobalSearch = props.setGlobalSearch;
81
+ setGlobalSearch = props.setGlobalSearch,
82
+ waffleMenu = props.waffleMenu;
82
83
  var inputFocus = (0, _utilizeFocus.utilizeFocus)();
83
84
 
84
85
  var _useContext = (0, _react.useContext)(_NavBar.NavBarContext),
85
86
  mouse = _useContext.mouse,
86
87
  handleSearchSubmit = _useContext.handleSearchSubmit,
87
- hamburgerClick = _useContext.hamburgerClick;
88
+ hamburgerClick = _useContext.hamburgerClick,
89
+ closeAllDropDowns = _useContext.closeAllDropDowns,
90
+ handleSectorFlyoutDeployed = _useContext.handleSectorFlyoutDeployed;
88
91
 
89
92
  var _useState = (0, _react.useState)(null),
90
93
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -93,6 +96,9 @@ var NavBarTop = function NavBarTop(props) {
93
96
 
94
97
  var toggleDesktopSearch = function toggleDesktopSearch(isDesktop) {
95
98
  if (!desktopSearchDeployed) {
99
+ handleSectorFlyoutDeployed(false);
100
+ handleLanguageSelectorDeployed(false);
101
+ closeAllDropDowns();
96
102
  setSearchDeployed(true);
97
103
  setGlobalSearch && setGlobalSearch(false);
98
104
  setDesktopSearchDeployed(true);
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _NavBar = require("../../other-organisms/NavBar/NavBar");
15
+
16
+ var _waffle = _interopRequireDefault(require("../../images/waffle.svg"));
17
+
18
+ require("./WaffleMenu.scss");
19
+
20
+ var _default = function _default(_ref) {
21
+ var links = _ref.links,
22
+ cta = _ref.cta,
23
+ Link = _ref.Link;
24
+
25
+ var _useContext = (0, _react.useContext)(_NavBar.NavBarContext),
26
+ closeAllDropDowns = _useContext.closeAllDropDowns,
27
+ currentOpenMenu = _useContext.currentOpenMenu,
28
+ sectorFlyoutDeployed = _useContext.sectorFlyoutDeployed,
29
+ handleSectorFlyoutDeployed = _useContext.handleSectorFlyoutDeployed,
30
+ languageSelectorDeployed = _useContext.languageSelectorDeployed,
31
+ handleLanguageSelectorDeployed = _useContext.handleLanguageSelectorDeployed,
32
+ desktopSearchDeployed = _useContext.desktopSearchDeployed,
33
+ setDesktopSearchDeployed = _useContext.setDesktopSearchDeployed,
34
+ isWaffleMenuDeployed = _useContext.isWaffleMenuDeployed,
35
+ setWaffleMenuDeployed = _useContext.setWaffleMenuDeployed;
36
+
37
+ (0, _react.useEffect)(function () {
38
+ if (currentOpenMenu) {
39
+ setWaffleMenuDeployed(false);
40
+ }
41
+ }, [currentOpenMenu]);
42
+ (0, _react.useEffect)(function () {
43
+ if (sectorFlyoutDeployed) {
44
+ setWaffleMenuDeployed(false);
45
+ }
46
+ }, [sectorFlyoutDeployed]);
47
+ (0, _react.useEffect)(function () {
48
+ if (languageSelectorDeployed) {
49
+ setWaffleMenuDeployed(false);
50
+ }
51
+ }, [languageSelectorDeployed]);
52
+ (0, _react.useEffect)(function () {
53
+ if (desktopSearchDeployed) {
54
+ setWaffleMenuDeployed(false);
55
+ }
56
+ }, [desktopSearchDeployed]);
57
+
58
+ var handleClick = function handleClick() {
59
+ closeAllDropDowns();
60
+ handleSectorFlyoutDeployed(false);
61
+ handleLanguageSelectorDeployed(false);
62
+ setDesktopSearchDeployed(false);
63
+ setWaffleMenuDeployed(!isWaffleMenuDeployed);
64
+ };
65
+
66
+ if (Array.isArray(links) && links.length > 0) {
67
+ var _cta$reference;
68
+
69
+ return /*#__PURE__*/_react["default"].createElement("div", {
70
+ className: "luna-waffle-menu"
71
+ }, /*#__PURE__*/_react["default"].createElement("div", {
72
+ className: "luna-waffle-menu__selector"
73
+ }, /*#__PURE__*/_react["default"].createElement("button", {
74
+ type: "button",
75
+ className: "luna-waffle-menu__selector__button ".concat(isWaffleMenuDeployed ? 'luna-waffle-menu__selector__button--active' : ''),
76
+ onClick: handleClick
77
+ }, /*#__PURE__*/_react["default"].createElement("img", {
78
+ src: _waffle["default"],
79
+ width: "20",
80
+ height: "20",
81
+ alt: ""
82
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
83
+ className: "luna-waffle-menu__drop-down ".concat(isWaffleMenuDeployed ? 'luna-waffle-menu__drop-down--active' : '')
84
+ }, /*#__PURE__*/_react["default"].createElement("ul", {
85
+ className: "luna-waffle-menu__drop-down__options"
86
+ }, links.map(function (_ref2, i) {
87
+ var title = _ref2.title,
88
+ description = _ref2.description,
89
+ linkText = _ref2.linkText,
90
+ externalUrl = _ref2.externalUrl;
91
+ return /*#__PURE__*/_react["default"].createElement("li", {
92
+ key: i,
93
+ className: "luna-waffle-menu__drop-down__menu-item"
94
+ }, /*#__PURE__*/_react["default"].createElement("h4", {
95
+ className: "luna-waffle-menu__drop-down__menu-item__product-name"
96
+ }, title), /*#__PURE__*/_react["default"].createElement("div", {
97
+ className: "luna-waffle-menu__drop-down__menu-item__description"
98
+ }, description), /*#__PURE__*/_react["default"].createElement("div", {
99
+ className: "luna-waffle-menu__drop-down__menu-item__cta"
100
+ }, /*#__PURE__*/_react["default"].createElement("a", {
101
+ href: externalUrl,
102
+ className: "luna-waffle-menu__drop-down__menu-item__cta__link",
103
+ target: "_blank"
104
+ }, linkText)));
105
+ })), (cta === null || cta === void 0 ? void 0 : cta.reference) && /*#__PURE__*/_react["default"].createElement("footer", {
106
+ className: "luna-waffle-menu__drop-down__footer"
107
+ }, /*#__PURE__*/_react["default"].createElement(Link, {
108
+ to: cta === null || cta === void 0 ? void 0 : (_cta$reference = cta.reference) === null || _cta$reference === void 0 ? void 0 : _cta$reference.slug,
109
+ className: "luna-waffle-menu__drop-down__footer__link"
110
+ }, cta === null || cta === void 0 ? void 0 : cta.title))));
111
+ }
112
+
113
+ return null;
114
+ };
115
+
116
+ exports["default"] = _default;
@@ -0,0 +1,73 @@
1
+ @import "../../../global-styles/terra.scss";
2
+
3
+ .ter-navbar-top__pipe + .luna-waffle-menu {
4
+ margin-left: 28px;
5
+ }
6
+
7
+ .luna-waffle-menu {
8
+ position: relative;
9
+ @media screen and (max-width: $breakpoint-sm) {
10
+ display: none;
11
+ }
12
+ &__selector {
13
+ &__button {
14
+ padding: 10px 4px 4px 4px;
15
+ border-bottom: 3px solid transparent;
16
+ &--active, &:hover {
17
+ border-bottom: 3px solid $trimble-gold;
18
+ }
19
+ }
20
+ }
21
+ &__drop-down {
22
+ display: none;
23
+ position: absolute;
24
+ background: $white;
25
+ box-shadow: 0 4px 8px 0 rgba(54,53,69,.1),0 4px 8px 0 rgba(54,53,69,.1);
26
+ border-radius: 0px 0px 3px 3px;
27
+ width: 360px;
28
+ left: calc(50% - 180px);
29
+ &--active {
30
+ display: block;
31
+ }
32
+ &__options {
33
+ list-style: none;
34
+ padding: 0;
35
+ margin: 0;
36
+ }
37
+ &__menu-item {
38
+ padding: 20px;
39
+ margin: 0;
40
+ border-bottom: 1px solid #F1F2F7;
41
+ &__product-name {
42
+ font-size: 20px;
43
+ line-height: 26px;
44
+ margin: 0;
45
+ }
46
+ &__description {
47
+ font-size: 12px;
48
+ line-height: 18px;
49
+ }
50
+ &__cta {
51
+ &__link {
52
+ font-size: 14px !important;
53
+ line-height: 24px !important;
54
+ font-weight: 500 !important;
55
+ color: #252A2E !important;
56
+ margin: 0 !important;
57
+ text-decoration: none;
58
+ border-bottom: 3px solid $trimble-gold;
59
+ }
60
+ }
61
+ }
62
+ &__footer {
63
+ background-color: #F8F8FB;
64
+ padding: 20px;
65
+ font-size: 14px;
66
+ line-height: 14px;
67
+ &__link {
68
+ margin: 0 !important;
69
+ text-decoration: none;
70
+ }
71
+ }
72
+ }
73
+ }
@@ -1 +1 @@
1
- <svg fill="#005f9e" xmlns="http://www.w3.org/2000/svg"><path d="M10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 18c-.61-.24-2-2.63-2.23-7h4.46c-.23 4.36-1.62 6.75-2.23 7Zm0-16c.61.24 2 2.63 2.23 7H7.77C8 4.64 9.39 2.25 10 2Zm7.93 7h-3.7a17.17 17.17 0 0 0-1.42-6.48A8 8 0 0 1 17.93 9ZM7.19 2.52A17.17 17.17 0 0 0 5.77 9h-3.7a8 8 0 0 1 5.12-6.48ZM2.07 11h3.7a17.17 17.17 0 0 0 1.42 6.48A8 8 0 0 1 2.07 11Zm10.74 6.48A17.17 17.17 0 0 0 14.23 11h3.7a8 8 0 0 1-5.12 6.48Z" fill="#005f9e"/></svg>
1
+ <svg viewBox="0 0 20 20" fill="#005f9e" xmlns="http://www.w3.org/2000/svg"><path d="M10 0a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 18c-.61-.24-2-2.63-2.23-7h4.46c-.23 4.36-1.62 6.75-2.23 7Zm0-16c.61.24 2 2.63 2.23 7H7.77C8 4.64 9.39 2.25 10 2Zm7.93 7h-3.7a17.17 17.17 0 0 0-1.42-6.48A8 8 0 0 1 17.93 9ZM7.19 2.52A17.17 17.17 0 0 0 5.77 9h-3.7a8 8 0 0 1 5.12-6.48ZM2.07 11h3.7a17.17 17.17 0 0 0 1.42 6.48A8 8 0 0 1 2.07 11Zm10.74 6.48A17.17 17.17 0 0 0 14.23 11h3.7a8 8 0 0 1-5.12 6.48Z" fill="#005f9e"/></svg>
@@ -0,0 +1,4 @@
1
+ <svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10 0.523438C4.48 0.523438 0 5.00344 0 10.5234C0 16.0434 4.48 20.5234 10 20.5234C15.52 20.5234 20 16.0434 20 10.5234C20 5.00344 15.52 0.523438 10 0.523438ZM10 18.5234C8.55 18.5234 7.18 18.1234 6.01 17.4434C6.05 16.3734 6.93 15.5234 8 15.5234H12C13.08 15.5234 13.95 16.3834 13.99 17.4434C12.81 18.1234 11.45 18.5234 10 18.5234ZM15.72 16.1034C15.15 14.6034 13.7 13.5234 12 13.5234H8C6.29 13.5234 4.86 14.6034 4.29 16.1134C2.88 14.6734 2 12.6934 2 10.5234C2 6.11344 5.59 2.52344 10 2.52344C14.41 2.52344 18 6.11344 18 10.5234C18 12.6934 17.13 14.6634 15.72 16.1034Z" fill="#0063A3"/>
3
+ <path d="M10 4.52344C7.79 4.52344 6 6.31344 6 8.52344C6 10.7334 7.79 12.5234 10 12.5234C12.21 12.5234 14 10.7334 14 8.52344C14 6.31344 12.21 4.52344 10 4.52344ZM10 10.5234C8.9 10.5234 8 9.62344 8 8.52344C8 7.42344 8.9 6.52344 10 6.52344C11.1 6.52344 12 7.42344 12 8.52344C12 9.62344 11.1 10.5234 10 10.5234Z" fill="#0063A3"/>
4
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4 0H0V4H4V0Z" fill="#0063A3"/>
3
+ <path d="M12 0H8V4H12V0Z" fill="#0063A3"/>
4
+ <path d="M20 0H16V4H20V0Z" fill="#0063A3"/>
5
+ <path d="M4 8H0V12H4V8Z" fill="#0063A3"/>
6
+ <path d="M12 8H8V12H12V8Z" fill="#0063A3"/>
7
+ <path d="M20 8H16V12H20V8Z" fill="#0063A3"/>
8
+ <path d="M4 16H0V20H4V16Z" fill="#0063A3"/>
9
+ <path d="M12 16H8V20H12V16Z" fill="#0063A3"/>
10
+ <path d="M20 16H16V20H20V16Z" fill="#0063A3"/>
11
+ </svg>
@@ -31,6 +31,8 @@ var _rightCaretLightGray = _interopRequireDefault(require("../../images/right-ca
31
31
 
32
32
  var _useMouse2 = _interopRequireDefault(require("../../utils/hooks/useMouse"));
33
33
 
34
+ var _NavBar = require("..//NavBar/NavBar");
35
+
34
36
  var Button = (0, _component["default"])(function () {
35
37
  return Promise.resolve().then(function () {
36
38
  return (0, _interopRequireWildcard2["default"])(require("terra-one"));
@@ -53,6 +55,11 @@ var LanguageSelector = function LanguageSelector(_ref) {
53
55
  handleLanguageSelectorDeployed = _ref$handleLanguageSe === void 0 ? function () {} : _ref$handleLanguageSe,
54
56
  languageSelectorDeployed = _ref.languageSelectorDeployed;
55
57
 
58
+ var _useContext = (0, _react.useContext)(_NavBar.NavBarContext),
59
+ setDesktopSearchDeployed = _useContext.setDesktopSearchDeployed,
60
+ handleSectorFlyoutDeployed = _useContext.handleSectorFlyoutDeployed,
61
+ closeAllDropDowns = _useContext.closeAllDropDowns;
62
+
56
63
  var _useState = (0, _react.useState)(settings),
57
64
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
58
65
  currentSettings = _useState2[0],
@@ -112,6 +119,9 @@ var LanguageSelector = function LanguageSelector(_ref) {
112
119
  };
113
120
 
114
121
  var handleClick = function handleClick() {
122
+ closeAllDropDowns();
123
+ handleSectorFlyoutDeployed(false);
124
+ setDesktopSearchDeployed(false);
115
125
  handleLanguageSelectorDeployed();
116
126
  checkComponent = true;
117
127
  };
@@ -31,6 +31,10 @@ require("./NavBar.scss");
31
31
 
32
32
  var _logoIcon = _interopRequireDefault(require("../../images/logo-icon.svg"));
33
33
 
34
+ var _user = _interopRequireDefault(require("../../images/user.svg"));
35
+
36
+ var _WaffleMenu = _interopRequireDefault(require("../../components/WaffleMenu/WaffleMenu"));
37
+
34
38
  var Login = (0, _component["default"])(function () {
35
39
  return Promise.resolve().then(function () {
36
40
  return (0, _interopRequireWildcard2["default"])(require("../../components/Login/Login"));
@@ -158,7 +162,8 @@ var NavBar = function NavBar(props) {
158
162
  navigate = props.navigate,
159
163
  authLabels = props.authLabels,
160
164
  setGlobalSearch = props.setGlobalSearch,
161
- globalSearch = props.globalSearch;
165
+ globalSearch = props.globalSearch,
166
+ waffleMenu = props.waffleMenu;
162
167
 
163
168
  var _useState = (0, _react.useState)(null),
164
169
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -288,6 +293,12 @@ var NavBar = function NavBar(props) {
288
293
  }
289
294
  };
290
295
  }, []);
296
+ (0, _react.useEffect)(function () {
297
+ if (currentOpenMenu) {
298
+ handleSectorFlyoutDeployed(false);
299
+ handleLanguageSelectorDeployed(false);
300
+ }
301
+ }, [currentOpenMenu]);
291
302
 
292
303
  var closeAllDropDowns = function closeAllDropDowns() {
293
304
  setCurrentOpenMenu(null);
@@ -450,6 +461,12 @@ var NavBar = function NavBar(props) {
450
461
  };
451
462
 
452
463
  var regionLanguageID = "language-selector";
464
+
465
+ var _useState21 = (0, _react.useState)(false),
466
+ _useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
467
+ isWaffleMenuDeployed = _useState22[0],
468
+ setWaffleMenuDeployed = _useState22[1];
469
+
453
470
  return /*#__PURE__*/_react["default"].createElement(NavBarContext.Provider, {
454
471
  value: {
455
472
  mouse: mouse,
@@ -469,7 +486,15 @@ var NavBar = function NavBar(props) {
469
486
  closeAllDropDowns: closeAllDropDowns,
470
487
  checkScroll: checkScroll,
471
488
  preventImmediateMouseOver: preventImmediateMouseOver,
472
- closeHamburger: closeHamburger
489
+ closeHamburger: closeHamburger,
490
+ sectorFlyoutDeployed: sectorFlyoutDeployed,
491
+ handleSectorFlyoutDeployed: handleSectorFlyoutDeployed,
492
+ languageSelectorDeployed: languageSelectorDeployed,
493
+ handleLanguageSelectorDeployed: handleLanguageSelectorDeployed,
494
+ desktopSearchDeployed: desktopSearchDeployed,
495
+ setDesktopSearchDeployed: setDesktopSearchDeployed,
496
+ isWaffleMenuDeployed: isWaffleMenuDeployed,
497
+ setWaffleMenuDeployed: setWaffleMenuDeployed
473
498
  }
474
499
  }, /*#__PURE__*/_react["default"].createElement("nav", {
475
500
  className: "ter-navbar ter-navbar".concat(isHidden && ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) > 100 && !desktopSearchDeployed ? "--is-hidden" : "--is-showing"),
@@ -501,17 +526,24 @@ var NavBar = function NavBar(props) {
501
526
  desktopSearchDeployed: desktopSearchDeployed,
502
527
  setDesktopSearchDeployed: setDesktopSearchDeployed,
503
528
  globalSearch: globalSearch,
504
- setGlobalSearch: setGlobalSearch
505
- }, !disableLogin && /*#__PURE__*/_react["default"].createElement(Login, {
506
- loginPage: loginPage,
507
- login: login,
508
- isHidden: disableLogin,
509
- Link: Link,
510
- isAuthenticated: isAuthenticated,
511
- userProfile: userProfile,
512
- logout: logout,
513
- authLabels: authLabels
514
- })), /*#__PURE__*/_react["default"].createElement("div", {
529
+ setGlobalSearch: setGlobalSearch,
530
+ waffleMenu: true
531
+ }, /*#__PURE__*/_react["default"].createElement(_WaffleMenu["default"], {
532
+ links: waffleMenu === null || waffleMenu === void 0 ? void 0 : waffleMenu.links,
533
+ cta: waffleMenu === null || waffleMenu === void 0 ? void 0 : waffleMenu.cta,
534
+ Link: Link
535
+ }), !disableLogin && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("button", {
536
+ type: "button",
537
+ className: "ter-utility-nav__my-account",
538
+ onClick: function onClick() {
539
+ return handleSectorFlyoutDeployed();
540
+ }
541
+ }, /*#__PURE__*/_react["default"].createElement("img", {
542
+ src: _user["default"],
543
+ width: "20",
544
+ height: "20",
545
+ alt: ""
546
+ })))), /*#__PURE__*/_react["default"].createElement("div", {
515
547
  className: "luna-layout__navigation-padding ".concat(menuBarTheme ? "luna-layout__navigation-padding--".concat(menuBarTheme) : "")
516
548
  }, !disableMenus && /*#__PURE__*/_react["default"].createElement("div", {
517
549
  className: "ter-navbar__wrapper \n ".concat(menuBarTheme ? "ter-navbar__wrapper--".concat(menuBarTheme) : "", "\n ").concat(displayIcons ? "ter-navbar__wrapper--with-icons" : "", "\n ").concat(displayIcons && menuBarTheme ? "ter-navbar__wrapper--with-icons--".concat(menuBarTheme) : "", "\n ")
@@ -535,7 +567,8 @@ var NavBar = function NavBar(props) {
535
567
  isAuthenticated: isAuthenticated,
536
568
  userProfile: userProfile,
537
569
  logout: logout,
538
- authLabels: authLabels
570
+ authLabels: authLabels,
571
+ waffleMenu: waffleMenu
539
572
  }), subNavDisplay ? /*#__PURE__*/_react["default"].createElement(SubNav, {
540
573
  Link: Link,
541
574
  breadcrumbs: subNavData === null || subNavData === void 0 ? void 0 : subNavData.breadcrumbs,
@@ -546,7 +579,10 @@ var NavBar = function NavBar(props) {
546
579
  }, /*#__PURE__*/_react["default"].createElement("div", {
547
580
  className: "ter-navbar__flyout-btn",
548
581
  onClick: function onClick() {
549
- return handleSectorFlyoutDeployed();
582
+ closeAllDropDowns();
583
+ handleLanguageSelectorDeployed(false);
584
+ setDesktopSearchDeployed(false);
585
+ handleSectorFlyoutDeployed();
550
586
  }
551
587
  }, /*#__PURE__*/_react["default"].createElement("div", {
552
588
  className: "ter-navbar__flyout-caret"
@@ -570,6 +570,20 @@
570
570
  right: 16px;
571
571
  }
572
572
  }
573
+
574
+ &__my-account {
575
+ display: flex;
576
+ @media screen and (max-width: $breakpoint-sm) {
577
+ display: none;
578
+ }
579
+ align-items: center;
580
+ margin: 0 25px;
581
+ padding: 7px 4px 7px 4px;
582
+ border-bottom: 3px solid transparent;
583
+ &:hover {
584
+ border-bottom: 3px solid $trimble-gold;
585
+ }
586
+ }
573
587
  }
574
588
 
575
589
  @media screen and (-ms-high-contrast: active),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luna-one",
3
- "version": "3.1.508",
3
+ "version": "3.1.510",
4
4
  "peerDependencies": {
5
5
  "react": "^17.0.2",
6
6
  "react-dom": "^17.0.2",
@@ -51,7 +51,7 @@
51
51
  "react-scroll": "^1.8.7",
52
52
  "react-slidedown": "^2.4.7",
53
53
  "smoothscroll-polyfill": "^0.4.4",
54
- "terra-one": "^3.0.170"
54
+ "terra-one": "^3.0.171"
55
55
  },
56
56
  "scripts": {
57
57
  "start": "start-storybook -p 9009 -s public",