@nauedu/frontend-component-header 14.0.0-semantically-released → 18.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 (79) hide show
  1. package/README.rst +107 -33
  2. package/dist/Avatar.js +5 -7
  3. package/dist/Avatar.js.map +1 -1
  4. package/dist/DesktopHeader.js +88 -71
  5. package/dist/DesktopHeader.js.map +1 -1
  6. package/dist/Header.js +79 -39
  7. package/dist/Header.js.map +1 -1
  8. package/dist/Header.messages.js +15 -0
  9. package/dist/Header.messages.js.map +1 -1
  10. package/dist/Header.test.jsx +67 -90
  11. package/dist/Icons.js +1 -2
  12. package/dist/Icons.js.map +1 -1
  13. package/dist/Logo.js +11 -21
  14. package/dist/Logo.js.map +1 -1
  15. package/dist/Menu/Menu.js +42 -88
  16. package/dist/Menu/Menu.js.map +1 -1
  17. package/dist/Menu/index.js.map +1 -1
  18. package/dist/MobileHeader.js +80 -76
  19. package/dist/MobileHeader.js.map +1 -1
  20. package/dist/__snapshots__/Header.test.jsx.snap +8 -8
  21. package/dist/generic/messages.js.map +1 -1
  22. package/dist/i18n/index.js +1 -30
  23. package/dist/i18n/index.js.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.scss +11 -1
  27. package/dist/learning-header/AnonymousUserMenu.js +3 -5
  28. package/dist/learning-header/AnonymousUserMenu.js.map +1 -1
  29. package/dist/learning-header/AuthenticatedUserDropdown.js +8 -10
  30. package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -1
  31. package/dist/learning-header/LearningHeader.js +22 -42
  32. package/dist/learning-header/LearningHeader.js.map +1 -1
  33. package/dist/learning-header/_header.scss +5 -2
  34. package/dist/learning-header/data/api.js +30 -42
  35. package/dist/learning-header/data/api.js.map +1 -1
  36. package/dist/learning-header/data/api.test.js +124 -175
  37. package/dist/learning-header/data/api.test.js.map +1 -1
  38. package/dist/learning-header/messages.js.map +1 -1
  39. package/dist/setupTest.js +9 -13
  40. package/dist/studio-header/BrandNav.js +21 -0
  41. package/dist/studio-header/BrandNav.js.map +1 -0
  42. package/dist/studio-header/CourseLockUp.js +45 -0
  43. package/dist/studio-header/CourseLockUp.js.map +1 -0
  44. package/dist/studio-header/HeaderBody.js +131 -0
  45. package/dist/studio-header/HeaderBody.js.map +1 -0
  46. package/dist/studio-header/MobileHeader.js +79 -0
  47. package/dist/studio-header/MobileHeader.js.map +1 -0
  48. package/dist/studio-header/MobileMenu.js +45 -0
  49. package/dist/studio-header/MobileMenu.js.map +1 -0
  50. package/dist/studio-header/NavDropdownMenu.js +30 -0
  51. package/dist/studio-header/NavDropdownMenu.js.map +1 -0
  52. package/dist/studio-header/StudioHeader.js +72 -0
  53. package/dist/studio-header/StudioHeader.js.map +1 -0
  54. package/dist/studio-header/StudioHeader.scss +49 -0
  55. package/dist/studio-header/UserMenu.js +55 -0
  56. package/dist/studio-header/UserMenu.js.map +1 -0
  57. package/dist/studio-header/index.js +3 -0
  58. package/dist/studio-header/index.js.map +1 -0
  59. package/dist/studio-header/messages.js +60 -0
  60. package/dist/studio-header/messages.js.map +1 -0
  61. package/dist/studio-header/utils.js +29 -0
  62. package/dist/studio-header/utils.js.map +1 -0
  63. package/dist/test-utils.js +26 -0
  64. package/dist/test-utils.js.map +1 -0
  65. package/package.json +33 -33
  66. package/dist/i18n/messages/ar.json +0 -30
  67. package/dist/i18n/messages/ca.json +0 -1
  68. package/dist/i18n/messages/es_419.json +0 -30
  69. package/dist/i18n/messages/fr.json +0 -30
  70. package/dist/i18n/messages/fr_CA.json +0 -30
  71. package/dist/i18n/messages/he.json +0 -1
  72. package/dist/i18n/messages/id.json +0 -1
  73. package/dist/i18n/messages/ko_KR.json +0 -2
  74. package/dist/i18n/messages/pl.json +0 -1
  75. package/dist/i18n/messages/pt_BR.json +0 -2
  76. package/dist/i18n/messages/ru.json +0 -1
  77. package/dist/i18n/messages/th.json +0 -1
  78. package/dist/i18n/messages/uk.json +0 -1
  79. package/dist/i18n/messages/zh_CN.json +0 -30
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MobileHeader.jsx"],"names":["React","PropTypes","injectIntl","intlShape","getConfig","Menu","MenuTrigger","MenuContent","Avatar","LinkedLogo","Logo","messages","MenuIcon","MobileHeader","props","mainMenu","Array","isArray","map","menuItem","type","href","content","submenuContent","userMenu","loggedOutItems","i","arr","length","logo","logoAltText","logoDestination","loggedIn","avatar","username","stickyOnMobile","intl","logoProps","src","alt","stickyClassName","logoClasses","AUTHN_MINIMAL_HEADER","formatMessage","width","height","renderMainMenu","renderUserMenuItems","renderLoggedOutItems","Component","propTypes","oneOfType","node","array","arrayOf","shape","oneOf","string","bool","isRequired","defaultProps"],"mappings":"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","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 renderMainMenu() {\n const { mainMenu } = this.props;\n\n // Nodes are accepted as a prop\n if (!Array.isArray(mainMenu)) {\n return mainMenu;\n }\n\n return mainMenu.map((menuItem) => {\n const {\n type,\n href,\n content,\n submenuContent,\n } = menuItem;\n\n if (type === 'item') {\n return (\n <a key={`${type}-${content}`} className=\"nav-link\" href={href}>\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 renderUserMenuItems() {\n const { userMenu } = this.props;\n\n return userMenu.map(({ type, href, content }) => (\n <li className=\"nav-item\" key={`${type}-${content}`}>\n <a className=\"nav-link\" href={href}>{content}</a>\n </li>\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 </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\n userMenu: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\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 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"],"file":"MobileHeader.js"}
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":[]}
@@ -93,7 +93,7 @@ exports[`<Header /> renders correctly for anonymous mobile 1`] = `
93
93
  height="24px"
94
94
  role="img"
95
95
  style={
96
- Object {
96
+ {
97
97
  "height": "1.5rem",
98
98
  "width": "1.5rem",
99
99
  }
@@ -163,7 +163,7 @@ exports[`<Header /> renders correctly for anonymous mobile 1`] = `
163
163
  <span
164
164
  className="avatar overflow-hidden d-inline-flex rounded-circle null"
165
165
  style={
166
- Object {
166
+ {
167
167
  "height": "1.5rem",
168
168
  "width": "1.5rem",
169
169
  }
@@ -175,7 +175,7 @@ exports[`<Header /> renders correctly for anonymous mobile 1`] = `
175
175
  height="24px"
176
176
  role="img"
177
177
  style={
178
- Object {
178
+ {
179
179
  "height": "1.5rem",
180
180
  "width": "1.5rem",
181
181
  }
@@ -253,7 +253,7 @@ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
253
253
  <span
254
254
  className="avatar overflow-hidden d-inline-flex rounded-circle mr-2"
255
255
  style={
256
- Object {
256
+ {
257
257
  "height": "1.5em",
258
258
  "width": "1.5em",
259
259
  }
@@ -265,7 +265,7 @@ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
265
265
  height="24px"
266
266
  role="img"
267
267
  style={
268
- Object {
268
+ {
269
269
  "height": "1.5em",
270
270
  "width": "1.5em",
271
271
  }
@@ -339,7 +339,7 @@ exports[`<Header /> renders correctly for authenticated mobile 1`] = `
339
339
  height="24px"
340
340
  role="img"
341
341
  style={
342
- Object {
342
+ {
343
343
  "height": "1.5rem",
344
344
  "width": "1.5rem",
345
345
  }
@@ -409,7 +409,7 @@ exports[`<Header /> renders correctly for authenticated mobile 1`] = `
409
409
  <span
410
410
  className="avatar overflow-hidden d-inline-flex rounded-circle null"
411
411
  style={
412
- Object {
412
+ {
413
413
  "height": "1.5rem",
414
414
  "width": "1.5rem",
415
415
  }
@@ -421,7 +421,7 @@ exports[`<Header /> renders correctly for authenticated mobile 1`] = `
421
421
  height="24px"
422
422
  role="img"
423
423
  style={
424
- Object {
424
+ {
425
425
  "height": "1.5rem",
426
426
  "width": "1.5rem",
427
427
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/generic/messages.js"],"names":["defineMessages","messages","registerSentenceCase","id","defaultMessage","description","signInSentenceCase"],"mappings":"AAAA,SAASA,cAAT,QAA+B,6BAA/B;AAEA,IAAMC,QAAQ,GAAGD,cAAc,CAAC;AAC9BE,EAAAA,oBAAoB,EAAE;AACpBC,IAAAA,EAAE,EAAE,+BADgB;AAEpBC,IAAAA,cAAc,EAAE,UAFI;AAGpBC,IAAAA,WAAW,EAAE;AAHO,GADQ;AAM9BC,EAAAA,kBAAkB,EAAE;AAClBH,IAAAA,EAAE,EAAE,6BADc;AAElBC,IAAAA,cAAc,EAAE,SAFE;AAGlBC,IAAAA,WAAW,EAAE;AAHK;AANU,CAAD,CAA/B;AAaA,eAAeJ,QAAf","sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n registerSentenceCase: {\n id: 'general.register.sentenceCase',\n defaultMessage: 'Register',\n description: 'Text in a button, prompting the user to register.',\n },\n signInSentenceCase: {\n id: 'general.signIn.sentenceCase',\n defaultMessage: 'Sign in',\n description: 'Text in a button, prompting the user to log in.',\n },\n});\n\nexport default messages;\n"],"file":"messages.js"}
1
+ {"version":3,"file":"messages.js","names":["defineMessages","messages","registerSentenceCase","id","defaultMessage","description","signInSentenceCase"],"sources":["../../src/generic/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n registerSentenceCase: {\n id: 'general.register.sentenceCase',\n defaultMessage: 'Register',\n description: 'Text in a button, prompting the user to register.',\n },\n signInSentenceCase: {\n id: 'general.signIn.sentenceCase',\n defaultMessage: 'Sign in',\n description: 'Text in a button, prompting the user to log in.',\n },\n});\n\nexport default messages;\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,6BAA6B;AAE5D,IAAMC,QAAQ,GAAGD,cAAc,CAAC;EAC9BE,oBAAoB,EAAE;IACpBC,EAAE,EAAE,+BAA+B;IACnCC,cAAc,EAAE,UAAU;IAC1BC,WAAW,EAAE;EACf,CAAC;EACDC,kBAAkB,EAAE;IAClBH,EAAE,EAAE,6BAA6B;IACjCC,cAAc,EAAE,SAAS;IACzBC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,eAAeJ,QAAQ","ignoreList":[]}
@@ -1,31 +1,2 @@
1
- import arMessages from './messages/ar.json';
2
- import caMessages from './messages/ca.json';
3
- import heMessages from './messages/he.json';
4
- import idMessages from './messages/id.json';
5
- import plMessages from './messages/pl.json';
6
- import ruMessages from './messages/ru.json';
7
- import thMessages from './messages/th.json';
8
- import ukMessages from './messages/uk.json'; // no need to import en messages-- they are in the defaultMessage field
9
-
10
- import es419Messages from './messages/es_419.json';
11
- import frMessages from './messages/fr.json';
12
- import kokrMessages from './messages/ko_KR.json';
13
- import ptbrMessages from './messages/pt_BR.json';
14
- import zhcnMessages from './messages/zh_CN.json';
15
- var messages = {
16
- ar: arMessages,
17
- ca: caMessages,
18
- he: heMessages,
19
- id: idMessages,
20
- pl: plMessages,
21
- ru: ruMessages,
22
- th: thMessages,
23
- uk: ukMessages,
24
- 'es-419': es419Messages,
25
- fr: frMessages,
26
- 'zh-cn': zhcnMessages,
27
- 'ko-kr': kokrMessages,
28
- 'pt-br': ptbrMessages
29
- };
30
- export default messages;
1
+ export default {};
31
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i18n/index.js"],"names":["arMessages","caMessages","heMessages","idMessages","plMessages","ruMessages","thMessages","ukMessages","es419Messages","frMessages","kokrMessages","ptbrMessages","zhcnMessages","messages","ar","ca","he","id","pl","ru","th","uk","fr"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,oBAAvB;AAEA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,UAAP,MAAuB,oBAAvB,C,CAEA;;AACA,OAAOC,aAAP,MAA0B,wBAA1B;AACA,OAAOC,UAAP,MAAuB,oBAAvB;AACA,OAAOC,YAAP,MAAyB,uBAAzB;AACA,OAAOC,YAAP,MAAyB,uBAAzB;AACA,OAAOC,YAAP,MAAyB,uBAAzB;AAEA,IAAMC,QAAQ,GAAG;AACfC,EAAAA,EAAE,EAAEd,UADW;AAEfe,EAAAA,EAAE,EAAEd,UAFW;AAGfe,EAAAA,EAAE,EAAEd,UAHW;AAIfe,EAAAA,EAAE,EAAEd,UAJW;AAKfe,EAAAA,EAAE,EAAEd,UALW;AAMfe,EAAAA,EAAE,EAAEd,UANW;AAOfe,EAAAA,EAAE,EAAEd,UAPW;AAQfe,EAAAA,EAAE,EAAEd,UARW;AASf,YAAUC,aATK;AAUfc,EAAAA,EAAE,EAAEb,UAVW;AAWf,WAASG,YAXM;AAYf,WAASF,YAZM;AAaf,WAASC;AAbM,CAAjB;AAgBA,eAAeE,QAAf","sourcesContent":["import arMessages from './messages/ar.json';\n\nimport caMessages from './messages/ca.json';\nimport heMessages from './messages/he.json';\nimport idMessages from './messages/id.json';\nimport plMessages from './messages/pl.json';\nimport ruMessages from './messages/ru.json';\nimport thMessages from './messages/th.json';\nimport ukMessages from './messages/uk.json';\n\n// no need to import en messages-- they are in the defaultMessage field\nimport es419Messages from './messages/es_419.json';\nimport frMessages from './messages/fr.json';\nimport kokrMessages from './messages/ko_KR.json';\nimport ptbrMessages from './messages/pt_BR.json';\nimport zhcnMessages from './messages/zh_CN.json';\n\nconst messages = {\n ar: arMessages,\n ca: caMessages,\n he: heMessages,\n id: idMessages,\n pl: plMessages,\n ru: ruMessages,\n th: thMessages,\n uk: ukMessages,\n 'es-419': es419Messages,\n fr: frMessages,\n 'zh-cn': zhcnMessages,\n 'ko-kr': kokrMessages,\n 'pt-br': ptbrMessages,\n};\n\nexport default messages;\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/i18n/index.js"],"sourcesContent":["export default {};\n"],"mappings":"AAAA,eAAe,CAAC,CAAC","ignoreList":[]}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import Header from './Header';
2
2
  import LearningHeader from './learning-header/LearningHeader';
3
3
  import messages from './i18n/index';
4
- export { LearningHeader, messages };
4
+ import StudioHeader from './studio-header';
5
+ export { LearningHeader, messages, StudioHeader };
5
6
  export default Header;
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.jsx"],"names":["Header","LearningHeader","messages"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,UAAnB;AACA,OAAOC,cAAP,MAA2B,kCAA3B;AACA,OAAOC,QAAP,MAAqB,cAArB;AAEA,SAASD,cAAT,EAAyBC,QAAzB;AAEA,eAAeF,MAAf","sourcesContent":["import Header from './Header';\nimport LearningHeader from './learning-header/LearningHeader';\nimport messages from './i18n/index';\n\nexport { LearningHeader, messages };\n\nexport default Header;\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["Header","LearningHeader","messages","StudioHeader"],"sources":["../src/index.jsx"],"sourcesContent":["import Header from './Header';\nimport LearningHeader from './learning-header/LearningHeader';\nimport messages from './i18n/index';\nimport StudioHeader from './studio-header';\n\nexport { LearningHeader, messages, StudioHeader };\n\nexport default Header;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,UAAU;AAC7B,OAAOC,cAAc,MAAM,kCAAkC;AAC7D,OAAOC,QAAQ,MAAM,cAAc;AACnC,OAAOC,YAAY,MAAM,iBAAiB;AAE1C,SAASF,cAAc,EAAEC,QAAQ,EAAEC,YAAY;AAE/C,eAAeH,MAAM","ignoreList":[]}
package/dist/index.scss CHANGED
@@ -3,6 +3,7 @@ $blue: #007db8;
3
3
  $white: #fff;
4
4
 
5
5
  @import './Menu/menu.scss';
6
+ @import './studio-header/StudioHeader.scss';
6
7
 
7
8
  .dropdown-item a {
8
9
  text-decoration: none;
@@ -27,7 +28,7 @@ $white: #fff;
27
28
 
28
29
  .learning-header {
29
30
  min-width: 0;
30
-
31
+
31
32
  .course-title-lockup {
32
33
  min-width: 0;
33
34
 
@@ -87,6 +88,15 @@ $white: #fff;
87
88
  height: 100%;
88
89
  }
89
90
  }
91
+ .secondary-menu-container {
92
+ .nav-link:hover,
93
+ .nav-link:focus,
94
+ .nav-link.active,
95
+ .expanded .nav-link {
96
+ background: $component-active-bg;
97
+ color: $component-active-color;
98
+ }
99
+ }
90
100
  .main-nav {
91
101
  .nav-link {
92
102
  padding: 1.125rem 1rem;
@@ -2,10 +2,9 @@ import React from 'react';
2
2
  import { getConfig } from '@edx/frontend-platform';
3
3
  import { getLoginRedirectUrl } from '@edx/frontend-platform/auth';
4
4
  import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
5
- import { Button } from '@edx/paragon';
5
+ import { Button } from '@openedx/paragon';
6
6
  import genericMessages from '../generic/messages';
7
-
8
- function AnonymousUserMenu(_ref) {
7
+ var AnonymousUserMenu = function AnonymousUserMenu(_ref) {
9
8
  var intl = _ref.intl;
10
9
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
11
10
  className: "mr-3",
@@ -15,8 +14,7 @@ function AnonymousUserMenu(_ref) {
15
14
  variant: "primary",
16
15
  href: "".concat(getLoginRedirectUrl(global.location.href))
17
16
  }, intl.formatMessage(genericMessages.signInSentenceCase)));
18
- }
19
-
17
+ };
20
18
  AnonymousUserMenu.propTypes = {
21
19
  intl: intlShape.isRequired
22
20
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/learning-header/AnonymousUserMenu.jsx"],"names":["React","getConfig","getLoginRedirectUrl","injectIntl","intlShape","Button","genericMessages","AnonymousUserMenu","intl","LMS_BASE_URL","encodeURIComponent","global","location","href","formatMessage","registerSentenceCase","signInSentenceCase","propTypes","isRequired"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,SAAT,QAA0B,wBAA1B;AACA,SAASC,mBAAT,QAAoC,6BAApC;AACA,SAASC,UAAT,EAAqBC,SAArB,QAAsC,6BAAtC;AACA,SAASC,MAAT,QAAuB,cAAvB;AAEA,OAAOC,eAAP,MAA4B,qBAA5B;;AAEA,SAASC,iBAAT,OAAqC;AAAA,MAARC,IAAQ,QAARA,IAAQ;AACnC,sBACE,8CACE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,OAAO,EAAC,iBAFV;AAGE,IAAA,IAAI,YAAKP,SAAS,GAAGQ,YAAjB,4BAA+CC,kBAAkB,CAACC,MAAM,CAACC,QAAP,CAAgBC,IAAjB,CAAjE;AAHN,KAKGL,IAAI,CAACM,aAAL,CAAmBR,eAAe,CAACS,oBAAnC,CALH,CADF,eAQE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAC,SADV;AAEE,IAAA,IAAI,YAAKb,mBAAmB,CAACS,MAAM,CAACC,QAAP,CAAgBC,IAAjB,CAAxB;AAFN,KAIGL,IAAI,CAACM,aAAL,CAAmBR,eAAe,CAACU,kBAAnC,CAJH,CARF,CADF;AAiBD;;AAEDT,iBAAiB,CAACU,SAAlB,GAA8B;AAC5BT,EAAAA,IAAI,EAAEJ,SAAS,CAACc;AADY,CAA9B;AAIA,eAAef,UAAU,CAACI,iBAAD,CAAzB","sourcesContent":["import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getLoginRedirectUrl } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@edx/paragon';\n\nimport genericMessages from '../generic/messages';\n\nfunction AnonymousUserMenu({ intl }) {\n return (\n <div>\n <Button\n className=\"mr-3\"\n variant=\"outline-primary\"\n href={`${getConfig().LMS_BASE_URL}/register?next=${encodeURIComponent(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.registerSentenceCase)}\n </Button>\n <Button\n variant=\"primary\"\n href={`${getLoginRedirectUrl(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.signInSentenceCase)}\n </Button>\n </div>\n );\n}\n\nAnonymousUserMenu.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(AnonymousUserMenu);\n"],"file":"AnonymousUserMenu.js"}
1
+ {"version":3,"file":"AnonymousUserMenu.js","names":["React","getConfig","getLoginRedirectUrl","injectIntl","intlShape","Button","genericMessages","AnonymousUserMenu","_ref","intl","createElement","className","variant","href","concat","LMS_BASE_URL","encodeURIComponent","global","location","formatMessage","registerSentenceCase","signInSentenceCase","propTypes","isRequired"],"sources":["../../src/learning-header/AnonymousUserMenu.jsx"],"sourcesContent":["import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getLoginRedirectUrl } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport genericMessages from '../generic/messages';\n\nconst AnonymousUserMenu = ({ intl }) => (\n <div>\n <Button\n className=\"mr-3\"\n variant=\"outline-primary\"\n href={`${getConfig().LMS_BASE_URL}/register?next=${encodeURIComponent(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.registerSentenceCase)}\n </Button>\n <Button\n variant=\"primary\"\n href={`${getLoginRedirectUrl(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.signInSentenceCase)}\n </Button>\n </div>\n);\n\nAnonymousUserMenu.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(AnonymousUserMenu);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAOC,eAAe,MAAM,qBAAqB;AAEjD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA;EAAA,IAAMC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAAA,oBAC/BT,KAAA,CAAAU,aAAA,2BACEV,KAAA,CAAAU,aAAA,CAACL,MAAM;IACLM,SAAS,EAAC,MAAM;IAChBC,OAAO,EAAC,iBAAiB;IACzBC,IAAI,KAAAC,MAAA,CAAKb,SAAS,CAAC,CAAC,CAACc,YAAY,qBAAAD,MAAA,CAAkBE,kBAAkB,CAACC,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAAG,GAE7FJ,IAAI,CAACU,aAAa,CAACb,eAAe,CAACc,oBAAoB,CAClD,CAAC,eACTpB,KAAA,CAAAU,aAAA,CAACL,MAAM;IACLO,OAAO,EAAC,SAAS;IACjBC,IAAI,KAAAC,MAAA,CAAKZ,mBAAmB,CAACe,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAAG,GAEpDJ,IAAI,CAACU,aAAa,CAACb,eAAe,CAACe,kBAAkB,CAChD,CACL,CAAC;AAAA,CACP;AAEDd,iBAAiB,CAACe,SAAS,GAAG;EAC5Bb,IAAI,EAAEL,SAAS,CAACmB;AAClB,CAAC;AAED,eAAepB,UAAU,CAACI,iBAAiB,CAAC","ignoreList":[]}
@@ -4,20 +4,19 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
4
  import { faUserCircle } from '@fortawesome/free-solid-svg-icons';
5
5
  import { getConfig } from '@edx/frontend-platform';
6
6
  import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
7
- import { Dropdown } from '@edx/paragon';
7
+ import { Dropdown } from '@openedx/paragon';
8
8
  import messages from './messages';
9
-
10
- function AuthenticatedUserDropdown(_ref) {
9
+ var AuthenticatedUserDropdown = function AuthenticatedUserDropdown(_ref) {
11
10
  var intl = _ref.intl,
12
- username = _ref.username;
11
+ username = _ref.username;
13
12
  var dashboardMenuItem = /*#__PURE__*/React.createElement(Dropdown.Item, {
14
13
  href: "".concat(getConfig().LMS_BASE_URL, "/dashboard")
15
14
  }, intl.formatMessage(messages.dashboard));
16
15
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("a", {
17
- className: "text-gray-700 mr-3",
16
+ className: "text-gray-700",
18
17
  href: "".concat(getConfig().SUPPORT_URL)
19
18
  }, intl.formatMessage(messages.help)), /*#__PURE__*/React.createElement(Dropdown, {
20
- className: "user-dropdown"
19
+ className: "user-dropdown ml-3"
21
20
  }, /*#__PURE__*/React.createElement(Dropdown.Toggle, {
22
21
  variant: "outline-primary"
23
22
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
@@ -30,16 +29,15 @@ function AuthenticatedUserDropdown(_ref) {
30
29
  }, username)), /*#__PURE__*/React.createElement(Dropdown.Menu, {
31
30
  className: "dropdown-menu-right"
32
31
  }, dashboardMenuItem, /*#__PURE__*/React.createElement(Dropdown.Item, {
33
- href: "".concat(getConfig().LMS_BASE_URL, "/u/").concat(username)
32
+ href: "".concat(getConfig().ACCOUNT_PROFILE_URL, "/u/").concat(username)
34
33
  }, intl.formatMessage(messages.profile)), /*#__PURE__*/React.createElement(Dropdown.Item, {
35
- href: "".concat(getConfig().LMS_BASE_URL, "/account/settings")
34
+ href: getConfig().ACCOUNT_SETTINGS_URL
36
35
  }, intl.formatMessage(messages.account)), getConfig().ORDER_HISTORY_URL && /*#__PURE__*/React.createElement(Dropdown.Item, {
37
36
  href: getConfig().ORDER_HISTORY_URL
38
37
  }, intl.formatMessage(messages.orderHistory)), /*#__PURE__*/React.createElement(Dropdown.Item, {
39
38
  href: getConfig().LOGOUT_URL
40
39
  }, intl.formatMessage(messages.signOut)))));
41
- }
42
-
40
+ };
43
41
  AuthenticatedUserDropdown.propTypes = {
44
42
  intl: intlShape.isRequired,
45
43
  username: PropTypes.string.isRequired
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/learning-header/AuthenticatedUserDropdown.jsx"],"names":["React","PropTypes","FontAwesomeIcon","faUserCircle","getConfig","injectIntl","intlShape","Dropdown","messages","AuthenticatedUserDropdown","intl","username","dashboardMenuItem","LMS_BASE_URL","formatMessage","dashboard","SUPPORT_URL","help","profile","account","ORDER_HISTORY_URL","orderHistory","LOGOUT_URL","signOut","propTypes","isRequired","string"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,YAAT,QAA6B,mCAA7B;AAEA,SAASC,SAAT,QAA0B,wBAA1B;AACA,SAASC,UAAT,EAAqBC,SAArB,QAAsC,6BAAtC;AACA,SAASC,QAAT,QAAyB,cAAzB;AAEA,OAAOC,QAAP,MAAqB,YAArB;;AAEA,SAASC,yBAAT,OAAuD;AAAA,MAAlBC,IAAkB,QAAlBA,IAAkB;AAAA,MAAZC,QAAY,QAAZA,QAAY;AACrD,MAAMC,iBAAiB,gBACrB,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,IAAI,YAAKR,SAAS,GAAGS,YAAjB;AAAnB,KACGH,IAAI,CAACI,aAAL,CAAmBN,QAAQ,CAACO,SAA5B,CADH,CADF;AAMA,sBACE,uDACE;AAAG,IAAA,SAAS,EAAC,oBAAb;AAAkC,IAAA,IAAI,YAAKX,SAAS,GAAGY,WAAjB;AAAtC,KAAuEN,IAAI,CAACI,aAAL,CAAmBN,QAAQ,CAACS,IAA5B,CAAvE,CADF,eAEE,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC;AAApB,kBACE,oBAAC,QAAD,CAAU,MAAV;AAAiB,IAAA,OAAO,EAAC;AAAzB,kBACE,oBAAC,eAAD;AAAiB,IAAA,IAAI,EAAEd,YAAvB;AAAqC,IAAA,SAAS,EAAC,WAA/C;AAA2D,IAAA,IAAI,EAAC;AAAhE,IADF,eAEE;AAAM,4BAAN;AAAuB,IAAA,SAAS,EAAC;AAAjC,KACGQ,QADH,CAFF,CADF,eAOE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,SAAS,EAAC;AAAzB,KACGC,iBADH,eAEE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,IAAI,YAAKR,SAAS,GAAGS,YAAjB,gBAAmCF,QAAnC;AAAnB,KACGD,IAAI,CAACI,aAAL,CAAmBN,QAAQ,CAACU,OAA5B,CADH,CAFF,eAKE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,IAAI,YAAKd,SAAS,GAAGS,YAAjB;AAAnB,KACGH,IAAI,CAACI,aAAL,CAAmBN,QAAQ,CAACW,OAA5B,CADH,CALF,EAQIf,SAAS,GAAGgB,iBAAZ,iBACA,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,IAAI,EAAEhB,SAAS,GAAGgB;AAAjC,KACGV,IAAI,CAACI,aAAL,CAAmBN,QAAQ,CAACa,YAA5B,CADH,CATJ,eAaE,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,IAAI,EAAEjB,SAAS,GAAGkB;AAAjC,KACGZ,IAAI,CAACI,aAAL,CAAmBN,QAAQ,CAACe,OAA5B,CADH,CAbF,CAPF,CAFF,CADF;AA8BD;;AAEDd,yBAAyB,CAACe,SAA1B,GAAsC;AACpCd,EAAAA,IAAI,EAAEJ,SAAS,CAACmB,UADoB;AAEpCd,EAAAA,QAAQ,EAAEV,SAAS,CAACyB,MAAV,CAAiBD;AAFS,CAAtC;AAKA,eAAepB,UAAU,CAACI,yBAAD,CAAzB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUserCircle } from '@fortawesome/free-solid-svg-icons';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@edx/paragon';\n\nimport messages from './messages';\n\nfunction AuthenticatedUserDropdown({ intl, username }) {\n const dashboardMenuItem = (\n <Dropdown.Item href={`${getConfig().LMS_BASE_URL}/dashboard`}>\n {intl.formatMessage(messages.dashboard)}\n </Dropdown.Item>\n );\n\n return (\n <>\n <a className=\"text-gray-700 mr-3\" href={`${getConfig().SUPPORT_URL}`}>{intl.formatMessage(messages.help)}</a>\n <Dropdown className=\"user-dropdown\">\n <Dropdown.Toggle variant=\"outline-primary\">\n <FontAwesomeIcon icon={faUserCircle} className=\"d-md-none\" size=\"lg\" />\n <span data-hj-suppress className=\"d-none d-md-inline\">\n {username}\n </span>\n </Dropdown.Toggle>\n <Dropdown.Menu className=\"dropdown-menu-right\">\n {dashboardMenuItem}\n <Dropdown.Item href={`${getConfig().LMS_BASE_URL}/u/${username}`}>\n {intl.formatMessage(messages.profile)}\n </Dropdown.Item>\n <Dropdown.Item href={`${getConfig().LMS_BASE_URL}/account/settings`}>\n {intl.formatMessage(messages.account)}\n </Dropdown.Item>\n { getConfig().ORDER_HISTORY_URL && (\n <Dropdown.Item href={getConfig().ORDER_HISTORY_URL}>\n {intl.formatMessage(messages.orderHistory)}\n </Dropdown.Item>\n )}\n <Dropdown.Item href={getConfig().LOGOUT_URL}>\n {intl.formatMessage(messages.signOut)}\n </Dropdown.Item>\n </Dropdown.Menu>\n </Dropdown>\n </>\n );\n}\n\nAuthenticatedUserDropdown.propTypes = {\n intl: intlShape.isRequired,\n username: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(AuthenticatedUserDropdown);\n"],"file":"AuthenticatedUserDropdown.js"}
1
+ {"version":3,"file":"AuthenticatedUserDropdown.js","names":["React","PropTypes","FontAwesomeIcon","faUserCircle","getConfig","injectIntl","intlShape","Dropdown","messages","AuthenticatedUserDropdown","_ref","intl","username","dashboardMenuItem","createElement","Item","href","concat","LMS_BASE_URL","formatMessage","dashboard","Fragment","className","SUPPORT_URL","help","Toggle","variant","icon","size","Menu","ACCOUNT_PROFILE_URL","profile","ACCOUNT_SETTINGS_URL","account","ORDER_HISTORY_URL","orderHistory","LOGOUT_URL","signOut","propTypes","isRequired","string"],"sources":["../../src/learning-header/AuthenticatedUserDropdown.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUserCircle } from '@fortawesome/free-solid-svg-icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@openedx/paragon';\n\nimport messages from './messages';\n\nconst AuthenticatedUserDropdown = ({ intl, username }) => {\n const dashboardMenuItem = (\n <Dropdown.Item href={`${getConfig().LMS_BASE_URL}/dashboard`}>\n {intl.formatMessage(messages.dashboard)}\n </Dropdown.Item>\n );\n\n return (\n <>\n <a className=\"text-gray-700\" href={`${getConfig().SUPPORT_URL}`}>{intl.formatMessage(messages.help)}</a>\n <Dropdown className=\"user-dropdown ml-3\">\n <Dropdown.Toggle variant=\"outline-primary\">\n <FontAwesomeIcon icon={faUserCircle} className=\"d-md-none\" size=\"lg\" />\n <span data-hj-suppress className=\"d-none d-md-inline\">\n {username}\n </span>\n </Dropdown.Toggle>\n <Dropdown.Menu className=\"dropdown-menu-right\">\n {dashboardMenuItem}\n <Dropdown.Item href={`${getConfig().ACCOUNT_PROFILE_URL}/u/${username}`}>\n {intl.formatMessage(messages.profile)}\n </Dropdown.Item>\n <Dropdown.Item href={getConfig().ACCOUNT_SETTINGS_URL}>\n {intl.formatMessage(messages.account)}\n </Dropdown.Item>\n { getConfig().ORDER_HISTORY_URL && (\n <Dropdown.Item href={getConfig().ORDER_HISTORY_URL}>\n {intl.formatMessage(messages.orderHistory)}\n </Dropdown.Item>\n )}\n <Dropdown.Item href={getConfig().LOGOUT_URL}>\n {intl.formatMessage(messages.signOut)}\n </Dropdown.Item>\n </Dropdown.Menu>\n </Dropdown>\n </>\n );\n};\n\nAuthenticatedUserDropdown.propTypes = {\n intl: intlShape.isRequired,\n username: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(AuthenticatedUserDropdown);\n"],"mappings":"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","ignoreList":[]}
@@ -1,23 +1,13 @@
1
1
  var _excluded = ["href", "src", "alt"];
2
-
3
2
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
-
5
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
-
7
4
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
-
9
- 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; }
10
-
11
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
-
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
7
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
-
15
- function _extends() { _extends = Object.assign || 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); }
16
-
8
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
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; }
18
-
19
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; }
20
-
21
11
  import React, { useContext, useEffect, useState } from 'react';
22
12
  import PropTypes from 'prop-types';
23
13
  import { getConfig } from '@edx/frontend-platform';
@@ -27,14 +17,11 @@ import AnonymousUserMenu from './AnonymousUserMenu';
27
17
  import AuthenticatedUserDropdown from './AuthenticatedUserDropdown';
28
18
  import messages from './messages';
29
19
  import getCourseLogoOrg from './data/api';
30
- import './_header.scss';
31
-
32
- function LinkedLogo(_ref) {
20
+ var LinkedLogo = function LinkedLogo(_ref) {
33
21
  var href = _ref.href,
34
- src = _ref.src,
35
- alt = _ref.alt,
36
- attributes = _objectWithoutProperties(_ref, _excluded);
37
-
22
+ src = _ref.src,
23
+ alt = _ref.alt,
24
+ attributes = _objectWithoutProperties(_ref, _excluded);
38
25
  return /*#__PURE__*/React.createElement("a", _extends({
39
26
  href: href
40
27
  }, attributes), /*#__PURE__*/React.createElement("img", {
@@ -42,37 +29,31 @@ function LinkedLogo(_ref) {
42
29
  src: src,
43
30
  alt: alt
44
31
  }));
45
- }
46
-
32
+ };
47
33
  LinkedLogo.propTypes = {
48
34
  href: PropTypes.string.isRequired,
49
35
  src: PropTypes.string.isRequired,
50
36
  alt: PropTypes.string.isRequired
51
- }; // this feature flag is not included on the frontend-platform, we have to get it directly from ENV
52
-
53
- var enabledOrgLogo = !!process.env.ENABLED_ORG_LOGO || false;
54
-
55
- function LearningHeader(_ref2) {
37
+ };
38
+ var LearningHeader = function LearningHeader(_ref2) {
56
39
  var courseOrg = _ref2.courseOrg,
57
- courseTitle = _ref2.courseTitle,
58
- intl = _ref2.intl,
59
- showUserDropdown = _ref2.showUserDropdown;
60
-
40
+ courseTitle = _ref2.courseTitle,
41
+ intl = _ref2.intl,
42
+ showUserDropdown = _ref2.showUserDropdown;
61
43
  var _useContext = useContext(AppContext),
62
- authenticatedUser = _useContext.authenticatedUser;
63
-
44
+ authenticatedUser = _useContext.authenticatedUser;
64
45
  var _useState = useState(null),
65
- _useState2 = _slicedToArray(_useState, 2),
66
- logoOrg = _useState2[0],
67
- setLogoOrg = _useState2[1];
68
-
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ logoOrg = _useState2[0],
48
+ setLogoOrg = _useState2[1];
49
+ var enableOrgLogo = getConfig().ENABLE_ORG_LOGO || false;
69
50
  useEffect(function () {
70
51
  if (courseOrg) {
71
52
  getCourseLogoOrg().then(function (logoOrgUrl) {
72
53
  setLogoOrg(logoOrgUrl);
73
54
  });
74
55
  }
75
- }, []);
56
+ });
76
57
  var headerLogo = /*#__PURE__*/React.createElement(LinkedLogo, {
77
58
  className: "logo",
78
59
  href: "".concat(getConfig().LMS_BASE_URL, "/dashboard"),
@@ -89,8 +70,8 @@ function LearningHeader(_ref2) {
89
70
  }, headerLogo, /*#__PURE__*/React.createElement("div", {
90
71
  className: "d-none d-md-block flex-grow-1 course-title-lockup"
91
72
  }, /*#__PURE__*/React.createElement("div", {
92
- className: "d-md-flex ".concat(enabledOrgLogo && 'align-items-center justify-content-center', " w-100")
93
- }, enabledOrgLogo ? courseOrg && logoOrg && /*#__PURE__*/React.createElement("img", {
73
+ className: "d-md-flex ".concat(enableOrgLogo && 'align-items-center justify-content-center', " w-100")
74
+ }, enableOrgLogo ? courseOrg && logoOrg && /*#__PURE__*/React.createElement("img", {
94
75
  src: logoOrg,
95
76
  alt: "".concat(courseOrg, " logo"),
96
77
  style: {
@@ -104,8 +85,7 @@ function LearningHeader(_ref2) {
104
85
  }, courseTitle))), showUserDropdown && authenticatedUser && /*#__PURE__*/React.createElement(AuthenticatedUserDropdown, {
105
86
  username: authenticatedUser.username
106
87
  }), showUserDropdown && !authenticatedUser && /*#__PURE__*/React.createElement(AnonymousUserMenu, null)));
107
- }
108
-
88
+ };
109
89
  LearningHeader.propTypes = {
110
90
  courseOrg: PropTypes.string,
111
91
  courseTitle: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/learning-header/LearningHeader.jsx"],"names":["React","useContext","useEffect","useState","PropTypes","getConfig","injectIntl","intlShape","AppContext","AnonymousUserMenu","AuthenticatedUserDropdown","messages","getCourseLogoOrg","LinkedLogo","href","src","alt","attributes","propTypes","string","isRequired","enabledOrgLogo","process","env","ENABLED_ORG_LOGO","LearningHeader","courseOrg","courseTitle","intl","showUserDropdown","authenticatedUser","logoOrg","setLogoOrg","then","logoOrgUrl","headerLogo","LMS_BASE_URL","LOGO_URL","SITE_NAME","formatMessage","skipNavLink","maxHeight","fontSize","username","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport AnonymousUserMenu from './AnonymousUserMenu';\nimport AuthenticatedUserDropdown from './AuthenticatedUserDropdown';\nimport messages from './messages';\nimport getCourseLogoOrg from './data/api';\n\nimport './_header.scss';\n\nfunction LinkedLogo({\n href,\n src,\n alt,\n ...attributes\n}) {\n return (\n <a href={href} {...attributes}>\n <img className=\"d-block\" src={src} alt={alt} />\n </a>\n );\n}\n\nLinkedLogo.propTypes = {\n href: PropTypes.string.isRequired,\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n};\n\n// this feature flag is not included on the frontend-platform, we have to get it directly from ENV\nconst enabledOrgLogo = !!process.env.ENABLED_ORG_LOGO || false;\n\nfunction LearningHeader({\n courseOrg, courseTitle, intl, showUserDropdown,\n}) {\n const { authenticatedUser } = useContext(AppContext);\n const [logoOrg, setLogoOrg] = useState(null);\n\n useEffect(() => {\n if (courseOrg) {\n getCourseLogoOrg().then((logoOrgUrl) => { setLogoOrg(logoOrgUrl); });\n }\n }, []);\n\n const headerLogo = (\n <LinkedLogo\n className=\"logo\"\n href={`${getConfig().LMS_BASE_URL}/dashboard`}\n src={getConfig().LOGO_URL}\n alt={getConfig().SITE_NAME}\n />\n );\n\n return (\n <header className=\"learning-header\">\n <a className=\"sr-only sr-only-focusable\" href=\"#main-content\">{intl.formatMessage(messages.skipNavLink)}</a>\n <div className=\"container-xl py-2 d-flex align-items-center\">\n {headerLogo}\n <div className=\"d-none d-md-block flex-grow-1 course-title-lockup\">\n <div className={`d-md-flex ${enabledOrgLogo && 'align-items-center justify-content-center'} w-100`}>\n {enabledOrgLogo ? (\n (courseOrg && logoOrg)\n && <img src={logoOrg} alt={`${courseOrg} logo`} style={{ maxHeight: '45px' }} />\n ) : null}\n <span\n className=\"d-inline-block course-title font-weight-semibold ml-3 text-truncate text-left w-25\"\n style={{ fontSize: '0.85rem' }}\n >\n {courseTitle}\n </span>\n </div>\n </div>\n {showUserDropdown && authenticatedUser && (\n <AuthenticatedUserDropdown\n username={authenticatedUser.username}\n />\n )}\n {showUserDropdown && !authenticatedUser && (\n <AnonymousUserMenu />\n )}\n </div>\n </header>\n );\n}\n\nLearningHeader.propTypes = {\n courseOrg: PropTypes.string,\n courseTitle: PropTypes.string,\n intl: intlShape.isRequired,\n showUserDropdown: PropTypes.bool,\n};\n\nLearningHeader.defaultProps = {\n courseOrg: null,\n courseTitle: null,\n showUserDropdown: true,\n};\n\nexport default injectIntl(LearningHeader);\n"],"file":"LearningHeader.js"}
1
+ {"version":3,"file":"LearningHeader.js","names":["React","useContext","useEffect","useState","PropTypes","getConfig","injectIntl","intlShape","AppContext","AnonymousUserMenu","AuthenticatedUserDropdown","messages","getCourseLogoOrg","LinkedLogo","_ref","href","src","alt","attributes","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","string","isRequired","LearningHeader","_ref2","courseOrg","courseTitle","intl","showUserDropdown","_useContext","authenticatedUser","_useState","_useState2","_slicedToArray","logoOrg","setLogoOrg","enableOrgLogo","ENABLE_ORG_LOGO","then","logoOrgUrl","headerLogo","concat","LMS_BASE_URL","LOGO_URL","SITE_NAME","formatMessage","skipNavLink","style","maxHeight","fontSize","username","bool","defaultProps"],"sources":["../../src/learning-header/LearningHeader.jsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { AppContext } from '@edx/frontend-platform/react';\n\nimport AnonymousUserMenu from './AnonymousUserMenu';\nimport AuthenticatedUserDropdown from './AuthenticatedUserDropdown';\nimport messages from './messages';\nimport getCourseLogoOrg from './data/api';\n\nconst LinkedLogo = ({\n href,\n src,\n alt,\n ...attributes\n}) => (\n <a href={href} {...attributes}>\n <img className=\"d-block\" src={src} alt={alt} />\n </a>\n);\n\nLinkedLogo.propTypes = {\n href: PropTypes.string.isRequired,\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n};\nconst LearningHeader = ({\n courseOrg, courseTitle, intl, showUserDropdown,\n}) => {\n const { authenticatedUser } = useContext(AppContext);\n const [logoOrg, setLogoOrg] = useState(null);\n const enableOrgLogo = getConfig().ENABLE_ORG_LOGO || false;\n\n useEffect(() => {\n if (courseOrg) {\n getCourseLogoOrg().then((logoOrgUrl) => { setLogoOrg(logoOrgUrl); });\n }\n });\n\n const headerLogo = (\n <LinkedLogo\n className=\"logo\"\n href={`${getConfig().LMS_BASE_URL}/dashboard`}\n src={getConfig().LOGO_URL}\n alt={getConfig().SITE_NAME}\n />\n );\n\n return (\n <header className=\"learning-header\">\n <a className=\"sr-only sr-only-focusable\" href=\"#main-content\">{intl.formatMessage(messages.skipNavLink)}</a>\n <div className=\"container-xl py-2 d-flex align-items-center\">\n {headerLogo}\n <div className=\"d-none d-md-block flex-grow-1 course-title-lockup\">\n <div className={`d-md-flex ${enableOrgLogo && 'align-items-center justify-content-center'} w-100`}>\n {enableOrgLogo ? (\n (courseOrg && logoOrg)\n && <img src={logoOrg} alt={`${courseOrg} logo`} style={{ maxHeight: '45px' }} />\n ) : null}\n <span\n className=\"d-inline-block course-title font-weight-semibold ml-3 text-truncate text-left w-25\"\n style={{ fontSize: '0.85rem' }}\n >\n {courseTitle}\n </span>\n </div>\n </div>\n {showUserDropdown && authenticatedUser && (\n <AuthenticatedUserDropdown\n username={authenticatedUser.username}\n />\n )}\n {showUserDropdown && !authenticatedUser && (\n <AnonymousUserMenu />\n )}\n </div>\n </header>\n );\n};\n\nLearningHeader.propTypes = {\n courseOrg: PropTypes.string,\n courseTitle: PropTypes.string,\n intl: intlShape.isRequired,\n showUserDropdown: PropTypes.bool,\n};\n\nLearningHeader.defaultProps = {\n courseOrg: null,\n courseTitle: null,\n showUserDropdown: true,\n};\n\nexport default injectIntl(LearningHeader);\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,10 @@
1
+ @import "../../node_modules/bootstrap/scss/bootstrap-grid";
2
+ @import "../../node_modules/bootstrap/scss/mixins/breakpoints";
3
+
1
4
  .logo {
2
5
  img {
3
- @media (max-width: 576px) {
6
+ @include media-breakpoint-down(sm) {
4
7
  max-width: 85% !important;
5
8
  }
6
9
  }
7
- }
10
+ }