@nauedu/frontend-component-header 14.0.0-semantically-released → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.rst +111 -33
- package/dist/Avatar.js +5 -7
- package/dist/Avatar.js.map +1 -1
- package/dist/DesktopHeader.js +98 -74
- package/dist/DesktopHeader.js.map +1 -1
- package/dist/Header.js +81 -41
- package/dist/Header.js.map +1 -1
- package/dist/Header.messages.js +15 -0
- package/dist/Header.messages.js.map +1 -1
- package/dist/Header.test.jsx +67 -90
- package/dist/Icons.js +1 -2
- package/dist/Icons.js.map +1 -1
- package/dist/LanguageSelector/data/api.js +65 -0
- package/dist/LanguageSelector/data/api.js.map +1 -0
- package/dist/LanguageSelector/index.js +113 -0
- package/dist/LanguageSelector/index.js.map +1 -0
- package/dist/Logo.js +11 -21
- package/dist/Logo.js.map +1 -1
- package/dist/Menu/Menu.js +42 -88
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/Menu/index.js.map +1 -1
- package/dist/MobileHeader.js +80 -76
- package/dist/MobileHeader.js.map +1 -1
- package/dist/__snapshots__/Header.test.jsx.snap +12 -12
- package/dist/generic/messages.js.map +1 -1
- package/dist/i18n/index.js +1 -30
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/index.scss +11 -1
- package/dist/learning-header/AnonymousUserMenu.js +3 -5
- package/dist/learning-header/AnonymousUserMenu.js.map +1 -1
- package/dist/learning-header/AuthenticatedUserDropdown.js +8 -10
- package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -1
- package/dist/learning-header/LearningHeader.js +56 -50
- package/dist/learning-header/LearningHeader.js.map +1 -1
- package/dist/learning-header/_header.scss +5 -2
- package/dist/learning-header/data/api.js +30 -42
- package/dist/learning-header/data/api.js.map +1 -1
- package/dist/learning-header/data/api.test.js +124 -175
- package/dist/learning-header/data/api.test.js.map +1 -1
- package/dist/learning-header/messages.js.map +1 -1
- package/dist/setupTest.js +9 -13
- package/dist/studio-header/BrandNav.js +21 -0
- package/dist/studio-header/BrandNav.js.map +1 -0
- package/dist/studio-header/CourseLockUp.js +45 -0
- package/dist/studio-header/CourseLockUp.js.map +1 -0
- package/dist/studio-header/HeaderBody.js +131 -0
- package/dist/studio-header/HeaderBody.js.map +1 -0
- package/dist/studio-header/MobileHeader.js +79 -0
- package/dist/studio-header/MobileHeader.js.map +1 -0
- package/dist/studio-header/MobileMenu.js +45 -0
- package/dist/studio-header/MobileMenu.js.map +1 -0
- package/dist/studio-header/NavDropdownMenu.js +30 -0
- package/dist/studio-header/NavDropdownMenu.js.map +1 -0
- package/dist/studio-header/StudioHeader.js +72 -0
- package/dist/studio-header/StudioHeader.js.map +1 -0
- package/dist/studio-header/StudioHeader.scss +49 -0
- package/dist/studio-header/UserMenu.js +55 -0
- package/dist/studio-header/UserMenu.js.map +1 -0
- package/dist/studio-header/index.js +3 -0
- package/dist/studio-header/index.js.map +1 -0
- package/dist/studio-header/messages.js +60 -0
- package/dist/studio-header/messages.js.map +1 -0
- package/dist/studio-header/utils.js +29 -0
- package/dist/studio-header/utils.js.map +1 -0
- package/dist/test-utils.js +26 -0
- package/dist/test-utils.js.map +1 -0
- package/package.json +33 -33
- package/dist/i18n/messages/ar.json +0 -30
- package/dist/i18n/messages/ca.json +0 -1
- package/dist/i18n/messages/es_419.json +0 -30
- package/dist/i18n/messages/fr.json +0 -30
- package/dist/i18n/messages/fr_CA.json +0 -30
- package/dist/i18n/messages/he.json +0 -1
- package/dist/i18n/messages/id.json +0 -1
- package/dist/i18n/messages/ko_KR.json +0 -2
- package/dist/i18n/messages/pl.json +0 -1
- package/dist/i18n/messages/pt_BR.json +0 -2
- package/dist/i18n/messages/ru.json +0 -1
- package/dist/i18n/messages/th.json +0 -1
- package/dist/i18n/messages/uk.json +0 -1
- package/dist/i18n/messages/zh_CN.json +0 -30
package/dist/Menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Menu/Menu.jsx"],"names":["React","CSSTransition","PropTypes","MenuTrigger","tag","className","attributes","createElement","propTypes","string","defaultProps","MenuTriggerType","type","MenuContent","join","menuPropTypes","onClose","func","onOpen","closeOnDocumentClick","bool","respondToPointerEvents","transitionTimeout","number","transitionClassName","children","arrayOf","node","isRequired","Menu","props","menu","createRef","state","expanded","onTriggerClick","bind","onCloseClick","onKeyDown","onDocumentClick","onMouseEnter","onMouseLeave","document","removeEventListener","e","clickIsInMenu","current","target","contains","close","getAttribute","preventDefault","toggle","getFocusableElements","focus","key","stopPropagation","activeElement","shiftKey","focusPrevious","focusNext","open","querySelectorAll","Object","keys","filter","property","undefined","forEach","focusableElements","Array","from","activeIndex","indexOf","nextIndex","length","previousIndex","setState","addEventListener","cloneElement","onClick","wrappedChildren","Children","map","child","renderTrigger","renderMenuContent","rootClassName","ref","getAttributesFromProps","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\n\nfunction MenuTrigger({ tag, className, ...attributes }) {\n return React.createElement(tag, {\n className: `menu-trigger ${className}`,\n ...attributes,\n });\n}\nMenuTrigger.propTypes = {\n tag: PropTypes.string,\n className: PropTypes.string,\n};\nMenuTrigger.defaultProps = {\n tag: 'div',\n className: null,\n};\nconst MenuTriggerType = <MenuTrigger />.type;\n\nfunction MenuContent({ tag, className, ...attributes }) {\n return React.createElement(tag, {\n className: ['menu-content', className].join(' '),\n ...attributes,\n });\n}\nMenuContent.propTypes = {\n tag: PropTypes.string,\n className: PropTypes.string,\n};\nMenuContent.defaultProps = {\n tag: 'div',\n className: null,\n};\n\nconst menuPropTypes = {\n tag: PropTypes.string,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n closeOnDocumentClick: PropTypes.bool,\n respondToPointerEvents: PropTypes.bool,\n className: PropTypes.string,\n transitionTimeout: PropTypes.number,\n transitionClassName: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n};\n\nclass Menu extends React.Component {\n constructor(props) {\n super(props);\n\n this.menu = React.createRef();\n this.state = {\n expanded: false,\n };\n\n this.onTriggerClick = this.onTriggerClick.bind(this);\n this.onCloseClick = this.onCloseClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onDocumentClick = this.onDocumentClick.bind(this);\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n }\n\n // Lifecycle Events\n componentWillUnmount() {\n document.removeEventListener('touchend', this.onDocumentClick, true);\n document.removeEventListener('click', this.onDocumentClick, true);\n\n // Call onClose callback when unmounting and open\n if (this.state.expanded && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n // Event handlers\n onDocumentClick(e) {\n if (!this.props.closeOnDocumentClick) {\n return;\n }\n\n const clickIsInMenu = this.menu.current === e.target || this.menu.current.contains(e.target);\n if (clickIsInMenu) {\n return;\n }\n\n this.close();\n }\n\n onTriggerClick(e) {\n // Let the browser follow the link of the trigger if the menu\n // is already expanded and the trigger has an href attribute\n if (this.state.expanded && e.target.getAttribute('href')) {\n return;\n }\n\n e.preventDefault();\n this.toggle();\n }\n\n onCloseClick() {\n this.getFocusableElements()[0].focus();\n this.close();\n }\n\n onKeyDown(e) {\n if (!this.state.expanded) {\n return;\n }\n switch (e.key) {\n case 'Escape': {\n e.preventDefault();\n e.stopPropagation();\n this.getFocusableElements()[0].focus();\n this.close();\n break;\n }\n case 'Enter': {\n // Using focusable elements instead of a ref to the trigger\n // because Hyperlink and Button can handle refs as functional components\n if (document.activeElement === this.getFocusableElements()[0]) {\n e.preventDefault();\n this.toggle();\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n if (e.shiftKey) {\n this.focusPrevious();\n } else {\n this.focusNext();\n }\n break;\n }\n case 'ArrowDown': {\n e.preventDefault();\n this.focusNext();\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n this.focusPrevious();\n break;\n }\n default:\n }\n }\n\n onMouseEnter() {\n if (!this.props.respondToPointerEvents) {\n return;\n }\n this.open();\n }\n\n onMouseLeave() {\n if (!this.props.respondToPointerEvents) {\n return;\n }\n this.close();\n }\n\n // Internal functions\n\n getFocusableElements() {\n return this.menu.current.querySelectorAll('button:not([disabled]), [href]:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])');\n }\n\n getAttributesFromProps() {\n // Any extra props are attributes for the menu\n const attributes = {};\n Object.keys(this.props)\n .filter(property => menuPropTypes[property] === undefined)\n .forEach((property) => {\n attributes[property] = this.props[property];\n });\n return attributes;\n }\n\n focusNext() {\n const focusableElements = Array.from(this.getFocusableElements());\n const activeIndex = focusableElements.indexOf(document.activeElement);\n const nextIndex = (activeIndex + 1) % focusableElements.length;\n focusableElements[nextIndex].focus();\n }\n\n focusPrevious() {\n const focusableElements = Array.from(this.getFocusableElements());\n const activeIndex = focusableElements.indexOf(document.activeElement);\n const previousIndex = (activeIndex || focusableElements.length) - 1;\n focusableElements[previousIndex].focus();\n }\n\n open() {\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n this.setState({ expanded: true });\n // Listen to touchend and click events to ensure the menu\n // can be closed on mobile, pointer, and mixed input devices\n document.addEventListener('touchend', this.onDocumentClick, true);\n document.addEventListener('click', this.onDocumentClick, true);\n }\n\n close() {\n if (this.props.onClose) {\n this.props.onClose();\n }\n this.setState({ expanded: false });\n document.removeEventListener('touchend', this.onDocumentClick, true);\n document.removeEventListener('click', this.onDocumentClick, true);\n }\n\n toggle() {\n if (this.state.expanded) {\n this.close();\n } else {\n this.open();\n }\n }\n\n renderTrigger(node) {\n return React.cloneElement(node, {\n onClick: this.onTriggerClick,\n 'aria-haspopup': 'menu',\n 'aria-expanded': this.state.expanded,\n });\n }\n\n renderMenuContent(node) {\n return (\n <CSSTransition\n in={this.state.expanded}\n timeout={this.props.transitionTimeout}\n classNames={this.props.transitionClassName}\n unmountOnExit\n >\n {node}\n </CSSTransition>\n );\n }\n\n render() {\n const { className } = this.props;\n\n const wrappedChildren = React.Children.map(this.props.children, (child) => {\n if (child.type === MenuTriggerType) {\n return this.renderTrigger(child);\n }\n return this.renderMenuContent(child);\n });\n\n const rootClassName = this.state.expanded ? 'menu expanded' : 'menu';\n\n return React.createElement(this.props.tag, {\n className: `${rootClassName} ${className}`,\n ref: this.menu,\n onKeyDown: this.onKeyDown,\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave,\n ...this.getAttributesFromProps(),\n }, wrappedChildren);\n }\n}\n\nMenu.propTypes = menuPropTypes;\nMenu.defaultProps = {\n tag: 'div',\n className: null,\n onClose: null,\n onOpen: null,\n respondToPointerEvents: false,\n closeOnDocumentClick: true,\n transitionTimeout: 250,\n transitionClassName: 'menu-content',\n};\n\nexport { Menu, MenuTrigger, MenuContent };\n"],"file":"Menu.js"}
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["React","CSSTransition","PropTypes","MenuTrigger","_ref","tag","className","attributes","_objectWithoutProperties","_excluded","createElement","_objectSpread","concat","propTypes","string","defaultProps","MenuTriggerComp","MenuTriggerType","type","MenuContent","_ref2","_excluded2","join","menuPropTypes","onClose","func","onOpen","closeOnDocumentClick","bool","respondToPointerEvents","transitionTimeout","number","transitionClassName","children","arrayOf","node","isRequired","Menu","_React$Component","props","_this","_classCallCheck","_callSuper","menu","createRef","state","expanded","onTriggerClick","bind","onCloseClick","onKeyDown","onDocumentClick","onMouseEnter","onMouseLeave","_inherits","_createClass","key","value","componentWillUnmount","document","removeEventListener","e","clickIsInMenu","current","target","contains","close","getAttribute","preventDefault","toggle","getFocusableElements","focus","stopPropagation","activeElement","shiftKey","focusPrevious","focusNext","open","querySelectorAll","getAttributesFromProps","_this2","Object","keys","filter","property","undefined","forEach","focusableElements","Array","from","activeIndex","indexOf","nextIndex","length","previousIndex","setState","addEventListener","renderTrigger","cloneElement","onClick","renderMenuContent","timeout","classNames","unmountOnExit","render","_this3","wrappedChildren","Children","map","child","rootClassName","ref","Component"],"sources":["../../src/Menu/Menu.jsx"],"sourcesContent":["import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\n\nconst MenuTrigger = ({ tag, className, ...attributes }) => React.createElement(tag, {\n className: `menu-trigger ${className}`,\n ...attributes,\n});\nMenuTrigger.propTypes = {\n tag: PropTypes.string,\n className: PropTypes.string,\n};\nMenuTrigger.defaultProps = {\n tag: 'div',\n className: null,\n};\nconst MenuTriggerComp = <MenuTrigger />;\nconst MenuTriggerType = MenuTriggerComp.type;\n\nconst MenuContent = ({ tag, className, ...attributes }) => React.createElement(tag, {\n className: ['menu-content', className].join(' '),\n ...attributes,\n});\nMenuContent.propTypes = {\n tag: PropTypes.string,\n className: PropTypes.string,\n};\nMenuContent.defaultProps = {\n tag: 'div',\n className: null,\n};\n\nconst menuPropTypes = {\n tag: PropTypes.string,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n closeOnDocumentClick: PropTypes.bool,\n respondToPointerEvents: PropTypes.bool,\n className: PropTypes.string,\n transitionTimeout: PropTypes.number,\n transitionClassName: PropTypes.string,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n};\n\nclass Menu extends React.Component {\n constructor(props) {\n super(props);\n\n this.menu = React.createRef();\n this.state = {\n expanded: false,\n };\n\n this.onTriggerClick = this.onTriggerClick.bind(this);\n this.onCloseClick = this.onCloseClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onDocumentClick = this.onDocumentClick.bind(this);\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n }\n\n // Lifecycle Events\n componentWillUnmount() {\n document.removeEventListener('touchend', this.onDocumentClick, true);\n document.removeEventListener('click', this.onDocumentClick, true);\n\n // Call onClose callback when unmounting and open\n if (this.state.expanded && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n // Event handlers\n onDocumentClick(e) {\n if (!this.props.closeOnDocumentClick) {\n return;\n }\n\n const clickIsInMenu = this.menu.current === e.target || this.menu.current.contains(e.target);\n if (clickIsInMenu) {\n return;\n }\n\n this.close();\n }\n\n onTriggerClick(e) {\n // Let the browser follow the link of the trigger if the menu\n // is already expanded and the trigger has an href attribute\n if (this.state.expanded && e.target.getAttribute('href')) {\n return;\n }\n\n e.preventDefault();\n this.toggle();\n }\n\n onCloseClick() {\n this.getFocusableElements()[0].focus();\n this.close();\n }\n\n onKeyDown(e) {\n if (!this.state.expanded) {\n return;\n }\n switch (e.key) {\n case 'Escape': {\n e.preventDefault();\n e.stopPropagation();\n this.getFocusableElements()[0].focus();\n this.close();\n break;\n }\n case 'Enter': {\n // Using focusable elements instead of a ref to the trigger\n // because Hyperlink and Button can handle refs as functional components\n if (document.activeElement === this.getFocusableElements()[0]) {\n e.preventDefault();\n this.toggle();\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n if (e.shiftKey) {\n this.focusPrevious();\n } else {\n this.focusNext();\n }\n break;\n }\n case 'ArrowDown': {\n e.preventDefault();\n this.focusNext();\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n this.focusPrevious();\n break;\n }\n default:\n }\n }\n\n onMouseEnter() {\n if (!this.props.respondToPointerEvents) {\n return;\n }\n this.open();\n }\n\n onMouseLeave() {\n if (!this.props.respondToPointerEvents) {\n return;\n }\n this.close();\n }\n\n // Internal functions\n\n getFocusableElements() {\n return this.menu.current.querySelectorAll('button:not([disabled]), [href]:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])');\n }\n\n getAttributesFromProps() {\n // Any extra props are attributes for the menu\n const attributes = {};\n Object.keys(this.props)\n .filter(property => menuPropTypes[property] === undefined)\n .forEach((property) => {\n attributes[property] = this.props[property];\n });\n return attributes;\n }\n\n focusNext() {\n const focusableElements = Array.from(this.getFocusableElements());\n const activeIndex = focusableElements.indexOf(document.activeElement);\n const nextIndex = (activeIndex + 1) % focusableElements.length;\n focusableElements[nextIndex].focus();\n }\n\n focusPrevious() {\n const focusableElements = Array.from(this.getFocusableElements());\n const activeIndex = focusableElements.indexOf(document.activeElement);\n const previousIndex = (activeIndex || focusableElements.length) - 1;\n focusableElements[previousIndex].focus();\n }\n\n open() {\n if (this.props.onOpen) {\n this.props.onOpen();\n }\n this.setState({ expanded: true });\n // Listen to touchend and click events to ensure the menu\n // can be closed on mobile, pointer, and mixed input devices\n document.addEventListener('touchend', this.onDocumentClick, true);\n document.addEventListener('click', this.onDocumentClick, true);\n }\n\n close() {\n if (this.props.onClose) {\n this.props.onClose();\n }\n this.setState({ expanded: false });\n document.removeEventListener('touchend', this.onDocumentClick, true);\n document.removeEventListener('click', this.onDocumentClick, true);\n }\n\n toggle() {\n if (this.state.expanded) {\n this.close();\n } else {\n this.open();\n }\n }\n\n renderTrigger(node) {\n return React.cloneElement(node, {\n onClick: this.onTriggerClick,\n 'aria-haspopup': 'menu',\n 'aria-expanded': this.state.expanded,\n });\n }\n\n renderMenuContent(node) {\n return (\n <CSSTransition\n in={this.state.expanded}\n timeout={this.props.transitionTimeout}\n classNames={this.props.transitionClassName}\n unmountOnExit\n >\n {node}\n </CSSTransition>\n );\n }\n\n render() {\n const { className } = this.props;\n\n const wrappedChildren = React.Children.map(this.props.children, (child) => {\n if (child.type === MenuTriggerType) {\n return this.renderTrigger(child);\n }\n return this.renderMenuContent(child);\n });\n\n const rootClassName = this.state.expanded ? 'menu expanded' : 'menu';\n\n return React.createElement(this.props.tag, {\n className: `${rootClassName} ${className}`,\n ref: this.menu,\n onKeyDown: this.onKeyDown,\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave,\n ...this.getAttributesFromProps(),\n }, wrappedChildren);\n }\n}\n\nMenu.propTypes = menuPropTypes;\nMenu.defaultProps = {\n tag: 'div',\n className: null,\n onClose: null,\n onOpen: null,\n respondToPointerEvents: false,\n closeOnDocumentClick: true,\n transitionTimeout: 250,\n transitionClassName: 'menu-content',\n};\n\nexport { Menu, MenuTrigger, MenuContent };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,SAAS,MAAM,YAAY;AAElC,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA;EAAA,IAAMC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAKC,UAAU,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAAA,oBAAOT,KAAK,CAACU,aAAa,CAACL,GAAG,EAAAM,aAAA;IAChFL,SAAS,kBAAAM,MAAA,CAAkBN,SAAS;EAAE,GACnCC,UAAU,CACd,CAAC;AAAA;AACFJ,WAAW,CAACU,SAAS,GAAG;EACtBR,GAAG,EAAEH,SAAS,CAACY,MAAM;EACrBR,SAAS,EAAEJ,SAAS,CAACY;AACvB,CAAC;AACDX,WAAW,CAACY,YAAY,GAAG;EACzBV,GAAG,EAAE,KAAK;EACVC,SAAS,EAAE;AACb,CAAC;AACD,IAAMU,eAAe,gBAAGhB,KAAA,CAAAU,aAAA,CAACP,WAAW,MAAE,CAAC;AACvC,IAAMc,eAAe,GAAGD,eAAe,CAACE,IAAI;AAE5C,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,KAAA;EAAA,IAAMf,GAAG,GAAAe,KAAA,CAAHf,GAAG;IAAEC,SAAS,GAAAc,KAAA,CAATd,SAAS;IAAKC,UAAU,GAAAC,wBAAA,CAAAY,KAAA,EAAAC,UAAA;EAAA,oBAAOrB,KAAK,CAACU,aAAa,CAACL,GAAG,EAAAM,aAAA;IAChFL,SAAS,EAAE,CAAC,cAAc,EAAEA,SAAS,CAAC,CAACgB,IAAI,CAAC,GAAG;EAAC,GAC7Cf,UAAU,CACd,CAAC;AAAA;AACFY,WAAW,CAACN,SAAS,GAAG;EACtBR,GAAG,EAAEH,SAAS,CAACY,MAAM;EACrBR,SAAS,EAAEJ,SAAS,CAACY;AACvB,CAAC;AACDK,WAAW,CAACJ,YAAY,GAAG;EACzBV,GAAG,EAAE,KAAK;EACVC,SAAS,EAAE;AACb,CAAC;AAED,IAAMiB,aAAa,GAAG;EACpBlB,GAAG,EAAEH,SAAS,CAACY,MAAM;EACrBU,OAAO,EAAEtB,SAAS,CAACuB,IAAI;EACvBC,MAAM,EAAExB,SAAS,CAACuB,IAAI;EACtBE,oBAAoB,EAAEzB,SAAS,CAAC0B,IAAI;EACpCC,sBAAsB,EAAE3B,SAAS,CAAC0B,IAAI;EACtCtB,SAAS,EAAEJ,SAAS,CAACY,MAAM;EAC3BgB,iBAAiB,EAAE5B,SAAS,CAAC6B,MAAM;EACnCC,mBAAmB,EAAE9B,SAAS,CAACY,MAAM;EACrCmB,QAAQ,EAAE/B,SAAS,CAACgC,OAAO,CAAChC,SAAS,CAACiC,IAAI,CAAC,CAACC;AAC9C,CAAC;AAAC,IAEIC,IAAI,0BAAAC,gBAAA;EACR,SAAAD,KAAYE,KAAK,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAJ,IAAA;IACjBG,KAAA,GAAAE,UAAA,OAAAL,IAAA,GAAME,KAAK;IAEXC,KAAA,CAAKG,IAAI,gBAAG3C,KAAK,CAAC4C,SAAS,CAAC,CAAC;IAC7BJ,KAAA,CAAKK,KAAK,GAAG;MACXC,QAAQ,EAAE;IACZ,CAAC;IAEDN,KAAA,CAAKO,cAAc,GAAGP,KAAA,CAAKO,cAAc,CAACC,IAAI,CAAAR,KAAK,CAAC;IACpDA,KAAA,CAAKS,YAAY,GAAGT,KAAA,CAAKS,YAAY,CAACD,IAAI,CAAAR,KAAK,CAAC;IAChDA,KAAA,CAAKU,SAAS,GAAGV,KAAA,CAAKU,SAAS,CAACF,IAAI,CAAAR,KAAK,CAAC;IAC1CA,KAAA,CAAKW,eAAe,GAAGX,KAAA,CAAKW,eAAe,CAACH,IAAI,CAAAR,KAAK,CAAC;IACtDA,KAAA,CAAKY,YAAY,GAAGZ,KAAA,CAAKY,YAAY,CAACJ,IAAI,CAAAR,KAAK,CAAC;IAChDA,KAAA,CAAKa,YAAY,GAAGb,KAAA,CAAKa,YAAY,CAACL,IAAI,CAAAR,KAAK,CAAC;IAAC,OAAAA,KAAA;EACnD;;EAEA;EAAAc,SAAA,CAAAjB,IAAA,EAAAC,gBAAA;EAAA,OAAAiB,YAAA,CAAAlB,IAAA;IAAAmB,GAAA;IAAAC,KAAA,EACA,SAAAC,qBAAA,EAAuB;MACrBC,QAAQ,CAACC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAACT,eAAe,EAAE,IAAI,CAAC;MACpEQ,QAAQ,CAACC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACT,eAAe,EAAE,IAAI,CAAC;;MAEjE;MACA,IAAI,IAAI,CAACN,KAAK,CAACC,QAAQ,IAAI,IAAI,CAACP,KAAK,CAACf,OAAO,EAAE;QAC7C,IAAI,CAACe,KAAK,CAACf,OAAO,CAAC,CAAC;MACtB;IACF;;IAEA;EAAA;IAAAgC,GAAA;IAAAC,KAAA,EACA,SAAAN,gBAAgBU,CAAC,EAAE;MACjB,IAAI,CAAC,IAAI,CAACtB,KAAK,CAACZ,oBAAoB,EAAE;QACpC;MACF;MAEA,IAAMmC,aAAa,GAAG,IAAI,CAACnB,IAAI,CAACoB,OAAO,KAAKF,CAAC,CAACG,MAAM,IAAI,IAAI,CAACrB,IAAI,CAACoB,OAAO,CAACE,QAAQ,CAACJ,CAAC,CAACG,MAAM,CAAC;MAC5F,IAAIF,aAAa,EAAE;QACjB;MACF;MAEA,IAAI,CAACI,KAAK,CAAC,CAAC;IACd;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAAV,eAAec,CAAC,EAAE;MAChB;MACA;MACA,IAAI,IAAI,CAAChB,KAAK,CAACC,QAAQ,IAAIe,CAAC,CAACG,MAAM,CAACG,YAAY,CAAC,MAAM,CAAC,EAAE;QACxD;MACF;MAEAN,CAAC,CAACO,cAAc,CAAC,CAAC;MAClB,IAAI,CAACC,MAAM,CAAC,CAAC;IACf;EAAC;IAAAb,GAAA;IAAAC,KAAA,EAED,SAAAR,aAAA,EAAe;MACb,IAAI,CAACqB,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MACtC,IAAI,CAACL,KAAK,CAAC,CAAC;IACd;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAAP,UAAUW,CAAC,EAAE;MACX,IAAI,CAAC,IAAI,CAAChB,KAAK,CAACC,QAAQ,EAAE;QACxB;MACF;MACA,QAAQe,CAAC,CAACL,GAAG;QACX,KAAK,QAAQ;UAAE;YACbK,CAAC,CAACO,cAAc,CAAC,CAAC;YAClBP,CAAC,CAACW,eAAe,CAAC,CAAC;YACnB,IAAI,CAACF,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;YACtC,IAAI,CAACL,KAAK,CAAC,CAAC;YACZ;UACF;QACA,KAAK,OAAO;UAAE;YACZ;YACA;YACA,IAAIP,QAAQ,CAACc,aAAa,KAAK,IAAI,CAACH,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;cAC7DT,CAAC,CAACO,cAAc,CAAC,CAAC;cAClB,IAAI,CAACC,MAAM,CAAC,CAAC;YACf;YACA;UACF;QACA,KAAK,KAAK;UAAE;YACVR,CAAC,CAACO,cAAc,CAAC,CAAC;YAClB,IAAIP,CAAC,CAACa,QAAQ,EAAE;cACd,IAAI,CAACC,aAAa,CAAC,CAAC;YACtB,CAAC,MAAM;cACL,IAAI,CAACC,SAAS,CAAC,CAAC;YAClB;YACA;UACF;QACA,KAAK,WAAW;UAAE;YAChBf,CAAC,CAACO,cAAc,CAAC,CAAC;YAClB,IAAI,CAACQ,SAAS,CAAC,CAAC;YAChB;UACF;QACA,KAAK,SAAS;UAAE;YACdf,CAAC,CAACO,cAAc,CAAC,CAAC;YAClB,IAAI,CAACO,aAAa,CAAC,CAAC;YACpB;UACF;QACA;MACF;IACF;EAAC;IAAAnB,GAAA;IAAAC,KAAA,EAED,SAAAL,aAAA,EAAe;MACb,IAAI,CAAC,IAAI,CAACb,KAAK,CAACV,sBAAsB,EAAE;QACtC;MACF;MACA,IAAI,CAACgD,IAAI,CAAC,CAAC;IACb;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAJ,aAAA,EAAe;MACb,IAAI,CAAC,IAAI,CAACd,KAAK,CAACV,sBAAsB,EAAE;QACtC;MACF;MACA,IAAI,CAACqC,KAAK,CAAC,CAAC;IACd;;IAEA;EAAA;IAAAV,GAAA;IAAAC,KAAA,EAEA,SAAAa,qBAAA,EAAuB;MACrB,OAAO,IAAI,CAAC3B,IAAI,CAACoB,OAAO,CAACe,gBAAgB,CAAC,0KAA0K,CAAC;IACvN;EAAC;IAAAtB,GAAA;IAAAC,KAAA,EAED,SAAAsB,uBAAA,EAAyB;MAAA,IAAAC,MAAA;MACvB;MACA,IAAMzE,UAAU,GAAG,CAAC,CAAC;MACrB0E,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC3C,KAAK,CAAC,CACpB4C,MAAM,CAAC,UAAAC,QAAQ;QAAA,OAAI7D,aAAa,CAAC6D,QAAQ,CAAC,KAAKC,SAAS;MAAA,EAAC,CACzDC,OAAO,CAAC,UAACF,QAAQ,EAAK;QACrB7E,UAAU,CAAC6E,QAAQ,CAAC,GAAGJ,MAAI,CAACzC,KAAK,CAAC6C,QAAQ,CAAC;MAC7C,CAAC,CAAC;MACJ,OAAO7E,UAAU;IACnB;EAAC;IAAAiD,GAAA;IAAAC,KAAA,EAED,SAAAmB,UAAA,EAAY;MACV,IAAMW,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACnB,oBAAoB,CAAC,CAAC,CAAC;MACjE,IAAMoB,WAAW,GAAGH,iBAAiB,CAACI,OAAO,CAAChC,QAAQ,CAACc,aAAa,CAAC;MACrE,IAAMmB,SAAS,GAAG,CAACF,WAAW,GAAG,CAAC,IAAIH,iBAAiB,CAACM,MAAM;MAC9DN,iBAAiB,CAACK,SAAS,CAAC,CAACrB,KAAK,CAAC,CAAC;IACtC;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAkB,cAAA,EAAgB;MACd,IAAMY,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACnB,oBAAoB,CAAC,CAAC,CAAC;MACjE,IAAMoB,WAAW,GAAGH,iBAAiB,CAACI,OAAO,CAAChC,QAAQ,CAACc,aAAa,CAAC;MACrE,IAAMqB,aAAa,GAAG,CAACJ,WAAW,IAAIH,iBAAiB,CAACM,MAAM,IAAI,CAAC;MACnEN,iBAAiB,CAACO,aAAa,CAAC,CAACvB,KAAK,CAAC,CAAC;IAC1C;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAoB,KAAA,EAAO;MACL,IAAI,IAAI,CAACtC,KAAK,CAACb,MAAM,EAAE;QACrB,IAAI,CAACa,KAAK,CAACb,MAAM,CAAC,CAAC;MACrB;MACA,IAAI,CAACqE,QAAQ,CAAC;QAAEjD,QAAQ,EAAE;MAAK,CAAC,CAAC;MACjC;MACA;MACAa,QAAQ,CAACqC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC7C,eAAe,EAAE,IAAI,CAAC;MACjEQ,QAAQ,CAACqC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC7C,eAAe,EAAE,IAAI,CAAC;IAChE;EAAC;IAAAK,GAAA;IAAAC,KAAA,EAED,SAAAS,MAAA,EAAQ;MACN,IAAI,IAAI,CAAC3B,KAAK,CAACf,OAAO,EAAE;QACtB,IAAI,CAACe,KAAK,CAACf,OAAO,CAAC,CAAC;MACtB;MACA,IAAI,CAACuE,QAAQ,CAAC;QAAEjD,QAAQ,EAAE;MAAM,CAAC,CAAC;MAClCa,QAAQ,CAACC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAACT,eAAe,EAAE,IAAI,CAAC;MACpEQ,QAAQ,CAACC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACT,eAAe,EAAE,IAAI,CAAC;IACnE;EAAC;IAAAK,GAAA;IAAAC,KAAA,EAED,SAAAY,OAAA,EAAS;MACP,IAAI,IAAI,CAACxB,KAAK,CAACC,QAAQ,EAAE;QACvB,IAAI,CAACoB,KAAK,CAAC,CAAC;MACd,CAAC,MAAM;QACL,IAAI,CAACW,IAAI,CAAC,CAAC;MACb;IACF;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAwC,cAAc9D,IAAI,EAAE;MAClB,oBAAOnC,KAAK,CAACkG,YAAY,CAAC/D,IAAI,EAAE;QAC9BgE,OAAO,EAAE,IAAI,CAACpD,cAAc;QAC5B,eAAe,EAAE,MAAM;QACvB,eAAe,EAAE,IAAI,CAACF,KAAK,CAACC;MAC9B,CAAC,CAAC;IACJ;EAAC;IAAAU,GAAA;IAAAC,KAAA,EAED,SAAA2C,kBAAkBjE,IAAI,EAAE;MACtB,oBACEnC,KAAA,CAAAU,aAAA,CAACT,aAAa;QACZ,MAAI,IAAI,CAAC4C,KAAK,CAACC,QAAS;QACxBuD,OAAO,EAAE,IAAI,CAAC9D,KAAK,CAACT,iBAAkB;QACtCwE,UAAU,EAAE,IAAI,CAAC/D,KAAK,CAACP,mBAAoB;QAC3CuE,aAAa;MAAA,GAEZpE,IACY,CAAC;IAEpB;EAAC;IAAAqB,GAAA;IAAAC,KAAA,EAED,SAAA+C,OAAA,EAAS;MAAA,IAAAC,MAAA;MACP,IAAQnG,SAAS,GAAK,IAAI,CAACiC,KAAK,CAAxBjC,SAAS;MAEjB,IAAMoG,eAAe,GAAG1G,KAAK,CAAC2G,QAAQ,CAACC,GAAG,CAAC,IAAI,CAACrE,KAAK,CAACN,QAAQ,EAAE,UAAC4E,KAAK,EAAK;QACzE,IAAIA,KAAK,CAAC3F,IAAI,KAAKD,eAAe,EAAE;UAClC,OAAOwF,MAAI,CAACR,aAAa,CAACY,KAAK,CAAC;QAClC;QACA,OAAOJ,MAAI,CAACL,iBAAiB,CAACS,KAAK,CAAC;MACtC,CAAC,CAAC;MAEF,IAAMC,aAAa,GAAG,IAAI,CAACjE,KAAK,CAACC,QAAQ,GAAG,eAAe,GAAG,MAAM;MAEpE,oBAAO9C,KAAK,CAACU,aAAa,CAAC,IAAI,CAAC6B,KAAK,CAAClC,GAAG,EAAAM,aAAA;QACvCL,SAAS,KAAAM,MAAA,CAAKkG,aAAa,OAAAlG,MAAA,CAAIN,SAAS,CAAE;QAC1CyG,GAAG,EAAE,IAAI,CAACpE,IAAI;QACdO,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBE,YAAY,EAAE,IAAI,CAACA,YAAY;QAC/BC,YAAY,EAAE,IAAI,CAACA;MAAY,GAC5B,IAAI,CAAC0B,sBAAsB,CAAC,CAAC,GAC/B2B,eAAe,CAAC;IACrB;EAAC;AAAA,EAxNgB1G,KAAK,CAACgH,SAAS;AA2NlC3E,IAAI,CAACxB,SAAS,GAAGU,aAAa;AAC9Bc,IAAI,CAACtB,YAAY,GAAG;EAClBV,GAAG,EAAE,KAAK;EACVC,SAAS,EAAE,IAAI;EACfkB,OAAO,EAAE,IAAI;EACbE,MAAM,EAAE,IAAI;EACZG,sBAAsB,EAAE,KAAK;EAC7BF,oBAAoB,EAAE,IAAI;EAC1BG,iBAAiB,EAAE,GAAG;EACtBE,mBAAmB,EAAE;AACvB,CAAC;AAED,SAASK,IAAI,EAAElC,WAAW,EAAEgB,WAAW","ignoreList":[]}
|
package/dist/Menu/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Menu","MenuTrigger","MenuContent"],"sources":["../../src/Menu/index.jsx"],"sourcesContent":["import { Menu, MenuTrigger, MenuContent } from './Menu';\n\nexport { Menu, MenuTrigger, MenuContent };\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,WAAW,QAAQ,QAAQ;AAEvD,SAASF,IAAI,EAAEC,WAAW,EAAEC,WAAW","ignoreList":[]}
|
package/dist/MobileHeader.js
CHANGED
|
@@ -1,75 +1,60 @@
|
|
|
1
|
-
function _typeof(
|
|
2
|
-
|
|
3
|
-
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); }
|
|
4
|
-
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _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); }
|
|
5
3
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6
|
-
|
|
7
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
8
|
-
|
|
4
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
9
5
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
10
|
-
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
14
|
-
|
|
15
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
16
|
-
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
17
9
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
18
|
-
|
|
19
10
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
20
|
-
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
function
|
|
24
|
-
|
|
11
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
12
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
13
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
14
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
25
15
|
import React from 'react';
|
|
26
16
|
import PropTypes from 'prop-types';
|
|
27
17
|
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
|
28
|
-
import { getConfig } from '@edx/frontend-platform';
|
|
18
|
+
import { getConfig } from '@edx/frontend-platform';
|
|
29
19
|
|
|
20
|
+
// Local Components
|
|
30
21
|
import { Menu, MenuTrigger, MenuContent } from './Menu';
|
|
31
22
|
import Avatar from './Avatar';
|
|
32
|
-
import { LinkedLogo, Logo } from './Logo';
|
|
23
|
+
import { LinkedLogo, Logo } from './Logo';
|
|
33
24
|
|
|
34
|
-
|
|
25
|
+
// i18n
|
|
26
|
+
import messages from './Header.messages';
|
|
35
27
|
|
|
28
|
+
// Assets
|
|
36
29
|
import { MenuIcon } from './Icons';
|
|
37
|
-
|
|
38
30
|
var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
39
|
-
_inherits(MobileHeader, _React$Component);
|
|
40
|
-
|
|
41
|
-
var _super = _createSuper(MobileHeader);
|
|
42
|
-
|
|
43
31
|
function MobileHeader(props) {
|
|
44
32
|
_classCallCheck(this, MobileHeader);
|
|
45
|
-
|
|
46
33
|
// eslint-disable-line no-useless-constructor
|
|
47
|
-
return
|
|
34
|
+
return _callSuper(this, MobileHeader, [props]);
|
|
48
35
|
}
|
|
49
|
-
|
|
50
|
-
_createClass(MobileHeader, [{
|
|
51
|
-
key: "
|
|
52
|
-
value: function
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return mainMenu;
|
|
36
|
+
_inherits(MobileHeader, _React$Component);
|
|
37
|
+
return _createClass(MobileHeader, [{
|
|
38
|
+
key: "renderMenu",
|
|
39
|
+
value: function renderMenu(menu) {
|
|
40
|
+
// Nodes are accepted as a prop
|
|
41
|
+
if (!Array.isArray(menu)) {
|
|
42
|
+
return menu;
|
|
57
43
|
}
|
|
58
|
-
|
|
59
|
-
return mainMenu.map(function (menuItem) {
|
|
44
|
+
return menu.map(function (menuItem) {
|
|
60
45
|
var type = menuItem.type,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
href = menuItem.href,
|
|
47
|
+
content = menuItem.content,
|
|
48
|
+
submenuContent = menuItem.submenuContent,
|
|
49
|
+
disabled = menuItem.disabled,
|
|
50
|
+
isActive = menuItem.isActive;
|
|
65
51
|
if (type === 'item') {
|
|
66
52
|
return /*#__PURE__*/React.createElement("a", {
|
|
67
53
|
key: "".concat(type, "-").concat(content),
|
|
68
|
-
className: "nav-link",
|
|
54
|
+
className: "nav-link".concat(disabled ? ' disabled' : '').concat(isActive ? ' active' : ''),
|
|
69
55
|
href: href
|
|
70
56
|
}, content);
|
|
71
57
|
}
|
|
72
|
-
|
|
73
58
|
return /*#__PURE__*/React.createElement(Menu, {
|
|
74
59
|
key: "".concat(type, "-").concat(content),
|
|
75
60
|
tag: "div",
|
|
@@ -84,21 +69,37 @@ var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
84
69
|
}, submenuContent));
|
|
85
70
|
});
|
|
86
71
|
}
|
|
72
|
+
}, {
|
|
73
|
+
key: "renderMainMenu",
|
|
74
|
+
value: function renderMainMenu() {
|
|
75
|
+
var mainMenu = this.props.mainMenu;
|
|
76
|
+
return this.renderMenu(mainMenu);
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "renderSecondaryMenu",
|
|
80
|
+
value: function renderSecondaryMenu() {
|
|
81
|
+
var secondaryMenu = this.props.secondaryMenu;
|
|
82
|
+
return this.renderMenu(secondaryMenu);
|
|
83
|
+
}
|
|
87
84
|
}, {
|
|
88
85
|
key: "renderUserMenuItems",
|
|
89
86
|
value: function renderUserMenuItems() {
|
|
90
87
|
var userMenu = this.props.userMenu;
|
|
91
|
-
return userMenu.map(function (
|
|
92
|
-
|
|
88
|
+
return userMenu.map(function (group) {
|
|
89
|
+
return group.items.map(function (_ref) {
|
|
90
|
+
var type = _ref.type,
|
|
91
|
+
content = _ref.content,
|
|
93
92
|
href = _ref.href,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
93
|
+
disabled = _ref.disabled,
|
|
94
|
+
isActive = _ref.isActive;
|
|
95
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
96
|
+
className: "nav-item",
|
|
97
|
+
key: "".concat(type, "-").concat(content)
|
|
98
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
99
|
+
className: "nav-link".concat(isActive ? ' active' : '').concat(disabled ? ' disabled' : ''),
|
|
100
|
+
href: href
|
|
101
|
+
}, content));
|
|
102
|
+
});
|
|
102
103
|
});
|
|
103
104
|
}
|
|
104
105
|
}, {
|
|
@@ -107,8 +108,8 @@ var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
107
108
|
var loggedOutItems = this.props.loggedOutItems;
|
|
108
109
|
return loggedOutItems.map(function (_ref2, i, arr) {
|
|
109
110
|
var type = _ref2.type,
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
href = _ref2.href,
|
|
112
|
+
content = _ref2.content;
|
|
112
113
|
return /*#__PURE__*/React.createElement("li", {
|
|
113
114
|
className: "nav-item px-3 my-2",
|
|
114
115
|
key: "".concat(type, "-").concat(content)
|
|
@@ -122,17 +123,17 @@ var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
122
123
|
key: "render",
|
|
123
124
|
value: function render() {
|
|
124
125
|
var _this$props = this.props,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
126
|
+
logo = _this$props.logo,
|
|
127
|
+
logoAltText = _this$props.logoAltText,
|
|
128
|
+
logoDestination = _this$props.logoDestination,
|
|
129
|
+
loggedIn = _this$props.loggedIn,
|
|
130
|
+
avatar = _this$props.avatar,
|
|
131
|
+
username = _this$props.username,
|
|
132
|
+
stickyOnMobile = _this$props.stickyOnMobile,
|
|
133
|
+
intl = _this$props.intl,
|
|
134
|
+
mainMenu = _this$props.mainMenu,
|
|
135
|
+
userMenu = _this$props.userMenu,
|
|
136
|
+
loggedOutItems = _this$props.loggedOutItems;
|
|
136
137
|
var logoProps = {
|
|
137
138
|
src: logo,
|
|
138
139
|
alt: logoAltText,
|
|
@@ -167,7 +168,7 @@ var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
167
168
|
tag: "nav",
|
|
168
169
|
"aria-label": intl.formatMessage(messages['header.label.main.nav']),
|
|
169
170
|
className: "nav flex-column pin-left pin-right border-top shadow py-2"
|
|
170
|
-
}, this.renderMainMenu()))) : null, /*#__PURE__*/React.createElement("div", {
|
|
171
|
+
}, this.renderMainMenu(), this.renderSecondaryMenu()))) : null, /*#__PURE__*/React.createElement("div", {
|
|
171
172
|
className: "w-100 d-flex ".concat(logoClasses)
|
|
172
173
|
}, logoDestination === null ? /*#__PURE__*/React.createElement(Logo, {
|
|
173
174
|
className: "logo",
|
|
@@ -198,16 +199,18 @@ var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
198
199
|
}, loggedIn ? this.renderUserMenuItems() : this.renderLoggedOutItems()))) : null);
|
|
199
200
|
}
|
|
200
201
|
}]);
|
|
201
|
-
|
|
202
|
-
return MobileHeader;
|
|
203
202
|
}(React.Component);
|
|
204
|
-
|
|
205
203
|
MobileHeader.propTypes = {
|
|
206
204
|
mainMenu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
|
|
205
|
+
secondaryMenu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
|
|
207
206
|
userMenu: PropTypes.arrayOf(PropTypes.shape({
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
heading: PropTypes.string,
|
|
208
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
209
|
+
type: PropTypes.oneOf(['item', 'menu']),
|
|
210
|
+
href: PropTypes.string,
|
|
211
|
+
content: PropTypes.string,
|
|
212
|
+
isActive: PropTypes.bool
|
|
213
|
+
}))
|
|
211
214
|
})),
|
|
212
215
|
loggedOutItems: PropTypes.arrayOf(PropTypes.shape({
|
|
213
216
|
type: PropTypes.oneOf(['item', 'menu']),
|
|
@@ -226,6 +229,7 @@ MobileHeader.propTypes = {
|
|
|
226
229
|
};
|
|
227
230
|
MobileHeader.defaultProps = {
|
|
228
231
|
mainMenu: [],
|
|
232
|
+
secondaryMenu: [],
|
|
229
233
|
userMenu: [],
|
|
230
234
|
loggedOutItems: [],
|
|
231
235
|
logo: null,
|
package/dist/MobileHeader.js.map
CHANGED
|
@@ -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":[]}
|
|
@@ -28,7 +28,7 @@ exports[`<Header /> renders correctly for anonymous desktop 1`] = `
|
|
|
28
28
|
</a>
|
|
29
29
|
<nav
|
|
30
30
|
aria-label="Main"
|
|
31
|
-
className="nav main-nav"
|
|
31
|
+
className="nav main-nav mr-auto"
|
|
32
32
|
>
|
|
33
33
|
<a
|
|
34
34
|
className="nav-link"
|
|
@@ -39,7 +39,7 @@ exports[`<Header /> renders correctly for anonymous desktop 1`] = `
|
|
|
39
39
|
</nav>
|
|
40
40
|
<nav
|
|
41
41
|
aria-label="Secondary"
|
|
42
|
-
className="nav secondary-menu-container align-items-center
|
|
42
|
+
className="nav secondary-menu-container align-items-center"
|
|
43
43
|
>
|
|
44
44
|
<a
|
|
45
45
|
className="btn mr-2 btn-link"
|
|
@@ -93,7 +93,7 @@ exports[`<Header /> renders correctly for anonymous mobile 1`] = `
|
|
|
93
93
|
height="24px"
|
|
94
94
|
role="img"
|
|
95
95
|
style={
|
|
96
|
-
|
|
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
|
-
|
|
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
|
-
|
|
178
|
+
{
|
|
179
179
|
"height": "1.5rem",
|
|
180
180
|
"width": "1.5rem",
|
|
181
181
|
}
|
|
@@ -224,7 +224,7 @@ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
|
|
|
224
224
|
</a>
|
|
225
225
|
<nav
|
|
226
226
|
aria-label="Main"
|
|
227
|
-
className="nav main-nav"
|
|
227
|
+
className="nav main-nav mr-auto"
|
|
228
228
|
>
|
|
229
229
|
<a
|
|
230
230
|
className="nav-link"
|
|
@@ -235,7 +235,7 @@ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
|
|
|
235
235
|
</nav>
|
|
236
236
|
<nav
|
|
237
237
|
aria-label="Secondary"
|
|
238
|
-
className="nav secondary-menu-container align-items-center
|
|
238
|
+
className="nav secondary-menu-container align-items-center"
|
|
239
239
|
>
|
|
240
240
|
<div
|
|
241
241
|
className="menu null"
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
424
|
+
{
|
|
425
425
|
"height": "1.5rem",
|
|
426
426
|
"width": "1.5rem",
|
|
427
427
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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":[]}
|
package/dist/i18n/index.js
CHANGED
|
@@ -1,31 +1,2 @@
|
|
|
1
|
-
|
|
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
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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
|
-
|
|
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,"
|
|
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;
|