@nauedu/frontend-component-header 20.0.0 → 20.1.0

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 (195) hide show
  1. package/dist/DesktopHeader.js +242 -0
  2. package/dist/DesktopHeader.js.map +1 -0
  3. package/dist/Header.js +9 -13
  4. package/dist/Header.js.map +1 -1
  5. package/dist/Header.test.jsx +0 -3
  6. package/dist/Icons.js +1 -1
  7. package/dist/LanguageSelector/data/api.js +5 -13
  8. package/dist/LanguageSelector/data/api.js.map +1 -1
  9. package/dist/LanguageSelector/index.js +4 -12
  10. package/dist/LanguageSelector/index.js.map +1 -1
  11. package/dist/Logo.js +23 -10
  12. package/dist/Logo.js.map +1 -1
  13. package/dist/Menu/Menu.js +11 -11
  14. package/dist/Menu/Menu.js.map +1 -1
  15. package/dist/Menu/menu.scss +6 -6
  16. package/dist/MobileHeader.js +244 -0
  17. package/dist/MobileHeader.js.map +1 -0
  18. package/dist/__snapshots__/Header.test.jsx.snap +0 -2
  19. package/dist/index.scss +15 -27
  20. package/dist/learning-header/AnonymousUserMenu.js +8 -11
  21. package/dist/learning-header/AnonymousUserMenu.js.map +1 -1
  22. package/dist/learning-header/AuthenticatedUserDropdown.js +24 -32
  23. package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -1
  24. package/dist/learning-header/LearningHeader.js +14 -15
  25. package/dist/learning-header/LearningHeader.js.map +1 -1
  26. package/dist/learning-header/data/api.js +4 -12
  27. package/dist/learning-header/data/api.js.map +1 -1
  28. package/dist/learning-header/data/api.test.js +95 -92
  29. package/dist/learning-header/data/api.test.js.map +1 -1
  30. package/dist/learning-header/messages.js +0 -5
  31. package/dist/learning-header/messages.js.map +1 -1
  32. package/dist/setupTest.js +2 -0
  33. package/dist/studio-header/BrandNav.js +21 -0
  34. package/dist/studio-header/BrandNav.js.map +1 -0
  35. package/dist/studio-header/CourseLockUp.js +45 -0
  36. package/dist/studio-header/CourseLockUp.js.map +1 -0
  37. package/dist/studio-header/HeaderBody.js +131 -0
  38. package/dist/studio-header/HeaderBody.js.map +1 -0
  39. package/dist/studio-header/MobileHeader.js +79 -0
  40. package/dist/studio-header/MobileHeader.js.map +1 -0
  41. package/dist/studio-header/MobileMenu.js +45 -0
  42. package/dist/studio-header/MobileMenu.js.map +1 -0
  43. package/dist/studio-header/NavDropdownMenu.js +30 -0
  44. package/dist/studio-header/NavDropdownMenu.js.map +1 -0
  45. package/dist/studio-header/StudioHeader.js +72 -0
  46. package/dist/studio-header/StudioHeader.js.map +1 -0
  47. package/dist/studio-header/StudioHeader.scss +10 -8
  48. package/dist/studio-header/UserMenu.js +55 -0
  49. package/dist/studio-header/UserMenu.js.map +1 -0
  50. package/dist/studio-header/{index.ts → index.js} +1 -1
  51. package/dist/studio-header/index.js.map +1 -0
  52. package/dist/studio-header/{messages.ts → messages.js} +14 -15
  53. package/dist/studio-header/messages.js.map +1 -0
  54. package/dist/studio-header/utils.js +29 -0
  55. package/dist/studio-header/utils.js.map +1 -0
  56. package/dist/test-utils.js +4 -12
  57. package/dist/test-utils.js.map +1 -1
  58. package/package.json +1 -1
  59. package/dist/desktop-header/DesktopHeader.js +0 -172
  60. package/dist/desktop-header/DesktopHeader.js.map +0 -1
  61. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js +0 -51
  62. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js.map +0 -1
  63. package/dist/desktop-header/DesktopHeaderUserMenu.js +0 -49
  64. package/dist/desktop-header/DesktopHeaderUserMenu.js.map +0 -1
  65. package/dist/desktop-header/DesktopLoggedOutItems.js +0 -22
  66. package/dist/desktop-header/DesktopLoggedOutItems.js.map +0 -1
  67. package/dist/desktop-header/DesktopUserMenuToggle.js +0 -25
  68. package/dist/desktop-header/DesktopUserMenuToggle.js.map +0 -1
  69. package/dist/frontend-platform.d.ts +0 -41
  70. package/dist/learning-header/LearningHeaderCourseInfo.js +0 -24
  71. package/dist/learning-header/LearningHeaderCourseInfo.js.map +0 -1
  72. package/dist/learning-header/LearningHeaderHelpLink.js +0 -13
  73. package/dist/learning-header/LearningHeaderHelpLink.js.map +0 -1
  74. package/dist/learning-header/LearningHeaderUserMenuItems.js +0 -20
  75. package/dist/learning-header/LearningHeaderUserMenuItems.js.map +0 -1
  76. package/dist/learning-header/LearningLoggedOutButtons.js +0 -24
  77. package/dist/learning-header/LearningLoggedOutButtons.js.map +0 -1
  78. package/dist/learning-header/LearningUserMenuToggle.js +0 -26
  79. package/dist/learning-header/LearningUserMenuToggle.js.map +0 -1
  80. package/dist/mobile-header/MobileHeader.js +0 -197
  81. package/dist/mobile-header/MobileHeader.js.map +0 -1
  82. package/dist/mobile-header/MobileHeaderMainMenu.js +0 -46
  83. package/dist/mobile-header/MobileHeaderMainMenu.js.map +0 -1
  84. package/dist/mobile-header/MobileHeaderUserMenu.js +0 -38
  85. package/dist/mobile-header/MobileHeaderUserMenu.js.map +0 -1
  86. package/dist/mobile-header/MobileLoggedOutItems.js +0 -27
  87. package/dist/mobile-header/MobileLoggedOutItems.js.map +0 -1
  88. package/dist/mobile-header/MobileUserMenuToggle.js +0 -19
  89. package/dist/mobile-header/MobileUserMenuToggle.js.map +0 -1
  90. package/dist/plugin-slots/CourseInfoSlot/README.md +0 -128
  91. package/dist/plugin-slots/CourseInfoSlot/images/add_custom_components_before_and_after_course_info.png +0 -0
  92. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_info_with_custom_component.png +0 -0
  93. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_title.png +0 -0
  94. package/dist/plugin-slots/CourseInfoSlot/index.js +0 -32
  95. package/dist/plugin-slots/CourseInfoSlot/index.js.map +0 -1
  96. package/dist/plugin-slots/DesktopHeaderSlot/README.md +0 -44
  97. package/dist/plugin-slots/DesktopHeaderSlot/images/desktop_header_custom_component.png +0 -0
  98. package/dist/plugin-slots/DesktopHeaderSlot/index.js +0 -16
  99. package/dist/plugin-slots/DesktopHeaderSlot/index.js.map +0 -1
  100. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/README.md +0 -137
  101. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_component.png +0 -0
  102. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_components_before_after.png +0 -0
  103. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_modify_items.png +0 -0
  104. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js +0 -20
  105. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js.map +0 -1
  106. package/dist/plugin-slots/DesktopMainMenuSlot/README.md +0 -137
  107. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_component.png +0 -0
  108. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_components_before_after.png +0 -0
  109. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_modify_items.png +0 -0
  110. package/dist/plugin-slots/DesktopMainMenuSlot/index.js +0 -20
  111. package/dist/plugin-slots/DesktopMainMenuSlot/index.js.map +0 -1
  112. package/dist/plugin-slots/DesktopSecondaryMenuSlot/README.md +0 -132
  113. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_component.png +0 -0
  114. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_components_before_after.png +0 -0
  115. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_modify_items.png +0 -0
  116. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js +0 -20
  117. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js.map +0 -1
  118. package/dist/plugin-slots/DesktopUserMenuSlot/README.md +0 -144
  119. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_component.png +0 -0
  120. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_components_before_after.png +0 -0
  121. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_modify_items.png +0 -0
  122. package/dist/plugin-slots/DesktopUserMenuSlot/index.js +0 -20
  123. package/dist/plugin-slots/DesktopUserMenuSlot/index.js.map +0 -1
  124. package/dist/plugin-slots/DesktopUserMenuToggleSlot/README.md +0 -74
  125. package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_custom_component.png +0 -0
  126. package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_modified_toggle.png +0 -0
  127. package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js +0 -19
  128. package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js.map +0 -1
  129. package/dist/plugin-slots/LearningHelpSlot/README.md +0 -44
  130. package/dist/plugin-slots/LearningHelpSlot/images/learning_help_custom_component.png +0 -0
  131. package/dist/plugin-slots/LearningHelpSlot/index.js +0 -11
  132. package/dist/plugin-slots/LearningHelpSlot/index.js.map +0 -1
  133. package/dist/plugin-slots/LearningLoggedOutItemsSlot/README.md +0 -135
  134. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_component.png +0 -0
  135. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_components_before_after.png +0 -0
  136. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_modified_items.png +0 -0
  137. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js +0 -18
  138. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js.map +0 -1
  139. package/dist/plugin-slots/LearningUserMenuSlot/README.md +0 -133
  140. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_component.png +0 -0
  141. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_components_before_after.png +0 -0
  142. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_modified_items.png +0 -0
  143. package/dist/plugin-slots/LearningUserMenuSlot/index.js +0 -18
  144. package/dist/plugin-slots/LearningUserMenuSlot/index.js.map +0 -1
  145. package/dist/plugin-slots/LearningUserMenuToggleSlot/README.md +0 -74
  146. package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_custom_component.png +0 -0
  147. package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_modified_items.png +0 -0
  148. package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js +0 -19
  149. package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js.map +0 -1
  150. package/dist/plugin-slots/LogoSlot/README.md +0 -72
  151. package/dist/plugin-slots/LogoSlot/index.js +0 -27
  152. package/dist/plugin-slots/LogoSlot/index.js.map +0 -1
  153. package/dist/plugin-slots/MobileHeaderSlot/README.md +0 -44
  154. package/dist/plugin-slots/MobileHeaderSlot/images/mobile_header_custom_component.png +0 -0
  155. package/dist/plugin-slots/MobileHeaderSlot/index.js +0 -16
  156. package/dist/plugin-slots/MobileHeaderSlot/index.js.map +0 -1
  157. package/dist/plugin-slots/MobileLoggedOutItemsSlot/README.md +0 -136
  158. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_component.png +0 -0
  159. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_components_before_after.png +0 -0
  160. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_modify_items.png +0 -0
  161. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js +0 -20
  162. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js.map +0 -1
  163. package/dist/plugin-slots/MobileMainMenuSlot/README.md +0 -136
  164. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_component.png +0 -0
  165. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_components_before_after.png +0 -0
  166. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_modify_items.png +0 -0
  167. package/dist/plugin-slots/MobileMainMenuSlot/index.js +0 -20
  168. package/dist/plugin-slots/MobileMainMenuSlot/index.js.map +0 -1
  169. package/dist/plugin-slots/MobileUserMenuSlot/README.md +0 -144
  170. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_component.png +0 -0
  171. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_components_before_after.png +0 -0
  172. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_modify_items.png +0 -0
  173. package/dist/plugin-slots/MobileUserMenuSlot/index.js +0 -20
  174. package/dist/plugin-slots/MobileUserMenuSlot/index.js.map +0 -1
  175. package/dist/plugin-slots/MobileUserMenuToggleSlot/README.md +0 -74
  176. package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_custom_component.png +0 -0
  177. package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_modified_items.png +0 -0
  178. package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js +0 -19
  179. package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js.map +0 -1
  180. package/dist/plugin-slots/README.md +0 -26
  181. package/dist/studio-header/BrandNav.test.tsx +0 -40
  182. package/dist/studio-header/BrandNav.tsx +0 -25
  183. package/dist/studio-header/CourseLockUp.test.tsx +0 -59
  184. package/dist/studio-header/CourseLockUp.tsx +0 -56
  185. package/dist/studio-header/HeaderBody.test.tsx +0 -102
  186. package/dist/studio-header/HeaderBody.tsx +0 -196
  187. package/dist/studio-header/MobileHeader.tsx +0 -74
  188. package/dist/studio-header/MobileMenu.test.tsx +0 -81
  189. package/dist/studio-header/MobileMenu.tsx +0 -50
  190. package/dist/studio-header/NavDropdownMenu.test.tsx +0 -67
  191. package/dist/studio-header/NavDropdownMenu.tsx +0 -42
  192. package/dist/studio-header/StudioHeader.test.tsx +0 -220
  193. package/dist/studio-header/StudioHeader.tsx +0 -84
  194. package/dist/studio-header/UserMenu.tsx +0 -69
  195. package/dist/studio-header/utils.ts +0 -37
@@ -0,0 +1,244 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
5
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
9
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
10
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
11
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+ import React from 'react';
16
+ import PropTypes from 'prop-types';
17
+ import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
18
+ import { getConfig } from '@edx/frontend-platform';
19
+
20
+ // Local Components
21
+ import { Menu, MenuTrigger, MenuContent } from './Menu';
22
+ import Avatar from './Avatar';
23
+ import { LinkedLogo, Logo } from './Logo';
24
+
25
+ // i18n
26
+ import messages from './Header.messages';
27
+
28
+ // Assets
29
+ import { MenuIcon } from './Icons';
30
+ var MobileHeader = /*#__PURE__*/function (_React$Component) {
31
+ function MobileHeader(props) {
32
+ _classCallCheck(this, MobileHeader);
33
+ // eslint-disable-line no-useless-constructor
34
+ return _callSuper(this, MobileHeader, [props]);
35
+ }
36
+ _inherits(MobileHeader, _React$Component);
37
+ return _createClass(MobileHeader, [{
38
+ key: "renderMenu",
39
+ value: function renderMenu(menu) {
40
+ // Nodes are accepted as a prop
41
+ if (!Array.isArray(menu)) {
42
+ return menu;
43
+ }
44
+ return menu.map(function (menuItem) {
45
+ var type = menuItem.type,
46
+ href = menuItem.href,
47
+ content = menuItem.content,
48
+ submenuContent = menuItem.submenuContent,
49
+ disabled = menuItem.disabled,
50
+ isActive = menuItem.isActive;
51
+ if (type === 'item') {
52
+ return /*#__PURE__*/React.createElement("a", {
53
+ key: "".concat(type, "-").concat(content),
54
+ className: "nav-link".concat(disabled ? ' disabled' : '').concat(isActive ? ' active' : ''),
55
+ href: href
56
+ }, content);
57
+ }
58
+ return /*#__PURE__*/React.createElement(Menu, {
59
+ key: "".concat(type, "-").concat(content),
60
+ tag: "div",
61
+ className: "nav-item"
62
+ }, /*#__PURE__*/React.createElement(MenuTrigger, {
63
+ tag: "a",
64
+ role: "button",
65
+ tabIndex: "0",
66
+ className: "nav-link"
67
+ }, content), /*#__PURE__*/React.createElement(MenuContent, {
68
+ className: "position-static pin-left pin-right py-2"
69
+ }, submenuContent));
70
+ });
71
+ }
72
+ }, {
73
+ key: "renderMainMenu",
74
+ value: function renderMainMenu() {
75
+ var mainMenu = this.props.mainMenu;
76
+ return this.renderMenu(mainMenu);
77
+ }
78
+ }, {
79
+ key: "renderSecondaryMenu",
80
+ value: function renderSecondaryMenu() {
81
+ var secondaryMenu = this.props.secondaryMenu;
82
+ return this.renderMenu(secondaryMenu);
83
+ }
84
+ }, {
85
+ key: "renderUserMenuItems",
86
+ value: function renderUserMenuItems() {
87
+ var userMenu = this.props.userMenu;
88
+ return userMenu.map(function (group) {
89
+ return group.items.map(function (_ref) {
90
+ var type = _ref.type,
91
+ content = _ref.content,
92
+ href = _ref.href,
93
+ disabled = _ref.disabled,
94
+ isActive = _ref.isActive;
95
+ return /*#__PURE__*/React.createElement("li", {
96
+ className: "nav-item",
97
+ key: "".concat(type, "-").concat(content)
98
+ }, /*#__PURE__*/React.createElement("a", {
99
+ className: "nav-link".concat(isActive ? ' active' : '').concat(disabled ? ' disabled' : ''),
100
+ href: href
101
+ }, content));
102
+ });
103
+ });
104
+ }
105
+ }, {
106
+ key: "renderLoggedOutItems",
107
+ value: function renderLoggedOutItems() {
108
+ var loggedOutItems = this.props.loggedOutItems;
109
+ return loggedOutItems.map(function (_ref2, i, arr) {
110
+ var type = _ref2.type,
111
+ href = _ref2.href,
112
+ content = _ref2.content;
113
+ return /*#__PURE__*/React.createElement("li", {
114
+ className: "nav-item px-3 my-2",
115
+ key: "".concat(type, "-").concat(content)
116
+ }, /*#__PURE__*/React.createElement("a", {
117
+ className: i < arr.length - 1 ? 'btn btn-block btn-outline-primary' : 'btn btn-block btn-primary',
118
+ href: href
119
+ }, content));
120
+ });
121
+ }
122
+ }, {
123
+ key: "render",
124
+ value: function render() {
125
+ var _this$props = this.props,
126
+ logo = _this$props.logo,
127
+ logoAltText = _this$props.logoAltText,
128
+ logoDestination = _this$props.logoDestination,
129
+ loggedIn = _this$props.loggedIn,
130
+ avatar = _this$props.avatar,
131
+ username = _this$props.username,
132
+ stickyOnMobile = _this$props.stickyOnMobile,
133
+ intl = _this$props.intl,
134
+ mainMenu = _this$props.mainMenu,
135
+ userMenu = _this$props.userMenu,
136
+ loggedOutItems = _this$props.loggedOutItems;
137
+ var logoProps = {
138
+ src: logo,
139
+ alt: logoAltText,
140
+ href: logoDestination
141
+ };
142
+ var stickyClassName = stickyOnMobile ? 'sticky-top' : '';
143
+ var logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'justify-content-left pl-3' : 'justify-content-center';
144
+ return /*#__PURE__*/React.createElement("header", {
145
+ "aria-label": intl.formatMessage(messages['header.label.main.header']),
146
+ className: "site-header-mobile d-flex justify-content-between align-items-center shadow ".concat(stickyClassName)
147
+ }, /*#__PURE__*/React.createElement("a", {
148
+ className: "nav-skip sr-only sr-only-focusable",
149
+ href: "#main"
150
+ }, intl.formatMessage(messages['header.label.skip.nav'])), mainMenu.length > 0 ? /*#__PURE__*/React.createElement("div", {
151
+ className: "w-100 d-flex justify-content-start"
152
+ }, /*#__PURE__*/React.createElement(Menu, {
153
+ className: "position-static"
154
+ }, /*#__PURE__*/React.createElement(MenuTrigger, {
155
+ tag: "button",
156
+ className: "icon-button",
157
+ "aria-label": intl.formatMessage(messages['header.label.main.menu']),
158
+ title: intl.formatMessage(messages['header.label.main.menu'])
159
+ }, /*#__PURE__*/React.createElement(MenuIcon, {
160
+ role: "img",
161
+ "aria-hidden": true,
162
+ focusable: "false",
163
+ style: {
164
+ width: '1.5rem',
165
+ height: '1.5rem'
166
+ }
167
+ })), /*#__PURE__*/React.createElement(MenuContent, {
168
+ tag: "nav",
169
+ "aria-label": intl.formatMessage(messages['header.label.main.nav']),
170
+ className: "nav flex-column pin-left pin-right border-top shadow py-2"
171
+ }, this.renderMainMenu(), this.renderSecondaryMenu()))) : null, /*#__PURE__*/React.createElement("div", {
172
+ className: "w-100 d-flex ".concat(logoClasses)
173
+ }, logoDestination === null ? /*#__PURE__*/React.createElement(Logo, {
174
+ className: "logo",
175
+ src: logo,
176
+ alt: logoAltText
177
+ }) : /*#__PURE__*/React.createElement(LinkedLogo, _extends({
178
+ className: "logo"
179
+ }, logoProps, {
180
+ itemType: "http://schema.org/Organization"
181
+ }))), userMenu.length > 0 || loggedOutItems.length > 0 ? /*#__PURE__*/React.createElement("div", {
182
+ className: "w-100 d-flex justify-content-end align-items-center"
183
+ }, /*#__PURE__*/React.createElement(Menu, {
184
+ tag: "nav",
185
+ "aria-label": intl.formatMessage(messages['header.label.secondary.nav']),
186
+ className: "position-static"
187
+ }, /*#__PURE__*/React.createElement(MenuTrigger, {
188
+ tag: "button",
189
+ className: "icon-button",
190
+ "aria-label": intl.formatMessage(messages['header.label.account.menu']),
191
+ title: intl.formatMessage(messages['header.label.account.menu'])
192
+ }, /*#__PURE__*/React.createElement(Avatar, {
193
+ size: "1.5rem",
194
+ src: avatar,
195
+ alt: username
196
+ })), /*#__PURE__*/React.createElement(MenuContent, {
197
+ tag: "ul",
198
+ className: "nav flex-column pin-left pin-right border-top shadow py-2"
199
+ }, loggedIn ? this.renderUserMenuItems() : this.renderLoggedOutItems()))) : null);
200
+ }
201
+ }]);
202
+ }(React.Component);
203
+ MobileHeader.propTypes = {
204
+ mainMenu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
205
+ secondaryMenu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
206
+ userMenu: PropTypes.arrayOf(PropTypes.shape({
207
+ heading: PropTypes.string,
208
+ items: PropTypes.arrayOf(PropTypes.shape({
209
+ type: PropTypes.oneOf(['item', 'menu']),
210
+ href: PropTypes.string,
211
+ content: PropTypes.string,
212
+ isActive: PropTypes.bool
213
+ }))
214
+ })),
215
+ loggedOutItems: PropTypes.arrayOf(PropTypes.shape({
216
+ type: PropTypes.oneOf(['item', 'menu']),
217
+ href: PropTypes.string,
218
+ content: PropTypes.string
219
+ })),
220
+ logo: PropTypes.string,
221
+ logoAltText: PropTypes.string,
222
+ logoDestination: PropTypes.string,
223
+ avatar: PropTypes.string,
224
+ username: PropTypes.string,
225
+ loggedIn: PropTypes.bool,
226
+ stickyOnMobile: PropTypes.bool,
227
+ // i18n
228
+ intl: intlShape.isRequired
229
+ };
230
+ MobileHeader.defaultProps = {
231
+ mainMenu: [],
232
+ secondaryMenu: [],
233
+ userMenu: [],
234
+ loggedOutItems: [],
235
+ logo: null,
236
+ logoAltText: null,
237
+ logoDestination: null,
238
+ avatar: null,
239
+ username: null,
240
+ loggedIn: false,
241
+ stickyOnMobile: true
242
+ };
243
+ export default injectIntl(MobileHeader);
244
+ //# sourceMappingURL=MobileHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileHeader.js","names":["React","PropTypes","injectIntl","intlShape","getConfig","Menu","MenuTrigger","MenuContent","Avatar","LinkedLogo","Logo","messages","MenuIcon","MobileHeader","_React$Component","props","_classCallCheck","_callSuper","_inherits","_createClass","key","value","renderMenu","menu","Array","isArray","map","menuItem","type","href","content","submenuContent","disabled","isActive","createElement","concat","className","tag","role","tabIndex","renderMainMenu","mainMenu","renderSecondaryMenu","secondaryMenu","renderUserMenuItems","userMenu","group","items","_ref","renderLoggedOutItems","loggedOutItems","_ref2","i","arr","length","render","_this$props","logo","logoAltText","logoDestination","loggedIn","avatar","username","stickyOnMobile","intl","logoProps","src","alt","stickyClassName","logoClasses","AUTHN_MINIMAL_HEADER","formatMessage","title","focusable","style","width","height","_extends","itemType","size","Component","propTypes","oneOfType","node","array","arrayOf","shape","heading","string","oneOf","bool","isRequired","defaultProps"],"sources":["../src/MobileHeader.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\n// Local Components\nimport { Menu, MenuTrigger, MenuContent } from './Menu';\nimport Avatar from './Avatar';\nimport { LinkedLogo, Logo } from './Logo';\n\n// i18n\nimport messages from './Header.messages';\n\n// Assets\nimport { MenuIcon } from './Icons';\n\nclass MobileHeader extends React.Component {\n constructor(props) { // eslint-disable-line no-useless-constructor\n super(props);\n }\n\n renderMenu(menu) {\n // Nodes are accepted as a prop\n if (!Array.isArray(menu)) {\n return menu;\n }\n\n return menu.map((menuItem) => {\n const {\n type,\n href,\n content,\n submenuContent,\n disabled,\n isActive,\n } = menuItem;\n\n if (type === 'item') {\n return (\n <a\n key={`${type}-${content}`}\n className={`nav-link${disabled ? ' disabled' : ''}${isActive ? ' active' : ''}`}\n href={href}\n >\n {content}\n </a>\n );\n }\n\n return (\n <Menu key={`${type}-${content}`} tag=\"div\" className=\"nav-item\">\n <MenuTrigger tag=\"a\" role=\"button\" tabIndex=\"0\" className=\"nav-link\">\n {content}\n </MenuTrigger>\n <MenuContent className=\"position-static pin-left pin-right py-2\">\n {submenuContent}\n </MenuContent>\n </Menu>\n );\n });\n }\n\n renderMainMenu() {\n const { mainMenu } = this.props;\n return this.renderMenu(mainMenu);\n }\n\n renderSecondaryMenu() {\n const { secondaryMenu } = this.props;\n return this.renderMenu(secondaryMenu);\n }\n\n renderUserMenuItems() {\n const { userMenu } = this.props;\n\n return userMenu.map((group) => (\n group.items.map(({\n type, content, href, disabled, isActive,\n }) => (\n <li className=\"nav-item\" key={`${type}-${content}`}>\n <a\n className={`nav-link${isActive ? ' active' : ''}${disabled ? ' disabled' : ''}`}\n href={href}\n >\n {content}\n </a>\n </li>\n ))\n ));\n }\n\n renderLoggedOutItems() {\n const { loggedOutItems } = this.props;\n\n return loggedOutItems.map(({ type, href, content }, i, arr) => (\n <li className=\"nav-item px-3 my-2\" key={`${type}-${content}`}>\n <a\n className={i < arr.length - 1 ? 'btn btn-block btn-outline-primary' : 'btn btn-block btn-primary'}\n href={href}\n >\n {content}\n </a>\n </li>\n ));\n }\n\n render() {\n const {\n logo,\n logoAltText,\n logoDestination,\n loggedIn,\n avatar,\n username,\n stickyOnMobile,\n intl,\n mainMenu,\n userMenu,\n loggedOutItems,\n } = this.props;\n const logoProps = { src: logo, alt: logoAltText, href: logoDestination };\n const stickyClassName = stickyOnMobile ? 'sticky-top' : '';\n const logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'justify-content-left pl-3' : 'justify-content-center';\n\n return (\n <header\n aria-label={intl.formatMessage(messages['header.label.main.header'])}\n className={`site-header-mobile d-flex justify-content-between align-items-center shadow ${stickyClassName}`}\n >\n <a className=\"nav-skip sr-only sr-only-focusable\" href=\"#main\">{intl.formatMessage(messages['header.label.skip.nav'])}</a>\n {mainMenu.length > 0 ? (\n <div className=\"w-100 d-flex justify-content-start\">\n\n <Menu className=\"position-static\">\n <MenuTrigger\n tag=\"button\"\n className=\"icon-button\"\n aria-label={intl.formatMessage(messages['header.label.main.menu'])}\n title={intl.formatMessage(messages['header.label.main.menu'])}\n >\n <MenuIcon role=\"img\" aria-hidden focusable=\"false\" style={{ width: '1.5rem', height: '1.5rem' }} />\n </MenuTrigger>\n <MenuContent\n tag=\"nav\"\n aria-label={intl.formatMessage(messages['header.label.main.nav'])}\n className=\"nav flex-column pin-left pin-right border-top shadow py-2\"\n >\n {this.renderMainMenu()}\n {this.renderSecondaryMenu()}\n </MenuContent>\n </Menu>\n </div>\n ) : null}\n <div className={`w-100 d-flex ${logoClasses}`}>\n { logoDestination === null ? <Logo className=\"logo\" src={logo} alt={logoAltText} /> : <LinkedLogo className=\"logo\" {...logoProps} itemType=\"http://schema.org/Organization\" />}\n </div>\n {userMenu.length > 0 || loggedOutItems.length > 0 ? (\n <div className=\"w-100 d-flex justify-content-end align-items-center\">\n <Menu tag=\"nav\" aria-label={intl.formatMessage(messages['header.label.secondary.nav'])} className=\"position-static\">\n <MenuTrigger\n tag=\"button\"\n className=\"icon-button\"\n aria-label={intl.formatMessage(messages['header.label.account.menu'])}\n title={intl.formatMessage(messages['header.label.account.menu'])}\n >\n <Avatar size=\"1.5rem\" src={avatar} alt={username} />\n </MenuTrigger>\n <MenuContent tag=\"ul\" className=\"nav flex-column pin-left pin-right border-top shadow py-2\">\n {loggedIn ? this.renderUserMenuItems() : this.renderLoggedOutItems()}\n </MenuContent>\n </Menu>\n </div>\n ) : null}\n </header>\n );\n }\n}\n\nMobileHeader.propTypes = {\n mainMenu: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.array,\n ]),\n secondaryMenu: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.array,\n ]),\n userMenu: PropTypes.arrayOf(PropTypes.shape({\n heading: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\n isActive: PropTypes.bool,\n })),\n })),\n loggedOutItems: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\n })),\n logo: PropTypes.string,\n logoAltText: PropTypes.string,\n logoDestination: PropTypes.string,\n avatar: PropTypes.string,\n username: PropTypes.string,\n loggedIn: PropTypes.bool,\n stickyOnMobile: PropTypes.bool,\n\n // i18n\n intl: intlShape.isRequired,\n};\n\nMobileHeader.defaultProps = {\n mainMenu: [],\n secondaryMenu: [],\n userMenu: [],\n loggedOutItems: [],\n logo: null,\n logoAltText: null,\n logoDestination: null,\n avatar: null,\n username: null,\n loggedIn: false,\n stickyOnMobile: true,\n\n};\n\nexport default injectIntl(MobileHeader);\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,6 @@ exports[`<Header /> renders correctly for anonymous desktop 1`] = `
33
33
  <a
34
34
  className="nav-link"
35
35
  href="http://localhost:18000/dashboard"
36
- onClick={null}
37
36
  >
38
37
  Courses
39
38
  </a>
@@ -230,7 +229,6 @@ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
230
229
  <a
231
230
  className="nav-link"
232
231
  href="http://localhost:18000/dashboard"
233
- onClick={null}
234
232
  >
235
233
  Courses
236
234
  </a>
package/dist/index.scss CHANGED
@@ -1,9 +1,6 @@
1
1
  $spacer: 1rem;
2
2
  $blue: #007db8;
3
3
  $white: #fff;
4
- $component-active-bg: #0A3055FF !default;
5
- $component-active-color: $white !default;
6
- $rounded-pill: 50rem !default;
7
4
 
8
5
  @import './Menu/menu.scss';
9
6
  @import './studio-header/StudioHeader.scss';
@@ -24,9 +21,8 @@ $rounded-pill: 50rem !default;
24
21
  padding: .75rem;
25
22
  justify-content: center;
26
23
  align-items:center;
27
-
28
24
  &:hover, &:focus {
29
- background: rgba(0, 0, 0, .1);
25
+ background: rgba(0,0,0,.1);
30
26
  }
31
27
  }
32
28
 
@@ -40,7 +36,7 @@ $rounded-pill: 50rem !default;
40
36
  white-space: nowrap;
41
37
  overflow: hidden;
42
38
  text-overflow: ellipsis;
43
- padding-bottom: calc(var(--pgn-spacing-spacer-base, $spacer)* 0.1);
39
+ padding-bottom: 0.1rem;
44
40
  }
45
41
  }
46
42
 
@@ -67,7 +63,6 @@ $rounded-pill: 50rem !default;
67
63
  text-decoration: none;
68
64
  cursor: pointer;
69
65
  }
70
-
71
66
  img {
72
67
  height: 1.5rem;
73
68
  }
@@ -75,22 +70,19 @@ $rounded-pill: 50rem !default;
75
70
 
76
71
 
77
72
  .site-header-desktop {
78
- box-shadow: 0 1px 0 0 rgba(0, 0, 0, .1);
79
- background: var(--pgn-color-white, $white);
80
-
73
+ box-shadow: 0 1px 0 0 rgba(0,0,0,.1);
74
+ background: $white;
81
75
  .nav-link {
82
76
  text-decoration: none;
83
77
  }
84
-
85
78
  .logo {
86
79
  display: block;
87
80
  box-sizing: content-box;
88
81
  position: relative;
89
82
  top: -.05em;
90
83
  height: 1.75rem;
91
- padding: var(--pgn-spacing-spacer-base, $spacer) 0;
92
- margin-right: var(--pgn-spacing-spacer-base, $spacer);
93
-
84
+ padding: 1rem 0;
85
+ margin-right: 1rem;
94
86
  img {
95
87
  display: block;
96
88
  height: 100%;
@@ -101,42 +93,38 @@ $rounded-pill: 50rem !default;
101
93
  .nav-link:focus,
102
94
  .nav-link.active,
103
95
  .expanded .nav-link {
104
- background: var(--pgn-color-bg-active, $component-active-bg);
105
- color: var(--pgn-color-active, $component-active-color);
96
+ background: $component-active-bg;
97
+ color: $component-active-color;
106
98
  }
107
99
  }
108
100
  .main-nav {
109
101
  .nav-link {
110
- padding: 1.125rem var(--pgn-spacing-spacer-base, $spacer);
102
+ padding: 1.125rem 1rem;
111
103
  text-decoration: none;
112
104
  font-weight: 500;
113
105
  letter-spacing: .01em;
114
106
  }
115
-
116
107
  .nav-link:hover,
117
108
  .nav-link:focus,
118
109
  .nav-link.active,
119
110
  .expanded .nav-link {
120
- background: var(--pgn-color-bg-active, $component-active-bg);
121
- color: var(--pgn-color-active, $component-active-color);
111
+ background: $component-active-bg;
112
+ color: $component-active-color;
122
113
  }
123
-
124
114
  .menu {
125
115
  position: static;
126
-
127
116
  .menu-content {
128
- border-top: solid 2px var(--pgn-color-bg-active);
117
+ border-top: solid 2px $component-active-bg;
129
118
  left: 0;
130
119
  right: 0;
131
- box-shadow: var(--pgn-elevation-box-shadow-down-1, 0 1px 2px rgba(0,0,0,.25));
120
+ box-shadow: 0 1px 2px rgba(0,0,0,.25);
132
121
  border-bottom-left-radius: 2px;
133
122
  border-bottom-right-radius: 2px;
134
- padding: var(--pgn-spacing-spacer-base, $spacer);
123
+ padding: 1rem;
135
124
  }
136
125
  }
137
126
  }
138
-
139
127
  .search-input {
140
- border-radius: var(--pgn-size-rounded-pill, $rounded-pill);
128
+ border-radius: $rounded-pill;
141
129
  }
142
130
  }
@@ -2,21 +2,18 @@ import React from 'react';
2
2
  import { getConfig } from '@edx/frontend-platform';
3
3
  import { getLoginRedirectUrl } from '@edx/frontend-platform/auth';
4
4
  import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
5
- import LearningLoggedOutItemsSlot from '../plugin-slots/LearningLoggedOutItemsSlot';
5
+ import { Button } from '@openedx/paragon';
6
6
  import genericMessages from '../generic/messages';
7
7
  var AnonymousUserMenu = function AnonymousUserMenu(_ref) {
8
8
  var intl = _ref.intl;
9
- var buttonsInfo = [{
10
- message: intl.formatMessage(genericMessages.registerSentenceCase),
9
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
10
+ className: "mr-3",
11
+ variant: "outline-primary",
11
12
  href: "".concat(getConfig().LMS_BASE_URL, "/register?next=").concat(encodeURIComponent(global.location.href))
12
- }, {
13
- message: intl.formatMessage(genericMessages.signInSentenceCase),
14
- href: getLoginRedirectUrl(global.location.href),
15
- variant: 'primary'
16
- }];
17
- return /*#__PURE__*/React.createElement(LearningLoggedOutItemsSlot, {
18
- buttonsInfo: buttonsInfo
19
- });
13
+ }, intl.formatMessage(genericMessages.registerSentenceCase)), /*#__PURE__*/React.createElement(Button, {
14
+ variant: "primary",
15
+ href: "".concat(getLoginRedirectUrl(global.location.href))
16
+ }, intl.formatMessage(genericMessages.signInSentenceCase)));
20
17
  };
21
18
  AnonymousUserMenu.propTypes = {
22
19
  intl: intlShape.isRequired
@@ -1 +1 @@
1
- {"version":3,"file":"AnonymousUserMenu.js","names":["React","getConfig","getLoginRedirectUrl","injectIntl","intlShape","LearningLoggedOutItemsSlot","genericMessages","AnonymousUserMenu","_ref","intl","buttonsInfo","message","formatMessage","registerSentenceCase","href","concat","LMS_BASE_URL","encodeURIComponent","global","location","signInSentenceCase","variant","createElement","propTypes","isRequired"],"sources":["../../src/learning-header/AnonymousUserMenu.jsx"],"sourcesContent":["import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getLoginRedirectUrl } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport LearningLoggedOutItemsSlot from '../plugin-slots/LearningLoggedOutItemsSlot';\n\nimport genericMessages from '../generic/messages';\n\nconst AnonymousUserMenu = ({ intl }) => {\n const buttonsInfo = [\n {\n message: intl.formatMessage(genericMessages.registerSentenceCase),\n href: `${getConfig().LMS_BASE_URL}/register?next=${encodeURIComponent(global.location.href)}`,\n },\n {\n message: intl.formatMessage(genericMessages.signInSentenceCase),\n href: getLoginRedirectUrl(global.location.href),\n variant: 'primary',\n },\n ];\n\n return <LearningLoggedOutItemsSlot buttonsInfo={buttonsInfo} />;\n};\n\nAnonymousUserMenu.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(AnonymousUserMenu);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,OAAOC,0BAA0B,MAAM,4CAA4C;AAEnF,OAAOC,eAAe,MAAM,qBAAqB;AAEjD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAAiB;EAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAC/B,IAAMC,WAAW,GAAG,CAClB;IACEC,OAAO,EAAEF,IAAI,CAACG,aAAa,CAACN,eAAe,CAACO,oBAAoB,CAAC;IACjEC,IAAI,KAAAC,MAAA,CAAKd,SAAS,CAAC,CAAC,CAACe,YAAY,qBAAAD,MAAA,CAAkBE,kBAAkB,CAACC,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAC7F,CAAC,EACD;IACEH,OAAO,EAAEF,IAAI,CAACG,aAAa,CAACN,eAAe,CAACc,kBAAkB,CAAC;IAC/DN,IAAI,EAAEZ,mBAAmB,CAACgB,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;IAC/CO,OAAO,EAAE;EACX,CAAC,CACF;EAED,oBAAOrB,KAAA,CAAAsB,aAAA,CAACjB,0BAA0B;IAACK,WAAW,EAAEA;EAAY,CAAE,CAAC;AACjE,CAAC;AAEDH,iBAAiB,CAACgB,SAAS,GAAG;EAC5Bd,IAAI,EAAEL,SAAS,CAACoB;AAClB,CAAC;AAED,eAAerB,UAAU,CAACI,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"AnonymousUserMenu.js","names":["React","getConfig","getLoginRedirectUrl","injectIntl","intlShape","Button","genericMessages","AnonymousUserMenu","_ref","intl","createElement","className","variant","href","concat","LMS_BASE_URL","encodeURIComponent","global","location","formatMessage","registerSentenceCase","signInSentenceCase","propTypes","isRequired"],"sources":["../../src/learning-header/AnonymousUserMenu.jsx"],"sourcesContent":["import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getLoginRedirectUrl } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport genericMessages from '../generic/messages';\n\nconst AnonymousUserMenu = ({ intl }) => (\n <div>\n <Button\n className=\"mr-3\"\n variant=\"outline-primary\"\n href={`${getConfig().LMS_BASE_URL}/register?next=${encodeURIComponent(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.registerSentenceCase)}\n </Button>\n <Button\n variant=\"primary\"\n href={`${getLoginRedirectUrl(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.signInSentenceCase)}\n </Button>\n </div>\n);\n\nAnonymousUserMenu.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(AnonymousUserMenu);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAOC,eAAe,MAAM,qBAAqB;AAEjD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA;EAAA,IAAMC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAAA,oBAC/BT,KAAA,CAAAU,aAAA,2BACEV,KAAA,CAAAU,aAAA,CAACL,MAAM;IACLM,SAAS,EAAC,MAAM;IAChBC,OAAO,EAAC,iBAAiB;IACzBC,IAAI,KAAAC,MAAA,CAAKb,SAAS,CAAC,CAAC,CAACc,YAAY,qBAAAD,MAAA,CAAkBE,kBAAkB,CAACC,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAAG,GAE7FJ,IAAI,CAACU,aAAa,CAACb,eAAe,CAACc,oBAAoB,CAClD,CAAC,eACTpB,KAAA,CAAAU,aAAA,CAACL,MAAM;IACLO,OAAO,EAAC,SAAS;IACjBC,IAAI,KAAAC,MAAA,CAAKZ,mBAAmB,CAACe,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAAG,GAEpDJ,IAAI,CAACU,aAAa,CAACb,eAAe,CAACe,kBAAkB,CAChD,CACL,CAAC;AAAA,CACP;AAEDd,iBAAiB,CAACe,SAAS,GAAG;EAC5Bb,IAAI,EAAEL,SAAS,CAACmB;AAClB,CAAC;AAED,eAAepB,UAAU,CAACI,iBAAiB,CAAC","ignoreList":[]}
@@ -1,50 +1,42 @@
1
- function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
- function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
5
- function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
6
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
7
1
  import React from 'react';
8
2
  import PropTypes from 'prop-types';
3
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
4
  import { faUserCircle } from '@fortawesome/free-solid-svg-icons';
10
5
  import { getConfig } from '@edx/frontend-platform';
11
6
  import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
12
7
  import { Dropdown } from '@openedx/paragon';
13
- import LearningUserMenuToggleSlot from '../plugin-slots/LearningUserMenuToggleSlot';
14
- import LearningUserMenuSlot from '../plugin-slots/LearningUserMenuSlot';
15
8
  import messages from './messages';
16
9
  var AuthenticatedUserDropdown = function AuthenticatedUserDropdown(_ref) {
17
10
  var intl = _ref.intl,
18
11
  username = _ref.username;
19
- var dropdownItems = [{
20
- message: intl.formatMessage(messages.dashboard),
12
+ var dashboardMenuItem = /*#__PURE__*/React.createElement(Dropdown.Item, {
21
13
  href: "".concat(getConfig().LMS_BASE_URL, "/dashboard")
22
- }, {
23
- message: intl.formatMessage(messages.profile),
14
+ }, intl.formatMessage(messages.dashboard));
15
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("a", {
16
+ className: "text-gray-700",
17
+ href: "".concat(getConfig().SUPPORT_URL)
18
+ }, intl.formatMessage(messages.help)), /*#__PURE__*/React.createElement(Dropdown, {
19
+ className: "user-dropdown ml-3"
20
+ }, /*#__PURE__*/React.createElement(Dropdown.Toggle, {
21
+ variant: "outline-primary"
22
+ }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
23
+ icon: faUserCircle,
24
+ className: "d-md-none",
25
+ size: "lg"
26
+ }), /*#__PURE__*/React.createElement("span", {
27
+ "data-hj-suppress": true,
28
+ className: "d-none d-md-inline"
29
+ }, username)), /*#__PURE__*/React.createElement(Dropdown.Menu, {
30
+ className: "dropdown-menu-right"
31
+ }, dashboardMenuItem, /*#__PURE__*/React.createElement(Dropdown.Item, {
24
32
  href: "".concat(getConfig().ACCOUNT_PROFILE_URL, "/u/").concat(username)
25
- }, {
26
- message: intl.formatMessage(messages.account),
33
+ }, intl.formatMessage(messages.profile)), /*#__PURE__*/React.createElement(Dropdown.Item, {
27
34
  href: getConfig().ACCOUNT_SETTINGS_URL
28
- }].concat(_toConsumableArray(getConfig().ORDER_HISTORY_URL ? [{
29
- message: intl.formatMessage(messages.orderHistory),
35
+ }, intl.formatMessage(messages.account)), getConfig().ORDER_HISTORY_URL && /*#__PURE__*/React.createElement(Dropdown.Item, {
30
36
  href: getConfig().ORDER_HISTORY_URL
31
- }] : []), [{
32
- message: intl.formatMessage(messages.signOut),
37
+ }, intl.formatMessage(messages.orderHistory)), /*#__PURE__*/React.createElement(Dropdown.Item, {
33
38
  href: getConfig().LOGOUT_URL
34
- }]);
35
- return /*#__PURE__*/React.createElement(Dropdown, {
36
- className: "user-dropdown ml-3"
37
- }, /*#__PURE__*/React.createElement(Dropdown.Toggle, {
38
- variant: "outline-primary",
39
- "aria-label": intl.formatMessage(messages.userOptionsDropdownLabel)
40
- }, /*#__PURE__*/React.createElement(LearningUserMenuToggleSlot, {
41
- label: username,
42
- icon: faUserCircle
43
- })), /*#__PURE__*/React.createElement(Dropdown.Menu, {
44
- className: "dropdown-menu-right"
45
- }, /*#__PURE__*/React.createElement(LearningUserMenuSlot, {
46
- items: dropdownItems
47
- })));
39
+ }, intl.formatMessage(messages.signOut)))));
48
40
  };
49
41
  AuthenticatedUserDropdown.propTypes = {
50
42
  intl: intlShape.isRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticatedUserDropdown.js","names":["React","PropTypes","faUserCircle","getConfig","injectIntl","intlShape","Dropdown","LearningUserMenuToggleSlot","LearningUserMenuSlot","messages","AuthenticatedUserDropdown","_ref","intl","username","dropdownItems","message","formatMessage","dashboard","href","concat","LMS_BASE_URL","profile","ACCOUNT_PROFILE_URL","account","ACCOUNT_SETTINGS_URL","_toConsumableArray","ORDER_HISTORY_URL","orderHistory","signOut","LOGOUT_URL","createElement","className","Toggle","variant","userOptionsDropdownLabel","label","icon","Menu","items","propTypes","isRequired","string"],"sources":["../../src/learning-header/AuthenticatedUserDropdown.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { faUserCircle } from '@fortawesome/free-solid-svg-icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@openedx/paragon';\n\nimport LearningUserMenuToggleSlot from '../plugin-slots/LearningUserMenuToggleSlot';\nimport LearningUserMenuSlot from '../plugin-slots/LearningUserMenuSlot';\n\nimport messages from './messages';\n\nconst AuthenticatedUserDropdown = ({ intl, username }) => {\n const dropdownItems = [\n {\n message: intl.formatMessage(messages.dashboard),\n href: `${getConfig().LMS_BASE_URL}/dashboard`,\n },\n {\n message: intl.formatMessage(messages.profile),\n href: `${getConfig().ACCOUNT_PROFILE_URL}/u/${username}`,\n },\n {\n message: intl.formatMessage(messages.account),\n href: getConfig().ACCOUNT_SETTINGS_URL,\n },\n ...(getConfig().ORDER_HISTORY_URL ? [{\n message: intl.formatMessage(messages.orderHistory),\n href: getConfig().ORDER_HISTORY_URL,\n }] : []),\n {\n message: intl.formatMessage(messages.signOut),\n href: getConfig().LOGOUT_URL,\n },\n ];\n\n return (\n <Dropdown className=\"user-dropdown ml-3\">\n <Dropdown.Toggle variant=\"outline-primary\" aria-label={intl.formatMessage(messages.userOptionsDropdownLabel)}>\n <LearningUserMenuToggleSlot label={username} icon={faUserCircle} />\n </Dropdown.Toggle>\n <Dropdown.Menu className=\"dropdown-menu-right\">\n <LearningUserMenuSlot items={dropdownItems} />\n </Dropdown.Menu>\n </Dropdown>\n );\n};\n\nAuthenticatedUserDropdown.propTypes = {\n intl: intlShape.isRequired,\n username: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(AuthenticatedUserDropdown);\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,OAAOC,0BAA0B,MAAM,4CAA4C;AACnF,OAAOC,oBAAoB,MAAM,sCAAsC;AAEvE,OAAOC,QAAQ,MAAM,YAAY;AAEjC,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAC,IAAA,EAA2B;EAAA,IAArBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EACjD,IAAMC,aAAa,IACjB;IACEC,OAAO,EAAEH,IAAI,CAACI,aAAa,CAACP,QAAQ,CAACQ,SAAS,CAAC;IAC/CC,IAAI,KAAAC,MAAA,CAAKhB,SAAS,CAAC,CAAC,CAACiB,YAAY;EACnC,CAAC,EACD;IACEL,OAAO,EAAEH,IAAI,CAACI,aAAa,CAACP,QAAQ,CAACY,OAAO,CAAC;IAC7CH,IAAI,KAAAC,MAAA,CAAKhB,SAAS,CAAC,CAAC,CAACmB,mBAAmB,SAAAH,MAAA,CAAMN,QAAQ;EACxD,CAAC,EACD;IACEE,OAAO,EAAEH,IAAI,CAACI,aAAa,CAACP,QAAQ,CAACc,OAAO,CAAC;IAC7CL,IAAI,EAAEf,SAAS,CAAC,CAAC,CAACqB;EACpB,CAAC,EAAAL,MAAA,CAAAM,kBAAA,CACGtB,SAAS,CAAC,CAAC,CAACuB,iBAAiB,GAAG,CAAC;IACnCX,OAAO,EAAEH,IAAI,CAACI,aAAa,CAACP,QAAQ,CAACkB,YAAY,CAAC;IAClDT,IAAI,EAAEf,SAAS,CAAC,CAAC,CAACuB;EACpB,CAAC,CAAC,GAAG,EAAE,IACP;IACEX,OAAO,EAAEH,IAAI,CAACI,aAAa,CAACP,QAAQ,CAACmB,OAAO,CAAC;IAC7CV,IAAI,EAAEf,SAAS,CAAC,CAAC,CAAC0B;EACpB,CAAC,EACF;EAED,oBACE7B,KAAA,CAAA8B,aAAA,CAACxB,QAAQ;IAACyB,SAAS,EAAC;EAAoB,gBACtC/B,KAAA,CAAA8B,aAAA,CAACxB,QAAQ,CAAC0B,MAAM;IAACC,OAAO,EAAC,iBAAiB;IAAC,cAAYrB,IAAI,CAACI,aAAa,CAACP,QAAQ,CAACyB,wBAAwB;EAAE,gBAC3GlC,KAAA,CAAA8B,aAAA,CAACvB,0BAA0B;IAAC4B,KAAK,EAAEtB,QAAS;IAACuB,IAAI,EAAElC;EAAa,CAAE,CACnD,CAAC,eAClBF,KAAA,CAAA8B,aAAA,CAACxB,QAAQ,CAAC+B,IAAI;IAACN,SAAS,EAAC;EAAqB,gBAC5C/B,KAAA,CAAA8B,aAAA,CAACtB,oBAAoB;IAAC8B,KAAK,EAAExB;EAAc,CAAE,CAChC,CACP,CAAC;AAEf,CAAC;AAEDJ,yBAAyB,CAAC6B,SAAS,GAAG;EACpC3B,IAAI,EAAEP,SAAS,CAACmC,UAAU;EAC1B3B,QAAQ,EAAEZ,SAAS,CAACwC,MAAM,CAACD;AAC7B,CAAC;AAED,eAAepC,UAAU,CAACM,yBAAyB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"AuthenticatedUserDropdown.js","names":["React","PropTypes","FontAwesomeIcon","faUserCircle","getConfig","injectIntl","intlShape","Dropdown","messages","AuthenticatedUserDropdown","_ref","intl","username","dashboardMenuItem","createElement","Item","href","concat","LMS_BASE_URL","formatMessage","dashboard","Fragment","className","SUPPORT_URL","help","Toggle","variant","icon","size","Menu","ACCOUNT_PROFILE_URL","profile","ACCOUNT_SETTINGS_URL","account","ORDER_HISTORY_URL","orderHistory","LOGOUT_URL","signOut","propTypes","isRequired","string"],"sources":["../../src/learning-header/AuthenticatedUserDropdown.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUserCircle } from '@fortawesome/free-solid-svg-icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@openedx/paragon';\n\nimport messages from './messages';\n\nconst AuthenticatedUserDropdown = ({ intl, username }) => {\n const dashboardMenuItem = (\n <Dropdown.Item href={`${getConfig().LMS_BASE_URL}/dashboard`}>\n {intl.formatMessage(messages.dashboard)}\n </Dropdown.Item>\n );\n\n return (\n <>\n <a className=\"text-gray-700\" href={`${getConfig().SUPPORT_URL}`}>{intl.formatMessage(messages.help)}</a>\n <Dropdown className=\"user-dropdown ml-3\">\n <Dropdown.Toggle variant=\"outline-primary\">\n <FontAwesomeIcon icon={faUserCircle} className=\"d-md-none\" size=\"lg\" />\n <span data-hj-suppress className=\"d-none d-md-inline\">\n {username}\n </span>\n </Dropdown.Toggle>\n <Dropdown.Menu className=\"dropdown-menu-right\">\n {dashboardMenuItem}\n <Dropdown.Item href={`${getConfig().ACCOUNT_PROFILE_URL}/u/${username}`}>\n {intl.formatMessage(messages.profile)}\n </Dropdown.Item>\n <Dropdown.Item href={getConfig().ACCOUNT_SETTINGS_URL}>\n {intl.formatMessage(messages.account)}\n </Dropdown.Item>\n { getConfig().ORDER_HISTORY_URL && (\n <Dropdown.Item href={getConfig().ORDER_HISTORY_URL}>\n {intl.formatMessage(messages.orderHistory)}\n </Dropdown.Item>\n )}\n <Dropdown.Item href={getConfig().LOGOUT_URL}>\n {intl.formatMessage(messages.signOut)}\n </Dropdown.Item>\n </Dropdown.Menu>\n </Dropdown>\n </>\n );\n};\n\nAuthenticatedUserDropdown.propTypes = {\n intl: intlShape.isRequired,\n username: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(AuthenticatedUserDropdown);\n"],"mappings":"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","ignoreList":[]}