@coorpacademy/components 11.11.5-alpha.0 → 11.11.6
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/es/atom/battle-opponent/index.d.ts +20 -0
- package/es/atom/battle-opponent/index.d.ts.map +1 -0
- package/es/atom/battle-opponent/index.js +104 -0
- package/es/atom/battle-opponent/index.js.map +1 -0
- package/es/atom/battle-opponent/prop-types.d.ts +21 -0
- package/es/atom/battle-opponent/prop-types.d.ts.map +1 -0
- package/es/atom/battle-opponent/prop-types.js +12 -0
- package/es/atom/battle-opponent/prop-types.js.map +1 -0
- package/es/atom/battle-opponent/style.css +133 -0
- package/es/atom/{review-header-step-item → status-item}/index.d.ts +4 -4
- package/es/atom/status-item/index.d.ts.map +1 -0
- package/es/atom/status-item/index.js +104 -0
- package/es/atom/status-item/index.js.map +1 -0
- package/es/atom/status-item/index.native.d.ts +5 -0
- package/es/atom/status-item/index.native.d.ts.map +1 -0
- package/es/atom/{review-header-step-item → status-item}/index.native.js +2 -2
- package/es/atom/status-item/index.native.js.map +1 -0
- package/es/atom/{review-header-step-item → status-item}/style.css +47 -0
- package/es/atom/{review-header-step-item → status-item}/types.d.ts +5 -5
- package/es/atom/status-item/types.d.ts.map +1 -0
- package/es/atom/{review-header-step-item → status-item}/types.js +1 -1
- package/es/atom/status-item/types.js.map +1 -0
- package/es/atom/tooltip/index.d.ts +3 -1
- package/es/atom/tooltip/index.d.ts.map +1 -1
- package/es/atom/tooltip/index.js +18 -7
- package/es/atom/tooltip/index.js.map +1 -1
- package/es/atom/tooltip/style.css +11 -2
- package/es/globals.d.js.map +1 -1
- package/es/molecule/battle-opponent-list/index.d.ts +18 -0
- package/es/molecule/battle-opponent-list/index.d.ts.map +1 -0
- package/es/molecule/battle-opponent-list/index.js +25 -0
- package/es/molecule/battle-opponent-list/index.js.map +1 -0
- package/es/molecule/battle-opponent-list/prop-types.d.ts +26 -0
- package/es/molecule/battle-opponent-list/prop-types.d.ts.map +1 -0
- package/es/molecule/battle-opponent-list/prop-types.js +14 -0
- package/es/molecule/battle-opponent-list/prop-types.js.map +1 -0
- package/es/molecule/battle-opponent-list/style.css +5 -0
- package/es/molecule/review-header-steps/index.js +2 -2
- package/es/molecule/review-header-steps/index.js.map +1 -1
- package/es/molecule/review-header-steps/prop-types.d.ts +2 -2
- package/es/molecule/review-header-steps/prop-types.d.ts.map +1 -1
- package/es/molecule/review-header-steps/prop-types.js +1 -1
- package/es/molecule/review-header-steps/prop-types.js.map +1 -1
- package/es/organism/mooc-footer/style.css +1 -0
- package/es/organism/mooc-header/index.d.ts +3 -0
- package/es/organism/mooc-header/index.d.ts.map +1 -1
- package/es/organism/mooc-header/index.js +39 -4
- package/es/organism/mooc-header/index.js.map +1 -1
- package/es/organism/mooc-header/style.css +17 -1
- package/es/organism/review-header/index.native.js +1 -1
- package/es/organism/review-header/index.native.js.map +1 -1
- package/es/organism/review-header/types.d.ts +2 -2
- package/es/organism/review-header/types.d.ts.map +1 -1
- package/es/organism/review-header/types.js.map +1 -1
- package/es/organism/user-preferences/index.d.ts.map +1 -1
- package/es/organism/user-preferences/index.js +6 -3
- package/es/organism/user-preferences/index.js.map +1 -1
- package/es/variables/colors.css +2 -0
- package/lib/atom/battle-opponent/index.d.ts +20 -0
- package/lib/atom/battle-opponent/index.d.ts.map +1 -0
- package/lib/atom/battle-opponent/index.js +124 -0
- package/lib/atom/battle-opponent/index.js.map +1 -0
- package/lib/atom/battle-opponent/prop-types.d.ts +21 -0
- package/lib/atom/battle-opponent/prop-types.d.ts.map +1 -0
- package/lib/atom/battle-opponent/prop-types.js +21 -0
- package/lib/atom/battle-opponent/prop-types.js.map +1 -0
- package/lib/atom/battle-opponent/style.css +133 -0
- package/lib/atom/{review-header-step-item → status-item}/index.d.ts +4 -4
- package/lib/atom/status-item/index.d.ts.map +1 -0
- package/lib/atom/{review-header-step-item → status-item}/index.js +50 -23
- package/lib/atom/status-item/index.js.map +1 -0
- package/lib/atom/status-item/index.native.d.ts +5 -0
- package/lib/atom/status-item/index.native.d.ts.map +1 -0
- package/lib/atom/{review-header-step-item → status-item}/index.native.js +2 -2
- package/lib/atom/status-item/index.native.js.map +1 -0
- package/lib/atom/{review-header-step-item → status-item}/style.css +47 -0
- package/lib/atom/{review-header-step-item → status-item}/types.d.ts +5 -5
- package/lib/atom/status-item/types.d.ts.map +1 -0
- package/lib/atom/{review-header-step-item → status-item}/types.js +1 -1
- package/lib/atom/status-item/types.js.map +1 -0
- package/lib/atom/tooltip/index.d.ts +3 -1
- package/lib/atom/tooltip/index.d.ts.map +1 -1
- package/lib/atom/tooltip/index.js +19 -7
- package/lib/atom/tooltip/index.js.map +1 -1
- package/lib/atom/tooltip/style.css +11 -2
- package/lib/globals.d.js.map +1 -1
- package/lib/molecule/battle-opponent-list/index.d.ts +18 -0
- package/lib/molecule/battle-opponent-list/index.d.ts.map +1 -0
- package/lib/molecule/battle-opponent-list/index.js +43 -0
- package/lib/molecule/battle-opponent-list/index.js.map +1 -0
- package/lib/molecule/battle-opponent-list/prop-types.d.ts +26 -0
- package/lib/molecule/battle-opponent-list/prop-types.d.ts.map +1 -0
- package/lib/molecule/battle-opponent-list/prop-types.js +23 -0
- package/lib/molecule/battle-opponent-list/prop-types.js.map +1 -0
- package/lib/molecule/battle-opponent-list/style.css +5 -0
- package/lib/molecule/review-header-steps/index.js +2 -2
- package/lib/molecule/review-header-steps/index.js.map +1 -1
- package/lib/molecule/review-header-steps/prop-types.d.ts +2 -2
- package/lib/molecule/review-header-steps/prop-types.d.ts.map +1 -1
- package/lib/molecule/review-header-steps/prop-types.js +1 -1
- package/lib/molecule/review-header-steps/prop-types.js.map +1 -1
- package/lib/organism/mooc-footer/style.css +1 -0
- package/lib/organism/mooc-header/index.d.ts +3 -0
- package/lib/organism/mooc-header/index.d.ts.map +1 -1
- package/lib/organism/mooc-header/index.js +39 -4
- package/lib/organism/mooc-header/index.js.map +1 -1
- package/lib/organism/mooc-header/style.css +17 -1
- package/lib/organism/review-header/index.native.js +1 -1
- package/lib/organism/review-header/index.native.js.map +1 -1
- package/lib/organism/review-header/types.d.ts +2 -2
- package/lib/organism/review-header/types.d.ts.map +1 -1
- package/lib/organism/review-header/types.js.map +1 -1
- package/lib/organism/user-preferences/index.d.ts.map +1 -1
- package/lib/organism/user-preferences/index.js +10 -3
- package/lib/organism/user-preferences/index.js.map +1 -1
- package/lib/variables/colors.css +2 -0
- package/locales/bs/global.json +8 -5
- package/locales/cs/global.json +8 -5
- package/locales/de/global.json +8 -5
- package/locales/en/global.json +8 -5
- package/locales/es/global.json +8 -5
- package/locales/et/global.json +8 -5
- package/locales/fr/global.json +8 -5
- package/locales/hr/global.json +8 -5
- package/locales/hu/global.json +8 -5
- package/locales/hy/global.json +8 -5
- package/locales/it/global.json +8 -5
- package/locales/ja/global.json +8 -5
- package/locales/ko/global.json +8 -5
- package/locales/nl/global.json +8 -5
- package/locales/pl/global.json +8 -5
- package/locales/pt/global.json +8 -5
- package/locales/ro/global.json +8 -5
- package/locales/ru/global.json +8 -5
- package/locales/sk/global.json +8 -5
- package/locales/th/global.json +8 -5
- package/locales/tl/global.json +8 -5
- package/locales/tr/global.json +8 -5
- package/locales/uk/global.json +8 -5
- package/locales/vi/global.json +8 -5
- package/locales/zh/global.json +8 -5
- package/locales/zh_TW/global.json +8 -5
- package/package.json +3 -2
- package/es/atom/review-header-step-item/index.d.ts.map +0 -1
- package/es/atom/review-header-step-item/index.js +0 -77
- package/es/atom/review-header-step-item/index.js.map +0 -1
- package/es/atom/review-header-step-item/index.native.d.ts +0 -5
- package/es/atom/review-header-step-item/index.native.d.ts.map +0 -1
- package/es/atom/review-header-step-item/index.native.js.map +0 -1
- package/es/atom/review-header-step-item/types.d.ts.map +0 -1
- package/es/atom/review-header-step-item/types.js.map +0 -1
- package/lib/atom/review-header-step-item/index.d.ts.map +0 -1
- package/lib/atom/review-header-step-item/index.js.map +0 -1
- package/lib/atom/review-header-step-item/index.native.d.ts +0 -5
- package/lib/atom/review-header-step-item/index.native.d.ts.map +0 -1
- package/lib/atom/review-header-step-item/index.native.js.map +0 -1
- package/lib/atom/review-header-step-item/types.d.ts.map +0 -1
- package/lib/atom/review-header-step-item/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaCompositionNavigationBurger","BurgerIcon","NovaCompositionNavigationClose","CloseIcon","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyCharts","ChartsIcon","NovaSolidVoteRewardsRewardsTrophy5","TrophyIcon","NovaCompositionCoorpacademyCog","CogIcon","NovaCompositionCoorpacademyPlacesHome24","HomeIcon","NovaSolidTimeAlarm","AlarmIcon","Provider","Cta","Select","Picture","InputSwitch","Link","Search","SearchForm","style","MoocHeader","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","isToolTipOpen","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","handleOnMouseOver","handleOnMouseLeave","handleKeyPress","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","event","key","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","activePageAriaLabel","translate","skin","context","logoAriaLabel","closeMenuAriaLabel","openMenuAriaLabel","toolTipText","closeToolTipInformationTextAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreAriaLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","itemLabel","title","pageBadge","counter","href","itemBadge","name","itemName","activePage","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","profileAvatarAlt","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","navMobile","burgerHidden","burger","close","closeHidden","tooltipIconContainer","homeIcon","__html","menuWrapper","hiddenMenuWrapper","contextTypes","childContextTypes","propTypes","shape","src","string","srcMobile","func","arrayOf","oneOf","bool","number"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationBurger as BurgerIcon,\n NovaCompositionNavigationClose as CloseIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaCompositionCoorpacademyPlacesHome24 as HomeIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string,\n toolTipText: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n 'active-page-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false,\n isToolTipOpen: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n this.handleOnMouseOver = this.handleOnMouseOver.bind(this);\n this.handleOnMouseLeave = this.handleOnMouseLeave.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n this.setState(() => ({\n isMenuOpen: true\n }));\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n this.setState(() => ({\n isMenuOpen: false\n }));\n }\n\n handleOnMouseOver() {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n }\n\n handleOnMouseLeave() {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n\n handleKeyPress(event) {\n if (event.key === 'Enter') {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel,\n 'active-page-aria-label': activePageAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen, isToolTipOpen} = this.state;\n const {translate, skin} = this.context;\n const {\n 'aria-label': logoAriaLabel,\n closeMenuAriaLabel,\n openMenuAriaLabel,\n toolTipText,\n closeToolTipInformationTextAriaLabel\n } = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreAriaLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={itemLabel}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const {name: itemName = index} = item;\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={itemLabel}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div className={style.currentOption} aria-haspopup=\"true\" data-name=\"item-more\">\n {moreAriaLabel}\n <ArrowDown\n style={{color: mediumColor}}\n className={style.caret}\n aria-label={moreAriaLabel}\n />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} style={{color: white}} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} style={{color: white}} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} style={{color: white}} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} alt={user.profileAvatarAlt} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <span className={style.label}>{title}</span>\n <Select {...selectProps} aria-label={ariaLabel || title} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span id={`title-id-${settingName}`} className={style.label}>\n {title}\n </span>\n <InputSwitch {...switchProps} aria-labelledby={`title-id-${settingName}`} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n style={{color: darkColor}}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div\n className={style.logoWrapper}\n aria-label={toolTipText}\n onMouseOver={this.handleOnMouseOver}\n onMouseLeave={this.handleOnMouseLeave}\n >\n <div className={style.navMobile} data-name=\"nav-mobile\">\n <BurgerIcon\n role=\"button\"\n data-name=\"nav-mobile-open\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.burgerHidden : style.burger}\n onClick={this.handleOnMenuOpen}\n aria-label={openMenuAriaLabel}\n />\n <CloseIcon\n data-name=\"nav-mobile-close\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.close : style.closeHidden}\n onClick={this.handleOnMenuClose}\n aria-label={closeMenuAriaLabel}\n />\n <Link data-name=\"logo-mobile\" href={logo.href}>\n <Picture src={logoMobileUrl} alt={logoAriaLabel} />\n </Link>\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n onKeyDown={this.handleKeyPress}\n tabIndex={0}\n data-testid=\"brand-logo\"\n >\n <Picture src={logoUrl} alt={logoAriaLabel} />\n {isToolTipOpen ? (\n <div aria-label={toolTipText} tabIndex={0} data-testid=\"home-tooltip\">\n <div\n aria-label={`${toolTipText} ${closeToolTipInformationTextAriaLabel}`}\n role=\"tooltip\"\n className={style.tooltipIconContainer}\n tabIndex={0}\n >\n <HomeIcon className={style.homeIcon} style={{color: primaryColor}} />\n <p\n className={style.toolTipText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: toolTipText}}\n style={{color: primaryColor}}\n />\n </div>\n </div>\n ) : null}\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaCompositionNavigationBurger","BurgerIcon","NovaCompositionNavigationClose","CloseIcon","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyCharts","ChartsIcon","NovaSolidVoteRewardsRewardsTrophy5","TrophyIcon","NovaCompositionCoorpacademyCog","CogIcon","NovaCompositionCoorpacademyPlacesHome24","HomeIcon","NovaSolidTimeAlarm","AlarmIcon","Provider","Cta","Select","Picture","InputSwitch","Link","Search","SearchForm","style","MoocHeader","Component","constructor","props","handleMouseEnter","setState","hovered","handleMouseLeave","state","isSettingsOpen","isMenuOpen","isFocus","isToolTipOpen","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","handleOnMouseOver","handleOnMouseLeave","handleKeyPress","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","event","key","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","activePageAriaLabel","translate","skin","context","logoAriaLabel","closeMenuAriaLabel","openMenuAriaLabel","toolTipText","closeToolTipInformationTextAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreAriaLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","itemLabel","title","pageBadge","counter","href","itemBadge","name","itemName","activePage","bar","optionsView","more","option","line","_hoverStyle","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","profileAvatarAlt","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","navMobile","burgerHidden","burger","close","closeHidden","tooltipIconContainer","homeIcon","__html","menuWrapper","hiddenMenuWrapper","contextTypes","childContextTypes","propTypes","shape","src","string","srcMobile","func","arrayOf","oneOf","bool","number"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationBurger as BurgerIcon,\n NovaCompositionNavigationClose as CloseIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaCompositionCoorpacademyPlacesHome24 as HomeIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string,\n toolTipText: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n 'active-page-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false,\n isToolTipOpen: false,\n hovered: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n this.handleOnMouseOver = this.handleOnMouseOver.bind(this);\n this.handleOnMouseLeave = this.handleOnMouseLeave.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n this.setState(() => ({\n isMenuOpen: true\n }));\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n this.setState(() => ({\n isMenuOpen: false\n }));\n }\n\n handleOnMouseOver() {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n }\n\n handleOnMouseLeave() {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n\n handleKeyPress(event) {\n if (event.key === 'Enter') {\n this.setState(() => ({\n isToolTipOpen: true\n }));\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n this.setState(() => ({\n isToolTipOpen: false\n }));\n }\n }\n\n handleMouseEnter = () => {\n this.setState({\n hovered: true\n });\n };\n\n handleMouseLeave = () => {\n this.setState({\n hovered: false\n });\n };\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel,\n 'active-page-aria-label': activePageAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen, isToolTipOpen} = this.state;\n const {translate, skin} = this.context;\n const {\n 'aria-label': logoAriaLabel,\n closeMenuAriaLabel,\n openMenuAriaLabel,\n toolTipText,\n closeToolTipInformationTextAriaLabel\n } = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreAriaLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={itemLabel}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;\n const {name: itemName = index} = item;\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={itemLabel}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n <span\n className={style.line}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n const {hovered} = this.state;\n const _hoverStyle = hovered\n ? {\n color: primaryColor\n }\n : null;\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div\n className={style.currentOption}\n aria-haspopup=\"true\"\n data-name=\"item-more\"\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n style={{\n ..._hoverStyle\n }}\n >\n {moreAriaLabel}\n <ArrowDown\n style={{color: mediumColor}}\n className={style.caret}\n aria-label={moreAriaLabel}\n />\n </div>\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} style={{color: white}} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} style={{color: white}} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} style={{color: white}} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} alt={user.profileAvatarAlt} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <span className={style.label}>{title}</span>\n <Select {...selectProps} aria-label={ariaLabel || title} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span id={`title-id-${settingName}`} className={style.label}>\n {title}\n </span>\n <InputSwitch {...switchProps} aria-labelledby={`title-id-${settingName}`} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n style={{color: darkColor}}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div\n className={style.logoWrapper}\n aria-label={toolTipText}\n onMouseOver={this.handleOnMouseOver}\n onMouseLeave={this.handleOnMouseLeave}\n >\n <div className={style.navMobile} data-name=\"nav-mobile\">\n <BurgerIcon\n role=\"button\"\n data-name=\"nav-mobile-open\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.burgerHidden : style.burger}\n onClick={this.handleOnMenuOpen}\n aria-label={openMenuAriaLabel}\n />\n <CloseIcon\n data-name=\"nav-mobile-close\"\n style={{color: mediumColor}}\n className={isMenuOpen ? style.close : style.closeHidden}\n onClick={this.handleOnMenuClose}\n aria-label={closeMenuAriaLabel}\n />\n <Link data-name=\"logo-mobile\" href={logo.href}>\n <Picture src={logoMobileUrl} alt={logoAriaLabel} />\n </Link>\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n onKeyDown={this.handleKeyPress}\n tabIndex={0}\n data-testid=\"brand-logo\"\n >\n <Picture src={logoUrl} alt={logoAriaLabel} />\n {isToolTipOpen ? (\n <div aria-label={toolTipText} tabIndex={0} data-testid=\"home-tooltip\">\n <div\n aria-label={`${toolTipText} ${closeToolTipInformationTextAriaLabel}`}\n role=\"tooltip\"\n className={style.tooltipIconContainer}\n tabIndex={0}\n >\n <HomeIcon className={style.homeIcon} style={{color: primaryColor}} />\n <p\n className={style.toolTipText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: toolTipText}}\n style={{color: primaryColor}}\n />\n </div>\n </div>\n ) : null}\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":"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"}
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
.option {
|
|
148
|
-
display:
|
|
148
|
+
display: flex;
|
|
149
149
|
padding: 0 10px;
|
|
150
150
|
font-size: 13px;
|
|
151
151
|
color: dark;
|
|
@@ -210,11 +210,27 @@
|
|
|
210
210
|
transition: all 0.2s ease-out;
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
.option .line {
|
|
214
|
+
background-color: brand;
|
|
215
|
+
width: 3px;
|
|
216
|
+
height: 0;
|
|
217
|
+
left: 0;
|
|
218
|
+
position: absolute;
|
|
219
|
+
transition: all 0.2s ease-out;
|
|
220
|
+
display: none;
|
|
221
|
+
}
|
|
222
|
+
|
|
213
223
|
.activePage .bar {
|
|
214
224
|
left: 0;
|
|
215
225
|
width: 100%;
|
|
216
226
|
}
|
|
217
227
|
|
|
228
|
+
.option:hover .line {
|
|
229
|
+
height: 40px;
|
|
230
|
+
width: 3px;
|
|
231
|
+
display: inherit;
|
|
232
|
+
}
|
|
233
|
+
|
|
218
234
|
.item:hover .bar {
|
|
219
235
|
left: 0;
|
|
220
236
|
width: 100%;
|
|
@@ -3,7 +3,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { StyleSheet, View } from 'react-native';
|
|
5
5
|
import { NovaSolidStatusClose as CloseIcon } from '@coorpacademy/nova-icons';
|
|
6
|
-
import Step from '../../atom/
|
|
6
|
+
import Step from '../../atom/status-item/index.native';
|
|
7
7
|
import Touchable from '../../hoc/touchable/index.native';
|
|
8
8
|
const style = StyleSheet.create({
|
|
9
9
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":["React","StyleSheet","View","NovaSolidStatusClose","CloseIcon","Step","Touchable","style","create","container","flexDirection","justifyContent","alignItems","alignContent","width","header","height","paddingTop","touchArea","position","right","borderRadius","padding","icon","ReviewHeader","props","steps","onQuitClick","map","step","value"],"sources":["../../../src/organism/review-header/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {StyleSheet, View, ViewStyle} from 'react-native';\nimport {NovaSolidStatusClose as CloseIcon} from '@coorpacademy/nova-icons';\nimport Step from '../../atom/
|
|
1
|
+
{"version":3,"file":"index.native.js","names":["React","StyleSheet","View","NovaSolidStatusClose","CloseIcon","Step","Touchable","style","create","container","flexDirection","justifyContent","alignItems","alignContent","width","header","height","paddingTop","touchArea","position","right","borderRadius","padding","icon","ReviewHeader","props","steps","onQuitClick","map","step","value"],"sources":["../../../src/organism/review-header/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {StyleSheet, View, ViewStyle} from 'react-native';\nimport {NovaSolidStatusClose as CloseIcon} from '@coorpacademy/nova-icons';\nimport Step from '../../atom/status-item/index.native';\nimport Touchable from '../../hoc/touchable/index.native';\nimport {HeaderProps} from './types';\n\ntype StyleSheetType = {\n container: ViewStyle;\n header: ViewStyle;\n touchArea: ViewStyle;\n icon: ViewStyle;\n};\n\nconst style: StyleSheetType = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n alignContent: 'center',\n width: '100%'\n },\n header: {\n width: '80%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n height: 70,\n paddingTop: 8\n },\n touchArea: {\n position: 'absolute',\n right: 24,\n borderRadius: 12,\n paddingTop: 16,\n padding: 8\n },\n icon: {\n width: 12,\n height: 12\n }\n});\n\nconst ReviewHeader = (props: HeaderProps) => {\n const {steps, onQuitClick} = props;\n\n return (\n <View style={style.container}>\n <View style={style.header}>\n {steps.map(step => (\n <Step {...step} key={step.value} />\n ))}\n </View>\n <Touchable\n style={style.touchArea}\n isHighlight\n onPress={onQuitClick}\n accessibilityLabel=\"open-popin-button\"\n testID=\"open-popin-button\"\n >\n <CloseIcon style={style.icon} color=\"#06265B\" />\n </Touchable>\n </View>\n );\n};\n\nexport default ReviewHeader;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAQC,UAAR,EAAoBC,IAApB,QAA0C,cAA1C;AACA,SAAQC,oBAAoB,IAAIC,SAAhC,QAAgD,0BAAhD;AACA,OAAOC,IAAP,MAAiB,qCAAjB;AACA,OAAOC,SAAP,MAAsB,kCAAtB;AAUA,MAAMC,KAAqB,GAAGN,UAAU,CAACO,MAAX,CAAkB;EAC9CC,SAAS,EAAE;IACTC,aAAa,EAAE,KADN;IAETC,cAAc,EAAE,QAFP;IAGTC,UAAU,EAAE,QAHH;IAITC,YAAY,EAAE,QAJL;IAKTC,KAAK,EAAE;EALE,CADmC;EAQ9CC,MAAM,EAAE;IACND,KAAK,EAAE,KADD;IAENJ,aAAa,EAAE,KAFT;IAGNE,UAAU,EAAE,QAHN;IAIND,cAAc,EAAE,QAJV;IAKNK,MAAM,EAAE,EALF;IAMNC,UAAU,EAAE;EANN,CARsC;EAgB9CC,SAAS,EAAE;IACTC,QAAQ,EAAE,UADD;IAETC,KAAK,EAAE,EAFE;IAGTC,YAAY,EAAE,EAHL;IAITJ,UAAU,EAAE,EAJH;IAKTK,OAAO,EAAE;EALA,CAhBmC;EAuB9CC,IAAI,EAAE;IACJT,KAAK,EAAE,EADH;IAEJE,MAAM,EAAE;EAFJ;AAvBwC,CAAlB,CAA9B;;AA6BA,MAAMQ,YAAY,GAAIC,KAAD,IAAwB;EAC3C,MAAM;IAACC,KAAD;IAAQC;EAAR,IAAuBF,KAA7B;EAEA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAElB,KAAK,CAACE;EAAnB,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAEF,KAAK,CAACQ;EAAnB,GACGW,KAAK,CAACE,GAAN,CAAUC,IAAI,iBACb,oBAAC,IAAD,eAAUA,IAAV;IAAgB,GAAG,EAAEA,IAAI,CAACC;EAA1B,GADD,CADH,CADF,eAME,oBAAC,SAAD;IACE,KAAK,EAAEvB,KAAK,CAACW,SADf;IAEE,WAAW,MAFb;IAGE,OAAO,EAAES,WAHX;IAIE,kBAAkB,EAAC,mBAJrB;IAKE,MAAM,EAAC;EALT,gBAOE,oBAAC,SAAD;IAAW,KAAK,EAAEpB,KAAK,CAACgB,IAAxB;IAA8B,KAAK,EAAC;EAApC,EAPF,CANF,CADF;AAkBD,CArBD;;AAuBA,eAAeC,YAAf"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
|
-
import {
|
|
2
|
+
import { StatusItemProps } from '../../atom/status-item/types';
|
|
3
3
|
declare const propTypes: {
|
|
4
4
|
steps: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
5
5
|
current: PropTypes.Requireable<boolean>;
|
|
@@ -15,7 +15,7 @@ declare const propTypes: {
|
|
|
15
15
|
};
|
|
16
16
|
export default propTypes;
|
|
17
17
|
export declare type HeaderProps = {
|
|
18
|
-
steps:
|
|
18
|
+
steps: StatusItemProps[];
|
|
19
19
|
mode: string;
|
|
20
20
|
skillName: string;
|
|
21
21
|
'aria-label': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/organism/review-header/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/organism/review-header/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAE7D,QAAA,MAAM,SAAS;;;;;;;;;;;;CAQd,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,oBAAY,WAAW,GAAG;IACxB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["PropTypes","ReviewHeaderStepsPropTypes","propTypes","steps","mode","string","isRequired","skillName","closeButtonAriaLabel","onQuitClick","func","hiddenSteps","bool"],"sources":["../../../src/organism/review-header/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewHeaderStepsPropTypes from '../../molecule/review-header-steps/prop-types';\nimport {
|
|
1
|
+
{"version":3,"file":"types.js","names":["PropTypes","ReviewHeaderStepsPropTypes","propTypes","steps","mode","string","isRequired","skillName","closeButtonAriaLabel","onQuitClick","func","hiddenSteps","bool"],"sources":["../../../src/organism/review-header/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewHeaderStepsPropTypes from '../../molecule/review-header-steps/prop-types';\nimport {StatusItemProps} from '../../atom/status-item/types';\n\nconst propTypes = {\n steps: ReviewHeaderStepsPropTypes.steps,\n mode: PropTypes.string.isRequired,\n skillName: PropTypes.string.isRequired,\n 'aria-label': PropTypes.string,\n closeButtonAriaLabel: PropTypes.string,\n onQuitClick: PropTypes.func,\n hiddenSteps: PropTypes.bool\n};\n\nexport default propTypes;\n\nexport type HeaderProps = {\n steps: StatusItemProps[];\n mode: string;\n skillName: string;\n 'aria-label': string;\n closeButtonAriaLabel: string;\n onQuitClick: () => void;\n hiddenSteps: boolean;\n};\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,0BAAP,MAAuC,+CAAvC;AAGA,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAEF,0BAA0B,CAACE,KADlB;EAEhBC,IAAI,EAAEJ,SAAS,CAACK,MAAV,CAAiBC,UAFP;EAGhBC,SAAS,EAAEP,SAAS,CAACK,MAAV,CAAiBC,UAHZ;EAIhB,cAAcN,SAAS,CAACK,MAJR;EAKhBG,oBAAoB,EAAER,SAAS,CAACK,MALhB;EAMhBI,WAAW,EAAET,SAAS,CAACU,IANP;EAOhBC,WAAW,EAAEX,SAAS,CAACY;AAPP,CAAlB;AAUA,eAAeV,SAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/user-preferences/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/user-preferences/index.js"],"names":[],"mappings":";AA4CA,0DAeC"}
|
|
@@ -8,13 +8,13 @@ import React from 'react';
|
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import isEmpty from 'lodash/fp/isEmpty';
|
|
10
10
|
import map from 'lodash/fp/map';
|
|
11
|
-
import { GetTranslateFromContext } from '../../atom/provider';
|
|
11
|
+
import Provider, { GetTranslateFromContext } from '../../atom/provider';
|
|
12
12
|
import ToolTip from '../../atom/tooltip';
|
|
13
13
|
import InputSwitch from '../../atom/input-switch';
|
|
14
14
|
import style from './style.css';
|
|
15
15
|
|
|
16
|
-
const Settings = props => {
|
|
17
|
-
const translate = GetTranslateFromContext();
|
|
16
|
+
const Settings = (props, legacyContext) => {
|
|
17
|
+
const translate = GetTranslateFromContext(legacyContext);
|
|
18
18
|
|
|
19
19
|
const {
|
|
20
20
|
label,
|
|
@@ -42,6 +42,9 @@ Settings.propTypes = process.env.NODE_ENV !== "production" ? _extends({}, InputS
|
|
|
42
42
|
label: PropTypes.string.isRequired,
|
|
43
43
|
description: PropTypes.string
|
|
44
44
|
}) : {};
|
|
45
|
+
Settings.contextTypes = {
|
|
46
|
+
translate: Provider.childContextTypes.translate
|
|
47
|
+
};
|
|
45
48
|
|
|
46
49
|
const UserPreferences = props => {
|
|
47
50
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","isEmpty","map","GetTranslateFromContext","ToolTip","InputSwitch","style","Settings","props","translate","label","description","moreInfoAriaLabel","settings","infoIconTooltip","propTypes","string","isRequired","UserPreferences","preferences","groupAriaLabel","arrayOf","shape"],"sources":["../../../src/organism/user-preferences/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport map from 'lodash/fp/map';\nimport {GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip from '../../atom/tooltip';\nimport InputSwitch from '../../atom/input-switch';\nimport style from './style.css';\n\nconst Settings = props => {\n const translate = GetTranslateFromContext();\n const {label, description, moreInfoAriaLabel, ...settings} = props;\n return (\n <div className={style.settings}>\n <InputSwitch {...settings} />\n <span className={style.label} tabIndex={0}>\n {label}\n </span>\n {isEmpty(description) ? null : (\n <ToolTip\n TooltipContent={description}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n data-testid=\"user-preferences-tooltip\"\n aria-label={moreInfoAriaLabel}\n iconContainerClassName={style.infoIconTooltip}\n fontSize={12}\n />\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n ...InputSwitch.propTypes,\n label: PropTypes.string.isRequired,\n description: PropTypes.string\n};\n\nconst UserPreferences = props => {\n const {preferences, moreInfoAriaLabel, groupAriaLabel} = props;\n\n return (\n <form>\n <div className={style.preferences} role=\"group\" aria-label={groupAriaLabel} tabIndex={0}>\n {map(\n settings => (\n <Settings {...settings} key={settings.label} moreInfoAriaLabel={moreInfoAriaLabel} />\n ),\n preferences\n )}\n </div>\n </form>\n );\n};\n\nUserPreferences.propTypes = {\n preferences: PropTypes.arrayOf(PropTypes.shape(Settings.propTypes)),\n moreInfoAriaLabel: PropTypes.string,\n groupAriaLabel: PropTypes.string\n};\n\nexport default UserPreferences;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","isEmpty","map","Provider","GetTranslateFromContext","ToolTip","InputSwitch","style","Settings","props","legacyContext","translate","label","description","moreInfoAriaLabel","settings","infoIconTooltip","propTypes","string","isRequired","contextTypes","childContextTypes","UserPreferences","preferences","groupAriaLabel","arrayOf","shape"],"sources":["../../../src/organism/user-preferences/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport map from 'lodash/fp/map';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip from '../../atom/tooltip';\nimport InputSwitch from '../../atom/input-switch';\nimport style from './style.css';\n\nconst Settings = (props, legacyContext) => {\n const translate = GetTranslateFromContext(legacyContext);\n const {label, description, moreInfoAriaLabel, ...settings} = props;\n return (\n <div className={style.settings}>\n <InputSwitch {...settings} />\n <span className={style.label} tabIndex={0}>\n {label}\n </span>\n {isEmpty(description) ? null : (\n <ToolTip\n TooltipContent={description}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n data-testid=\"user-preferences-tooltip\"\n aria-label={moreInfoAriaLabel}\n iconContainerClassName={style.infoIconTooltip}\n fontSize={12}\n />\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n ...InputSwitch.propTypes,\n label: PropTypes.string.isRequired,\n description: PropTypes.string\n};\n\nSettings.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nconst UserPreferences = props => {\n const {preferences, moreInfoAriaLabel, groupAriaLabel} = props;\n\n return (\n <form>\n <div className={style.preferences} role=\"group\" aria-label={groupAriaLabel} tabIndex={0}>\n {map(\n settings => (\n <Settings {...settings} key={settings.label} moreInfoAriaLabel={moreInfoAriaLabel} />\n ),\n preferences\n )}\n </div>\n </form>\n );\n};\n\nUserPreferences.propTypes = {\n preferences: PropTypes.arrayOf(PropTypes.shape(Settings.propTypes)),\n moreInfoAriaLabel: PropTypes.string,\n groupAriaLabel: PropTypes.string\n};\n\nexport default UserPreferences;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,QAAP,IAAkBC,uBAAlB,QAAgD,qBAAhD;AACA,OAAOC,OAAP,MAAoB,oBAApB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,QAAQ,GAAG,CAACC,KAAD,EAAQC,aAAR,KAA0B;EACzC,MAAMC,SAAS,GAAGP,uBAAuB,CAACM,aAAD,CAAzC;;EACA,MAAM;IAACE,KAAD;IAAQC,WAAR;IAAqBC;EAArB,IAAuDL,KAA7D;EAAA,MAAiDM,QAAjD,iCAA6DN,KAA7D;;EACA,oBACE;IAAK,SAAS,EAAEF,KAAK,CAACQ;EAAtB,gBACE,oBAAC,WAAD,EAAiBA,QAAjB,CADF,eAEE;IAAM,SAAS,EAAER,KAAK,CAACK,KAAvB;IAA8B,QAAQ,EAAE;EAAxC,GACGA,KADH,CAFF,EAKGX,OAAO,CAACY,WAAD,CAAP,GAAuB,IAAvB,gBACC,oBAAC,OAAD;IACE,cAAc,EAAEA,WADlB;IAEE,oCAAoC,EAAEF,SAAS,CAC7C,oDAD6C,CAFjD;IAKE,eAAY,0BALd;IAME,cAAYG,iBANd;IAOE,sBAAsB,EAAEP,KAAK,CAACS,eAPhC;IAQE,QAAQ,EAAE;EARZ,EANJ,CADF;AAoBD,CAvBD;;AAyBAR,QAAQ,CAACS,SAAT,wDACKX,WAAW,CAACW,SADjB;EAEEL,KAAK,EAAEZ,SAAS,CAACkB,MAAV,CAAiBC,UAF1B;EAGEN,WAAW,EAAEb,SAAS,CAACkB;AAHzB;AAMAV,QAAQ,CAACY,YAAT,GAAwB;EACtBT,SAAS,EAAER,QAAQ,CAACkB,iBAAT,CAA2BV;AADhB,CAAxB;;AAIA,MAAMW,eAAe,GAAGb,KAAK,IAAI;EAC/B,MAAM;IAACc,WAAD;IAAcT,iBAAd;IAAiCU;EAAjC,IAAmDf,KAAzD;EAEA,oBACE,+CACE;IAAK,SAAS,EAAEF,KAAK,CAACgB,WAAtB;IAAmC,IAAI,EAAC,OAAxC;IAAgD,cAAYC,cAA5D;IAA4E,QAAQ,EAAE;EAAtF,GACGtB,GAAG,CACFa,QAAQ,iBACN,oBAAC,QAAD,eAAcA,QAAd;IAAwB,GAAG,EAAEA,QAAQ,CAACH,KAAtC;IAA6C,iBAAiB,EAAEE;EAAhE,GAFA,EAIFS,WAJE,CADN,CADF,CADF;AAYD,CAfD;;AAiBAD,eAAe,CAACL,SAAhB,2CAA4B;EAC1BM,WAAW,EAAEvB,SAAS,CAACyB,OAAV,CAAkBzB,SAAS,CAAC0B,KAAV,CAAgBlB,QAAQ,CAACS,SAAzB,CAAlB,CADa;EAE1BH,iBAAiB,EAAEd,SAAS,CAACkB,MAFH;EAG1BM,cAAc,EAAExB,SAAS,CAACkB;AAHA,CAA5B;AAMA,eAAeI,eAAf"}
|
package/es/variables/colors.css
CHANGED
|
@@ -51,6 +51,8 @@
|
|
|
51
51
|
@value cm_negative_50: #ffe5e6;
|
|
52
52
|
@value cm_green_50: #e8fcf8;
|
|
53
53
|
@value cm_green_200: #16ac8c;
|
|
54
|
+
@value cm_green_secondary_100: #D6F5E1;
|
|
55
|
+
@value cm_green_secondary_200: #38CC6C;
|
|
54
56
|
@value cm_orange_200: #FF7043;
|
|
55
57
|
@value cm_orange_700: #FF4105;
|
|
56
58
|
@value cm_pink_50: #ffefeb;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { WebContextValues } from '../provider/web-context';
|
|
3
|
+
import { BattleOpponentProps } from './prop-types';
|
|
4
|
+
declare const BattleOpponent: {
|
|
5
|
+
({ isAlreadyEngaged, isRandom, userAvatarSrc, onClick, displayName, tooltipText, "aria-label": ariaLabel }: BattleOpponentProps, legacyContext: WebContextValues): JSX.Element;
|
|
6
|
+
propTypes: {
|
|
7
|
+
isAlreadyEngaged: import("prop-types").Requireable<boolean>;
|
|
8
|
+
isRandom: import("prop-types").Requireable<boolean>;
|
|
9
|
+
userAvatarSrc: import("prop-types").Requireable<string>;
|
|
10
|
+
onClick: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
11
|
+
displayName: import("prop-types").Requireable<string>;
|
|
12
|
+
tooltipText: import("prop-types").Requireable<string>;
|
|
13
|
+
'aria-label': import("prop-types").Requireable<string>;
|
|
14
|
+
};
|
|
15
|
+
contextTypes: {
|
|
16
|
+
translate: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export default BattleOpponent;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/battle-opponent/index.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAkB,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAG5D,QAAA,MAAM,cAAc;gHASf,mBAAmB,iBACP,gBAAgB;;;;;;;;;;;;;CAyGhC,CAAC;AAQF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
|
|
6
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
7
|
+
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
|
|
10
|
+
var _uuid = require("uuid");
|
|
11
|
+
|
|
12
|
+
var _has = _interopRequireDefault(require("lodash/fp/has"));
|
|
13
|
+
|
|
14
|
+
var _novaIcons = require("@coorpacademy/nova-icons");
|
|
15
|
+
|
|
16
|
+
var _tooltip = _interopRequireWildcard(require("../tooltip"));
|
|
17
|
+
|
|
18
|
+
var _provider = _interopRequireWildcard(require("../provider"));
|
|
19
|
+
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("./prop-types"));
|
|
21
|
+
|
|
22
|
+
var _style = _interopRequireDefault(require("./style.css"));
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
const BattleOpponent = ({
|
|
33
|
+
isAlreadyEngaged,
|
|
34
|
+
isRandom,
|
|
35
|
+
userAvatarSrc,
|
|
36
|
+
onClick,
|
|
37
|
+
displayName,
|
|
38
|
+
tooltipText,
|
|
39
|
+
'aria-label': ariaLabel
|
|
40
|
+
}, legacyContext) => {
|
|
41
|
+
const translate = (0, _provider.GetTranslateFromContext)(legacyContext);
|
|
42
|
+
const wrapperClassnames = (0, _react.useMemo)(() => (0, _classnames.default)(_style.default.card, _style.default['opponent-card'], isRandom ? _style.default.random : null), [isRandom]);
|
|
43
|
+
const displayNameClassnames = (0, _react.useMemo)(() => (0, _classnames.default)(_style.default.name, isAlreadyEngaged ? _style.default.alreadyEngaged : null), [isAlreadyEngaged]);
|
|
44
|
+
const [mouseLeaveTimer, setMouseLeaveTimer] = (0, _react.useState)(undefined);
|
|
45
|
+
const [toolTipIsVisible, setToolTipIsVisible] = (0, _react.useState)(false); // to be replaced by useId when React17 is bumped to React18
|
|
46
|
+
|
|
47
|
+
const [battleOpponentInfoId] = (0, _react.useState)(isAlreadyEngaged ? (0, _uuid.v5)('engaged-battle-', _uuid.v5.URL) : undefined);
|
|
48
|
+
const buttonRef = (0, _react.useRef)(null);
|
|
49
|
+
const handleMouseOver = (0, _react.useCallback)(() => {
|
|
50
|
+
mouseLeaveTimer && clearTimeout(mouseLeaveTimer); // @ts-expect-error (error: focus does not exists on type never)
|
|
51
|
+
|
|
52
|
+
/* istanbul ignore next */
|
|
53
|
+
|
|
54
|
+
(0, _has.default)(['current', 'focus'], buttonRef) && buttonRef.current.focus();
|
|
55
|
+
setToolTipIsVisible(true);
|
|
56
|
+
}, [mouseLeaveTimer]);
|
|
57
|
+
const handleMouseLeave = (0, _react.useCallback)(() => {
|
|
58
|
+
setMouseLeaveTimer(setTimeout(() => {
|
|
59
|
+
setToolTipIsVisible(false); // @ts-expect-error (error: blur does not exists on type never)
|
|
60
|
+
|
|
61
|
+
/* istanbul ignore next */
|
|
62
|
+
|
|
63
|
+
(0, _has.default)(['current', 'blur'], buttonRef) && buttonRef.current.blur();
|
|
64
|
+
}, 500));
|
|
65
|
+
}, []);
|
|
66
|
+
const handleKeyPress = (0, _react.useCallback)(event => {
|
|
67
|
+
(0, _tooltip.toggleStateOnKeyPress)(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
|
|
68
|
+
}, [toolTipIsVisible]);
|
|
69
|
+
const TooltipContent = (0, _react.useCallback)(_props => /*#__PURE__*/_react.default.createElement("p", _extends({}, _props, {
|
|
70
|
+
onMouseOver: handleMouseOver,
|
|
71
|
+
onMouseLeave: handleMouseLeave,
|
|
72
|
+
"data-testid": "battle-opponent-tooltip-content"
|
|
73
|
+
}), tooltipText), [handleMouseLeave, handleMouseOver, tooltipText]);
|
|
74
|
+
return /*#__PURE__*/_react.default.createElement("li", _extends({}, !isAlreadyEngaged && {
|
|
75
|
+
onClick
|
|
76
|
+
}, {
|
|
77
|
+
className: wrapperClassnames,
|
|
78
|
+
"data-testid": "battle-opponent-wrapper",
|
|
79
|
+
tabIndex: 0
|
|
80
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
className: _style.default.avatar
|
|
82
|
+
}, isRandom ? null : /*#__PURE__*/_react.default.createElement("img", {
|
|
83
|
+
src: userAvatarSrc,
|
|
84
|
+
alt: ""
|
|
85
|
+
})), /*#__PURE__*/_react.default.createElement("p", {
|
|
86
|
+
className: displayNameClassnames,
|
|
87
|
+
tabIndex: 0
|
|
88
|
+
}, displayName), isAlreadyEngaged ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
|
|
89
|
+
ref: buttonRef,
|
|
90
|
+
tabIndex: 0,
|
|
91
|
+
type: "button",
|
|
92
|
+
className: _style.default.tooltipIconContainer,
|
|
93
|
+
"data-testid": "battle-engaged-opponent-information-button",
|
|
94
|
+
onKeyDown: handleKeyPress,
|
|
95
|
+
onMouseLeave: handleMouseLeave,
|
|
96
|
+
onMouseOver: handleMouseOver,
|
|
97
|
+
"data-for": battleOpponentInfoId,
|
|
98
|
+
"data-tooltip-place": "left",
|
|
99
|
+
"data-tip": isAlreadyEngaged,
|
|
100
|
+
"aria-label": ariaLabel
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyInformationIcon, {
|
|
102
|
+
className: _style.default.informationIcon,
|
|
103
|
+
width: 20,
|
|
104
|
+
height: 20
|
|
105
|
+
})), /*#__PURE__*/_react.default.createElement(_tooltip.default, {
|
|
106
|
+
fontSize: 12,
|
|
107
|
+
anchorId: battleOpponentInfoId,
|
|
108
|
+
toolTipIsVisible: toolTipIsVisible,
|
|
109
|
+
TooltipContent: TooltipContent,
|
|
110
|
+
closeToolTipInformationTextAriaLabel: translate('Press the escape key to close the information text')
|
|
111
|
+
})) : /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowRight, {
|
|
112
|
+
className: _style.default.rightArrow,
|
|
113
|
+
width: 16,
|
|
114
|
+
height: 16
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
BattleOpponent.propTypes = process.env.NODE_ENV !== "production" ? _propTypes.default : {};
|
|
119
|
+
BattleOpponent.contextTypes = {
|
|
120
|
+
translate: _provider.default.childContextTypes.translate
|
|
121
|
+
};
|
|
122
|
+
var _default = BattleOpponent;
|
|
123
|
+
exports.default = _default;
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["BattleOpponent","isAlreadyEngaged","isRandom","userAvatarSrc","onClick","displayName","tooltipText","ariaLabel","legacyContext","translate","GetTranslateFromContext","wrapperClassnames","useMemo","classnames","style","card","random","displayNameClassnames","name","alreadyEngaged","mouseLeaveTimer","setMouseLeaveTimer","useState","undefined","toolTipIsVisible","setToolTipIsVisible","battleOpponentInfoId","uuidV5","URL","buttonRef","useRef","handleMouseOver","useCallback","clearTimeout","has","current","focus","handleMouseLeave","setTimeout","blur","handleKeyPress","event","toggleStateOnKeyPress","TooltipContent","_props","avatar","tooltipIconContainer","informationIcon","rightArrow","propTypes","contextTypes","Provider","childContextTypes"],"sources":["../../../src/atom/battle-opponent/index.tsx"],"sourcesContent":["import React, {useCallback, useMemo, useState, useRef} from 'react';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport has from 'lodash/fp/has';\nimport {\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaCompositionCoorpacademyInformationIcon as InformationIcon\n} from '@coorpacademy/nova-icons';\nimport ToolTip, {toggleStateOnKeyPress} from '../tooltip';\nimport Provider, {GetTranslateFromContext} from '../provider';\nimport {WebContextValues} from '../provider/web-context';\nimport propTypes, {BattleOpponentProps} from './prop-types';\nimport style from './style.css';\n\nconst BattleOpponent = (\n {\n isAlreadyEngaged,\n isRandom,\n userAvatarSrc,\n onClick,\n displayName,\n tooltipText,\n 'aria-label': ariaLabel\n }: BattleOpponentProps,\n legacyContext: WebContextValues\n) => {\n const translate: Required<WebContextValues>['translate'] = GetTranslateFromContext(legacyContext);\n const wrapperClassnames = useMemo(\n () => classnames(style.card, style['opponent-card'], isRandom ? style.random : null),\n [isRandom]\n );\n\n const displayNameClassnames = useMemo(\n () => classnames(style.name, isAlreadyEngaged ? style.alreadyEngaged : null),\n [isAlreadyEngaged]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState<number | undefined>(undefined);\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n // to be replaced by useId when React17 is bumped to React18\n const [battleOpponentInfoId] = useState(\n isAlreadyEngaged ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const buttonRef = useRef(null);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n // @ts-expect-error (error: focus does not exists on type never)\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500) as unknown as number\n );\n }, []);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const TooltipContent = useCallback(\n _props => (\n <p\n {..._props}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-testid=\"battle-opponent-tooltip-content\"\n >\n {tooltipText}\n </p>\n ),\n [handleMouseLeave, handleMouseOver, tooltipText]\n );\n\n return (\n <li\n {...(!isAlreadyEngaged && {onClick})}\n className={wrapperClassnames}\n data-testid=\"battle-opponent-wrapper\"\n tabIndex={0}\n >\n <div className={style.avatar}>{isRandom ? null : <img src={userAvatarSrc} alt=\"\" />}</div>\n <p className={displayNameClassnames} tabIndex={0}>\n {displayName}\n </p>\n {isAlreadyEngaged ? (\n <>\n <button\n ref={buttonRef}\n tabIndex={0}\n type=\"button\"\n className={style.tooltipIconContainer}\n data-testid=\"battle-engaged-opponent-information-button\"\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n data-for={battleOpponentInfoId}\n data-tooltip-place=\"left\"\n data-tip={isAlreadyEngaged}\n aria-label={ariaLabel}\n >\n <InformationIcon className={style.informationIcon} width={20} height={20} />\n </button>\n <ToolTip\n fontSize={12}\n anchorId={battleOpponentInfoId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={TooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </>\n ) : (\n <ArrowRight className={style.rightArrow} width={16} height={16} />\n )}\n </li>\n );\n};\n\nBattleOpponent.propTypes = propTypes;\n\nBattleOpponent.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nexport default BattleOpponent;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,cAAc,GAAG,CACrB;EACEC,gBADF;EAEEC,QAFF;EAGEC,aAHF;EAIEC,OAJF;EAKEC,WALF;EAMEC,WANF;EAOE,cAAcC;AAPhB,CADqB,EAUrBC,aAVqB,KAWlB;EACH,MAAMC,SAAkD,GAAG,IAAAC,iCAAA,EAAwBF,aAAxB,CAA3D;EACA,MAAMG,iBAAiB,GAAG,IAAAC,cAAA,EACxB,MAAM,IAAAC,mBAAA,EAAWC,cAAA,CAAMC,IAAjB,EAAuBD,cAAA,CAAM,eAAN,CAAvB,EAA+CZ,QAAQ,GAAGY,cAAA,CAAME,MAAT,GAAkB,IAAzE,CADkB,EAExB,CAACd,QAAD,CAFwB,CAA1B;EAKA,MAAMe,qBAAqB,GAAG,IAAAL,cAAA,EAC5B,MAAM,IAAAC,mBAAA,EAAWC,cAAA,CAAMI,IAAjB,EAAuBjB,gBAAgB,GAAGa,cAAA,CAAMK,cAAT,GAA0B,IAAjE,CADsB,EAE5B,CAAClB,gBAAD,CAF4B,CAA9B;EAKA,MAAM,CAACmB,eAAD,EAAkBC,kBAAlB,IAAwC,IAAAC,eAAA,EAA6BC,SAA7B,CAA9C;EACA,MAAM,CAACC,gBAAD,EAAmBC,mBAAnB,IAA0C,IAAAH,eAAA,EAAS,KAAT,CAAhD,CAbG,CAeH;;EACA,MAAM,CAACI,oBAAD,IAAyB,IAAAJ,eAAA,EAC7BrB,gBAAgB,GAAG,IAAA0B,QAAA,EAAO,iBAAP,EAA0BA,QAAA,CAAOC,GAAjC,CAAH,GAA2CL,SAD9B,CAA/B;EAIA,MAAMM,SAAS,GAAG,IAAAC,aAAA,EAAO,IAAP,CAAlB;EAEA,MAAMC,eAAe,GAAG,IAAAC,kBAAA,EAAY,MAAM;IACxCZ,eAAe,IAAIa,YAAY,CAACb,eAAD,CAA/B,CADwC,CAExC;;IACA;;IAA2B,IAAAc,YAAA,EAAI,CAAC,SAAD,EAAY,OAAZ,CAAJ,EAA0BL,SAA1B,KAAwCA,SAAS,CAACM,OAAV,CAAkBC,KAAlB,EAAxC;IAC3BX,mBAAmB,CAAC,IAAD,CAAnB;EACD,CALuB,EAKrB,CAACL,eAAD,CALqB,CAAxB;EAOA,MAAMiB,gBAAgB,GAAG,IAAAL,kBAAA,EAAY,MAAM;IACzCX,kBAAkB,CAChBiB,UAAU,CAAC,MAAM;MACfb,mBAAmB,CAAC,KAAD,CAAnB,CADe,CAEf;;MACA;;MAA2B,IAAAS,YAAA,EAAI,CAAC,SAAD,EAAY,MAAZ,CAAJ,EAAyBL,SAAzB,KAAuCA,SAAS,CAACM,OAAV,CAAkBI,IAAlB,EAAvC;IAC5B,CAJS,EAIP,GAJO,CADM,CAAlB;EAOD,CARwB,EAQtB,EARsB,CAAzB;EAUA,MAAMC,cAAc,GAAG,IAAAR,kBAAA,EACrBS,KAAK,IAAI;IACP,IAAAC,8BAAA,EAAsBlB,gBAAtB,EAAwCC,mBAAxC,EAA6DI,SAA7D,EAAwEY,KAAxE;EACD,CAHoB,EAIrB,CAACjB,gBAAD,CAJqB,CAAvB;EAOA,MAAMmB,cAAc,GAAG,IAAAX,kBAAA,EACrBY,MAAM,iBACJ,+CACMA,MADN;IAEE,WAAW,EAAEb,eAFf;IAGE,YAAY,EAAEM,gBAHhB;IAIE,eAAY;EAJd,IAMG/B,WANH,CAFmB,EAWrB,CAAC+B,gBAAD,EAAmBN,eAAnB,EAAoCzB,WAApC,CAXqB,CAAvB;EAcA,oBACE,gDACO,CAACL,gBAAD,IAAqB;IAACG;EAAD,CAD5B;IAEE,SAAS,EAAEO,iBAFb;IAGE,eAAY,yBAHd;IAIE,QAAQ,EAAE;EAJZ,iBAME;IAAK,SAAS,EAAEG,cAAA,CAAM+B;EAAtB,GAA+B3C,QAAQ,GAAG,IAAH,gBAAU;IAAK,GAAG,EAAEC,aAAV;IAAyB,GAAG,EAAC;EAA7B,EAAjD,CANF,eAOE;IAAG,SAAS,EAAEc,qBAAd;IAAqC,QAAQ,EAAE;EAA/C,GACGZ,WADH,CAPF,EAUGJ,gBAAgB,gBACf,yEACE;IACE,GAAG,EAAE4B,SADP;IAEE,QAAQ,EAAE,CAFZ;IAGE,IAAI,EAAC,QAHP;IAIE,SAAS,EAAEf,cAAA,CAAMgC,oBAJnB;IAKE,eAAY,4CALd;IAME,SAAS,EAAEN,cANb;IAOE,YAAY,EAAEH,gBAPhB;IAQE,WAAW,EAAEN,eARf;IASE,YAAUL,oBATZ;IAUE,sBAAmB,MAVrB;IAWE,YAAUzB,gBAXZ;IAYE,cAAYM;EAZd,gBAcE,6BAAC,qDAAD;IAAiB,SAAS,EAAEO,cAAA,CAAMiC,eAAlC;IAAmD,KAAK,EAAE,EAA1D;IAA8D,MAAM,EAAE;EAAtE,EAdF,CADF,eAiBE,6BAAC,gBAAD;IACE,QAAQ,EAAE,EADZ;IAEE,QAAQ,EAAErB,oBAFZ;IAGE,gBAAgB,EAAEF,gBAHpB;IAIE,cAAc,EAAEmB,cAJlB;IAKE,oCAAoC,EAAElC,SAAS,CAC7C,oDAD6C;EALjD,EAjBF,CADe,gBA6Bf,6BAAC,8CAAD;IAAY,SAAS,EAAEK,cAAA,CAAMkC,UAA7B;IAAyC,KAAK,EAAE,EAAhD;IAAoD,MAAM,EAAE;EAA5D,EAvCJ,CADF;AA4CD,CAnHD;;AAqHAhD,cAAc,CAACiD,SAAf,2CAA2BA,kBAA3B;AAEAjD,cAAc,CAACkD,YAAf,GAA8B;EAC5BzC,SAAS,EAAE0C,iBAAA,CAASC,iBAAT,CAA2B3C;AADV,CAA9B;eAIeT,c"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
declare const propTypes: {
|
|
3
|
+
isAlreadyEngaged: PropTypes.Requireable<boolean>;
|
|
4
|
+
isRandom: PropTypes.Requireable<boolean>;
|
|
5
|
+
userAvatarSrc: PropTypes.Requireable<string>;
|
|
6
|
+
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
7
|
+
displayName: PropTypes.Requireable<string>;
|
|
8
|
+
tooltipText: PropTypes.Requireable<string>;
|
|
9
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
10
|
+
};
|
|
11
|
+
export declare type BattleOpponentProps = {
|
|
12
|
+
isAlreadyEngaged?: boolean;
|
|
13
|
+
isRandom?: boolean;
|
|
14
|
+
userAvatarSrc?: string;
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
displayName: string;
|
|
17
|
+
tooltipText?: string;
|
|
18
|
+
'aria-label'?: string;
|
|
19
|
+
};
|
|
20
|
+
export default propTypes;
|
|
21
|
+
//# sourceMappingURL=prop-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../src/atom/battle-opponent/prop-types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,QAAA,MAAM,SAAS;;;;;;;;CAQd,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|