@artistanbul/frontend-component-header-sumac 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +93 -0
  3. package/README.rst +193 -0
  4. package/dist/Avatar.js +43 -0
  5. package/dist/Avatar.js.map +1 -0
  6. package/dist/Header.js +130 -0
  7. package/dist/Header.js.map +1 -0
  8. package/dist/Header.messages.js +110 -0
  9. package/dist/Header.messages.js.map +1 -0
  10. package/dist/Header.test.jsx +104 -0
  11. package/dist/Icons.js +52 -0
  12. package/dist/Icons.js.map +1 -0
  13. package/dist/Logo.js +28 -0
  14. package/dist/Logo.js.map +1 -0
  15. package/dist/Menu/Menu.js +321 -0
  16. package/dist/Menu/Menu.js.map +1 -0
  17. package/dist/Menu/index.js +3 -0
  18. package/dist/Menu/index.js.map +1 -0
  19. package/dist/Menu/menu.scss +45 -0
  20. package/dist/__snapshots__/Header.test.jsx.snap +445 -0
  21. package/dist/desktop-header/DesktopHeader.js +174 -0
  22. package/dist/desktop-header/DesktopHeader.js.map +1 -0
  23. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js +51 -0
  24. package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js.map +1 -0
  25. package/dist/desktop-header/DesktopHeaderUserMenu.js +49 -0
  26. package/dist/desktop-header/DesktopHeaderUserMenu.js.map +1 -0
  27. package/dist/desktop-header/DesktopLoggedOutItems.js +22 -0
  28. package/dist/desktop-header/DesktopLoggedOutItems.js.map +1 -0
  29. package/dist/generic/messages.js +15 -0
  30. package/dist/generic/messages.js.map +1 -0
  31. package/dist/i18n/index.js +2 -0
  32. package/dist/i18n/index.js.map +1 -0
  33. package/dist/images/omnikampus/artistanbul-logo.png +0 -0
  34. package/dist/images/omnikampus/omnikampus-just-logo.png +0 -0
  35. package/dist/images/omnikampus/omnikampus-logo.png +0 -0
  36. package/dist/index.js +73 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.scss +248 -0
  39. package/dist/learning-header/AnonymousUserMenu.js +25 -0
  40. package/dist/learning-header/AnonymousUserMenu.js.map +1 -0
  41. package/dist/learning-header/AuthenticatedUserDropdown.js +57 -0
  42. package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -0
  43. package/dist/learning-header/LearningHeader.js +61 -0
  44. package/dist/learning-header/LearningHeader.js.map +1 -0
  45. package/dist/learning-header/LearningHeaderCourseInfo.js +24 -0
  46. package/dist/learning-header/LearningHeaderCourseInfo.js.map +1 -0
  47. package/dist/learning-header/LearningHeaderHelpLink.js +13 -0
  48. package/dist/learning-header/LearningHeaderHelpLink.js.map +1 -0
  49. package/dist/learning-header/LearningHeaderUserMenuItems.js +20 -0
  50. package/dist/learning-header/LearningHeaderUserMenuItems.js.map +1 -0
  51. package/dist/learning-header/LearningLoggedOutButtons.js +24 -0
  52. package/dist/learning-header/LearningLoggedOutButtons.js.map +1 -0
  53. package/dist/learning-header/messages.js +40 -0
  54. package/dist/learning-header/messages.js.map +1 -0
  55. package/dist/mobile-header/MobileHeader.js +192 -0
  56. package/dist/mobile-header/MobileHeader.js.map +1 -0
  57. package/dist/mobile-header/MobileHeaderMainMenu.js +46 -0
  58. package/dist/mobile-header/MobileHeaderMainMenu.js.map +1 -0
  59. package/dist/mobile-header/MobileHeaderUserMenu.js +38 -0
  60. package/dist/mobile-header/MobileHeaderUserMenu.js.map +1 -0
  61. package/dist/mobile-header/MobileLoggedOutItems.js +27 -0
  62. package/dist/mobile-header/MobileLoggedOutItems.js.map +1 -0
  63. package/dist/plugin-slots/CourseInfoSlot/README.md +125 -0
  64. package/dist/plugin-slots/CourseInfoSlot/images/add_custom_components_before_and_after_course_info.png +0 -0
  65. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_info_with_custom_component.png +0 -0
  66. package/dist/plugin-slots/CourseInfoSlot/images/replace_course_title.png +0 -0
  67. package/dist/plugin-slots/CourseInfoSlot/index.js +31 -0
  68. package/dist/plugin-slots/CourseInfoSlot/index.js.map +1 -0
  69. package/dist/plugin-slots/DesktopHeaderSlot/README.md +41 -0
  70. package/dist/plugin-slots/DesktopHeaderSlot/images/desktop_header_custom_component.png +0 -0
  71. package/dist/plugin-slots/DesktopHeaderSlot/index.js +15 -0
  72. package/dist/plugin-slots/DesktopHeaderSlot/index.js.map +1 -0
  73. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/README.md +134 -0
  74. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_component.png +0 -0
  75. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_components_before_after.png +0 -0
  76. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_modify_items.png +0 -0
  77. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js +19 -0
  78. package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js.map +1 -0
  79. package/dist/plugin-slots/DesktopMainMenuSlot/README.md +134 -0
  80. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_component.png +0 -0
  81. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_components_before_after.png +0 -0
  82. package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_modify_items.png +0 -0
  83. package/dist/plugin-slots/DesktopMainMenuSlot/index.js +19 -0
  84. package/dist/plugin-slots/DesktopMainMenuSlot/index.js.map +1 -0
  85. package/dist/plugin-slots/DesktopSecondaryMenuSlot/README.md +129 -0
  86. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_component.png +0 -0
  87. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_components_before_after.png +0 -0
  88. package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_modify_items.png +0 -0
  89. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js +19 -0
  90. package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js.map +1 -0
  91. package/dist/plugin-slots/DesktopUserMenuSlot/README.md +141 -0
  92. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_component.png +0 -0
  93. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_components_before_after.png +0 -0
  94. package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_modify_items.png +0 -0
  95. package/dist/plugin-slots/DesktopUserMenuSlot/index.js +19 -0
  96. package/dist/plugin-slots/DesktopUserMenuSlot/index.js.map +1 -0
  97. package/dist/plugin-slots/LearningHelpSlot/README.md +41 -0
  98. package/dist/plugin-slots/LearningHelpSlot/images/learning_help_custom_component.png +0 -0
  99. package/dist/plugin-slots/LearningHelpSlot/index.js +10 -0
  100. package/dist/plugin-slots/LearningHelpSlot/index.js.map +1 -0
  101. package/dist/plugin-slots/LearningLoggedOutItemsSlot/README.md +132 -0
  102. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_component.png +0 -0
  103. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_components_before_after.png +0 -0
  104. package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_modified_items.png +0 -0
  105. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js +17 -0
  106. package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js.map +1 -0
  107. package/dist/plugin-slots/LearningUserMenuSlot/README.md +130 -0
  108. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_component.png +0 -0
  109. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_components_before_after.png +0 -0
  110. package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_modified_items.png +0 -0
  111. package/dist/plugin-slots/LearningUserMenuSlot/index.js +17 -0
  112. package/dist/plugin-slots/LearningUserMenuSlot/index.js.map +1 -0
  113. package/dist/plugin-slots/LogoSlot/README.md +69 -0
  114. package/dist/plugin-slots/LogoSlot/index.js +26 -0
  115. package/dist/plugin-slots/LogoSlot/index.js.map +1 -0
  116. package/dist/plugin-slots/MobileHeaderSlot/README.md +41 -0
  117. package/dist/plugin-slots/MobileHeaderSlot/images/mobile_header_custom_component.png +0 -0
  118. package/dist/plugin-slots/MobileHeaderSlot/index.js +15 -0
  119. package/dist/plugin-slots/MobileHeaderSlot/index.js.map +1 -0
  120. package/dist/plugin-slots/MobileLoggedOutItemsSlot/README.md +134 -0
  121. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_component.png +0 -0
  122. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_components_before_after.png +0 -0
  123. package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_modify_items.png +0 -0
  124. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js +19 -0
  125. package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js.map +1 -0
  126. package/dist/plugin-slots/MobileMainMenuSlot/README.md +134 -0
  127. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_component.png +0 -0
  128. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_components_before_after.png +0 -0
  129. package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_modify_items.png +0 -0
  130. package/dist/plugin-slots/MobileMainMenuSlot/index.js +19 -0
  131. package/dist/plugin-slots/MobileMainMenuSlot/index.js.map +1 -0
  132. package/dist/plugin-slots/MobileUserMenuSlot/README.md +142 -0
  133. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_component.png +0 -0
  134. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_components_before_after.png +0 -0
  135. package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_modify_items.png +0 -0
  136. package/dist/plugin-slots/MobileUserMenuSlot/index.js +19 -0
  137. package/dist/plugin-slots/MobileUserMenuSlot/index.js.map +1 -0
  138. package/dist/plugin-slots/README.md +15 -0
  139. package/dist/setupTest.js +125 -0
  140. package/dist/studio-header/BrandNav.js +24 -0
  141. package/dist/studio-header/BrandNav.js.map +1 -0
  142. package/dist/studio-header/CourseLockUp.js +46 -0
  143. package/dist/studio-header/CourseLockUp.js.map +1 -0
  144. package/dist/studio-header/HeaderBody.js +143 -0
  145. package/dist/studio-header/HeaderBody.js.map +1 -0
  146. package/dist/studio-header/MobileHeader.js +79 -0
  147. package/dist/studio-header/MobileHeader.js.map +1 -0
  148. package/dist/studio-header/MobileMenu.js +46 -0
  149. package/dist/studio-header/MobileMenu.js.map +1 -0
  150. package/dist/studio-header/NavDropdownMenu.js +32 -0
  151. package/dist/studio-header/NavDropdownMenu.js.map +1 -0
  152. package/dist/studio-header/StudioHeader.js +79 -0
  153. package/dist/studio-header/StudioHeader.js.map +1 -0
  154. package/dist/studio-header/StudioHeader.scss +49 -0
  155. package/dist/studio-header/UserMenu.js +55 -0
  156. package/dist/studio-header/UserMenu.js.map +1 -0
  157. package/dist/studio-header/index.js +3 -0
  158. package/dist/studio-header/index.js.map +1 -0
  159. package/dist/studio-header/messages.js +55 -0
  160. package/dist/studio-header/messages.js.map +1 -0
  161. package/dist/studio-header/utils.js +26 -0
  162. package/dist/studio-header/utils.js.map +1 -0
  163. package/dist/test-utils.js +26 -0
  164. package/dist/test-utils.js.map +1 -0
  165. package/package.json +79 -0
@@ -0,0 +1,445 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<Header /> renders correctly for anonymous desktop 1`] = `
4
+ <header
5
+ className="site-header-desktop"
6
+ >
7
+ <a
8
+ className="nav-skip sr-only sr-only-focusable"
9
+ href="#main"
10
+ >
11
+ Skip to main content
12
+ </a>
13
+ <div
14
+ className="container-fluid null"
15
+ >
16
+ <div
17
+ className="nav-container position-relative d-flex align-items-center"
18
+ >
19
+ <a
20
+ className="logo"
21
+ href="http://localhost:18000/dashboard"
22
+ >
23
+ <img
24
+ alt="edX"
25
+ className="d-block"
26
+ src="https://edx-cdn.org/v3/default/logo.svg"
27
+ />
28
+ </a>
29
+ <nav
30
+ aria-label="Main"
31
+ className="nav main-nav"
32
+ >
33
+ <a
34
+ className="nav-link"
35
+ href="http://localhost:18000/dashboard"
36
+ onClick={null}
37
+ >
38
+ Courses
39
+ </a>
40
+ </nav>
41
+ <nav
42
+ aria-label="Secondary"
43
+ className="nav secondary-menu-container align-items-center ml-auto"
44
+ >
45
+ <a
46
+ className="btn mr-2 btn-link"
47
+ href="http://localhost:18000/login"
48
+ >
49
+ Login
50
+ </a>
51
+ <a
52
+ className="btn mr-2 btn-outline-primary"
53
+ href="http://localhost:18000/register"
54
+ >
55
+ Sign Up
56
+ </a>
57
+ </nav>
58
+ </div>
59
+ </div>
60
+ </header>
61
+ `;
62
+
63
+ exports[`<Header /> renders correctly for anonymous mobile 1`] = `
64
+ <header
65
+ aria-label="Main"
66
+ className="site-header-mobile d-flex justify-content-between align-items-center shadow sticky-top"
67
+ >
68
+ <a
69
+ className="nav-skip sr-only sr-only-focusable"
70
+ href="#main"
71
+ >
72
+ Skip to main content
73
+ </a>
74
+ <div
75
+ className="w-100 d-flex justify-content-start"
76
+ >
77
+ <div
78
+ className="menu position-static"
79
+ onKeyDown={[Function]}
80
+ onMouseEnter={[Function]}
81
+ onMouseLeave={[Function]}
82
+ >
83
+ <button
84
+ aria-expanded={false}
85
+ aria-haspopup="menu"
86
+ aria-label="Main Menu"
87
+ className="menu-trigger icon-button"
88
+ onClick={[Function]}
89
+ title="Main Menu"
90
+ >
91
+ <svg
92
+ aria-hidden={true}
93
+ focusable="false"
94
+ height="24px"
95
+ role="img"
96
+ style={
97
+ {
98
+ "height": "1.5rem",
99
+ "width": "1.5rem",
100
+ }
101
+ }
102
+ version="1.1"
103
+ viewBox="0 0 24 24"
104
+ width="24px"
105
+ >
106
+ <rect
107
+ fill="currentColor"
108
+ height="2"
109
+ width="20"
110
+ x="2"
111
+ y="5"
112
+ />
113
+ <rect
114
+ fill="currentColor"
115
+ height="2"
116
+ width="20"
117
+ x="2"
118
+ y="11"
119
+ />
120
+ <rect
121
+ fill="currentColor"
122
+ height="2"
123
+ width="20"
124
+ x="2"
125
+ y="17"
126
+ />
127
+ </svg>
128
+ </button>
129
+ </div>
130
+ </div>
131
+ <div
132
+ className="w-100 d-flex justify-content-center"
133
+ >
134
+ <a
135
+ className="logo"
136
+ href="http://localhost:18000/dashboard"
137
+ itemType="http://schema.org/Organization"
138
+ >
139
+ <img
140
+ alt="edX"
141
+ className="d-block"
142
+ src="https://edx-cdn.org/v3/default/logo.svg"
143
+ />
144
+ </a>
145
+ </div>
146
+ <div
147
+ className="w-100 d-flex justify-content-end align-items-center"
148
+ >
149
+ <nav
150
+ aria-label="Secondary"
151
+ className="menu position-static"
152
+ onKeyDown={[Function]}
153
+ onMouseEnter={[Function]}
154
+ onMouseLeave={[Function]}
155
+ >
156
+ <button
157
+ aria-expanded={false}
158
+ aria-haspopup="menu"
159
+ aria-label="Account Menu"
160
+ className="menu-trigger icon-button"
161
+ onClick={[Function]}
162
+ title="Account Menu"
163
+ >
164
+ <span
165
+ className="avatar overflow-hidden d-inline-flex rounded-circle null"
166
+ style={
167
+ {
168
+ "height": "1.5rem",
169
+ "width": "1.5rem",
170
+ }
171
+ }
172
+ >
173
+ <svg
174
+ aria-hidden={true}
175
+ focusable="false"
176
+ height="24px"
177
+ role="img"
178
+ style={
179
+ {
180
+ "height": "1.5rem",
181
+ "width": "1.5rem",
182
+ }
183
+ }
184
+ version="1.1"
185
+ viewBox="0 0 24 24"
186
+ width="24px"
187
+ >
188
+ <path
189
+ d="M4.10255106,18.1351061 C4.7170266,16.0581859 8.01891846,14.4720277 12,14.4720277 C15.9810815,14.4720277 19.2829734,16.0581859 19.8974489,18.1351061 C21.215206,16.4412566 22,14.3122775 22,12 C22,6.4771525 17.5228475,2 12,2 C6.4771525,2 2,6.4771525 2,12 C2,14.3122775 2.78479405,16.4412566 4.10255106,18.1351061 Z M12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 Z M12,13 C9.790861,13 8,11.209139 8,9 C8,6.790861 9.790861,5 12,5 C14.209139,5 16,6.790861 16,9 C16,11.209139 14.209139,13 12,13 Z"
190
+ fill="currentColor"
191
+ />
192
+ </svg>
193
+ </span>
194
+ </button>
195
+ </nav>
196
+ </div>
197
+ </header>
198
+ `;
199
+
200
+ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
201
+ <header
202
+ className="site-header-desktop"
203
+ >
204
+ <a
205
+ className="nav-skip sr-only sr-only-focusable"
206
+ href="#main"
207
+ >
208
+ Skip to main content
209
+ </a>
210
+ <div
211
+ className="container-fluid null"
212
+ >
213
+ <div
214
+ className="nav-container position-relative d-flex align-items-center"
215
+ >
216
+ <a
217
+ className="logo"
218
+ href="http://localhost:18000/dashboard"
219
+ >
220
+ <img
221
+ alt="edX"
222
+ className="d-block"
223
+ src="https://edx-cdn.org/v3/default/logo.svg"
224
+ />
225
+ </a>
226
+ <nav
227
+ aria-label="Main"
228
+ className="nav main-nav"
229
+ >
230
+ <a
231
+ className="nav-link"
232
+ href="http://localhost:18000/dashboard"
233
+ onClick={null}
234
+ >
235
+ Courses
236
+ </a>
237
+ </nav>
238
+ <nav
239
+ aria-label="Secondary"
240
+ className="nav secondary-menu-container align-items-center ml-auto"
241
+ >
242
+ <div
243
+ className="menu null"
244
+ onKeyDown={[Function]}
245
+ onMouseEnter={[Function]}
246
+ onMouseLeave={[Function]}
247
+ >
248
+ <button
249
+ aria-expanded={false}
250
+ aria-haspopup="menu"
251
+ aria-label="Account menu for edX"
252
+ className="menu-trigger btn btn-outline-primary d-inline-flex align-items-center pl-2 pr-3"
253
+ onClick={[Function]}
254
+ >
255
+ <span
256
+ className="avatar overflow-hidden d-inline-flex rounded-circle mr-2"
257
+ style={
258
+ {
259
+ "height": "1.5em",
260
+ "width": "1.5em",
261
+ }
262
+ }
263
+ >
264
+ <svg
265
+ aria-hidden={true}
266
+ focusable="false"
267
+ height="24px"
268
+ role="img"
269
+ style={
270
+ {
271
+ "height": "1.5em",
272
+ "width": "1.5em",
273
+ }
274
+ }
275
+ version="1.1"
276
+ viewBox="0 0 24 24"
277
+ width="24px"
278
+ >
279
+ <path
280
+ d="M4.10255106,18.1351061 C4.7170266,16.0581859 8.01891846,14.4720277 12,14.4720277 C15.9810815,14.4720277 19.2829734,16.0581859 19.8974489,18.1351061 C21.215206,16.4412566 22,14.3122775 22,12 C22,6.4771525 17.5228475,2 12,2 C6.4771525,2 2,6.4771525 2,12 C2,14.3122775 2.78479405,16.4412566 4.10255106,18.1351061 Z M12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 Z M12,13 C9.790861,13 8,11.209139 8,9 C8,6.790861 9.790861,5 12,5 C14.209139,5 16,6.790861 16,9 C16,11.209139 14.209139,13 12,13 Z"
281
+ fill="currentColor"
282
+ />
283
+ </svg>
284
+ </span>
285
+ edX
286
+
287
+ <svg
288
+ aria-hidden={true}
289
+ focusable="false"
290
+ height="16px"
291
+ role="img"
292
+ version="1.1"
293
+ viewBox="0 0 16 16"
294
+ width="16px"
295
+ >
296
+ <path
297
+ d="M7,4 L7,8 L11,8 L11,10 L5,10 L5,4 L7,4 Z"
298
+ fill="currentColor"
299
+ transform="translate(8.000000, 7.000000) rotate(-45.000000) translate(-8.000000, -7.000000) "
300
+ />
301
+ </svg>
302
+ </button>
303
+ </div>
304
+ </nav>
305
+ </div>
306
+ </div>
307
+ </header>
308
+ `;
309
+
310
+ exports[`<Header /> renders correctly for authenticated mobile 1`] = `
311
+ <header
312
+ aria-label="Main"
313
+ className="site-header-mobile d-flex justify-content-between align-items-center shadow sticky-top"
314
+ >
315
+ <a
316
+ className="nav-skip sr-only sr-only-focusable"
317
+ href="#main"
318
+ >
319
+ Skip to main content
320
+ </a>
321
+ <div
322
+ className="w-100 d-flex justify-content-start"
323
+ >
324
+ <div
325
+ className="menu position-static"
326
+ onKeyDown={[Function]}
327
+ onMouseEnter={[Function]}
328
+ onMouseLeave={[Function]}
329
+ >
330
+ <button
331
+ aria-expanded={false}
332
+ aria-haspopup="menu"
333
+ aria-label="Main Menu"
334
+ className="menu-trigger icon-button"
335
+ onClick={[Function]}
336
+ title="Main Menu"
337
+ >
338
+ <svg
339
+ aria-hidden={true}
340
+ focusable="false"
341
+ height="24px"
342
+ role="img"
343
+ style={
344
+ {
345
+ "height": "1.5rem",
346
+ "width": "1.5rem",
347
+ }
348
+ }
349
+ version="1.1"
350
+ viewBox="0 0 24 24"
351
+ width="24px"
352
+ >
353
+ <rect
354
+ fill="currentColor"
355
+ height="2"
356
+ width="20"
357
+ x="2"
358
+ y="5"
359
+ />
360
+ <rect
361
+ fill="currentColor"
362
+ height="2"
363
+ width="20"
364
+ x="2"
365
+ y="11"
366
+ />
367
+ <rect
368
+ fill="currentColor"
369
+ height="2"
370
+ width="20"
371
+ x="2"
372
+ y="17"
373
+ />
374
+ </svg>
375
+ </button>
376
+ </div>
377
+ </div>
378
+ <div
379
+ className="w-100 d-flex justify-content-center"
380
+ >
381
+ <a
382
+ className="logo"
383
+ href="http://localhost:18000/dashboard"
384
+ itemType="http://schema.org/Organization"
385
+ >
386
+ <img
387
+ alt="edX"
388
+ className="d-block"
389
+ src="https://edx-cdn.org/v3/default/logo.svg"
390
+ />
391
+ </a>
392
+ </div>
393
+ <div
394
+ className="w-100 d-flex justify-content-end align-items-center"
395
+ >
396
+ <nav
397
+ aria-label="Secondary"
398
+ className="menu position-static"
399
+ onKeyDown={[Function]}
400
+ onMouseEnter={[Function]}
401
+ onMouseLeave={[Function]}
402
+ >
403
+ <button
404
+ aria-expanded={false}
405
+ aria-haspopup="menu"
406
+ aria-label="Account Menu"
407
+ className="menu-trigger icon-button"
408
+ onClick={[Function]}
409
+ title="Account Menu"
410
+ >
411
+ <span
412
+ className="avatar overflow-hidden d-inline-flex rounded-circle null"
413
+ style={
414
+ {
415
+ "height": "1.5rem",
416
+ "width": "1.5rem",
417
+ }
418
+ }
419
+ >
420
+ <svg
421
+ aria-hidden={true}
422
+ focusable="false"
423
+ height="24px"
424
+ role="img"
425
+ style={
426
+ {
427
+ "height": "1.5rem",
428
+ "width": "1.5rem",
429
+ }
430
+ }
431
+ version="1.1"
432
+ viewBox="0 0 24 24"
433
+ width="24px"
434
+ >
435
+ <path
436
+ d="M4.10255106,18.1351061 C4.7170266,16.0581859 8.01891846,14.4720277 12,14.4720277 C15.9810815,14.4720277 19.2829734,16.0581859 19.8974489,18.1351061 C21.215206,16.4412566 22,14.3122775 22,12 C22,6.4771525 17.5228475,2 12,2 C6.4771525,2 2,6.4771525 2,12 C2,14.3122775 2.78479405,16.4412566 4.10255106,18.1351061 Z M12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 Z M12,13 C9.790861,13 8,11.209139 8,9 C8,6.790861 9.790861,5 12,5 C14.209139,5 16,6.790861 16,9 C16,11.209139 14.209139,13 12,13 Z"
437
+ fill="currentColor"
438
+ />
439
+ </svg>
440
+ </span>
441
+ </button>
442
+ </nav>
443
+ </div>
444
+ </header>
445
+ `;
@@ -0,0 +1,174 @@
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
4
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
9
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
10
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
12
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
13
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
14
+ import React from 'react';
15
+ import PropTypes from 'prop-types';
16
+ import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
17
+ import { getConfig } from '@edx/frontend-platform';
18
+
19
+ // Local Components
20
+ import { Menu, MenuTrigger, MenuContent } from '../Menu';
21
+ import Avatar from '../Avatar';
22
+ import LogoSlot from '../plugin-slots/LogoSlot';
23
+ import DesktopLoggedOutItemsSlot from '../plugin-slots/DesktopLoggedOutItemsSlot';
24
+ import { desktopLoggedOutItemsDataShape } from './DesktopLoggedOutItems';
25
+ import DesktopMainMenuSlot from '../plugin-slots/DesktopMainMenuSlot';
26
+ import { desktopHeaderMainOrSecondaryMenuDataShape } from './DesktopHeaderMainOrSecondaryMenu';
27
+ import DesktopSecondaryMenuSlot from '../plugin-slots/DesktopSecondaryMenuSlot';
28
+ import DesktopUserMenuSlot from '../plugin-slots/DesktopUserMenuSlot';
29
+ import { desktopUserMenuDataShape } from './DesktopHeaderUserMenu';
30
+ import omnikampusLogo from "../images/omnikampus/omnikampus-just-logo.png";
31
+ import "../index.scss";
32
+
33
+ // i18n
34
+ import messages from '../Header.messages';
35
+
36
+ // Assets
37
+ import { CaretIcon } from '../Icons';
38
+ var DesktopHeader = /*#__PURE__*/function (_React$Component) {
39
+ function DesktopHeader(props) {
40
+ _classCallCheck(this, DesktopHeader);
41
+ // eslint-disable-line no-useless-constructor
42
+ return _callSuper(this, DesktopHeader, [props]);
43
+ }
44
+ _inherits(DesktopHeader, _React$Component);
45
+ return _createClass(DesktopHeader, [{
46
+ key: "renderMainMenu",
47
+ value: function renderMainMenu() {
48
+ var mainMenu = this.props.mainMenu;
49
+ return /*#__PURE__*/React.createElement(DesktopMainMenuSlot, {
50
+ menu: mainMenu
51
+ });
52
+ }
53
+ }, {
54
+ key: "renderSecondaryMenu",
55
+ value: function renderSecondaryMenu() {
56
+ var secondaryMenu = this.props.secondaryMenu;
57
+ return /*#__PURE__*/React.createElement(DesktopSecondaryMenuSlot, {
58
+ menu: secondaryMenu
59
+ });
60
+ }
61
+ }, {
62
+ key: "renderUserMenu",
63
+ value: function renderUserMenu() {
64
+ var _this$props = this.props,
65
+ userMenu = _this$props.userMenu,
66
+ avatar = _this$props.avatar,
67
+ username = _this$props.username,
68
+ intl = _this$props.intl;
69
+ return /*#__PURE__*/React.createElement(Menu, {
70
+ transitionClassName: "menu-dropdown",
71
+ transitionTimeout: 250
72
+ }, /*#__PURE__*/React.createElement(MenuTrigger, {
73
+ tag: "button",
74
+ "aria-label": intl.formatMessage(messages['header.label.account.menu.for'], {
75
+ username: username
76
+ }),
77
+ className: "btn btn-outline-primary d-inline-flex align-items-center pl-2 pr-3"
78
+ }, /*#__PURE__*/React.createElement(Avatar, {
79
+ size: "1.5em",
80
+ src: avatar,
81
+ alt: "",
82
+ className: "mr-2"
83
+ }), username, " ", /*#__PURE__*/React.createElement(CaretIcon, {
84
+ role: "img",
85
+ "aria-hidden": true,
86
+ focusable: "false"
87
+ })), /*#__PURE__*/React.createElement(MenuContent, {
88
+ className: "mb-0 dropdown-menu show dropdown-menu-right pin-right shadow py-2"
89
+ }, /*#__PURE__*/React.createElement(DesktopUserMenuSlot, {
90
+ menu: userMenu
91
+ })));
92
+ }
93
+ }, {
94
+ key: "renderLoggedOutItems",
95
+ value: function renderLoggedOutItems() {
96
+ var loggedOutItems = this.props.loggedOutItems;
97
+ return /*#__PURE__*/React.createElement(DesktopLoggedOutItemsSlot, {
98
+ items: loggedOutItems
99
+ });
100
+ }
101
+ }, {
102
+ key: "render",
103
+ value: function render() {
104
+ var _this$props2 = this.props,
105
+ logo = _this$props2.logo,
106
+ logoAltText = _this$props2.logoAltText,
107
+ logoDestination = _this$props2.logoDestination,
108
+ loggedIn = _this$props2.loggedIn,
109
+ intl = _this$props2.intl;
110
+ var logoProps = {
111
+ src: omnikampusLogo,
112
+ alt: logoAltText,
113
+ href: logoDestination
114
+ };
115
+ var logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'mw-100' : null;
116
+ return /*#__PURE__*/React.createElement("header", {
117
+ className: "site-header-desktop"
118
+ }, /*#__PURE__*/React.createElement("a", {
119
+ className: "nav-skip sr-only sr-only-focusable",
120
+ href: "#main"
121
+ }, intl.formatMessage(messages['header.label.skip.nav'])), /*#__PURE__*/React.createElement("div", {
122
+ className: "container-fluid ".concat(logoClasses)
123
+ }, /*#__PURE__*/React.createElement("div", {
124
+ className: "nav-container position-relative d-flex align-items-center"
125
+ }, /*#__PURE__*/React.createElement(LogoSlot, logoProps), /*#__PURE__*/React.createElement("nav", {
126
+ "aria-label": intl.formatMessage(messages['header.label.main.nav']),
127
+ className: "nav main-nav"
128
+ }, this.renderMainMenu()), /*#__PURE__*/React.createElement("nav", {
129
+ "aria-label": intl.formatMessage(messages['header.label.secondary.nav']),
130
+ className: "nav secondary-menu-container align-items-center ml-auto"
131
+ }, loggedIn ? /*#__PURE__*/React.createElement(React.Fragment, null, this.renderSecondaryMenu(), this.renderUserMenu()) : this.renderLoggedOutItems()))));
132
+ }
133
+ }]);
134
+ }(React.Component);
135
+ export var desktopHeaderDataShape = {
136
+ mainMenu: desktopHeaderMainOrSecondaryMenuDataShape,
137
+ secondaryMenu: desktopHeaderMainOrSecondaryMenuDataShape,
138
+ userMenu: desktopUserMenuDataShape,
139
+ loggedOutItems: desktopLoggedOutItemsDataShape,
140
+ logo: PropTypes.string,
141
+ logoAltText: PropTypes.string,
142
+ logoDestination: PropTypes.string,
143
+ avatar: PropTypes.string,
144
+ username: PropTypes.string,
145
+ loggedIn: PropTypes.bool
146
+ };
147
+ DesktopHeader.propTypes = {
148
+ mainMenu: desktopHeaderDataShape.mainMenu,
149
+ secondaryMenu: desktopHeaderDataShape.secondaryMenumainMenu,
150
+ userMenu: desktopHeaderDataShape.userMenumainMenu,
151
+ loggedOutItems: desktopHeaderDataShape.loggedOutItemsmainMenu,
152
+ logo: desktopHeaderDataShape.logomainMenu,
153
+ logoAltText: desktopHeaderDataShape.logoAltTextmainMenu,
154
+ logoDestination: desktopHeaderDataShape.logoDestinationmainMenu,
155
+ avatar: desktopHeaderDataShape.avatarmainMenu,
156
+ username: desktopHeaderDataShape.usernamemainMenu,
157
+ loggedIn: desktopHeaderDataShape.loggedInmainMenu,
158
+ // i18n
159
+ intl: intlShape.isRequired
160
+ };
161
+ DesktopHeader.defaultProps = {
162
+ mainMenu: [],
163
+ secondaryMenu: [],
164
+ userMenu: [],
165
+ loggedOutItems: [],
166
+ logo: null,
167
+ logoAltText: null,
168
+ logoDestination: null,
169
+ avatar: null,
170
+ username: null,
171
+ loggedIn: false
172
+ };
173
+ export default injectIntl(DesktopHeader);
174
+ //# sourceMappingURL=DesktopHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesktopHeader.js","names":["React","PropTypes","injectIntl","intlShape","getConfig","Menu","MenuTrigger","MenuContent","Avatar","LogoSlot","DesktopLoggedOutItemsSlot","desktopLoggedOutItemsDataShape","DesktopMainMenuSlot","desktopHeaderMainOrSecondaryMenuDataShape","DesktopSecondaryMenuSlot","DesktopUserMenuSlot","desktopUserMenuDataShape","omnikampusLogo","messages","CaretIcon","DesktopHeader","_React$Component","props","_classCallCheck","_callSuper","_inherits","_createClass","key","value","renderMainMenu","mainMenu","createElement","menu","renderSecondaryMenu","secondaryMenu","renderUserMenu","_this$props","userMenu","avatar","username","intl","transitionClassName","transitionTimeout","tag","formatMessage","className","size","src","alt","role","focusable","renderLoggedOutItems","loggedOutItems","items","render","_this$props2","logo","logoAltText","logoDestination","loggedIn","logoProps","href","logoClasses","AUTHN_MINIMAL_HEADER","concat","Fragment","Component","desktopHeaderDataShape","string","bool","propTypes","secondaryMenumainMenu","userMenumainMenu","loggedOutItemsmainMenu","logomainMenu","logoAltTextmainMenu","logoDestinationmainMenu","avatarmainMenu","usernamemainMenu","loggedInmainMenu","isRequired","defaultProps"],"sources":["../../src/desktop-header/DesktopHeader.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\n// Local Components\nimport { Menu, MenuTrigger, MenuContent } from '../Menu';\nimport Avatar from '../Avatar';\nimport LogoSlot from '../plugin-slots/LogoSlot';\nimport DesktopLoggedOutItemsSlot from '../plugin-slots/DesktopLoggedOutItemsSlot';\nimport { desktopLoggedOutItemsDataShape } from './DesktopLoggedOutItems';\nimport DesktopMainMenuSlot from '../plugin-slots/DesktopMainMenuSlot';\nimport { desktopHeaderMainOrSecondaryMenuDataShape } from './DesktopHeaderMainOrSecondaryMenu';\nimport DesktopSecondaryMenuSlot from '../plugin-slots/DesktopSecondaryMenuSlot';\nimport DesktopUserMenuSlot from '../plugin-slots/DesktopUserMenuSlot';\nimport { desktopUserMenuDataShape } from './DesktopHeaderUserMenu';\n\nimport omnikampusLogo from \"../images/omnikampus/omnikampus-just-logo.png\"\n\nimport \"../index.scss\"\n\n// i18n\nimport messages from '../Header.messages';\n\n// Assets\nimport { CaretIcon } from '../Icons';\n\nclass DesktopHeader extends React.Component {\n constructor(props) { // eslint-disable-line no-useless-constructor\n super(props);\n }\n\n renderMainMenu() {\n const { mainMenu } = this.props;\n return <DesktopMainMenuSlot menu={mainMenu} />;\n }\n\n renderSecondaryMenu() {\n const { secondaryMenu } = this.props;\n return <DesktopSecondaryMenuSlot menu={secondaryMenu} />;\n }\n\n renderUserMenu() {\n const {\n userMenu,\n avatar,\n username,\n intl,\n } = this.props;\n\n return (\n <Menu transitionClassName=\"menu-dropdown\" transitionTimeout={250}>\n <MenuTrigger\n tag=\"button\"\n aria-label={intl.formatMessage(messages['header.label.account.menu.for'], { username })}\n className=\"btn btn-outline-primary d-inline-flex align-items-center pl-2 pr-3\"\n >\n <Avatar size=\"1.5em\" src={avatar} alt=\"\" className=\"mr-2\" />\n {username} <CaretIcon role=\"img\" aria-hidden focusable=\"false\" />\n </MenuTrigger>\n <MenuContent className=\"mb-0 dropdown-menu show dropdown-menu-right pin-right shadow py-2\">\n <DesktopUserMenuSlot menu={userMenu} />\n </MenuContent>\n </Menu>\n );\n }\n\n renderLoggedOutItems() {\n const { loggedOutItems } = this.props;\n return <DesktopLoggedOutItemsSlot items={loggedOutItems} />;\n }\n\n render() {\n const {\n logo,\n logoAltText,\n logoDestination,\n loggedIn,\n intl,\n } = this.props;\n const logoProps = { src: omnikampusLogo, alt: logoAltText, href: logoDestination };\n const logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'mw-100' : null;\n\n return (\n <header className=\"site-header-desktop\">\n <a className=\"nav-skip sr-only sr-only-focusable\" href=\"#main\">{intl.formatMessage(messages['header.label.skip.nav'])}</a>\n <div className={`container-fluid ${logoClasses}`}>\n <div className=\"nav-container position-relative d-flex align-items-center\">\n <LogoSlot {...logoProps} />\n <nav\n aria-label={intl.formatMessage(messages['header.label.main.nav'])}\n className=\"nav main-nav\"\n >\n {this.renderMainMenu()}\n </nav>\n <nav\n aria-label={intl.formatMessage(messages['header.label.secondary.nav'])}\n className=\"nav secondary-menu-container align-items-center ml-auto\"\n >\n {loggedIn\n ? (\n <>\n {this.renderSecondaryMenu()}\n {this.renderUserMenu()}\n </>\n ) : this.renderLoggedOutItems()}\n </nav>\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport const desktopHeaderDataShape = {\n mainMenu: desktopHeaderMainOrSecondaryMenuDataShape,\n secondaryMenu: desktopHeaderMainOrSecondaryMenuDataShape,\n userMenu: desktopUserMenuDataShape,\n loggedOutItems: desktopLoggedOutItemsDataShape,\n logo: PropTypes.string,\n logoAltText: PropTypes.string,\n logoDestination: PropTypes.string,\n avatar: PropTypes.string,\n username: PropTypes.string,\n loggedIn: PropTypes.bool,\n};\n\nDesktopHeader.propTypes = {\n mainMenu: desktopHeaderDataShape.mainMenu,\n secondaryMenu: desktopHeaderDataShape.secondaryMenumainMenu,\n userMenu: desktopHeaderDataShape.userMenumainMenu,\n loggedOutItems: desktopHeaderDataShape.loggedOutItemsmainMenu,\n logo: desktopHeaderDataShape.logomainMenu,\n logoAltText: desktopHeaderDataShape.logoAltTextmainMenu,\n logoDestination: desktopHeaderDataShape.logoDestinationmainMenu,\n avatar: desktopHeaderDataShape.avatarmainMenu,\n username: desktopHeaderDataShape.usernamemainMenu,\n loggedIn: desktopHeaderDataShape.loggedInmainMenu,\n\n // i18n\n intl: intlShape.isRequired,\n};\n\nDesktopHeader.defaultProps = {\n mainMenu: [],\n secondaryMenu: [],\n userMenu: [],\n loggedOutItems: [],\n logo: null,\n logoAltText: null,\n logoDestination: null,\n avatar: null,\n username: null,\n loggedIn: false,\n};\n\nexport default injectIntl(DesktopHeader);\n"],"mappings":"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","ignoreList":[]}