@nauedu/frontend-component-header 18.2.0 → 20.0.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 (196) hide show
  1. package/README.rst +6 -0
  2. package/dist/Header.js +13 -9
  3. package/dist/Header.js.map +1 -1
  4. package/dist/Header.test.jsx +3 -0
  5. package/dist/Icons.js +1 -1
  6. package/dist/LanguageSelector/data/api.js +13 -5
  7. package/dist/LanguageSelector/data/api.js.map +1 -1
  8. package/dist/LanguageSelector/index.js +12 -4
  9. package/dist/LanguageSelector/index.js.map +1 -1
  10. package/dist/Logo.js +10 -23
  11. package/dist/Logo.js.map +1 -1
  12. package/dist/Menu/Menu.js +11 -11
  13. package/dist/Menu/Menu.js.map +1 -1
  14. package/dist/Menu/menu.scss +6 -6
  15. package/dist/__snapshots__/Header.test.jsx.snap +2 -0
  16. package/dist/desktop-header/DesktopHeader.js +172 -0
  17. package/dist/desktop-header/DesktopHeader.js.map +1 -0
  18. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js +51 -0
  19. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js.map +1 -0
  20. package/dist/desktop-header/DesktopHeaderUserMenu.js +49 -0
  21. package/dist/desktop-header/DesktopHeaderUserMenu.js.map +1 -0
  22. package/dist/desktop-header/DesktopLoggedOutItems.js +22 -0
  23. package/dist/desktop-header/DesktopLoggedOutItems.js.map +1 -0
  24. package/dist/desktop-header/DesktopUserMenuToggle.js +25 -0
  25. package/dist/desktop-header/DesktopUserMenuToggle.js.map +1 -0
  26. package/dist/frontend-platform.d.ts +41 -0
  27. package/dist/index.scss +27 -15
  28. package/dist/learning-header/AnonymousUserMenu.js +11 -8
  29. package/dist/learning-header/AnonymousUserMenu.js.map +1 -1
  30. package/dist/learning-header/AuthenticatedUserDropdown.js +32 -24
  31. package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -1
  32. package/dist/learning-header/LearningHeader.js +10 -11
  33. package/dist/learning-header/LearningHeader.js.map +1 -1
  34. package/dist/learning-header/LearningHeaderCourseInfo.js +24 -0
  35. package/dist/learning-header/LearningHeaderCourseInfo.js.map +1 -0
  36. package/dist/learning-header/LearningHeaderHelpLink.js +13 -0
  37. package/dist/learning-header/LearningHeaderHelpLink.js.map +1 -0
  38. package/dist/learning-header/LearningHeaderUserMenuItems.js +20 -0
  39. package/dist/learning-header/LearningHeaderUserMenuItems.js.map +1 -0
  40. package/dist/learning-header/LearningLoggedOutButtons.js +24 -0
  41. package/dist/learning-header/LearningLoggedOutButtons.js.map +1 -0
  42. package/dist/learning-header/LearningUserMenuToggle.js +26 -0
  43. package/dist/learning-header/LearningUserMenuToggle.js.map +1 -0
  44. package/dist/learning-header/data/api.js +12 -4
  45. package/dist/learning-header/data/api.js.map +1 -1
  46. package/dist/learning-header/data/api.test.js +92 -95
  47. package/dist/learning-header/data/api.test.js.map +1 -1
  48. package/dist/learning-header/messages.js +5 -0
  49. package/dist/learning-header/messages.js.map +1 -1
  50. package/dist/mobile-header/MobileHeader.js +197 -0
  51. package/dist/mobile-header/MobileHeader.js.map +1 -0
  52. package/dist/mobile-header/MobileHeaderMainMenu.js +46 -0
  53. package/dist/mobile-header/MobileHeaderMainMenu.js.map +1 -0
  54. package/dist/mobile-header/MobileHeaderUserMenu.js +38 -0
  55. package/dist/mobile-header/MobileHeaderUserMenu.js.map +1 -0
  56. package/dist/mobile-header/MobileLoggedOutItems.js +27 -0
  57. package/dist/mobile-header/MobileLoggedOutItems.js.map +1 -0
  58. package/dist/mobile-header/MobileUserMenuToggle.js +19 -0
  59. package/dist/mobile-header/MobileUserMenuToggle.js.map +1 -0
  60. package/dist/plugin-slots/CourseInfoSlot/README.md +128 -0
  61. package/dist/plugin-slots/CourseInfoSlot/images/add_custom_components_before_and_after_course_info.png +0 -0
  62. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_info_with_custom_component.png +0 -0
  63. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_title.png +0 -0
  64. package/dist/plugin-slots/CourseInfoSlot/index.js +32 -0
  65. package/dist/plugin-slots/CourseInfoSlot/index.js.map +1 -0
  66. package/dist/plugin-slots/DesktopHeaderSlot/README.md +44 -0
  67. package/dist/plugin-slots/DesktopHeaderSlot/images/desktop_header_custom_component.png +0 -0
  68. package/dist/plugin-slots/DesktopHeaderSlot/index.js +16 -0
  69. package/dist/plugin-slots/DesktopHeaderSlot/index.js.map +1 -0
  70. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/README.md +137 -0
  71. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_component.png +0 -0
  72. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_components_before_after.png +0 -0
  73. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_modify_items.png +0 -0
  74. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js +20 -0
  75. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js.map +1 -0
  76. package/dist/plugin-slots/DesktopMainMenuSlot/README.md +137 -0
  77. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_component.png +0 -0
  78. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_components_before_after.png +0 -0
  79. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_modify_items.png +0 -0
  80. package/dist/plugin-slots/DesktopMainMenuSlot/index.js +20 -0
  81. package/dist/plugin-slots/DesktopMainMenuSlot/index.js.map +1 -0
  82. package/dist/plugin-slots/DesktopSecondaryMenuSlot/README.md +132 -0
  83. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_component.png +0 -0
  84. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_components_before_after.png +0 -0
  85. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_modify_items.png +0 -0
  86. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js +20 -0
  87. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js.map +1 -0
  88. package/dist/plugin-slots/DesktopUserMenuSlot/README.md +144 -0
  89. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_component.png +0 -0
  90. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_components_before_after.png +0 -0
  91. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_modify_items.png +0 -0
  92. package/dist/plugin-slots/DesktopUserMenuSlot/index.js +20 -0
  93. package/dist/plugin-slots/DesktopUserMenuSlot/index.js.map +1 -0
  94. package/dist/plugin-slots/DesktopUserMenuToggleSlot/README.md +74 -0
  95. package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_custom_component.png +0 -0
  96. package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_modified_toggle.png +0 -0
  97. package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js +19 -0
  98. package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js.map +1 -0
  99. package/dist/plugin-slots/LearningHelpSlot/README.md +44 -0
  100. package/dist/plugin-slots/LearningHelpSlot/images/learning_help_custom_component.png +0 -0
  101. package/dist/plugin-slots/LearningHelpSlot/index.js +11 -0
  102. package/dist/plugin-slots/LearningHelpSlot/index.js.map +1 -0
  103. package/dist/plugin-slots/LearningLoggedOutItemsSlot/README.md +135 -0
  104. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_component.png +0 -0
  105. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_components_before_after.png +0 -0
  106. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_modified_items.png +0 -0
  107. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js +18 -0
  108. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js.map +1 -0
  109. package/dist/plugin-slots/LearningUserMenuSlot/README.md +133 -0
  110. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_component.png +0 -0
  111. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_components_before_after.png +0 -0
  112. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_modified_items.png +0 -0
  113. package/dist/plugin-slots/LearningUserMenuSlot/index.js +18 -0
  114. package/dist/plugin-slots/LearningUserMenuSlot/index.js.map +1 -0
  115. package/dist/plugin-slots/LearningUserMenuToggleSlot/README.md +74 -0
  116. package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_custom_component.png +0 -0
  117. package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_modified_items.png +0 -0
  118. package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js +19 -0
  119. package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js.map +1 -0
  120. package/dist/plugin-slots/LogoSlot/README.md +72 -0
  121. package/dist/plugin-slots/LogoSlot/index.js +27 -0
  122. package/dist/plugin-slots/LogoSlot/index.js.map +1 -0
  123. package/dist/plugin-slots/MobileHeaderSlot/README.md +44 -0
  124. package/dist/plugin-slots/MobileHeaderSlot/images/mobile_header_custom_component.png +0 -0
  125. package/dist/plugin-slots/MobileHeaderSlot/index.js +16 -0
  126. package/dist/plugin-slots/MobileHeaderSlot/index.js.map +1 -0
  127. package/dist/plugin-slots/MobileLoggedOutItemsSlot/README.md +136 -0
  128. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_component.png +0 -0
  129. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_components_before_after.png +0 -0
  130. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_modify_items.png +0 -0
  131. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js +20 -0
  132. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js.map +1 -0
  133. package/dist/plugin-slots/MobileMainMenuSlot/README.md +136 -0
  134. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_component.png +0 -0
  135. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_components_before_after.png +0 -0
  136. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_modify_items.png +0 -0
  137. package/dist/plugin-slots/MobileMainMenuSlot/index.js +20 -0
  138. package/dist/plugin-slots/MobileMainMenuSlot/index.js.map +1 -0
  139. package/dist/plugin-slots/MobileUserMenuSlot/README.md +144 -0
  140. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_component.png +0 -0
  141. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_components_before_after.png +0 -0
  142. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_modify_items.png +0 -0
  143. package/dist/plugin-slots/MobileUserMenuSlot/index.js +20 -0
  144. package/dist/plugin-slots/MobileUserMenuSlot/index.js.map +1 -0
  145. package/dist/plugin-slots/MobileUserMenuToggleSlot/README.md +74 -0
  146. package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_custom_component.png +0 -0
  147. package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_modified_items.png +0 -0
  148. package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js +19 -0
  149. package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js.map +1 -0
  150. package/dist/plugin-slots/README.md +26 -0
  151. package/dist/setupTest.js +0 -2
  152. package/dist/studio-header/BrandNav.test.tsx +40 -0
  153. package/dist/studio-header/BrandNav.tsx +25 -0
  154. package/dist/studio-header/CourseLockUp.test.tsx +59 -0
  155. package/dist/studio-header/CourseLockUp.tsx +56 -0
  156. package/dist/studio-header/HeaderBody.test.tsx +102 -0
  157. package/dist/studio-header/HeaderBody.tsx +196 -0
  158. package/dist/studio-header/MobileHeader.tsx +74 -0
  159. package/dist/studio-header/MobileMenu.test.tsx +81 -0
  160. package/dist/studio-header/MobileMenu.tsx +50 -0
  161. package/dist/studio-header/NavDropdownMenu.test.tsx +67 -0
  162. package/dist/studio-header/NavDropdownMenu.tsx +42 -0
  163. package/dist/studio-header/StudioHeader.scss +8 -10
  164. package/dist/studio-header/StudioHeader.test.tsx +220 -0
  165. package/dist/studio-header/StudioHeader.tsx +84 -0
  166. package/dist/studio-header/UserMenu.tsx +69 -0
  167. package/dist/studio-header/{index.js → index.ts} +1 -1
  168. package/dist/studio-header/{messages.js → messages.ts} +15 -14
  169. package/dist/studio-header/utils.ts +37 -0
  170. package/dist/test-utils.js +12 -4
  171. package/dist/test-utils.js.map +1 -1
  172. package/package.json +28 -30
  173. package/dist/DesktopHeader.js +0 -242
  174. package/dist/DesktopHeader.js.map +0 -1
  175. package/dist/MobileHeader.js +0 -244
  176. package/dist/MobileHeader.js.map +0 -1
  177. package/dist/studio-header/BrandNav.js +0 -21
  178. package/dist/studio-header/BrandNav.js.map +0 -1
  179. package/dist/studio-header/CourseLockUp.js +0 -45
  180. package/dist/studio-header/CourseLockUp.js.map +0 -1
  181. package/dist/studio-header/HeaderBody.js +0 -131
  182. package/dist/studio-header/HeaderBody.js.map +0 -1
  183. package/dist/studio-header/MobileHeader.js +0 -79
  184. package/dist/studio-header/MobileHeader.js.map +0 -1
  185. package/dist/studio-header/MobileMenu.js +0 -45
  186. package/dist/studio-header/MobileMenu.js.map +0 -1
  187. package/dist/studio-header/NavDropdownMenu.js +0 -30
  188. package/dist/studio-header/NavDropdownMenu.js.map +0 -1
  189. package/dist/studio-header/StudioHeader.js +0 -72
  190. package/dist/studio-header/StudioHeader.js.map +0 -1
  191. package/dist/studio-header/UserMenu.js +0 -55
  192. package/dist/studio-header/UserMenu.js.map +0 -1
  193. package/dist/studio-header/index.js.map +0 -1
  194. package/dist/studio-header/messages.js.map +0 -1
  195. package/dist/studio-header/utils.js +0 -29
  196. package/dist/studio-header/utils.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ // frontend-platform currently doesn't provide types... do it ourselves for i18n module at least.
2
+ // We can remove this in the future when we migrate to frontend-shell, or when frontend-platform gets types
3
+ // (whichever comes first).
4
+
5
+ declare module '@edx/frontend-platform/i18n' {
6
+ // eslint-disable-next-line import/no-extraneous-dependencies
7
+ import { injectIntl as _injectIntl } from 'react-intl';
8
+ /** @deprecated Use useIntl() hook instead. */
9
+ export const injectIntl: typeof _injectIntl;
10
+ /** @deprecated Use useIntl() hook instead. */
11
+ export const intlShape: any;
12
+
13
+ // eslint-disable-next-line import/no-extraneous-dependencies
14
+ export {
15
+ createIntl,
16
+ FormattedDate,
17
+ FormattedTime,
18
+ FormattedRelativeTime,
19
+ FormattedNumber,
20
+ FormattedPlural,
21
+ FormattedMessage,
22
+ defineMessages,
23
+ IntlProvider,
24
+ useIntl,
25
+ } from 'react-intl';
26
+
27
+ // Other exports from the i18n module:
28
+ export const configure: any;
29
+ export const getPrimaryLanguageSubtag: (code: string) => string;
30
+ export const getLocale: (locale?: string) => string;
31
+ export const getMessages: any;
32
+ export const isRtl: (locale?: string) => boolean;
33
+ export const handleRtl: any;
34
+ export const mergeMessages: any;
35
+ export const LOCALE_CHANGED: any;
36
+ export const LOCALE_TOPIC: any;
37
+ export const getCountryList: any;
38
+ export const getCountryMessages: any;
39
+ export const getLanguageList: any;
40
+ export const getLanguageMessages: any;
41
+ }
package/dist/index.scss CHANGED
@@ -1,6 +1,9 @@
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;
4
7
 
5
8
  @import './Menu/menu.scss';
6
9
  @import './studio-header/StudioHeader.scss';
@@ -21,8 +24,9 @@ $white: #fff;
21
24
  padding: .75rem;
22
25
  justify-content: center;
23
26
  align-items:center;
27
+
24
28
  &:hover, &:focus {
25
- background: rgba(0,0,0,.1);
29
+ background: rgba(0, 0, 0, .1);
26
30
  }
27
31
  }
28
32
 
@@ -36,7 +40,7 @@ $white: #fff;
36
40
  white-space: nowrap;
37
41
  overflow: hidden;
38
42
  text-overflow: ellipsis;
39
- padding-bottom: 0.1rem;
43
+ padding-bottom: calc(var(--pgn-spacing-spacer-base, $spacer)* 0.1);
40
44
  }
41
45
  }
42
46
 
@@ -63,6 +67,7 @@ $white: #fff;
63
67
  text-decoration: none;
64
68
  cursor: pointer;
65
69
  }
70
+
66
71
  img {
67
72
  height: 1.5rem;
68
73
  }
@@ -70,19 +75,22 @@ $white: #fff;
70
75
 
71
76
 
72
77
  .site-header-desktop {
73
- box-shadow: 0 1px 0 0 rgba(0,0,0,.1);
74
- background: $white;
78
+ box-shadow: 0 1px 0 0 rgba(0, 0, 0, .1);
79
+ background: var(--pgn-color-white, $white);
80
+
75
81
  .nav-link {
76
82
  text-decoration: none;
77
83
  }
84
+
78
85
  .logo {
79
86
  display: block;
80
87
  box-sizing: content-box;
81
88
  position: relative;
82
89
  top: -.05em;
83
90
  height: 1.75rem;
84
- padding: 1rem 0;
85
- margin-right: 1rem;
91
+ padding: var(--pgn-spacing-spacer-base, $spacer) 0;
92
+ margin-right: var(--pgn-spacing-spacer-base, $spacer);
93
+
86
94
  img {
87
95
  display: block;
88
96
  height: 100%;
@@ -93,38 +101,42 @@ $white: #fff;
93
101
  .nav-link:focus,
94
102
  .nav-link.active,
95
103
  .expanded .nav-link {
96
- background: $component-active-bg;
97
- color: $component-active-color;
104
+ background: var(--pgn-color-bg-active, $component-active-bg);
105
+ color: var(--pgn-color-active, $component-active-color);
98
106
  }
99
107
  }
100
108
  .main-nav {
101
109
  .nav-link {
102
- padding: 1.125rem 1rem;
110
+ padding: 1.125rem var(--pgn-spacing-spacer-base, $spacer);
103
111
  text-decoration: none;
104
112
  font-weight: 500;
105
113
  letter-spacing: .01em;
106
114
  }
115
+
107
116
  .nav-link:hover,
108
117
  .nav-link:focus,
109
118
  .nav-link.active,
110
119
  .expanded .nav-link {
111
- background: $component-active-bg;
112
- color: $component-active-color;
120
+ background: var(--pgn-color-bg-active, $component-active-bg);
121
+ color: var(--pgn-color-active, $component-active-color);
113
122
  }
123
+
114
124
  .menu {
115
125
  position: static;
126
+
116
127
  .menu-content {
117
- border-top: solid 2px $component-active-bg;
128
+ border-top: solid 2px var(--pgn-color-bg-active);
118
129
  left: 0;
119
130
  right: 0;
120
- box-shadow: 0 1px 2px rgba(0,0,0,.25);
131
+ box-shadow: var(--pgn-elevation-box-shadow-down-1, 0 1px 2px rgba(0,0,0,.25));
121
132
  border-bottom-left-radius: 2px;
122
133
  border-bottom-right-radius: 2px;
123
- padding: 1rem;
134
+ padding: var(--pgn-spacing-spacer-base, $spacer);
124
135
  }
125
136
  }
126
137
  }
138
+
127
139
  .search-input {
128
- border-radius: $rounded-pill;
140
+ border-radius: var(--pgn-size-rounded-pill, $rounded-pill);
129
141
  }
130
142
  }
@@ -2,18 +2,21 @@ 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 { Button } from '@openedx/paragon';
5
+ import LearningLoggedOutItemsSlot from '../plugin-slots/LearningLoggedOutItemsSlot';
6
6
  import genericMessages from '../generic/messages';
7
7
  var AnonymousUserMenu = function AnonymousUserMenu(_ref) {
8
8
  var intl = _ref.intl;
9
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
10
- className: "mr-3",
11
- variant: "outline-primary",
9
+ var buttonsInfo = [{
10
+ message: intl.formatMessage(genericMessages.registerSentenceCase),
12
11
  href: "".concat(getConfig().LMS_BASE_URL, "/register?next=").concat(encodeURIComponent(global.location.href))
13
- }, intl.formatMessage(genericMessages.registerSentenceCase)), /*#__PURE__*/React.createElement(Button, {
14
- variant: "primary",
15
- href: "".concat(getLoginRedirectUrl(global.location.href))
16
- }, intl.formatMessage(genericMessages.signInSentenceCase)));
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
+ });
17
20
  };
18
21
  AnonymousUserMenu.propTypes = {
19
22
  intl: intlShape.isRequired
@@ -1 +1 @@
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
+ {"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,42 +1,50 @@
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; }
1
7
  import React from 'react';
2
8
  import PropTypes from 'prop-types';
3
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
9
  import { faUserCircle } from '@fortawesome/free-solid-svg-icons';
5
10
  import { getConfig } from '@edx/frontend-platform';
6
11
  import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
7
12
  import { Dropdown } from '@openedx/paragon';
13
+ import LearningUserMenuToggleSlot from '../plugin-slots/LearningUserMenuToggleSlot';
14
+ import LearningUserMenuSlot from '../plugin-slots/LearningUserMenuSlot';
8
15
  import messages from './messages';
9
16
  var AuthenticatedUserDropdown = function AuthenticatedUserDropdown(_ref) {
10
17
  var intl = _ref.intl,
11
18
  username = _ref.username;
12
- var dashboardMenuItem = /*#__PURE__*/React.createElement(Dropdown.Item, {
19
+ var dropdownItems = [{
20
+ message: intl.formatMessage(messages.dashboard),
13
21
  href: "".concat(getConfig().LMS_BASE_URL, "/dashboard")
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, {
22
+ }, {
23
+ message: intl.formatMessage(messages.profile),
32
24
  href: "".concat(getConfig().ACCOUNT_PROFILE_URL, "/u/").concat(username)
33
- }, intl.formatMessage(messages.profile)), /*#__PURE__*/React.createElement(Dropdown.Item, {
25
+ }, {
26
+ message: intl.formatMessage(messages.account),
34
27
  href: getConfig().ACCOUNT_SETTINGS_URL
35
- }, intl.formatMessage(messages.account)), getConfig().ORDER_HISTORY_URL && /*#__PURE__*/React.createElement(Dropdown.Item, {
28
+ }].concat(_toConsumableArray(getConfig().ORDER_HISTORY_URL ? [{
29
+ message: intl.formatMessage(messages.orderHistory),
36
30
  href: getConfig().ORDER_HISTORY_URL
37
- }, intl.formatMessage(messages.orderHistory)), /*#__PURE__*/React.createElement(Dropdown.Item, {
31
+ }] : []), [{
32
+ message: intl.formatMessage(messages.signOut),
38
33
  href: getConfig().LOGOUT_URL
39
- }, intl.formatMessage(messages.signOut)))));
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
+ })));
40
48
  };
41
49
  AuthenticatedUserDropdown.propTypes = {
42
50
  intl: intlShape.isRequired,
@@ -1 +1 @@
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":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,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,iBAAiB,gBACrBb,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACQ,IAAI;IAACC,IAAI,KAAAC,MAAA,CAAKb,SAAS,CAAC,CAAC,CAACc,YAAY;EAAa,GAC1DP,IAAI,CAACQ,aAAa,CAACX,QAAQ,CAACY,SAAS,CACzB,CAChB;EAED,oBACEpB,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAqB,QAAA,qBACErB,KAAA,CAAAc,aAAA;IAAGQ,SAAS,EAAC,eAAe;IAACN,IAAI,KAAAC,MAAA,CAAKb,SAAS,CAAC,CAAC,CAACmB,WAAW;EAAG,GAAEZ,IAAI,CAACQ,aAAa,CAACX,QAAQ,CAACgB,IAAI,CAAK,CAAC,eACxGxB,KAAA,CAAAc,aAAA,CAACP,QAAQ;IAACe,SAAS,EAAC;EAAoB,gBACtCtB,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACkB,MAAM;IAACC,OAAO,EAAC;EAAiB,gBACxC1B,KAAA,CAAAc,aAAA,CAACZ,eAAe;IAACyB,IAAI,EAAExB,YAAa;IAACmB,SAAS,EAAC,WAAW;IAACM,IAAI,EAAC;EAAI,CAAE,CAAC,eACvE5B,KAAA,CAAAc,aAAA;IAAM,wBAAgB;IAACQ,SAAS,EAAC;EAAoB,GAClDV,QACG,CACS,CAAC,eAClBZ,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACsB,IAAI;IAACP,SAAS,EAAC;EAAqB,GAC3CT,iBAAiB,eAClBb,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACQ,IAAI;IAACC,IAAI,KAAAC,MAAA,CAAKb,SAAS,CAAC,CAAC,CAAC0B,mBAAmB,SAAAb,MAAA,CAAML,QAAQ;EAAG,GACrED,IAAI,CAACQ,aAAa,CAACX,QAAQ,CAACuB,OAAO,CACvB,CAAC,eAChB/B,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACQ,IAAI;IAACC,IAAI,EAAEZ,SAAS,CAAC,CAAC,CAAC4B;EAAqB,GACnDrB,IAAI,CAACQ,aAAa,CAACX,QAAQ,CAACyB,OAAO,CACvB,CAAC,EACd7B,SAAS,CAAC,CAAC,CAAC8B,iBAAiB,iBAC7BlC,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACQ,IAAI;IAACC,IAAI,EAAEZ,SAAS,CAAC,CAAC,CAAC8B;EAAkB,GAChDvB,IAAI,CAACQ,aAAa,CAACX,QAAQ,CAAC2B,YAAY,CAC5B,CAChB,eACDnC,KAAA,CAAAc,aAAA,CAACP,QAAQ,CAACQ,IAAI;IAACC,IAAI,EAAEZ,SAAS,CAAC,CAAC,CAACgC;EAAW,GACzCzB,IAAI,CAACQ,aAAa,CAACX,QAAQ,CAAC6B,OAAO,CACvB,CACF,CACP,CACV,CAAC;AAEP,CAAC;AAED5B,yBAAyB,CAAC6B,SAAS,GAAG;EACpC3B,IAAI,EAAEL,SAAS,CAACiC,UAAU;EAC1B3B,QAAQ,EAAEX,SAAS,CAACuC,MAAM,CAACD;AAC7B,CAAC;AAED,eAAelC,UAAU,CAACI,yBAAyB,CAAC","ignoreList":[]}
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,13 +1,13 @@
1
1
  var _excluded = ["href", "src", "alt"];
2
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4
+ 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; } }
5
+ 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; }
6
6
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- 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); }
9
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
9
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
10
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
11
  import React, { useContext, useEffect, useState } from 'react';
12
12
  import Responsive from 'react-responsive';
13
13
  import PropTypes from 'prop-types';
@@ -16,6 +16,7 @@ import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
16
16
  import { AppContext } from '@edx/frontend-platform/react';
17
17
  import AnonymousUserMenu from './AnonymousUserMenu';
18
18
  import AuthenticatedUserDropdown from './AuthenticatedUserDropdown';
19
+ import LogoSlot from '../plugin-slots/LogoSlot';
19
20
  import messages from './messages';
20
21
  import getCourseLogoOrg from './data/api';
21
22
  import LanguageSelector from '../LanguageSelector';
@@ -58,15 +59,13 @@ var LearningHeader = function LearningHeader(_ref2) {
58
59
  }, [courseOrg, enableOrgLogo]);
59
60
  var headerLogo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Responsive, {
60
61
  maxWidth: 769
61
- }, /*#__PURE__*/React.createElement(LinkedLogo, {
62
- className: "logo",
62
+ }, /*#__PURE__*/React.createElement(LogoSlot, {
63
63
  href: "".concat(getConfig().LMS_BASE_URL, "/dashboard"),
64
64
  src: getConfig().LOGO_URL_MOBILE || getConfig().LOGO_URL,
65
65
  alt: getConfig().SITE_NAME
66
66
  })), /*#__PURE__*/React.createElement(Responsive, {
67
67
  minWidth: 769
68
- }, /*#__PURE__*/React.createElement(LinkedLogo, {
69
- className: "logo",
68
+ }, /*#__PURE__*/React.createElement(LogoSlot, {
70
69
  href: "".concat(getConfig().LMS_BASE_URL, "/dashboard"),
71
70
  src: getConfig().LOGO_URL,
72
71
  alt: getConfig().SITE_NAME
@@ -1 +1 @@
1
- {"version":3,"file":"LearningHeader.js","names":["React","useContext","useEffect","useState","Responsive","PropTypes","getConfig","injectIntl","intlShape","AppContext","AnonymousUserMenu","AuthenticatedUserDropdown","messages","getCourseLogoOrg","LanguageSelector","LinkedLogo","_ref","href","src","alt","attributes","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","string","isRequired","LearningHeader","_ref2","courseOrg","courseTitle","intl","showUserDropdown","_useContext","authenticatedUser","_useState","_useState2","_slicedToArray","logoOrg","setLogoOrg","enableOrgLogo","ENABLE_ORG_LOGO","then","logoOrgUrl","headerLogo","Fragment","maxWidth","concat","LMS_BASE_URL","LOGO_URL_MOBILE","LOGO_URL","SITE_NAME","minWidth","formatMessage","skipNavLink","style","maxHeight","fontSize","ENABLE_HEADER_LANG_SELECTOR","options","JSON","parse","SITE_SUPPORTED_LANGUAGES","compact","username","bool","defaultProps"],"sources":["../../src/learning-header/LearningHeader.jsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport Responsive from 'react-responsive';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport AnonymousUserMenu from './AnonymousUserMenu';\nimport AuthenticatedUserDropdown from './AuthenticatedUserDropdown';\nimport messages from './messages';\nimport getCourseLogoOrg from './data/api';\nimport LanguageSelector from '../LanguageSelector';\n\nconst LinkedLogo = ({\n href,\n src,\n alt,\n ...attributes\n}) => (\n <a href={href} {...attributes}>\n <img className=\"d-block\" src={src} alt={alt} />\n </a>\n);\n\nLinkedLogo.propTypes = {\n href: PropTypes.string.isRequired,\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n};\nconst LearningHeader = ({\n courseOrg, courseTitle, intl, showUserDropdown,\n}) => {\n const { authenticatedUser } = useContext(AppContext);\n const [logoOrg, setLogoOrg] = useState(null);\n const enableOrgLogo = getConfig().ENABLE_ORG_LOGO;\n\n useEffect(() => {\n if (courseOrg && enableOrgLogo) {\n getCourseLogoOrg().then((logoOrgUrl) => { setLogoOrg(logoOrgUrl); });\n }\n }, [courseOrg, enableOrgLogo]);\n\n const headerLogo = (\n <>\n <Responsive maxWidth={769}>\n <LinkedLogo\n className=\"logo\"\n href={`${getConfig().LMS_BASE_URL}/dashboard`}\n src={getConfig().LOGO_URL_MOBILE || getConfig().LOGO_URL}\n alt={getConfig().SITE_NAME}\n />\n </Responsive>\n <Responsive minWidth={769}>\n <LinkedLogo\n className=\"logo\"\n href={`${getConfig().LMS_BASE_URL}/dashboard`}\n src={getConfig().LOGO_URL}\n alt={getConfig().SITE_NAME}\n />\n </Responsive>\n </>\n );\n\n return (\n <header className=\"learning-header\">\n <a className=\"sr-only sr-only-focusable\" href=\"#main-content\">{intl.formatMessage(messages.skipNavLink)}</a>\n <div className=\"container-xl py-2 d-flex align-items-center justify-content-between\">\n {headerLogo}\n <div className=\"d-none d-md-block flex-grow-1 course-title-lockup\">\n <div className={`d-md-flex ${enableOrgLogo && 'align-items-center justify-content-center'} w-100`}>\n {enableOrgLogo && courseOrg && logoOrg && (\n <img src={logoOrg} alt={`${courseOrg} logo`} style={{ maxHeight: '3rem', maxWidth: '15rem' }} />\n )}\n <span\n className=\"d-inline-block course-title font-weight-semibold ml-3 text-truncate text-left\"\n style={{ fontSize: '1rem' }}\n >\n {courseTitle}\n </span>\n </div>\n </div>\n <div className=\"d-flex align-items-center\">\n {getConfig().ENABLE_HEADER_LANG_SELECTOR && (\n <div className=\"mx-2 d-md-inline-flex\">\n <Responsive maxWidth={1200}>\n <LanguageSelector\n options={JSON.parse(getConfig().SITE_SUPPORTED_LANGUAGES)}\n compact\n authenticatedUser={authenticatedUser}\n />\n </Responsive>\n <Responsive minWidth={1200}>\n <LanguageSelector\n options={JSON.parse(getConfig().SITE_SUPPORTED_LANGUAGES)}\n compact={false}\n authenticatedUser={authenticatedUser}\n />\n </Responsive>\n </div>\n )}\n {showUserDropdown && authenticatedUser && (\n <AuthenticatedUserDropdown\n username={authenticatedUser.username}\n />\n )}\n {showUserDropdown && !authenticatedUser && (\n <AnonymousUserMenu />\n )}\n </div>\n </div>\n </header>\n );\n};\n\nLearningHeader.propTypes = {\n courseOrg: PropTypes.string,\n courseTitle: PropTypes.string,\n intl: intlShape.isRequired,\n showUserDropdown: PropTypes.bool,\n};\n\nLearningHeader.defaultProps = {\n courseOrg: null,\n courseTitle: null,\n showUserDropdown: true,\n};\n\nexport default injectIntl(LearningHeader);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LearningHeader.js","names":["React","useContext","useEffect","useState","Responsive","PropTypes","getConfig","injectIntl","intlShape","AppContext","AnonymousUserMenu","AuthenticatedUserDropdown","LogoSlot","messages","getCourseLogoOrg","LanguageSelector","LinkedLogo","_ref","href","src","alt","attributes","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","string","isRequired","LearningHeader","_ref2","courseOrg","courseTitle","intl","showUserDropdown","_useContext","authenticatedUser","_useState","_useState2","_slicedToArray","logoOrg","setLogoOrg","enableOrgLogo","ENABLE_ORG_LOGO","then","logoOrgUrl","headerLogo","Fragment","maxWidth","concat","LMS_BASE_URL","LOGO_URL_MOBILE","LOGO_URL","SITE_NAME","minWidth","formatMessage","skipNavLink","style","maxHeight","fontSize","ENABLE_HEADER_LANG_SELECTOR","options","JSON","parse","SITE_SUPPORTED_LANGUAGES","compact","username","bool","defaultProps"],"sources":["../../src/learning-header/LearningHeader.jsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport Responsive from 'react-responsive';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport AnonymousUserMenu from './AnonymousUserMenu';\nimport AuthenticatedUserDropdown from './AuthenticatedUserDropdown';\nimport LogoSlot from '../plugin-slots/LogoSlot';\nimport messages from './messages';\nimport getCourseLogoOrg from './data/api';\nimport LanguageSelector from '../LanguageSelector';\n\nconst LinkedLogo = ({\n href,\n src,\n alt,\n ...attributes\n}) => (\n <a href={href} {...attributes}>\n <img className=\"d-block\" src={src} alt={alt} />\n </a>\n);\n\nLinkedLogo.propTypes = {\n href: PropTypes.string.isRequired,\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n};\nconst LearningHeader = ({\n courseOrg, courseTitle, intl, showUserDropdown,\n}) => {\n const { authenticatedUser } = useContext(AppContext);\n const [logoOrg, setLogoOrg] = useState(null);\n const enableOrgLogo = getConfig().ENABLE_ORG_LOGO;\n\n useEffect(() => {\n if (courseOrg && enableOrgLogo) {\n getCourseLogoOrg().then((logoOrgUrl) => { setLogoOrg(logoOrgUrl); });\n }\n }, [courseOrg, enableOrgLogo]);\n\n const headerLogo = (\n <>\n <Responsive maxWidth={769}>\n <LogoSlot\n href={`${getConfig().LMS_BASE_URL}/dashboard`}\n src={getConfig().LOGO_URL_MOBILE || getConfig().LOGO_URL}\n alt={getConfig().SITE_NAME}\n />\n </Responsive>\n <Responsive minWidth={769}>\n <LogoSlot\n href={`${getConfig().LMS_BASE_URL}/dashboard`}\n src={getConfig().LOGO_URL}\n alt={getConfig().SITE_NAME}\n />\n </Responsive>\n </>\n );\n\n return (\n <header className=\"learning-header\">\n <a className=\"sr-only sr-only-focusable\" href=\"#main-content\">{intl.formatMessage(messages.skipNavLink)}</a>\n <div className=\"container-xl py-2 d-flex align-items-center justify-content-between\">\n {headerLogo}\n <div className=\"d-none d-md-block flex-grow-1 course-title-lockup\">\n <div className={`d-md-flex ${enableOrgLogo && 'align-items-center justify-content-center'} w-100`}>\n {enableOrgLogo && courseOrg && logoOrg && (\n <img src={logoOrg} alt={`${courseOrg} logo`} style={{ maxHeight: '3rem', maxWidth: '15rem' }} />\n )}\n <span\n className=\"d-inline-block course-title font-weight-semibold ml-3 text-truncate text-left\"\n style={{ fontSize: '1rem' }}\n >\n {courseTitle}\n </span>\n </div>\n </div>\n <div className=\"d-flex align-items-center\">\n {getConfig().ENABLE_HEADER_LANG_SELECTOR && (\n <div className=\"mx-2 d-md-inline-flex\">\n <Responsive maxWidth={1200}>\n <LanguageSelector\n options={JSON.parse(getConfig().SITE_SUPPORTED_LANGUAGES)}\n compact\n authenticatedUser={authenticatedUser}\n />\n </Responsive>\n <Responsive minWidth={1200}>\n <LanguageSelector\n options={JSON.parse(getConfig().SITE_SUPPORTED_LANGUAGES)}\n compact={false}\n authenticatedUser={authenticatedUser}\n />\n </Responsive>\n </div>\n )}\n {showUserDropdown && authenticatedUser && (\n <AuthenticatedUserDropdown\n username={authenticatedUser.username}\n />\n )}\n {showUserDropdown && !authenticatedUser && (\n <AnonymousUserMenu />\n )}\n </div>\n </div>\n </header>\n );\n};\n\nLearningHeader.propTypes = {\n courseOrg: PropTypes.string,\n courseTitle: PropTypes.string,\n intl: intlShape.isRequired,\n showUserDropdown: PropTypes.bool,\n};\n\nLearningHeader.defaultProps = {\n courseOrg: null,\n courseTitle: null,\n showUserDropdown: true,\n};\n\nexport default injectIntl(LearningHeader);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ var LearningHeaderCourseInfo = function LearningHeaderCourseInfo(_ref) {
4
+ var courseOrg = _ref.courseOrg,
5
+ courseNumber = _ref.courseNumber,
6
+ courseTitle = _ref.courseTitle;
7
+ return /*#__PURE__*/React.createElement("div", {
8
+ style: {
9
+ minWidth: 0
10
+ }
11
+ }, /*#__PURE__*/React.createElement("span", {
12
+ className: "d-block small m-0"
13
+ }, courseOrg, " ", courseNumber), /*#__PURE__*/React.createElement("span", {
14
+ className: "d-block m-0 font-weight-bold course-title"
15
+ }, courseTitle));
16
+ };
17
+ export var courseInfoDataShape = {
18
+ courseOrg: PropTypes.string,
19
+ courseNumber: PropTypes.string,
20
+ courseTitle: PropTypes.string
21
+ };
22
+ LearningHeaderCourseInfo.propTypes = courseInfoDataShape;
23
+ export default LearningHeaderCourseInfo;
24
+ //# sourceMappingURL=LearningHeaderCourseInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningHeaderCourseInfo.js","names":["React","PropTypes","LearningHeaderCourseInfo","_ref","courseOrg","courseNumber","courseTitle","createElement","style","minWidth","className","courseInfoDataShape","string","propTypes"],"sources":["../../src/learning-header/LearningHeaderCourseInfo.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst LearningHeaderCourseInfo = ({\n courseOrg,\n courseNumber,\n courseTitle,\n}) => (\n <div style={{ minWidth: 0 }}>\n <span className=\"d-block small m-0\">{courseOrg} {courseNumber}</span>\n <span className=\"d-block m-0 font-weight-bold course-title\">{courseTitle}</span>\n </div>\n);\n\nexport const courseInfoDataShape = {\n courseOrg: PropTypes.string,\n courseNumber: PropTypes.string,\n courseTitle: PropTypes.string,\n};\n\nLearningHeaderCourseInfo.propTypes = courseInfoDataShape;\n\nexport default LearningHeaderCourseInfo;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAAC,IAAA;EAAA,IAC5BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IACZC,WAAW,GAAAH,IAAA,CAAXG,WAAW;EAAA,oBAEXN,KAAA,CAAAO,aAAA;IAAKC,KAAK,EAAE;MAAEC,QAAQ,EAAE;IAAE;EAAE,gBAC1BT,KAAA,CAAAO,aAAA;IAAMG,SAAS,EAAC;EAAmB,GAAEN,SAAS,EAAC,GAAC,EAACC,YAAmB,CAAC,eACrEL,KAAA,CAAAO,aAAA;IAAMG,SAAS,EAAC;EAA2C,GAAEJ,WAAkB,CAC5E,CAAC;AAAA,CACP;AAED,OAAO,IAAMK,mBAAmB,GAAG;EACjCP,SAAS,EAAEH,SAAS,CAACW,MAAM;EAC3BP,YAAY,EAAEJ,SAAS,CAACW,MAAM;EAC9BN,WAAW,EAAEL,SAAS,CAACW;AACzB,CAAC;AAEDV,wBAAwB,CAACW,SAAS,GAAGF,mBAAmB;AAExD,eAAeT,wBAAwB","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { getConfig } from '@edx/frontend-platform';
3
+ import { useIntl } from '@edx/frontend-platform/i18n';
4
+ import messages from './messages';
5
+ var LearningHeaderHelpLink = function LearningHeaderHelpLink() {
6
+ var intl = useIntl();
7
+ return /*#__PURE__*/React.createElement("a", {
8
+ className: "text-gray-700",
9
+ href: "".concat(getConfig().SUPPORT_URL)
10
+ }, intl.formatMessage(messages.help));
11
+ };
12
+ export default LearningHeaderHelpLink;
13
+ //# sourceMappingURL=LearningHeaderHelpLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningHeaderHelpLink.js","names":["React","getConfig","useIntl","messages","LearningHeaderHelpLink","intl","createElement","className","href","concat","SUPPORT_URL","formatMessage","help"],"sources":["../../src/learning-header/LearningHeaderHelpLink.jsx"],"sourcesContent":["import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport messages from './messages';\n\nconst LearningHeaderHelpLink = () => {\n const intl = useIntl();\n return (\n <a className=\"text-gray-700\" href={`${getConfig().SUPPORT_URL}`}>{intl.formatMessage(messages.help)}</a>\n );\n};\n\nexport default LearningHeaderHelpLink;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,OAAO,QAAQ,6BAA6B;AACrD,OAAOC,QAAQ,MAAM,YAAY;AAEjC,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;EACnC,IAAMC,IAAI,GAAGH,OAAO,CAAC,CAAC;EACtB,oBACEF,KAAA,CAAAM,aAAA;IAAGC,SAAS,EAAC,eAAe;IAACC,IAAI,KAAAC,MAAA,CAAKR,SAAS,CAAC,CAAC,CAACS,WAAW;EAAG,GAAEL,IAAI,CAACM,aAAa,CAACR,QAAQ,CAACS,IAAI,CAAK,CAAC;AAE5G,CAAC;AAED,eAAeR,sBAAsB","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Dropdown } from '@openedx/paragon';
4
+ var LearningHeaderUserMenuItems = function LearningHeaderUserMenuItems(_ref) {
5
+ var items = _ref.items;
6
+ return items.map(function (item) {
7
+ return /*#__PURE__*/React.createElement(Dropdown.Item, {
8
+ href: item.href
9
+ }, item.message);
10
+ });
11
+ };
12
+ export var learningHeaderUserMenuDataShape = {
13
+ items: PropTypes.arrayOf(PropTypes.shape({
14
+ message: PropTypes.string,
15
+ href: PropTypes.string
16
+ }))
17
+ };
18
+ LearningHeaderUserMenuItems.propTypes = learningHeaderUserMenuDataShape;
19
+ export default LearningHeaderUserMenuItems;
20
+ //# sourceMappingURL=LearningHeaderUserMenuItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningHeaderUserMenuItems.js","names":["React","PropTypes","Dropdown","LearningHeaderUserMenuItems","_ref","items","map","item","createElement","Item","href","message","learningHeaderUserMenuDataShape","arrayOf","shape","string","propTypes"],"sources":["../../src/learning-header/LearningHeaderUserMenuItems.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Dropdown } from '@openedx/paragon';\n\nconst LearningHeaderUserMenuItems = ({ items }) => items.map((item) => (\n <Dropdown.Item href={item.href}>\n {item.message}\n </Dropdown.Item>\n));\n\nexport const learningHeaderUserMenuDataShape = {\n items: PropTypes.arrayOf(PropTypes.shape({\n message: PropTypes.string,\n href: PropTypes.string,\n })),\n};\n\nLearningHeaderUserMenuItems.propTypes = learningHeaderUserMenuDataShape;\n\nexport default LearningHeaderUserMenuItems;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAAC,IAAA;EAAA,IAAMC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,OAAOA,KAAK,CAACC,GAAG,CAAC,UAACC,IAAI;IAAA,oBAChEP,KAAA,CAAAQ,aAAA,CAACN,QAAQ,CAACO,IAAI;MAACC,IAAI,EAAEH,IAAI,CAACG;IAAK,GAC5BH,IAAI,CAACI,OACO,CAAC;EAAA,CACjB,CAAC;AAAA;AAEF,OAAO,IAAMC,+BAA+B,GAAG;EAC7CP,KAAK,EAAEJ,SAAS,CAACY,OAAO,CAACZ,SAAS,CAACa,KAAK,CAAC;IACvCH,OAAO,EAAEV,SAAS,CAACc,MAAM;IACzBL,IAAI,EAAET,SAAS,CAACc;EAClB,CAAC,CAAC;AACJ,CAAC;AAEDZ,2BAA2B,CAACa,SAAS,GAAGJ,+BAA+B;AAEvE,eAAeT,2BAA2B","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Button } from '@openedx/paragon';
4
+ var LearningLoggedOutButtons = function LearningLoggedOutButtons(_ref) {
5
+ var buttonsInfo = _ref.buttonsInfo;
6
+ return buttonsInfo.map(function (buttonInfo) {
7
+ var _buttonInfo$variant;
8
+ return /*#__PURE__*/React.createElement(Button, {
9
+ className: "ml-3",
10
+ variant: (_buttonInfo$variant = buttonInfo.variant) !== null && _buttonInfo$variant !== void 0 ? _buttonInfo$variant : 'outline-primary',
11
+ href: buttonInfo.href
12
+ }, buttonInfo.message);
13
+ });
14
+ };
15
+ export var learningHeaderLoggedOutItemsDataShape = {
16
+ buttonsInfo: PropTypes.arrayOf(PropTypes.shape({
17
+ message: PropTypes.string,
18
+ href: PropTypes.string,
19
+ variant: PropTypes.string
20
+ }))
21
+ };
22
+ LearningLoggedOutButtons.propTypes = learningHeaderLoggedOutItemsDataShape;
23
+ export default LearningLoggedOutButtons;
24
+ //# sourceMappingURL=LearningLoggedOutButtons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningLoggedOutButtons.js","names":["React","PropTypes","Button","LearningLoggedOutButtons","_ref","buttonsInfo","map","buttonInfo","_buttonInfo$variant","createElement","className","variant","href","message","learningHeaderLoggedOutItemsDataShape","arrayOf","shape","string","propTypes"],"sources":["../../src/learning-header/LearningLoggedOutButtons.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Button } from '@openedx/paragon';\n\nconst LearningLoggedOutButtons = ({ buttonsInfo }) => buttonsInfo.map(buttonInfo => (\n <Button\n className=\"ml-3\"\n variant={buttonInfo.variant ?? 'outline-primary'}\n href={buttonInfo.href}\n >\n {buttonInfo.message}\n </Button>\n));\n\nexport const learningHeaderLoggedOutItemsDataShape = {\n buttonsInfo: PropTypes.arrayOf(PropTypes.shape({\n message: PropTypes.string,\n href: PropTypes.string,\n variant: PropTypes.string,\n })),\n};\n\nLearningLoggedOutButtons.propTypes = learningHeaderLoggedOutItemsDataShape;\n\nexport default LearningLoggedOutButtons;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAAC,IAAA;EAAA,IAAMC,WAAW,GAAAD,IAAA,CAAXC,WAAW;EAAA,OAAOA,WAAW,CAACC,GAAG,CAAC,UAAAC,UAAU;IAAA,IAAAC,mBAAA;IAAA,oBAC9ER,KAAA,CAAAS,aAAA,CAACP,MAAM;MACLQ,SAAS,EAAC,MAAM;MAChBC,OAAO,GAAAH,mBAAA,GAAED,UAAU,CAACI,OAAO,cAAAH,mBAAA,cAAAA,mBAAA,GAAI,iBAAkB;MACjDI,IAAI,EAAEL,UAAU,CAACK;IAAK,GAErBL,UAAU,CAACM,OACN,CAAC;EAAA,CACV,CAAC;AAAA;AAEF,OAAO,IAAMC,qCAAqC,GAAG;EACnDT,WAAW,EAAEJ,SAAS,CAACc,OAAO,CAACd,SAAS,CAACe,KAAK,CAAC;IAC7CH,OAAO,EAAEZ,SAAS,CAACgB,MAAM;IACzBL,IAAI,EAAEX,SAAS,CAACgB,MAAM;IACtBN,OAAO,EAAEV,SAAS,CAACgB;EACrB,CAAC,CAAC;AACJ,CAAC;AAEDd,wBAAwB,CAACe,SAAS,GAAGJ,qCAAqC;AAE1E,eAAeX,wBAAwB","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
3
+ import PropTypes from 'prop-types';
4
+ var LearningUserMenuToggle = function LearningUserMenuToggle(_ref) {
5
+ var label = _ref.label,
6
+ icon = _ref.icon;
7
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
8
+ icon: icon,
9
+ className: "d-md-none",
10
+ size: "lg"
11
+ }), /*#__PURE__*/React.createElement("span", {
12
+ "data-hj-suppress": true,
13
+ className: "d-none d-md-inline"
14
+ }, label));
15
+ };
16
+ export var LearningUserMenuTogglePropTypes = {
17
+ label: PropTypes.string.isRequired,
18
+ // Full shape available by examining @fortawesome/fontawesome-common-types/index.d.ts.
19
+ icon: PropTypes.shape({
20
+ prefix: PropTypes.string.isRequired,
21
+ iconName: PropTypes.string.isRequired
22
+ }).isRequired
23
+ };
24
+ LearningUserMenuToggle.propTypes = LearningUserMenuTogglePropTypes;
25
+ export default LearningUserMenuToggle;
26
+ //# sourceMappingURL=LearningUserMenuToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningUserMenuToggle.js","names":["React","FontAwesomeIcon","PropTypes","LearningUserMenuToggle","_ref","label","icon","createElement","Fragment","className","size","LearningUserMenuTogglePropTypes","string","isRequired","shape","prefix","iconName","propTypes"],"sources":["../../src/learning-header/LearningUserMenuToggle.jsx"],"sourcesContent":["import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport PropTypes from 'prop-types';\n\nconst LearningUserMenuToggle = ({\n label,\n icon,\n}) => (\n <>\n <FontAwesomeIcon icon={icon} className=\"d-md-none\" size=\"lg\" />\n <span data-hj-suppress className=\"d-none d-md-inline\">\n {label}\n </span>\n </>\n);\n\nexport const LearningUserMenuTogglePropTypes = {\n label: PropTypes.string.isRequired,\n // Full shape available by examining @fortawesome/fontawesome-common-types/index.d.ts.\n icon: PropTypes.shape({\n prefix: PropTypes.string.isRequired,\n iconName: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nLearningUserMenuToggle.propTypes = LearningUserMenuTogglePropTypes;\n\nexport default LearningUserMenuToggle;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,gCAAgC;AAChE,OAAOC,SAAS,MAAM,YAAY;AAElC,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,IAAA;EAAA,IAC1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;EAAA,oBAEJN,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAQ,QAAA,qBACER,KAAA,CAAAO,aAAA,CAACN,eAAe;IAACK,IAAI,EAAEA,IAAK;IAACG,SAAS,EAAC,WAAW;IAACC,IAAI,EAAC;EAAI,CAAE,CAAC,eAC/DV,KAAA,CAAAO,aAAA;IAAM,wBAAgB;IAACE,SAAS,EAAC;EAAoB,GAClDJ,KACG,CACN,CAAC;AAAA,CACJ;AAED,OAAO,IAAMM,+BAA+B,GAAG;EAC7CN,KAAK,EAAEH,SAAS,CAACU,MAAM,CAACC,UAAU;EAClC;EACAP,IAAI,EAAEJ,SAAS,CAACY,KAAK,CAAC;IACpBC,MAAM,EAAEb,SAAS,CAACU,MAAM,CAACC,UAAU;IACnCG,QAAQ,EAAEd,SAAS,CAACU,MAAM,CAACC;EAC7B,CAAC,CAAC,CAACA;AACL,CAAC;AAEDV,sBAAsB,CAACc,SAAS,GAAGN,+BAA+B;AAElE,eAAeR,sBAAsB","ignoreList":[]}