@nauedu/frontend-component-header 20.1.0 → 20.1.1

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/Header.js +13 -9
  2. package/dist/Header.js.map +1 -1
  3. package/dist/Header.test.jsx +3 -0
  4. package/dist/Icons.js +1 -1
  5. package/dist/LanguageSelector/data/api.js +13 -5
  6. package/dist/LanguageSelector/data/api.js.map +1 -1
  7. package/dist/LanguageSelector/index.js +12 -4
  8. package/dist/LanguageSelector/index.js.map +1 -1
  9. package/dist/Logo.js +10 -23
  10. package/dist/Logo.js.map +1 -1
  11. package/dist/Menu/Menu.js +11 -11
  12. package/dist/Menu/Menu.js.map +1 -1
  13. package/dist/Menu/menu.scss +6 -6
  14. package/dist/__snapshots__/Header.test.jsx.snap +2 -0
  15. package/dist/desktop-header/DesktopHeader.js +172 -0
  16. package/dist/desktop-header/DesktopHeader.js.map +1 -0
  17. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js +51 -0
  18. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js.map +1 -0
  19. package/dist/desktop-header/DesktopHeaderUserMenu.js +49 -0
  20. package/dist/desktop-header/DesktopHeaderUserMenu.js.map +1 -0
  21. package/dist/desktop-header/DesktopLoggedOutItems.js +22 -0
  22. package/dist/desktop-header/DesktopLoggedOutItems.js.map +1 -0
  23. package/dist/desktop-header/DesktopUserMenuToggle.js +25 -0
  24. package/dist/desktop-header/DesktopUserMenuToggle.js.map +1 -0
  25. package/dist/frontend-platform.d.ts +41 -0
  26. package/dist/index.scss +27 -15
  27. package/dist/learning-header/AnonymousUserMenu.js +11 -8
  28. package/dist/learning-header/AnonymousUserMenu.js.map +1 -1
  29. package/dist/learning-header/AuthenticatedUserDropdown.js +32 -24
  30. package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -1
  31. package/dist/learning-header/LearningHeader.js +17 -15
  32. package/dist/learning-header/LearningHeader.js.map +1 -1
  33. package/dist/learning-header/LearningHeaderCourseInfo.js +24 -0
  34. package/dist/learning-header/LearningHeaderCourseInfo.js.map +1 -0
  35. package/dist/learning-header/LearningHeaderHelpLink.js +13 -0
  36. package/dist/learning-header/LearningHeaderHelpLink.js.map +1 -0
  37. package/dist/learning-header/LearningHeaderUserMenuItems.js +20 -0
  38. package/dist/learning-header/LearningHeaderUserMenuItems.js.map +1 -0
  39. package/dist/learning-header/LearningLoggedOutButtons.js +24 -0
  40. package/dist/learning-header/LearningLoggedOutButtons.js.map +1 -0
  41. package/dist/learning-header/LearningUserMenuToggle.js +26 -0
  42. package/dist/learning-header/LearningUserMenuToggle.js.map +1 -0
  43. package/dist/learning-header/data/api.js +12 -4
  44. package/dist/learning-header/data/api.js.map +1 -1
  45. package/dist/learning-header/data/api.test.js +92 -95
  46. package/dist/learning-header/data/api.test.js.map +1 -1
  47. package/dist/learning-header/messages.js +5 -0
  48. package/dist/learning-header/messages.js.map +1 -1
  49. package/dist/mobile-header/MobileHeader.js +197 -0
  50. package/dist/mobile-header/MobileHeader.js.map +1 -0
  51. package/dist/mobile-header/MobileHeaderMainMenu.js +46 -0
  52. package/dist/mobile-header/MobileHeaderMainMenu.js.map +1 -0
  53. package/dist/mobile-header/MobileHeaderUserMenu.js +38 -0
  54. package/dist/mobile-header/MobileHeaderUserMenu.js.map +1 -0
  55. package/dist/mobile-header/MobileLoggedOutItems.js +27 -0
  56. package/dist/mobile-header/MobileLoggedOutItems.js.map +1 -0
  57. package/dist/mobile-header/MobileUserMenuToggle.js +19 -0
  58. package/dist/mobile-header/MobileUserMenuToggle.js.map +1 -0
  59. package/dist/plugin-slots/CourseInfoSlot/README.md +128 -0
  60. package/dist/plugin-slots/CourseInfoSlot/images/add_custom_components_before_and_after_course_info.png +0 -0
  61. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_info_with_custom_component.png +0 -0
  62. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_title.png +0 -0
  63. package/dist/plugin-slots/CourseInfoSlot/index.js +32 -0
  64. package/dist/plugin-slots/CourseInfoSlot/index.js.map +1 -0
  65. package/dist/plugin-slots/DesktopHeaderSlot/README.md +44 -0
  66. package/dist/plugin-slots/DesktopHeaderSlot/images/desktop_header_custom_component.png +0 -0
  67. package/dist/plugin-slots/DesktopHeaderSlot/index.js +16 -0
  68. package/dist/plugin-slots/DesktopHeaderSlot/index.js.map +1 -0
  69. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/README.md +137 -0
  70. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_component.png +0 -0
  71. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_components_before_after.png +0 -0
  72. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_modify_items.png +0 -0
  73. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js +20 -0
  74. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js.map +1 -0
  75. package/dist/plugin-slots/DesktopMainMenuSlot/README.md +137 -0
  76. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_component.png +0 -0
  77. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_components_before_after.png +0 -0
  78. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_modify_items.png +0 -0
  79. package/dist/plugin-slots/DesktopMainMenuSlot/index.js +20 -0
  80. package/dist/plugin-slots/DesktopMainMenuSlot/index.js.map +1 -0
  81. package/dist/plugin-slots/DesktopSecondaryMenuSlot/README.md +132 -0
  82. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_component.png +0 -0
  83. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_components_before_after.png +0 -0
  84. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_modify_items.png +0 -0
  85. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js +20 -0
  86. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js.map +1 -0
  87. package/dist/plugin-slots/DesktopUserMenuSlot/README.md +144 -0
  88. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_component.png +0 -0
  89. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_components_before_after.png +0 -0
  90. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_modify_items.png +0 -0
  91. package/dist/plugin-slots/DesktopUserMenuSlot/index.js +20 -0
  92. package/dist/plugin-slots/DesktopUserMenuSlot/index.js.map +1 -0
  93. package/dist/plugin-slots/DesktopUserMenuToggleSlot/README.md +74 -0
  94. package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_custom_component.png +0 -0
  95. package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_modified_toggle.png +0 -0
  96. package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js +19 -0
  97. package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js.map +1 -0
  98. package/dist/plugin-slots/LearningHelpSlot/README.md +44 -0
  99. package/dist/plugin-slots/LearningHelpSlot/images/learning_help_custom_component.png +0 -0
  100. package/dist/plugin-slots/LearningHelpSlot/index.js +11 -0
  101. package/dist/plugin-slots/LearningHelpSlot/index.js.map +1 -0
  102. package/dist/plugin-slots/LearningLoggedOutItemsSlot/README.md +135 -0
  103. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_component.png +0 -0
  104. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_components_before_after.png +0 -0
  105. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_modified_items.png +0 -0
  106. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js +18 -0
  107. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js.map +1 -0
  108. package/dist/plugin-slots/LearningUserMenuSlot/README.md +133 -0
  109. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_component.png +0 -0
  110. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_components_before_after.png +0 -0
  111. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_modified_items.png +0 -0
  112. package/dist/plugin-slots/LearningUserMenuSlot/index.js +18 -0
  113. package/dist/plugin-slots/LearningUserMenuSlot/index.js.map +1 -0
  114. package/dist/plugin-slots/LearningUserMenuToggleSlot/README.md +74 -0
  115. package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_custom_component.png +0 -0
  116. package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_modified_items.png +0 -0
  117. package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js +19 -0
  118. package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js.map +1 -0
  119. package/dist/plugin-slots/LogoSlot/README.md +72 -0
  120. package/dist/plugin-slots/LogoSlot/index.js +27 -0
  121. package/dist/plugin-slots/LogoSlot/index.js.map +1 -0
  122. package/dist/plugin-slots/MobileHeaderSlot/README.md +44 -0
  123. package/dist/plugin-slots/MobileHeaderSlot/images/mobile_header_custom_component.png +0 -0
  124. package/dist/plugin-slots/MobileHeaderSlot/index.js +16 -0
  125. package/dist/plugin-slots/MobileHeaderSlot/index.js.map +1 -0
  126. package/dist/plugin-slots/MobileLoggedOutItemsSlot/README.md +136 -0
  127. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_component.png +0 -0
  128. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_components_before_after.png +0 -0
  129. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_modify_items.png +0 -0
  130. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js +20 -0
  131. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js.map +1 -0
  132. package/dist/plugin-slots/MobileMainMenuSlot/README.md +136 -0
  133. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_component.png +0 -0
  134. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_components_before_after.png +0 -0
  135. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_modify_items.png +0 -0
  136. package/dist/plugin-slots/MobileMainMenuSlot/index.js +20 -0
  137. package/dist/plugin-slots/MobileMainMenuSlot/index.js.map +1 -0
  138. package/dist/plugin-slots/MobileUserMenuSlot/README.md +144 -0
  139. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_component.png +0 -0
  140. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_components_before_after.png +0 -0
  141. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_modify_items.png +0 -0
  142. package/dist/plugin-slots/MobileUserMenuSlot/index.js +20 -0
  143. package/dist/plugin-slots/MobileUserMenuSlot/index.js.map +1 -0
  144. package/dist/plugin-slots/MobileUserMenuToggleSlot/README.md +74 -0
  145. package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_custom_component.png +0 -0
  146. package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_modified_items.png +0 -0
  147. package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js +19 -0
  148. package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js.map +1 -0
  149. package/dist/plugin-slots/README.md +26 -0
  150. package/dist/setupTest.js +0 -2
  151. package/dist/studio-header/BrandNav.test.tsx +40 -0
  152. package/dist/studio-header/BrandNav.tsx +25 -0
  153. package/dist/studio-header/CourseLockUp.test.tsx +59 -0
  154. package/dist/studio-header/CourseLockUp.tsx +56 -0
  155. package/dist/studio-header/HeaderBody.test.tsx +102 -0
  156. package/dist/studio-header/HeaderBody.tsx +196 -0
  157. package/dist/studio-header/MobileHeader.tsx +74 -0
  158. package/dist/studio-header/MobileMenu.test.tsx +81 -0
  159. package/dist/studio-header/MobileMenu.tsx +50 -0
  160. package/dist/studio-header/NavDropdownMenu.test.tsx +67 -0
  161. package/dist/studio-header/NavDropdownMenu.tsx +42 -0
  162. package/dist/studio-header/StudioHeader.scss +8 -10
  163. package/dist/studio-header/StudioHeader.test.tsx +220 -0
  164. package/dist/studio-header/StudioHeader.tsx +84 -0
  165. package/dist/studio-header/UserMenu.tsx +69 -0
  166. package/dist/studio-header/{index.js → index.ts} +1 -1
  167. package/dist/studio-header/{messages.js → messages.ts} +15 -14
  168. package/dist/studio-header/utils.ts +37 -0
  169. package/dist/test-utils.js +12 -4
  170. package/dist/test-utils.js.map +1 -1
  171. package/package.json +1 -1
  172. package/dist/DesktopHeader.js +0 -242
  173. package/dist/DesktopHeader.js.map +0 -1
  174. package/dist/MobileHeader.js +0 -244
  175. package/dist/MobileHeader.js.map +0 -1
  176. package/dist/studio-header/BrandNav.js +0 -21
  177. package/dist/studio-header/BrandNav.js.map +0 -1
  178. package/dist/studio-header/CourseLockUp.js +0 -45
  179. package/dist/studio-header/CourseLockUp.js.map +0 -1
  180. package/dist/studio-header/HeaderBody.js +0 -131
  181. package/dist/studio-header/HeaderBody.js.map +0 -1
  182. package/dist/studio-header/MobileHeader.js +0 -79
  183. package/dist/studio-header/MobileHeader.js.map +0 -1
  184. package/dist/studio-header/MobileMenu.js +0 -45
  185. package/dist/studio-header/MobileMenu.js.map +0 -1
  186. package/dist/studio-header/NavDropdownMenu.js +0 -30
  187. package/dist/studio-header/NavDropdownMenu.js.map +0 -1
  188. package/dist/studio-header/StudioHeader.js +0 -72
  189. package/dist/studio-header/StudioHeader.js.map +0 -1
  190. package/dist/studio-header/UserMenu.js +0 -55
  191. package/dist/studio-header/UserMenu.js.map +0 -1
  192. package/dist/studio-header/index.js.map +0 -1
  193. package/dist/studio-header/messages.js.map +0 -1
  194. package/dist/studio-header/utils.js +0 -29
  195. package/dist/studio-header/utils.js.map +0 -1
@@ -0,0 +1,220 @@
1
+ /* eslint-disable react/prop-types */
2
+ import React, { useMemo } from 'react';
3
+ import {
4
+ render,
5
+ fireEvent,
6
+ waitFor,
7
+ } from '@testing-library/react';
8
+
9
+ import { AppContext } from '@edx/frontend-platform/react';
10
+ import { IntlProvider } from '@edx/frontend-platform/i18n';
11
+ import { Context as ResponsiveContext } from 'react-responsive';
12
+ import { MemoryRouter } from 'react-router-dom';
13
+
14
+ import StudioHeader from './StudioHeader';
15
+ import messages from './messages';
16
+
17
+ const authenticatedUser = {
18
+ userId: 3,
19
+ username: 'abc123',
20
+ administrator: true,
21
+ roles: [],
22
+ avatar: '/imges/test.png',
23
+ };
24
+ let currentUser;
25
+ let screenWidth = 1280;
26
+
27
+ const RootWrapper = ({
28
+ ...props
29
+ }: React.ComponentProps<typeof StudioHeader>) => {
30
+ const appContextValue = useMemo(() => ({
31
+ authenticatedUser: currentUser,
32
+ config: {
33
+ LOGOUT_URL: process.env.LOGOUT_URL,
34
+ LOGO_URL: process.env.LOGO_URL,
35
+ SITE_NAME: process.env.SITE_NAME,
36
+ STUDIO_BASE_URL: process.env.STUDIO_BASE_URL,
37
+ LOGIN_URL: process.env.LOGIN_URL,
38
+ },
39
+ }), []);
40
+ const responsiveContextValue = useMemo(() => ({ width: screenWidth }), []);
41
+
42
+ return (
43
+ // eslint-disable-next-line react/jsx-no-constructed-context-values, react/prop-types
44
+ <MemoryRouter>
45
+ <IntlProvider locale="en">
46
+ <AppContext.Provider value={appContextValue}>
47
+ <ResponsiveContext.Provider value={responsiveContextValue}>
48
+ <StudioHeader
49
+ {...props}
50
+ />
51
+ </ResponsiveContext.Provider>
52
+ </AppContext.Provider>
53
+ </IntlProvider>
54
+ </MemoryRouter>
55
+ );
56
+ };
57
+
58
+ const props: React.ComponentProps<typeof StudioHeader> = {
59
+ number: '123',
60
+ org: 'Ed',
61
+ title: 'test',
62
+ mainMenuDropdowns: [
63
+ {
64
+ id: 'testId',
65
+ buttonTitle: 'test',
66
+ items: [
67
+ {
68
+ title: 'link',
69
+ href: '#',
70
+ },
71
+ ],
72
+ },
73
+ ],
74
+ outlineLink: 'tEsTLInK',
75
+ searchButtonAction: null,
76
+ isNewHomePage: true,
77
+ // These default values shouldn't be needed but typescript is confused by propTypes; can remove after converting
78
+ // from propTypes to TypeScript:
79
+ containerProps: {},
80
+ isHiddenMainMenu: false,
81
+ };
82
+
83
+ describe('Header', () => {
84
+ beforeEach(() => {
85
+ jest.clearAllMocks();
86
+ currentUser = authenticatedUser;
87
+ });
88
+ describe('desktop', () => {
89
+ it('course lock up should be visible', () => {
90
+ const { getByTestId } = render(<RootWrapper {...props} />);
91
+ const courseLockUpBlock = getByTestId('course-lock-up-block');
92
+
93
+ expect(courseLockUpBlock).toBeVisible();
94
+ });
95
+
96
+ it('mobile menu should not be visible', () => {
97
+ const { queryByTestId } = render(<RootWrapper {...props} />);
98
+ const mobileMenuButton = queryByTestId('mobile-menu-button');
99
+
100
+ expect(mobileMenuButton).toBeNull();
101
+ });
102
+
103
+ it('desktop menu should be visible', () => {
104
+ const { getByTestId } = render(<RootWrapper {...props} />);
105
+ const desktopMenu = getByTestId('desktop-menu');
106
+
107
+ expect(desktopMenu).toBeVisible();
108
+ });
109
+
110
+ it('should render one dropdown', async () => {
111
+ const { getAllByRole, getByText } = render(<RootWrapper {...props} />);
112
+ const dropdownMenu = getAllByRole('button')[0];
113
+
114
+ expect(dropdownMenu).toBeVisible();
115
+
116
+ await waitFor(() => fireEvent.click(dropdownMenu));
117
+ const dropdownOption = getByText('link');
118
+
119
+ expect(dropdownOption).toBeVisible();
120
+ });
121
+
122
+ it('maintenance should not be in user menu', async () => {
123
+ currentUser = { ...authenticatedUser, administrator: false };
124
+ const { getAllByRole, queryByText } = render(<RootWrapper {...props} />);
125
+ const userMenu = getAllByRole('button')[1];
126
+ await waitFor(() => fireEvent.click(userMenu));
127
+ const maintenanceButton = queryByText(messages['header.user.menu.maintenance'].defaultMessage);
128
+
129
+ expect(maintenanceButton).toBeNull();
130
+ });
131
+
132
+ it('user menu should use avatar icon', async () => {
133
+ currentUser = { ...authenticatedUser, avatar: null };
134
+ const { getByTestId } = render(<RootWrapper {...props} />);
135
+ const avatarIcon = getByTestId('avatar-icon');
136
+
137
+ expect(avatarIcon).toBeVisible();
138
+ });
139
+
140
+ it('should hide nav items if prop isHiddenMainMenu true', async () => {
141
+ const initialProps = { ...props, isHiddenMainMenu: true };
142
+ const { queryByTestId } = render(<RootWrapper {...initialProps} />);
143
+ const desktopMenu = queryByTestId('desktop-menu');
144
+ const mobileMenuButton = queryByTestId('mobile-menu-button');
145
+
146
+ expect(mobileMenuButton).toBeNull();
147
+
148
+ expect(desktopMenu).toBeNull();
149
+ });
150
+
151
+ it('should show search button', async () => {
152
+ const testProps = { ...props, searchButtonAction: () => undefined };
153
+ const { getByRole } = render(<RootWrapper {...testProps} />);
154
+ const searchButton = getByRole('button', { name: 'Search content' });
155
+
156
+ expect(searchButton).toBeVisible();
157
+ });
158
+
159
+ it('should not show search button', async () => {
160
+ const testProps = { ...props, searchButtonAction: null };
161
+ const { queryByRole } = render(<RootWrapper {...testProps} />);
162
+ expect(queryByRole('button', { name: 'Search content' })).not.toBeInTheDocument();
163
+ });
164
+ });
165
+
166
+ describe('mobile', () => {
167
+ beforeEach(() => { screenWidth = 500; });
168
+ it('course lock up should not be visible', async () => {
169
+ const { queryByTestId } = render(<RootWrapper {...props} />);
170
+ const courseLockUpBlock = queryByTestId('course-lock-up-block');
171
+
172
+ expect(courseLockUpBlock).toBeNull();
173
+ });
174
+
175
+ it('mobile menu should be visible', async () => {
176
+ const { getByTestId } = render(<RootWrapper {...props} />);
177
+ const mobileMenuButton = getByTestId('mobile-menu-button');
178
+
179
+ expect(mobileMenuButton).toBeVisible();
180
+ await waitFor(() => fireEvent.click(mobileMenuButton));
181
+ const mobileMenu = getByTestId('mobile-menu');
182
+
183
+ expect(mobileMenu).toBeVisible();
184
+ });
185
+
186
+ it('desktop menu should not be visible', () => {
187
+ const { queryByTestId } = render(<RootWrapper {...props} />);
188
+ const desktopMenu = queryByTestId('desktop-menu');
189
+
190
+ expect(desktopMenu).toBeNull();
191
+ });
192
+
193
+ it('maintenance should be in user menu', async () => {
194
+ const { getAllByRole, getByText } = render(<RootWrapper {...props} />);
195
+ const userMenu = getAllByRole('button')[1];
196
+ await waitFor(() => fireEvent.click(userMenu));
197
+ const maintenanceButton = getByText(messages['header.user.menu.maintenance'].defaultMessage);
198
+
199
+ expect(maintenanceButton).toBeVisible();
200
+ });
201
+
202
+ it('user menu should use avatar image', async () => {
203
+ const { getByTestId } = render(<RootWrapper {...props} />);
204
+ const avatarImage = getByTestId('avatar-image');
205
+
206
+ expect(avatarImage).toBeVisible();
207
+ });
208
+
209
+ it('should hide nav items if prop isHiddenMainMenu true', async () => {
210
+ const initialProps = { ...props, isHiddenMainMenu: true };
211
+ const { queryByTestId } = render(<RootWrapper {...initialProps} />);
212
+ const desktopMenu = queryByTestId('desktop-menu');
213
+ const mobileMenuButton = queryByTestId('mobile-menu-button');
214
+
215
+ expect(mobileMenuButton).toBeNull();
216
+
217
+ expect(desktopMenu).toBeNull();
218
+ });
219
+ });
220
+ });
@@ -0,0 +1,84 @@
1
+ import React, { useContext } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Responsive from 'react-responsive';
4
+ import { AppContext } from '@edx/frontend-platform/react';
5
+ import { ensureConfig } from '@edx/frontend-platform';
6
+
7
+ import MobileHeader from './MobileHeader';
8
+ import HeaderBody from './HeaderBody';
9
+
10
+ ensureConfig([
11
+ 'STUDIO_BASE_URL',
12
+ 'SITE_NAME',
13
+ 'LOGOUT_URL',
14
+ 'LOGIN_URL',
15
+ 'LOGO_URL',
16
+ ], 'Studio Header component');
17
+
18
+ const StudioHeader = ({
19
+ number, org, title, containerProps, isHiddenMainMenu, mainMenuDropdowns,
20
+ outlineLink, searchButtonAction, isNewHomePage,
21
+ }) => {
22
+ // @ts-expect-error - frontend-platform doesn't yet have type information :/
23
+ const { authenticatedUser, config } = useContext(AppContext);
24
+ const props = {
25
+ logo: config.LOGO_URL,
26
+ logoAltText: `Studio ${config.SITE_NAME}`,
27
+ number,
28
+ org,
29
+ title,
30
+ containerProps,
31
+ username: authenticatedUser?.username,
32
+ isAdmin: authenticatedUser?.administrator,
33
+ authenticatedUserAvatar: authenticatedUser?.avatar,
34
+ studioBaseUrl: isNewHomePage ? '/home' : config.STUDIO_BASE_URL,
35
+ logoutUrl: config.LOGOUT_URL,
36
+ isHiddenMainMenu,
37
+ mainMenuDropdowns,
38
+ outlineLink,
39
+ searchButtonAction,
40
+ };
41
+
42
+ return (
43
+ <div className="studio-header">
44
+ <a className="nav-skip sr-only sr-only-focusable" href="#main">Skip to content</a>
45
+ <Responsive maxWidth={841}>
46
+ <MobileHeader {...props} />
47
+ </Responsive>
48
+ <Responsive minWidth={842}>
49
+ <HeaderBody {...props} />
50
+ </Responsive>
51
+ </div>
52
+ );
53
+ };
54
+
55
+ StudioHeader.propTypes = {
56
+ number: PropTypes.string,
57
+ org: PropTypes.string,
58
+ title: PropTypes.string.isRequired,
59
+ containerProps: HeaderBody.propTypes.containerProps,
60
+ isHiddenMainMenu: PropTypes.bool,
61
+ mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({
62
+ id: PropTypes.string,
63
+ buttonTitle: PropTypes.node,
64
+ items: PropTypes.arrayOf(PropTypes.shape({
65
+ href: PropTypes.string,
66
+ title: PropTypes.node,
67
+ })),
68
+ })),
69
+ outlineLink: PropTypes.string,
70
+ searchButtonAction: PropTypes.func,
71
+ isNewHomePage: PropTypes.bool.isRequired,
72
+ };
73
+
74
+ StudioHeader.defaultProps = {
75
+ number: '',
76
+ org: '',
77
+ containerProps: {},
78
+ isHiddenMainMenu: false,
79
+ mainMenuDropdowns: [],
80
+ outlineLink: null,
81
+ searchButtonAction: null,
82
+ };
83
+
84
+ export default StudioHeader;
@@ -0,0 +1,69 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
4
+ import {
5
+ Avatar,
6
+ } from '@openedx/paragon';
7
+ import NavDropdownMenu from './NavDropdownMenu';
8
+ import getUserMenuItems from './utils';
9
+
10
+ const UserMenu = ({
11
+ username,
12
+ studioBaseUrl,
13
+ logoutUrl,
14
+ authenticatedUserAvatar,
15
+ isMobile,
16
+ isAdmin,
17
+ // injected
18
+ intl,
19
+ }) => {
20
+ const avatar = authenticatedUserAvatar ? (
21
+ <img
22
+ className="d-block w-100 h-100"
23
+ src={authenticatedUserAvatar}
24
+ alt={username}
25
+ data-testid="avatar-image"
26
+ />
27
+ ) : (
28
+ <Avatar
29
+ size="sm"
30
+ className="mr-2"
31
+ alt={username}
32
+ data-testid="avatar-icon"
33
+ />
34
+ );
35
+ const title = isMobile ? avatar : <>{avatar}{username}</>;
36
+
37
+ return (
38
+ <NavDropdownMenu
39
+ buttonTitle={title}
40
+ id="user-dropdown-menu"
41
+ items={getUserMenuItems({
42
+ studioBaseUrl,
43
+ logoutUrl,
44
+ intl,
45
+ isAdmin,
46
+ })}
47
+ />
48
+ );
49
+ };
50
+
51
+ UserMenu.propTypes = {
52
+ username: PropTypes.string,
53
+ studioBaseUrl: PropTypes.string.isRequired,
54
+ logoutUrl: PropTypes.string.isRequired,
55
+ authenticatedUserAvatar: PropTypes.string,
56
+ isMobile: PropTypes.bool,
57
+ isAdmin: PropTypes.bool,
58
+ // injected
59
+ intl: intlShape.isRequired,
60
+ };
61
+
62
+ UserMenu.defaultProps = {
63
+ isMobile: false,
64
+ isAdmin: false,
65
+ authenticatedUserAvatar: null,
66
+ username: null,
67
+ };
68
+
69
+ export default injectIntl(UserMenu);
@@ -1,3 +1,3 @@
1
1
  import StudioHeader from './StudioHeader';
2
+
2
3
  export default StudioHeader;
3
- //# sourceMappingURL=index.js.map
@@ -1,60 +1,61 @@
1
1
  import { defineMessages } from '@edx/frontend-platform/i18n';
2
- var messages = defineMessages({
2
+
3
+ const messages = defineMessages({
3
4
  'header.user.menu.studio': {
4
5
  id: 'header.user.menu.studio',
5
6
  defaultMessage: 'Studio Home',
6
- description: 'Link to Studio Home'
7
+ description: 'Link to Studio Home',
7
8
  },
8
9
  'header.user.menu.maintenance': {
9
10
  id: 'header.user.menu.maintenance',
10
11
  defaultMessage: 'Maintenance',
11
- description: 'Link to the Studio maintenance page'
12
+ description: 'Link to the Studio maintenance page',
12
13
  },
13
14
  'header.user.menu.logout': {
14
15
  id: 'header.user.menu.logout',
15
16
  defaultMessage: 'Logout',
16
- description: 'Logout link'
17
+ description: 'Logout link',
17
18
  },
18
19
  'header.label.account.menu': {
19
20
  id: 'header.label.account.menu',
20
21
  defaultMessage: 'Account Menu',
21
- description: 'The aria label for the account menu trigger'
22
+ description: 'The aria label for the account menu trigger',
22
23
  },
23
24
  'header.label.account.menu.for': {
24
25
  id: 'header.label.account.menu.for',
25
26
  defaultMessage: 'Account menu for {username}',
26
- description: 'The aria label for the account menu trigger when the username is displayed in it'
27
+ description: 'The aria label for the account menu trigger when the username is displayed in it',
27
28
  },
28
29
  'header.label.main.nav': {
29
30
  id: 'header.label.main.nav',
30
31
  defaultMessage: 'Main',
31
- description: 'The aria label for the main menu nav'
32
+ description: 'The aria label for the main menu nav',
32
33
  },
33
34
  'header.label.main.menu': {
34
35
  id: 'header.label.main.menu',
35
36
  defaultMessage: 'Main Menu',
36
- description: 'The aria label for the main menu trigger'
37
+ description: 'The aria label for the main menu trigger',
37
38
  },
38
39
  'header.label.main.header': {
39
40
  id: 'header.label.main.header',
40
41
  defaultMessage: 'Main',
41
- description: 'The aria label for the main header'
42
+ description: 'The aria label for the main header',
42
43
  },
43
44
  'header.label.secondary.nav': {
44
45
  id: 'header.label.secondary.nav',
45
46
  defaultMessage: 'Secondary',
46
- description: 'The aria label for the seconary nav'
47
+ description: 'The aria label for the seconary nav',
47
48
  },
48
49
  'header.label.courseOutline': {
49
50
  id: 'header.label.courseOutline',
50
51
  defaultMessage: 'Back to course outline in Studio',
51
- description: 'The aria label for the link back to the Studio Course Outline'
52
+ description: 'The aria label for the link back to the Studio Course Outline',
52
53
  },
53
54
  'header.label.search.nav': {
54
55
  id: 'header.label.search.nav',
55
56
  defaultMessage: 'Search content',
56
- description: 'The aria label for the search content button nav'
57
- }
57
+ description: 'The aria label for the search content button nav',
58
+ },
58
59
  });
60
+
59
61
  export default messages;
60
- //# sourceMappingURL=messages.js.map
@@ -0,0 +1,37 @@
1
+ import { getConfig } from '@edx/frontend-platform';
2
+ import messages from './messages';
3
+
4
+ const getUserMenuItems = ({
5
+ studioBaseUrl,
6
+ logoutUrl,
7
+ intl,
8
+ isAdmin,
9
+ }) => {
10
+ let items = [
11
+ {
12
+ href: `${studioBaseUrl}`,
13
+ title: intl.formatMessage(messages['header.user.menu.studio']),
14
+ }, {
15
+ href: `${logoutUrl}`,
16
+ title: intl.formatMessage(messages['header.user.menu.logout']),
17
+ },
18
+ ];
19
+ if (isAdmin) {
20
+ items = [
21
+ {
22
+ href: `${studioBaseUrl}`,
23
+ title: intl.formatMessage(messages['header.user.menu.studio']),
24
+ }, {
25
+ href: `${getConfig().STUDIO_BASE_URL}/maintenance`,
26
+ title: intl.formatMessage(messages['header.user.menu.maintenance']),
27
+ }, {
28
+ href: `${logoutUrl}`,
29
+ title: intl.formatMessage(messages['header.user.menu.logout']),
30
+ },
31
+ ];
32
+ }
33
+
34
+ return items;
35
+ };
36
+
37
+ export default getUserMenuItems;
@@ -1,9 +1,17 @@
1
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 _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
2
+ function _regeneratorRuntime() { "use strict"; var r = _regenerator(), e = r.m(_regeneratorRuntime), t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { "throw": 1, "return": 2, "break": 3, "continue": 3 }; function a(r) { var e, t; return function (n) { e || (e = { stop: function stop() { return t(n.a, 2); }, "catch": function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, _regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (_regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && o.reverse()); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new _OverloadYield(r, e); }, AsyncIterator: _regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u); }, keys: _regeneratorKeys, values: _regeneratorValues }; })(); }
3
+ function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
4
+ function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; }
5
+ function _regeneratorAsync(n, e, r, t, o) { var a = _regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function (n) { return n.done ? n.value : a.next(); }); }
6
+ function _regeneratorAsyncGen(r, e, t, o, n) { return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || Promise); }
7
+ function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c = t[r](o), u = c.value; return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) { n("next", t, i, f); }, function (t) { n("throw", t, i, f); }) : e.resolve(u).then(function (t) { c.value = t, i(c); }, function (t) { return n("throw", t, i, f); }); } catch (t) { f(t); } } var r; this.next || (_regeneratorDefine2(_regeneratorAsyncIterator.prototype), _regeneratorDefine2(_regeneratorAsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () { return this; })), _regeneratorDefine2(this, "_invoke", function (t, o, i) { function f() { return new e(function (e, r) { n(t, i, e, r); }); } return r = r ? r.then(f, f) : f(); }, !0); }
8
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
9
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
10
+ function _OverloadYield(e, d) { this.v = e, this.k = d; }
11
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
12
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
5
13
  var executeThunk = /*#__PURE__*/function () {
6
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(thunk, dispatch, getState) {
14
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(thunk, dispatch, getState) {
7
15
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8
16
  while (1) switch (_context.prev = _context.next) {
9
17
  case 0:
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.js","names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","executeThunk","_ref","_callee","thunk","dispatch","getState","_callee$","_context","setImmediate","_x","_x2","_x3"],"sources":["../src/test-utils.js"],"sourcesContent":["const executeThunk = async (thunk, dispatch, getState) => {\n await thunk(dispatch, getState);\n await new Promise(setImmediate);\n};\n\nexport default executeThunk;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"test-utils.js","names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","enumerable","configurable","writable","_invoke","_OverloadYield","k","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","executeThunk","_ref","_regeneratorRuntime","mark","_callee","thunk","dispatch","getState","wrap","_callee$","_context","prev","next","setImmediate","stop","_x","_x2","_x3"],"sources":["../src/test-utils.js"],"sourcesContent":["const executeThunk = async (thunk, dispatch, getState) => {\n await thunk(dispatch, getState);\n await new Promise(setImmediate);\n};\n\nexport default executeThunk;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nauedu/frontend-component-header",
3
- "version": "20.1.0",
3
+ "version": "20.1.1",
4
4
  "description": "NAU header component for Open edX",
5
5
  "main": "dist/index.js",
6
6
  "publishConfig": {