@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileHeader.js","names":["React","PropTypes","injectIntl","intlShape","getConfig","Menu","MenuTrigger","MenuContent","Avatar","LinkedLogo","Logo","messages","MenuIcon","MobileHeader","_React$Component","props","_classCallCheck","_callSuper","_inherits","_createClass","key","value","renderMenu","menu","Array","isArray","map","menuItem","type","href","content","submenuContent","disabled","isActive","createElement","concat","className","tag","role","tabIndex","renderMainMenu","mainMenu","renderSecondaryMenu","secondaryMenu","renderUserMenuItems","userMenu","group","items","_ref","renderLoggedOutItems","loggedOutItems","_ref2","i","arr","length","render","_this$props","logo","logoAltText","logoDestination","loggedIn","avatar","username","stickyOnMobile","intl","logoProps","src","alt","stickyClassName","logoClasses","AUTHN_MINIMAL_HEADER","formatMessage","title","focusable","style","width","height","_extends","itemType","size","Component","propTypes","oneOfType","node","array","arrayOf","shape","heading","string","oneOf","bool","isRequired","defaultProps"],"sources":["../src/MobileHeader.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\n// Local Components\nimport { Menu, MenuTrigger, MenuContent } from './Menu';\nimport Avatar from './Avatar';\nimport { LinkedLogo, Logo } from './Logo';\n\n// i18n\nimport messages from './Header.messages';\n\n// Assets\nimport { MenuIcon } from './Icons';\n\nclass MobileHeader extends React.Component {\n constructor(props) { // eslint-disable-line no-useless-constructor\n super(props);\n }\n\n renderMenu(menu) {\n // Nodes are accepted as a prop\n if (!Array.isArray(menu)) {\n return menu;\n }\n\n return menu.map((menuItem) => {\n const {\n type,\n href,\n content,\n submenuContent,\n disabled,\n isActive,\n } = menuItem;\n\n if (type === 'item') {\n return (\n <a\n key={`${type}-${content}`}\n className={`nav-link${disabled ? ' disabled' : ''}${isActive ? ' active' : ''}`}\n href={href}\n >\n {content}\n </a>\n );\n }\n\n return (\n <Menu key={`${type}-${content}`} tag=\"div\" className=\"nav-item\">\n <MenuTrigger tag=\"a\" role=\"button\" tabIndex=\"0\" className=\"nav-link\">\n {content}\n </MenuTrigger>\n <MenuContent className=\"position-static pin-left pin-right py-2\">\n {submenuContent}\n </MenuContent>\n </Menu>\n );\n });\n }\n\n renderMainMenu() {\n const { mainMenu } = this.props;\n return this.renderMenu(mainMenu);\n }\n\n renderSecondaryMenu() {\n const { secondaryMenu } = this.props;\n return this.renderMenu(secondaryMenu);\n }\n\n renderUserMenuItems() {\n const { userMenu } = this.props;\n\n return userMenu.map((group) => (\n group.items.map(({\n type, content, href, disabled, isActive,\n }) => (\n <li className=\"nav-item\" key={`${type}-${content}`}>\n <a\n className={`nav-link${isActive ? ' active' : ''}${disabled ? ' disabled' : ''}`}\n href={href}\n >\n {content}\n </a>\n </li>\n ))\n ));\n }\n\n renderLoggedOutItems() {\n const { loggedOutItems } = this.props;\n\n return loggedOutItems.map(({ type, href, content }, i, arr) => (\n <li className=\"nav-item px-3 my-2\" key={`${type}-${content}`}>\n <a\n className={i < arr.length - 1 ? 'btn btn-block btn-outline-primary' : 'btn btn-block btn-primary'}\n href={href}\n >\n {content}\n </a>\n </li>\n ));\n }\n\n render() {\n const {\n logo,\n logoAltText,\n logoDestination,\n loggedIn,\n avatar,\n username,\n stickyOnMobile,\n intl,\n mainMenu,\n userMenu,\n loggedOutItems,\n } = this.props;\n const logoProps = { src: logo, alt: logoAltText, href: logoDestination };\n const stickyClassName = stickyOnMobile ? 'sticky-top' : '';\n const logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'justify-content-left pl-3' : 'justify-content-center';\n\n return (\n <header\n aria-label={intl.formatMessage(messages['header.label.main.header'])}\n className={`site-header-mobile d-flex justify-content-between align-items-center shadow ${stickyClassName}`}\n >\n <a className=\"nav-skip sr-only sr-only-focusable\" href=\"#main\">{intl.formatMessage(messages['header.label.skip.nav'])}</a>\n {mainMenu.length > 0 ? (\n <div className=\"w-100 d-flex justify-content-start\">\n\n <Menu className=\"position-static\">\n <MenuTrigger\n tag=\"button\"\n className=\"icon-button\"\n aria-label={intl.formatMessage(messages['header.label.main.menu'])}\n title={intl.formatMessage(messages['header.label.main.menu'])}\n >\n <MenuIcon role=\"img\" aria-hidden focusable=\"false\" style={{ width: '1.5rem', height: '1.5rem' }} />\n </MenuTrigger>\n <MenuContent\n tag=\"nav\"\n aria-label={intl.formatMessage(messages['header.label.main.nav'])}\n className=\"nav flex-column pin-left pin-right border-top shadow py-2\"\n >\n {this.renderMainMenu()}\n {this.renderSecondaryMenu()}\n </MenuContent>\n </Menu>\n </div>\n ) : null}\n <div className={`w-100 d-flex ${logoClasses}`}>\n { logoDestination === null ? <Logo className=\"logo\" src={logo} alt={logoAltText} /> : <LinkedLogo className=\"logo\" {...logoProps} itemType=\"http://schema.org/Organization\" />}\n </div>\n {userMenu.length > 0 || loggedOutItems.length > 0 ? (\n <div className=\"w-100 d-flex justify-content-end align-items-center\">\n <Menu tag=\"nav\" aria-label={intl.formatMessage(messages['header.label.secondary.nav'])} className=\"position-static\">\n <MenuTrigger\n tag=\"button\"\n className=\"icon-button\"\n aria-label={intl.formatMessage(messages['header.label.account.menu'])}\n title={intl.formatMessage(messages['header.label.account.menu'])}\n >\n <Avatar size=\"1.5rem\" src={avatar} alt={username} />\n </MenuTrigger>\n <MenuContent tag=\"ul\" className=\"nav flex-column pin-left pin-right border-top shadow py-2\">\n {loggedIn ? this.renderUserMenuItems() : this.renderLoggedOutItems()}\n </MenuContent>\n </Menu>\n </div>\n ) : null}\n </header>\n );\n }\n}\n\nMobileHeader.propTypes = {\n mainMenu: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.array,\n ]),\n secondaryMenu: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.array,\n ]),\n userMenu: PropTypes.arrayOf(PropTypes.shape({\n heading: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\n isActive: PropTypes.bool,\n })),\n })),\n loggedOutItems: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\n })),\n logo: PropTypes.string,\n logoAltText: PropTypes.string,\n logoDestination: PropTypes.string,\n avatar: PropTypes.string,\n username: PropTypes.string,\n loggedIn: PropTypes.bool,\n stickyOnMobile: PropTypes.bool,\n\n // i18n\n intl: intlShape.isRequired,\n};\n\nMobileHeader.defaultProps = {\n mainMenu: [],\n secondaryMenu: [],\n userMenu: [],\n loggedOutItems: [],\n logo: null,\n logoAltText: null,\n logoDestination: null,\n avatar: null,\n username: null,\n loggedIn: false,\n stickyOnMobile: true,\n\n};\n\nexport default injectIntl(MobileHeader);\n"],"mappings":"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","ignoreList":[]}
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- var BrandNav = function BrandNav(_ref) {
4
- var studioBaseUrl = _ref.studioBaseUrl,
5
- logo = _ref.logo,
6
- logoAltText = _ref.logoAltText;
7
- return /*#__PURE__*/React.createElement("a", {
8
- href: studioBaseUrl
9
- }, /*#__PURE__*/React.createElement("img", {
10
- src: logo,
11
- alt: logoAltText,
12
- className: "d-block logo"
13
- }));
14
- };
15
- BrandNav.propTypes = {
16
- studioBaseUrl: PropTypes.string.isRequired,
17
- logo: PropTypes.string.isRequired,
18
- logoAltText: PropTypes.string.isRequired
19
- };
20
- export default BrandNav;
21
- //# sourceMappingURL=BrandNav.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrandNav.js","names":["React","PropTypes","BrandNav","_ref","studioBaseUrl","logo","logoAltText","createElement","href","src","alt","className","propTypes","string","isRequired"],"sources":["../../src/studio-header/BrandNav.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst BrandNav = ({\n studioBaseUrl,\n logo,\n logoAltText,\n}) => (\n <a href={studioBaseUrl}>\n <img\n src={logo}\n alt={logoAltText}\n className=\"d-block logo\"\n />\n </a>\n);\n\nBrandNav.propTypes = {\n studioBaseUrl: PropTypes.string.isRequired,\n logo: PropTypes.string.isRequired,\n logoAltText: PropTypes.string.isRequired,\n};\n\nexport default BrandNav;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA;EAAA,IACZC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,WAAW,GAAAH,IAAA,CAAXG,WAAW;EAAA,oBAEXN,KAAA,CAAAO,aAAA;IAAGC,IAAI,EAAEJ;EAAc,gBACrBJ,KAAA,CAAAO,aAAA;IACEE,GAAG,EAAEJ,IAAK;IACVK,GAAG,EAAEJ,WAAY;IACjBK,SAAS,EAAC;EAAc,CACzB,CACA,CAAC;AAAA,CACL;AAEDT,QAAQ,CAACU,SAAS,GAAG;EACnBR,aAAa,EAAEH,SAAS,CAACY,MAAM,CAACC,UAAU;EAC1CT,IAAI,EAAEJ,SAAS,CAACY,MAAM,CAACC,UAAU;EACjCR,WAAW,EAAEL,SAAS,CAACY,MAAM,CAACC;AAChC,CAAC;AAED,eAAeZ,QAAQ","ignoreList":[]}
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
4
- import { OverlayTrigger, Tooltip } from '@openedx/paragon';
5
- import messages from './messages';
6
- var CourseLockUp = function CourseLockUp(_ref) {
7
- var outlineLink = _ref.outlineLink,
8
- org = _ref.org,
9
- number = _ref.number,
10
- title = _ref.title,
11
- intl = _ref.intl;
12
- return /*#__PURE__*/React.createElement(OverlayTrigger, {
13
- placement: "bottom",
14
- overlay: /*#__PURE__*/React.createElement(Tooltip, {
15
- id: "course-lock-up"
16
- }, title)
17
- }, /*#__PURE__*/React.createElement("a", {
18
- className: "course-title-lockup mr-2",
19
- href: outlineLink,
20
- "aria-label": intl.formatMessage(messages['header.label.courseOutline']),
21
- "data-testid": "course-lock-up-block"
22
- }, /*#__PURE__*/React.createElement("span", {
23
- className: "d-block small m-0 text-gray-800",
24
- "data-testid": "course-org-number"
25
- }, org, " ", number), /*#__PURE__*/React.createElement("span", {
26
- className: "d-block m-0 font-weight-bold text-gray-800",
27
- "data-testid": "course-title"
28
- }, title)));
29
- };
30
- CourseLockUp.propTypes = {
31
- number: PropTypes.string,
32
- org: PropTypes.string,
33
- title: PropTypes.string,
34
- outlineLink: PropTypes.string,
35
- // injected
36
- intl: intlShape.isRequired
37
- };
38
- CourseLockUp.defaultProps = {
39
- number: null,
40
- org: null,
41
- title: null,
42
- outlineLink: null
43
- };
44
- export default injectIntl(CourseLockUp);
45
- //# sourceMappingURL=CourseLockUp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CourseLockUp.js","names":["React","PropTypes","injectIntl","intlShape","OverlayTrigger","Tooltip","messages","CourseLockUp","_ref","outlineLink","org","number","title","intl","createElement","placement","overlay","id","className","href","formatMessage","propTypes","string","isRequired","defaultProps"],"sources":["../../src/studio-header/CourseLockUp.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport {\n OverlayTrigger,\n Tooltip,\n} from '@openedx/paragon';\nimport messages from './messages';\n\nconst CourseLockUp = ({\n outlineLink,\n org,\n number,\n title,\n // injected\n intl,\n}) => (\n <OverlayTrigger\n placement=\"bottom\"\n overlay={(\n <Tooltip id=\"course-lock-up\">\n {title}\n </Tooltip>\n )}\n >\n <a\n className=\"course-title-lockup mr-2\"\n href={outlineLink}\n aria-label={intl.formatMessage(messages['header.label.courseOutline'])}\n data-testid=\"course-lock-up-block\"\n >\n <span className=\"d-block small m-0 text-gray-800\" data-testid=\"course-org-number\">{org} {number}</span>\n <span className=\"d-block m-0 font-weight-bold text-gray-800\" data-testid=\"course-title\">{title}</span>\n </a>\n </OverlayTrigger>\n);\n\nCourseLockUp.propTypes = {\n number: PropTypes.string,\n org: PropTypes.string,\n title: PropTypes.string,\n outlineLink: PropTypes.string,\n // injected\n intl: intlShape.isRequired,\n};\n\nCourseLockUp.defaultProps = {\n number: null,\n org: null,\n title: null,\n outlineLink: null,\n};\n\nexport default injectIntl(CourseLockUp);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SACEC,cAAc,EACdC,OAAO,QACF,kBAAkB;AACzB,OAAOC,QAAQ,MAAM,YAAY;AAEjC,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA;EAAA,IAChBC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAELC,IAAI,GAAAL,IAAA,CAAJK,IAAI;EAAA,oBAEJb,KAAA,CAAAc,aAAA,CAACV,cAAc;IACbW,SAAS,EAAC,QAAQ;IAClBC,OAAO,eACLhB,KAAA,CAAAc,aAAA,CAACT,OAAO;MAACY,EAAE,EAAC;IAAgB,GACzBL,KACM;EACT,gBAEFZ,KAAA,CAAAc,aAAA;IACEI,SAAS,EAAC,0BAA0B;IACpCC,IAAI,EAAEV,WAAY;IAClB,cAAYI,IAAI,CAACO,aAAa,CAACd,QAAQ,CAAC,4BAA4B,CAAC,CAAE;IACvE,eAAY;EAAsB,gBAElCN,KAAA,CAAAc,aAAA;IAAMI,SAAS,EAAC,iCAAiC;IAAC,eAAY;EAAmB,GAAER,GAAG,EAAC,GAAC,EAACC,MAAa,CAAC,eACvGX,KAAA,CAAAc,aAAA;IAAMI,SAAS,EAAC,4CAA4C;IAAC,eAAY;EAAc,GAAEN,KAAY,CACpG,CACW,CAAC;AAAA,CAClB;AAEDL,YAAY,CAACc,SAAS,GAAG;EACvBV,MAAM,EAAEV,SAAS,CAACqB,MAAM;EACxBZ,GAAG,EAAET,SAAS,CAACqB,MAAM;EACrBV,KAAK,EAAEX,SAAS,CAACqB,MAAM;EACvBb,WAAW,EAAER,SAAS,CAACqB,MAAM;EAC7B;EACAT,IAAI,EAAEV,SAAS,CAACoB;AAClB,CAAC;AAEDhB,YAAY,CAACiB,YAAY,GAAG;EAC1Bb,MAAM,EAAE,IAAI;EACZD,GAAG,EAAE,IAAI;EACTE,KAAK,EAAE,IAAI;EACXH,WAAW,EAAE;AACf,CAAC;AAED,eAAeP,UAAU,CAACK,YAAY,CAAC","ignoreList":[]}
@@ -1,131 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { useIntl } from '@edx/frontend-platform/i18n';
4
- import { ActionRow, Button, Container, Icon, IconButton, Nav, Row } from '@openedx/paragon';
5
- import { Close, MenuIcon, Search } from '@openedx/paragon/icons';
6
- import CourseLockUp from './CourseLockUp';
7
- import UserMenu from './UserMenu';
8
- import BrandNav from './BrandNav';
9
- import NavDropdownMenu from './NavDropdownMenu';
10
- import messages from './messages';
11
- var HeaderBody = function HeaderBody(_ref) {
12
- var logo = _ref.logo,
13
- logoAltText = _ref.logoAltText,
14
- number = _ref.number,
15
- org = _ref.org,
16
- title = _ref.title,
17
- username = _ref.username,
18
- isAdmin = _ref.isAdmin,
19
- studioBaseUrl = _ref.studioBaseUrl,
20
- logoutUrl = _ref.logoutUrl,
21
- authenticatedUserAvatar = _ref.authenticatedUserAvatar,
22
- isMobile = _ref.isMobile,
23
- setModalPopupTarget = _ref.setModalPopupTarget,
24
- toggleModalPopup = _ref.toggleModalPopup,
25
- isModalPopupOpen = _ref.isModalPopupOpen,
26
- isHiddenMainMenu = _ref.isHiddenMainMenu,
27
- mainMenuDropdowns = _ref.mainMenuDropdowns,
28
- outlineLink = _ref.outlineLink,
29
- searchButtonAction = _ref.searchButtonAction;
30
- var intl = useIntl();
31
- var renderBrandNav = /*#__PURE__*/React.createElement(BrandNav, {
32
- studioBaseUrl: studioBaseUrl,
33
- logo: logo,
34
- logoAltText: logoAltText
35
- });
36
- return /*#__PURE__*/React.createElement(Container, {
37
- size: "xl",
38
- className: "px-2.5"
39
- }, /*#__PURE__*/React.createElement(ActionRow, {
40
- as: "header"
41
- }, isHiddenMainMenu ? /*#__PURE__*/React.createElement(Row, {
42
- className: "flex-nowrap ml-4"
43
- }, renderBrandNav) : /*#__PURE__*/React.createElement(React.Fragment, null, isMobile ? /*#__PURE__*/React.createElement(Button, {
44
- ref: setModalPopupTarget,
45
- className: "d-inline-flex align-items-center",
46
- variant: "tertiary",
47
- onClick: toggleModalPopup,
48
- iconBefore: isModalPopupOpen ? Close : MenuIcon,
49
- "data-testid": "mobile-menu-button"
50
- }, "Menu") : /*#__PURE__*/React.createElement("div", {
51
- className: "w-25"
52
- }, /*#__PURE__*/React.createElement(Row, {
53
- className: "m-0 flex-nowrap"
54
- }, renderBrandNav, /*#__PURE__*/React.createElement(CourseLockUp, {
55
- outlineLink: outlineLink,
56
- number: number,
57
- org: org,
58
- title: title
59
- }))), isMobile ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ActionRow.Spacer, null), renderBrandNav) : /*#__PURE__*/React.createElement(Nav, {
60
- "data-testid": "desktop-menu",
61
- className: "ml-2"
62
- }, mainMenuDropdowns.map(function (dropdown) {
63
- var id = dropdown.id,
64
- buttonTitle = dropdown.buttonTitle,
65
- items = dropdown.items;
66
- return /*#__PURE__*/React.createElement(NavDropdownMenu, {
67
- key: id,
68
- id: id,
69
- buttonTitle: buttonTitle,
70
- items: items
71
- });
72
- }))), /*#__PURE__*/React.createElement(ActionRow.Spacer, null), searchButtonAction && /*#__PURE__*/React.createElement(Nav, null, /*#__PURE__*/React.createElement(IconButton, {
73
- src: Search,
74
- iconAs: Icon,
75
- onClick: searchButtonAction,
76
- "aria-label": intl.formatMessage(messages['header.label.search.nav'])
77
- })), /*#__PURE__*/React.createElement(Nav, null, /*#__PURE__*/React.createElement(UserMenu, {
78
- username: username,
79
- studioBaseUrl: studioBaseUrl,
80
- logoutUrl: logoutUrl,
81
- authenticatedUserAvatar: authenticatedUserAvatar,
82
- isAdmin: isAdmin
83
- }))));
84
- };
85
- HeaderBody.propTypes = {
86
- studioBaseUrl: PropTypes.string.isRequired,
87
- logoutUrl: PropTypes.string.isRequired,
88
- setModalPopupTarget: PropTypes.func,
89
- toggleModalPopup: PropTypes.func,
90
- isModalPopupOpen: PropTypes.bool,
91
- number: PropTypes.string,
92
- org: PropTypes.string,
93
- title: PropTypes.string,
94
- logo: PropTypes.string,
95
- logoAltText: PropTypes.string,
96
- authenticatedUserAvatar: PropTypes.string,
97
- username: PropTypes.string,
98
- isAdmin: PropTypes.bool,
99
- isMobile: PropTypes.bool,
100
- isHiddenMainMenu: PropTypes.bool,
101
- mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({
102
- id: PropTypes.string,
103
- buttonTitle: PropTypes.string,
104
- items: PropTypes.arrayOf(PropTypes.shape({
105
- href: PropTypes.string,
106
- title: PropTypes.string
107
- }))
108
- })),
109
- outlineLink: PropTypes.string,
110
- searchButtonAction: PropTypes.func
111
- };
112
- HeaderBody.defaultProps = {
113
- setModalPopupTarget: null,
114
- toggleModalPopup: null,
115
- isModalPopupOpen: false,
116
- logo: null,
117
- logoAltText: null,
118
- number: '',
119
- org: '',
120
- title: '',
121
- authenticatedUserAvatar: null,
122
- username: null,
123
- isAdmin: false,
124
- isMobile: false,
125
- isHiddenMainMenu: false,
126
- mainMenuDropdowns: [],
127
- outlineLink: null,
128
- searchButtonAction: null
129
- };
130
- export default HeaderBody;
131
- //# sourceMappingURL=HeaderBody.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HeaderBody.js","names":["React","PropTypes","useIntl","ActionRow","Button","Container","Icon","IconButton","Nav","Row","Close","MenuIcon","Search","CourseLockUp","UserMenu","BrandNav","NavDropdownMenu","messages","HeaderBody","_ref","logo","logoAltText","number","org","title","username","isAdmin","studioBaseUrl","logoutUrl","authenticatedUserAvatar","isMobile","setModalPopupTarget","toggleModalPopup","isModalPopupOpen","isHiddenMainMenu","mainMenuDropdowns","outlineLink","searchButtonAction","intl","renderBrandNav","createElement","size","className","as","Fragment","ref","variant","onClick","iconBefore","Spacer","map","dropdown","id","buttonTitle","items","key","src","iconAs","formatMessage","propTypes","string","isRequired","func","bool","arrayOf","shape","href","defaultProps"],"sources":["../../src/studio-header/HeaderBody.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow,\n Button,\n Container,\n Icon,\n IconButton,\n Nav,\n Row,\n} from '@openedx/paragon';\nimport { Close, MenuIcon, Search } from '@openedx/paragon/icons';\n\nimport CourseLockUp from './CourseLockUp';\nimport UserMenu from './UserMenu';\nimport BrandNav from './BrandNav';\nimport NavDropdownMenu from './NavDropdownMenu';\nimport messages from './messages';\n\nconst HeaderBody = ({\n logo,\n logoAltText,\n number,\n org,\n title,\n username,\n isAdmin,\n studioBaseUrl,\n logoutUrl,\n authenticatedUserAvatar,\n isMobile,\n setModalPopupTarget,\n toggleModalPopup,\n isModalPopupOpen,\n isHiddenMainMenu,\n mainMenuDropdowns,\n outlineLink,\n searchButtonAction,\n}) => {\n const intl = useIntl();\n\n const renderBrandNav = (\n <BrandNav\n {...{\n studioBaseUrl,\n logo,\n logoAltText,\n }}\n />\n );\n\n return (\n <Container size=\"xl\" className=\"px-2.5\">\n <ActionRow as=\"header\">\n {isHiddenMainMenu ? (\n <Row className=\"flex-nowrap ml-4\">\n {renderBrandNav}\n </Row>\n ) : (\n <>\n {isMobile ? (\n <Button\n ref={setModalPopupTarget}\n className=\"d-inline-flex align-items-center\"\n variant=\"tertiary\"\n onClick={toggleModalPopup}\n iconBefore={isModalPopupOpen ? Close : MenuIcon}\n data-testid=\"mobile-menu-button\"\n >\n Menu\n </Button>\n ) : (\n <div className=\"w-25\">\n <Row className=\"m-0 flex-nowrap\">\n {renderBrandNav}\n <CourseLockUp\n {...{\n outlineLink,\n number,\n org,\n title,\n }}\n />\n </Row>\n </div>\n )}\n {isMobile ? (\n <>\n <ActionRow.Spacer />\n {renderBrandNav}\n </>\n ) : (\n <Nav data-testid=\"desktop-menu\" className=\"ml-2\">\n {mainMenuDropdowns.map(dropdown => {\n const { id, buttonTitle, items } = dropdown;\n return (\n <NavDropdownMenu key={id} {...{ id, buttonTitle, items }} />\n );\n })}\n </Nav>\n )}\n </>\n )}\n <ActionRow.Spacer />\n {searchButtonAction && (\n <Nav>\n <IconButton\n src={Search}\n iconAs={Icon}\n onClick={searchButtonAction}\n aria-label={intl.formatMessage(messages['header.label.search.nav'])}\n />\n </Nav>\n )}\n <Nav>\n <UserMenu\n {...{\n username,\n studioBaseUrl,\n logoutUrl,\n authenticatedUserAvatar,\n isAdmin,\n }}\n />\n </Nav>\n </ActionRow>\n </Container>\n );\n};\n\nHeaderBody.propTypes = {\n studioBaseUrl: PropTypes.string.isRequired,\n logoutUrl: PropTypes.string.isRequired,\n setModalPopupTarget: PropTypes.func,\n toggleModalPopup: PropTypes.func,\n isModalPopupOpen: PropTypes.bool,\n number: PropTypes.string,\n org: PropTypes.string,\n title: PropTypes.string,\n logo: PropTypes.string,\n logoAltText: PropTypes.string,\n authenticatedUserAvatar: PropTypes.string,\n username: PropTypes.string,\n isAdmin: PropTypes.bool,\n isMobile: PropTypes.bool,\n isHiddenMainMenu: PropTypes.bool,\n mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n buttonTitle: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n href: PropTypes.string,\n title: PropTypes.string,\n })),\n })),\n outlineLink: PropTypes.string,\n searchButtonAction: PropTypes.func,\n};\n\nHeaderBody.defaultProps = {\n setModalPopupTarget: null,\n toggleModalPopup: null,\n isModalPopupOpen: false,\n logo: null,\n logoAltText: null,\n number: '',\n org: '',\n title: '',\n authenticatedUserAvatar: null,\n username: null,\n isAdmin: false,\n isMobile: false,\n isHiddenMainMenu: false,\n mainMenuDropdowns: [],\n outlineLink: null,\n searchButtonAction: null,\n};\n\nexport default HeaderBody;\n"],"mappings":"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","ignoreList":[]}
@@ -1,79 +0,0 @@
1
- var _excluded = ["mainMenuDropdowns"];
2
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
- 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."); }
5
- 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); }
6
- 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; }
7
- 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; } }
8
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
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; }
11
- import React, { useState } from 'react';
12
- import PropTypes from 'prop-types';
13
- import { useToggle, ModalPopup } from '@openedx/paragon';
14
- import HeaderBody from './HeaderBody';
15
- import MobileMenu from './MobileMenu';
16
- var MobileHeader = function MobileHeader(_ref) {
17
- var mainMenuDropdowns = _ref.mainMenuDropdowns,
18
- props = _objectWithoutProperties(_ref, _excluded);
19
- var _useToggle = useToggle(false),
20
- _useToggle2 = _slicedToArray(_useToggle, 4),
21
- isOpen = _useToggle2[0],
22
- close = _useToggle2[2],
23
- toggle = _useToggle2[3];
24
- var _useState = useState(null),
25
- _useState2 = _slicedToArray(_useState, 2),
26
- target = _useState2[0],
27
- setTarget = _useState2[1];
28
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HeaderBody, _extends({}, props, {
29
- isMobile: true,
30
- setModalPopupTarget: setTarget,
31
- toggleModalPopup: toggle,
32
- isModalPopupOpen: isOpen
33
- })), /*#__PURE__*/React.createElement(ModalPopup, {
34
- hasArrow: true,
35
- placement: "bottom",
36
- positionRef: target,
37
- isOpen: isOpen,
38
- onClose: close,
39
- onEscapeKey: close,
40
- className: "mobile-menu-container"
41
- }, /*#__PURE__*/React.createElement(MobileMenu, {
42
- mainMenuDropdowns: mainMenuDropdowns
43
- })));
44
- };
45
- MobileHeader.propTypes = {
46
- studioBaseUrl: PropTypes.string.isRequired,
47
- logoutUrl: PropTypes.string.isRequired,
48
- number: PropTypes.string,
49
- org: PropTypes.string,
50
- title: PropTypes.string,
51
- logo: PropTypes.string,
52
- logoAltText: PropTypes.string,
53
- authenticatedUserAvatar: PropTypes.string,
54
- username: PropTypes.string,
55
- isAdmin: PropTypes.bool,
56
- mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({
57
- id: PropTypes.string,
58
- buttonTitle: PropTypes.string,
59
- items: PropTypes.arrayOf(PropTypes.shape({
60
- href: PropTypes.string,
61
- title: PropTypes.string
62
- }))
63
- })),
64
- outlineLink: PropTypes.string
65
- };
66
- MobileHeader.defaultProps = {
67
- logo: null,
68
- logoAltText: null,
69
- number: null,
70
- org: null,
71
- title: null,
72
- authenticatedUserAvatar: null,
73
- username: null,
74
- isAdmin: false,
75
- mainMenuDropdowns: [],
76
- outlineLink: null
77
- };
78
- export default MobileHeader;
79
- //# sourceMappingURL=MobileHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileHeader.js","names":["React","useState","PropTypes","useToggle","ModalPopup","HeaderBody","MobileMenu","MobileHeader","_ref","mainMenuDropdowns","props","_objectWithoutProperties","_excluded","_useToggle","_useToggle2","_slicedToArray","isOpen","close","toggle","_useState","_useState2","target","setTarget","createElement","Fragment","_extends","isMobile","setModalPopupTarget","toggleModalPopup","isModalPopupOpen","hasArrow","placement","positionRef","onClose","onEscapeKey","className","propTypes","studioBaseUrl","string","isRequired","logoutUrl","number","org","title","logo","logoAltText","authenticatedUserAvatar","username","isAdmin","bool","arrayOf","shape","id","buttonTitle","items","href","outlineLink","defaultProps"],"sources":["../../src/studio-header/MobileHeader.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useToggle, ModalPopup } from '@openedx/paragon';\nimport HeaderBody from './HeaderBody';\nimport MobileMenu from './MobileMenu';\n\nconst MobileHeader = ({\n mainMenuDropdowns,\n ...props\n}) => {\n const [isOpen, , close, toggle] = useToggle(false);\n const [target, setTarget] = useState(null);\n\n return (\n <>\n <HeaderBody\n {...props}\n isMobile\n setModalPopupTarget={setTarget}\n toggleModalPopup={toggle}\n isModalPopupOpen={isOpen}\n />\n <ModalPopup\n hasArrow\n placement=\"bottom\"\n positionRef={target}\n isOpen={isOpen}\n onClose={close}\n onEscapeKey={close}\n className=\"mobile-menu-container\"\n >\n <MobileMenu {...{ mainMenuDropdowns }} />\n </ModalPopup>\n </>\n );\n};\n\nMobileHeader.propTypes = {\n studioBaseUrl: PropTypes.string.isRequired,\n logoutUrl: PropTypes.string.isRequired,\n number: PropTypes.string,\n org: PropTypes.string,\n title: PropTypes.string,\n logo: PropTypes.string,\n logoAltText: PropTypes.string,\n authenticatedUserAvatar: PropTypes.string,\n username: PropTypes.string,\n isAdmin: PropTypes.bool,\n mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n buttonTitle: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n href: PropTypes.string,\n title: PropTypes.string,\n })),\n })),\n outlineLink: PropTypes.string,\n};\n\nMobileHeader.defaultProps = {\n logo: null,\n logoAltText: null,\n number: null,\n org: null,\n title: null,\n authenticatedUserAvatar: null,\n username: null,\n isAdmin: false,\n mainMenuDropdowns: [],\n outlineLink: null,\n};\n\nexport default MobileHeader;\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,SAAS,EAAEC,UAAU,QAAQ,kBAAkB;AACxD,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,UAAU,MAAM,cAAc;AAErC,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAGZ;EAAA,IAFJC,iBAAiB,GAAAD,IAAA,CAAjBC,iBAAiB;IACdC,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EAER,IAAAC,UAAA,GAAkCV,SAAS,CAAC,KAAK,CAAC;IAAAW,WAAA,GAAAC,cAAA,CAAAF,UAAA;IAA3CG,MAAM,GAAAF,WAAA;IAAIG,KAAK,GAAAH,WAAA;IAAEI,MAAM,GAAAJ,WAAA;EAC9B,IAAAK,SAAA,GAA4BlB,QAAQ,CAAC,IAAI,CAAC;IAAAmB,UAAA,GAAAL,cAAA,CAAAI,SAAA;IAAnCE,MAAM,GAAAD,UAAA;IAAEE,SAAS,GAAAF,UAAA;EAExB,oBACEpB,KAAA,CAAAuB,aAAA,CAAAvB,KAAA,CAAAwB,QAAA,qBACExB,KAAA,CAAAuB,aAAA,CAAClB,UAAU,EAAAoB,QAAA,KACLf,KAAK;IACTgB,QAAQ;IACRC,mBAAmB,EAAEL,SAAU;IAC/BM,gBAAgB,EAAEV,MAAO;IACzBW,gBAAgB,EAAEb;EAAO,EAC1B,CAAC,eACFhB,KAAA,CAAAuB,aAAA,CAACnB,UAAU;IACT0B,QAAQ;IACRC,SAAS,EAAC,QAAQ;IAClBC,WAAW,EAAEX,MAAO;IACpBL,MAAM,EAAEA,MAAO;IACfiB,OAAO,EAAEhB,KAAM;IACfiB,WAAW,EAAEjB,KAAM;IACnBkB,SAAS,EAAC;EAAuB,gBAEjCnC,KAAA,CAAAuB,aAAA,CAACjB,UAAU;IAAOG,iBAAiB,EAAjBA;EAAiB,CAAK,CAC9B,CACZ,CAAC;AAEP,CAAC;AAEDF,YAAY,CAAC6B,SAAS,GAAG;EACvBC,aAAa,EAAEnC,SAAS,CAACoC,MAAM,CAACC,UAAU;EAC1CC,SAAS,EAAEtC,SAAS,CAACoC,MAAM,CAACC,UAAU;EACtCE,MAAM,EAAEvC,SAAS,CAACoC,MAAM;EACxBI,GAAG,EAAExC,SAAS,CAACoC,MAAM;EACrBK,KAAK,EAAEzC,SAAS,CAACoC,MAAM;EACvBM,IAAI,EAAE1C,SAAS,CAACoC,MAAM;EACtBO,WAAW,EAAE3C,SAAS,CAACoC,MAAM;EAC7BQ,uBAAuB,EAAE5C,SAAS,CAACoC,MAAM;EACzCS,QAAQ,EAAE7C,SAAS,CAACoC,MAAM;EAC1BU,OAAO,EAAE9C,SAAS,CAAC+C,IAAI;EACvBxC,iBAAiB,EAAEP,SAAS,CAACgD,OAAO,CAAChD,SAAS,CAACiD,KAAK,CAAC;IACnDC,EAAE,EAAElD,SAAS,CAACoC,MAAM;IACpBe,WAAW,EAAEnD,SAAS,CAACoC,MAAM;IAC7BgB,KAAK,EAAEpD,SAAS,CAACgD,OAAO,CAAChD,SAAS,CAACiD,KAAK,CAAC;MACvCI,IAAI,EAAErD,SAAS,CAACoC,MAAM;MACtBK,KAAK,EAAEzC,SAAS,CAACoC;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC,CAAC;EACHkB,WAAW,EAAEtD,SAAS,CAACoC;AACzB,CAAC;AAED/B,YAAY,CAACkD,YAAY,GAAG;EAC1Bb,IAAI,EAAE,IAAI;EACVC,WAAW,EAAE,IAAI;EACjBJ,MAAM,EAAE,IAAI;EACZC,GAAG,EAAE,IAAI;EACTC,KAAK,EAAE,IAAI;EACXG,uBAAuB,EAAE,IAAI;EAC7BC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,KAAK;EACdvC,iBAAiB,EAAE,EAAE;EACrB+C,WAAW,EAAE;AACf,CAAC;AAED,eAAejD,YAAY","ignoreList":[]}
@@ -1,45 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Collapsible } from '@openedx/paragon';
4
- var MobileMenu = function MobileMenu(_ref) {
5
- var mainMenuDropdowns = _ref.mainMenuDropdowns;
6
- return /*#__PURE__*/React.createElement("div", {
7
- className: "ml-4 p-2 bg-light-100 border border-gray-200 small rounded",
8
- "data-testid": "mobile-menu"
9
- }, /*#__PURE__*/React.createElement("div", null, mainMenuDropdowns.map(function (dropdown) {
10
- var id = dropdown.id,
11
- buttonTitle = dropdown.buttonTitle,
12
- items = dropdown.items;
13
- return /*#__PURE__*/React.createElement(Collapsible, {
14
- className: "border-light-100",
15
- title: buttonTitle,
16
- key: id
17
- }, /*#__PURE__*/React.createElement("ul", {
18
- className: "p-0",
19
- style: {
20
- listStyleType: 'none'
21
- }
22
- }, items.map(function (item) {
23
- return /*#__PURE__*/React.createElement("li", {
24
- className: "mobile-menu-item"
25
- }, /*#__PURE__*/React.createElement("a", {
26
- href: item.href
27
- }, item.title));
28
- })));
29
- })));
30
- };
31
- MobileMenu.propTypes = {
32
- mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({
33
- id: PropTypes.string,
34
- buttonTitle: PropTypes.string,
35
- items: PropTypes.arrayOf(PropTypes.shape({
36
- href: PropTypes.string,
37
- title: PropTypes.string
38
- }))
39
- }))
40
- };
41
- MobileMenu.defaultProps = {
42
- mainMenuDropdowns: []
43
- };
44
- export default MobileMenu;
45
- //# sourceMappingURL=MobileMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileMenu.js","names":["React","PropTypes","Collapsible","MobileMenu","_ref","mainMenuDropdowns","createElement","className","map","dropdown","id","buttonTitle","items","title","key","style","listStyleType","item","href","propTypes","arrayOf","shape","string","defaultProps"],"sources":["../../src/studio-header/MobileMenu.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Collapsible } from '@openedx/paragon';\n\nconst MobileMenu = ({\n mainMenuDropdowns,\n}) => (\n <div\n className=\"ml-4 p-2 bg-light-100 border border-gray-200 small rounded\"\n data-testid=\"mobile-menu\"\n >\n <div>\n {mainMenuDropdowns.map(dropdown => {\n const { id, buttonTitle, items } = dropdown;\n return (\n <Collapsible\n className=\"border-light-100\"\n title={buttonTitle}\n key={id}\n >\n <ul className=\"p-0\" style={{ listStyleType: 'none' }}>\n {items.map(item => (\n <li className=\"mobile-menu-item\">\n <a href={item.href}>\n {item.title}\n </a>\n </li>\n ))}\n </ul>\n </Collapsible>\n );\n })}\n </div>\n </div>\n);\n\nMobileMenu.propTypes = {\n mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n buttonTitle: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n href: PropTypes.string,\n title: PropTypes.string,\n })),\n })),\n};\nMobileMenu.defaultProps = {\n mainMenuDropdowns: [],\n};\n\nexport default MobileMenu;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,WAAW,QAAQ,kBAAkB;AAE9C,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA;EAAA,IACdC,iBAAiB,GAAAD,IAAA,CAAjBC,iBAAiB;EAAA,oBAEjBL,KAAA,CAAAM,aAAA;IACEC,SAAS,EAAC,4DAA4D;IACtE,eAAY;EAAa,gBAEzBP,KAAA,CAAAM,aAAA,cACGD,iBAAiB,CAACG,GAAG,CAAC,UAAAC,QAAQ,EAAI;IACjC,IAAQC,EAAE,GAAyBD,QAAQ,CAAnCC,EAAE;MAAEC,WAAW,GAAYF,QAAQ,CAA/BE,WAAW;MAAEC,KAAK,GAAKH,QAAQ,CAAlBG,KAAK;IAC9B,oBACEZ,KAAA,CAAAM,aAAA,CAACJ,WAAW;MACVK,SAAS,EAAC,kBAAkB;MAC5BM,KAAK,EAAEF,WAAY;MACnBG,GAAG,EAAEJ;IAAG,gBAERV,KAAA,CAAAM,aAAA;MAAIC,SAAS,EAAC,KAAK;MAACQ,KAAK,EAAE;QAAEC,aAAa,EAAE;MAAO;IAAE,GAClDJ,KAAK,CAACJ,GAAG,CAAC,UAAAS,IAAI;MAAA,oBACbjB,KAAA,CAAAM,aAAA;QAAIC,SAAS,EAAC;MAAkB,gBAC9BP,KAAA,CAAAM,aAAA;QAAGY,IAAI,EAAED,IAAI,CAACC;MAAK,GAChBD,IAAI,CAACJ,KACL,CACD,CAAC;IAAA,CACN,CACC,CACO,CAAC;EAElB,CAAC,CACE,CACF,CAAC;AAAA,CACP;AAEDV,UAAU,CAACgB,SAAS,GAAG;EACrBd,iBAAiB,EAAEJ,SAAS,CAACmB,OAAO,CAACnB,SAAS,CAACoB,KAAK,CAAC;IACnDX,EAAE,EAAET,SAAS,CAACqB,MAAM;IACpBX,WAAW,EAAEV,SAAS,CAACqB,MAAM;IAC7BV,KAAK,EAAEX,SAAS,CAACmB,OAAO,CAACnB,SAAS,CAACoB,KAAK,CAAC;MACvCH,IAAI,EAAEjB,SAAS,CAACqB,MAAM;MACtBT,KAAK,EAAEZ,SAAS,CAACqB;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AACDnB,UAAU,CAACoB,YAAY,GAAG;EACxBlB,iBAAiB,EAAE;AACrB,CAAC;AAED,eAAeF,UAAU","ignoreList":[]}
@@ -1,30 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Dropdown, DropdownButton } from '@openedx/paragon';
4
- var NavDropdownMenu = function NavDropdownMenu(_ref) {
5
- var id = _ref.id,
6
- buttonTitle = _ref.buttonTitle,
7
- items = _ref.items;
8
- return /*#__PURE__*/React.createElement(DropdownButton, {
9
- id: id,
10
- title: buttonTitle,
11
- variant: "outline-primary",
12
- className: "mr-2"
13
- }, items.map(function (item) {
14
- return /*#__PURE__*/React.createElement(Dropdown.Item, {
15
- key: "".concat(item.title, "-dropdown-item"),
16
- href: item.href,
17
- className: "small"
18
- }, item.title);
19
- }));
20
- };
21
- NavDropdownMenu.propTypes = {
22
- id: PropTypes.string.isRequired,
23
- buttonTitle: PropTypes.string.isRequired,
24
- items: PropTypes.arrayOf(PropTypes.shape({
25
- href: PropTypes.string,
26
- title: PropTypes.string
27
- })).isRequired
28
- };
29
- export default NavDropdownMenu;
30
- //# sourceMappingURL=NavDropdownMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavDropdownMenu.js","names":["React","PropTypes","Dropdown","DropdownButton","NavDropdownMenu","_ref","id","buttonTitle","items","createElement","title","variant","className","map","item","Item","key","concat","href","propTypes","string","isRequired","arrayOf","shape"],"sources":["../../src/studio-header/NavDropdownMenu.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Dropdown,\n DropdownButton,\n} from '@openedx/paragon';\n\nconst NavDropdownMenu = ({\n id,\n buttonTitle,\n items,\n}) => (\n <DropdownButton\n id={id}\n title={buttonTitle}\n variant=\"outline-primary\"\n className=\"mr-2\"\n >\n {items.map(item => (\n <Dropdown.Item\n key={`${item.title}-dropdown-item`}\n href={item.href}\n className=\"small\"\n >\n {item.title}\n </Dropdown.Item>\n ))}\n </DropdownButton>\n);\n\nNavDropdownMenu.propTypes = {\n id: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n items: PropTypes.arrayOf(PropTypes.shape({\n href: PropTypes.string,\n title: PropTypes.string,\n })).isRequired,\n};\n\nexport default NavDropdownMenu;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SACEC,QAAQ,EACRC,cAAc,QACT,kBAAkB;AAEzB,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA;EAAA,IACnBC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IACFC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,KAAK,GAAAH,IAAA,CAALG,KAAK;EAAA,oBAELR,KAAA,CAAAS,aAAA,CAACN,cAAc;IACbG,EAAE,EAAEA,EAAG;IACPI,KAAK,EAAEH,WAAY;IACnBI,OAAO,EAAC,iBAAiB;IACzBC,SAAS,EAAC;EAAM,GAEfJ,KAAK,CAACK,GAAG,CAAC,UAAAC,IAAI;IAAA,oBACbd,KAAA,CAAAS,aAAA,CAACP,QAAQ,CAACa,IAAI;MACZC,GAAG,KAAAC,MAAA,CAAKH,IAAI,CAACJ,KAAK,mBAAiB;MACnCQ,IAAI,EAAEJ,IAAI,CAACI,IAAK;MAChBN,SAAS,EAAC;IAAO,GAEhBE,IAAI,CAACJ,KACO,CAAC;EAAA,CACjB,CACa,CAAC;AAAA,CAClB;AAEDN,eAAe,CAACe,SAAS,GAAG;EAC1Bb,EAAE,EAAEL,SAAS,CAACmB,MAAM,CAACC,UAAU;EAC/Bd,WAAW,EAAEN,SAAS,CAACmB,MAAM,CAACC,UAAU;EACxCb,KAAK,EAAEP,SAAS,CAACqB,OAAO,CAACrB,SAAS,CAACsB,KAAK,CAAC;IACvCL,IAAI,EAAEjB,SAAS,CAACmB,MAAM;IACtBV,KAAK,EAAET,SAAS,CAACmB;EACnB,CAAC,CAAC,CAAC,CAACC;AACN,CAAC;AAED,eAAejB,eAAe","ignoreList":[]}
@@ -1,72 +0,0 @@
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
- import MobileHeader from './MobileHeader';
7
- import HeaderBody from './HeaderBody';
8
- ensureConfig(['STUDIO_BASE_URL', 'SITE_NAME', 'LOGOUT_URL', 'LOGIN_URL', 'LOGO_URL'], 'Studio Header component');
9
- var StudioHeader = function StudioHeader(_ref) {
10
- var number = _ref.number,
11
- org = _ref.org,
12
- title = _ref.title,
13
- isHiddenMainMenu = _ref.isHiddenMainMenu,
14
- mainMenuDropdowns = _ref.mainMenuDropdowns,
15
- outlineLink = _ref.outlineLink,
16
- searchButtonAction = _ref.searchButtonAction;
17
- var _useContext = useContext(AppContext),
18
- authenticatedUser = _useContext.authenticatedUser,
19
- config = _useContext.config;
20
- var props = {
21
- logo: config.LOGO_URL,
22
- logoAltText: "Studio ".concat(config.SITE_NAME),
23
- number: number,
24
- org: org,
25
- title: title,
26
- username: authenticatedUser === null || authenticatedUser === void 0 ? void 0 : authenticatedUser.username,
27
- isAdmin: authenticatedUser === null || authenticatedUser === void 0 ? void 0 : authenticatedUser.administrator,
28
- authenticatedUserAvatar: authenticatedUser === null || authenticatedUser === void 0 ? void 0 : authenticatedUser.avatar,
29
- studioBaseUrl: config.STUDIO_BASE_URL,
30
- logoutUrl: config.LOGOUT_URL,
31
- isHiddenMainMenu: isHiddenMainMenu,
32
- mainMenuDropdowns: mainMenuDropdowns,
33
- outlineLink: outlineLink,
34
- searchButtonAction: searchButtonAction
35
- };
36
- return /*#__PURE__*/React.createElement("div", {
37
- className: "studio-header"
38
- }, /*#__PURE__*/React.createElement("a", {
39
- className: "nav-skip sr-only sr-only-focusable",
40
- href: "#main"
41
- }, "Skip to content"), /*#__PURE__*/React.createElement(Responsive, {
42
- maxWidth: 841
43
- }, /*#__PURE__*/React.createElement(MobileHeader, props)), /*#__PURE__*/React.createElement(Responsive, {
44
- minWidth: 842
45
- }, /*#__PURE__*/React.createElement(HeaderBody, props)));
46
- };
47
- StudioHeader.propTypes = {
48
- number: PropTypes.string,
49
- org: PropTypes.string,
50
- title: PropTypes.string.isRequired,
51
- isHiddenMainMenu: PropTypes.bool,
52
- mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({
53
- id: PropTypes.string,
54
- buttonTitle: PropTypes.string,
55
- items: PropTypes.arrayOf(PropTypes.shape({
56
- href: PropTypes.string,
57
- title: PropTypes.string
58
- }))
59
- })),
60
- outlineLink: PropTypes.string,
61
- searchButtonAction: PropTypes.func
62
- };
63
- StudioHeader.defaultProps = {
64
- number: '',
65
- org: '',
66
- isHiddenMainMenu: false,
67
- mainMenuDropdowns: [],
68
- outlineLink: null,
69
- searchButtonAction: null
70
- };
71
- export default StudioHeader;
72
- //# sourceMappingURL=StudioHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioHeader.js","names":["React","useContext","PropTypes","Responsive","AppContext","ensureConfig","MobileHeader","HeaderBody","StudioHeader","_ref","number","org","title","isHiddenMainMenu","mainMenuDropdowns","outlineLink","searchButtonAction","_useContext","authenticatedUser","config","props","logo","LOGO_URL","logoAltText","concat","SITE_NAME","username","isAdmin","administrator","authenticatedUserAvatar","avatar","studioBaseUrl","STUDIO_BASE_URL","logoutUrl","LOGOUT_URL","createElement","className","href","maxWidth","minWidth","propTypes","string","isRequired","bool","arrayOf","shape","id","buttonTitle","items","func","defaultProps"],"sources":["../../src/studio-header/StudioHeader.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Responsive from 'react-responsive';\nimport { AppContext } from '@edx/frontend-platform/react';\nimport { ensureConfig } from '@edx/frontend-platform';\n\nimport MobileHeader from './MobileHeader';\nimport HeaderBody from './HeaderBody';\n\nensureConfig([\n 'STUDIO_BASE_URL',\n 'SITE_NAME',\n 'LOGOUT_URL',\n 'LOGIN_URL',\n 'LOGO_URL',\n], 'Studio Header component');\n\nconst StudioHeader = ({\n number, org, title, isHiddenMainMenu, mainMenuDropdowns, outlineLink, searchButtonAction,\n}) => {\n const { authenticatedUser, config } = useContext(AppContext);\n const props = {\n logo: config.LOGO_URL,\n logoAltText: `Studio ${config.SITE_NAME}`,\n number,\n org,\n title,\n username: authenticatedUser?.username,\n isAdmin: authenticatedUser?.administrator,\n authenticatedUserAvatar: authenticatedUser?.avatar,\n studioBaseUrl: config.STUDIO_BASE_URL,\n logoutUrl: config.LOGOUT_URL,\n isHiddenMainMenu,\n mainMenuDropdowns,\n outlineLink,\n searchButtonAction,\n };\n\n return (\n <div className=\"studio-header\">\n <a className=\"nav-skip sr-only sr-only-focusable\" href=\"#main\">Skip to content</a>\n <Responsive maxWidth={841}>\n <MobileHeader {...props} />\n </Responsive>\n <Responsive minWidth={842}>\n <HeaderBody {...props} />\n </Responsive>\n </div>\n );\n};\n\nStudioHeader.propTypes = {\n number: PropTypes.string,\n org: PropTypes.string,\n title: PropTypes.string.isRequired,\n isHiddenMainMenu: PropTypes.bool,\n mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string,\n buttonTitle: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n href: PropTypes.string,\n title: PropTypes.string,\n })),\n })),\n outlineLink: PropTypes.string,\n searchButtonAction: PropTypes.func,\n};\n\nStudioHeader.defaultProps = {\n number: '',\n org: '',\n isHiddenMainMenu: false,\n mainMenuDropdowns: [],\n outlineLink: null,\n searchButtonAction: null,\n};\n\nexport default StudioHeader;\n"],"mappings":"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","ignoreList":[]}
@@ -1,55 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
4
- import { Avatar } from '@openedx/paragon';
5
- import NavDropdownMenu from './NavDropdownMenu';
6
- import getUserMenuItems from './utils';
7
- var UserMenu = function UserMenu(_ref) {
8
- var username = _ref.username,
9
- studioBaseUrl = _ref.studioBaseUrl,
10
- logoutUrl = _ref.logoutUrl,
11
- authenticatedUserAvatar = _ref.authenticatedUserAvatar,
12
- isMobile = _ref.isMobile,
13
- isAdmin = _ref.isAdmin,
14
- intl = _ref.intl;
15
- var avatar = authenticatedUserAvatar ? /*#__PURE__*/React.createElement("img", {
16
- className: "d-block w-100 h-100",
17
- src: authenticatedUserAvatar,
18
- alt: username,
19
- "data-testid": "avatar-image"
20
- }) : /*#__PURE__*/React.createElement(Avatar, {
21
- size: "sm",
22
- className: "mr-2",
23
- alt: username,
24
- "data-testid": "avatar-icon"
25
- });
26
- var title = isMobile ? avatar : /*#__PURE__*/React.createElement(React.Fragment, null, avatar, username);
27
- return /*#__PURE__*/React.createElement(NavDropdownMenu, {
28
- buttonTitle: title,
29
- id: "user-dropdown-menu",
30
- items: getUserMenuItems({
31
- studioBaseUrl: studioBaseUrl,
32
- logoutUrl: logoutUrl,
33
- intl: intl,
34
- isAdmin: isAdmin
35
- })
36
- });
37
- };
38
- UserMenu.propTypes = {
39
- username: PropTypes.string,
40
- studioBaseUrl: PropTypes.string.isRequired,
41
- logoutUrl: PropTypes.string.isRequired,
42
- authenticatedUserAvatar: PropTypes.string,
43
- isMobile: PropTypes.bool,
44
- isAdmin: PropTypes.bool,
45
- // injected
46
- intl: intlShape.isRequired
47
- };
48
- UserMenu.defaultProps = {
49
- isMobile: false,
50
- isAdmin: false,
51
- authenticatedUserAvatar: null,
52
- username: null
53
- };
54
- export default injectIntl(UserMenu);
55
- //# sourceMappingURL=UserMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserMenu.js","names":["React","PropTypes","injectIntl","intlShape","Avatar","NavDropdownMenu","getUserMenuItems","UserMenu","_ref","username","studioBaseUrl","logoutUrl","authenticatedUserAvatar","isMobile","isAdmin","intl","avatar","createElement","className","src","alt","size","title","Fragment","buttonTitle","id","items","propTypes","string","isRequired","bool","defaultProps"],"sources":["../../src/studio-header/UserMenu.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport {\n Avatar,\n} from '@openedx/paragon';\nimport NavDropdownMenu from './NavDropdownMenu';\nimport getUserMenuItems from './utils';\n\nconst UserMenu = ({\n username,\n studioBaseUrl,\n logoutUrl,\n authenticatedUserAvatar,\n isMobile,\n isAdmin,\n // injected\n intl,\n}) => {\n const avatar = authenticatedUserAvatar ? (\n <img\n className=\"d-block w-100 h-100\"\n src={authenticatedUserAvatar}\n alt={username}\n data-testid=\"avatar-image\"\n />\n ) : (\n <Avatar\n size=\"sm\"\n className=\"mr-2\"\n alt={username}\n data-testid=\"avatar-icon\"\n />\n );\n const title = isMobile ? avatar : <>{avatar}{username}</>;\n\n return (\n <NavDropdownMenu\n buttonTitle={title}\n id=\"user-dropdown-menu\"\n items={getUserMenuItems({\n studioBaseUrl,\n logoutUrl,\n intl,\n isAdmin,\n })}\n />\n );\n};\n\nUserMenu.propTypes = {\n username: PropTypes.string,\n studioBaseUrl: PropTypes.string.isRequired,\n logoutUrl: PropTypes.string.isRequired,\n authenticatedUserAvatar: PropTypes.string,\n isMobile: PropTypes.bool,\n isAdmin: PropTypes.bool,\n // injected\n intl: intlShape.isRequired,\n};\n\nUserMenu.defaultProps = {\n isMobile: false,\n isAdmin: false,\n authenticatedUserAvatar: null,\n username: null,\n};\n\nexport default injectIntl(UserMenu);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SACEC,MAAM,QACD,kBAAkB;AACzB,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,gBAAgB,MAAM,SAAS;AAEtC,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EASR;EAAA,IARJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,uBAAuB,GAAAJ,IAAA,CAAvBI,uBAAuB;IACvBC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IAEPC,IAAI,GAAAP,IAAA,CAAJO,IAAI;EAEJ,IAAMC,MAAM,GAAGJ,uBAAuB,gBACpCZ,KAAA,CAAAiB,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/BC,GAAG,EAAEP,uBAAwB;IAC7BQ,GAAG,EAAEX,QAAS;IACd,eAAY;EAAc,CAC3B,CAAC,gBAEFT,KAAA,CAAAiB,aAAA,CAACb,MAAM;IACLiB,IAAI,EAAC,IAAI;IACTH,SAAS,EAAC,MAAM;IAChBE,GAAG,EAAEX,QAAS;IACd,eAAY;EAAa,CAC1B,CACF;EACD,IAAMa,KAAK,GAAGT,QAAQ,GAAGG,MAAM,gBAAGhB,KAAA,CAAAiB,aAAA,CAAAjB,KAAA,CAAAuB,QAAA,QAAGP,MAAM,EAAEP,QAAW,CAAC;EAEzD,oBACET,KAAA,CAAAiB,aAAA,CAACZ,eAAe;IACdmB,WAAW,EAAEF,KAAM;IACnBG,EAAE,EAAC,oBAAoB;IACvBC,KAAK,EAAEpB,gBAAgB,CAAC;MACtBI,aAAa,EAAbA,aAAa;MACbC,SAAS,EAATA,SAAS;MACTI,IAAI,EAAJA,IAAI;MACJD,OAAO,EAAPA;IACF,CAAC;EAAE,CACJ,CAAC;AAEN,CAAC;AAEDP,QAAQ,CAACoB,SAAS,GAAG;EACnBlB,QAAQ,EAAER,SAAS,CAAC2B,MAAM;EAC1BlB,aAAa,EAAET,SAAS,CAAC2B,MAAM,CAACC,UAAU;EAC1ClB,SAAS,EAAEV,SAAS,CAAC2B,MAAM,CAACC,UAAU;EACtCjB,uBAAuB,EAAEX,SAAS,CAAC2B,MAAM;EACzCf,QAAQ,EAAEZ,SAAS,CAAC6B,IAAI;EACxBhB,OAAO,EAAEb,SAAS,CAAC6B,IAAI;EACvB;EACAf,IAAI,EAAEZ,SAAS,CAAC0B;AAClB,CAAC;AAEDtB,QAAQ,CAACwB,YAAY,GAAG;EACtBlB,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAE,KAAK;EACdF,uBAAuB,EAAE,IAAI;EAC7BH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeP,UAAU,CAACK,QAAQ,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["StudioHeader"],"sources":["../../src/studio-header/index.js"],"sourcesContent":["import StudioHeader from './StudioHeader';\n\nexport default StudioHeader;\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,gBAAgB;AAEzC,eAAeA,YAAY","ignoreList":[]}