@coorpacademy/components 11.7.3-alpha.3 → 11.7.3-alpha.5

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.
@@ -133,14 +133,15 @@ const Select = (props, legacyContext) => {
133
133
  ariaLabel: ariaLabel,
134
134
  arrowClass: shouldUseSkinFontColor ? style.selectedArrow : style.arrow,
135
135
  arrowColor: isThemeOneOfQuestionTemplateOrPlayer ? arrowColor : black
136
- }), /*#__PURE__*/React.createElement("select", _extends({}, ariaLabelledBy && !ariaLabel ? {
136
+ }), /*#__PURE__*/React.createElement("select", _extends({}, ariaLabelledBy ? {
137
137
  'aria-labelledby': ariaLabelledBy
138
138
  } : {}, ariaLabel && !ariaLabelledBy ? {
139
139
  'aria-label': ariaLabel
140
+ } : {}, ariaLabel ? {
141
+ title: ariaLabel
140
142
  } : {}, {
141
143
  "data-name": "native-select",
142
144
  className: style.selectBox,
143
- title: selectedLabel,
144
145
  name: name,
145
146
  onChange: handleChange,
146
147
  value: selected,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useMemo","useState","PropTypes","classnames","filter","find","get","getOr","includes","keys","map","size","NovaCompositionNavigationArrowDown","ArrowDown","NovaCompositionNavigationArrowTop","ArrowUp","Provider","GetSkinFromContext","getClassState","style","themeStyle","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","ArrowView","shouldRender","isArrowUp","ariaLabel","arrowClass","arrowColor","props","color","className","Select","legacyContext","name","options","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabelledBy","skin","setIsArrowUp","handleSelectOnFocus","handleSelectOnBlur","optionList","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","isThemeOneOfQuestionTemplateOrPlayer","shouldUseSkinFontColor","undefined","behaviorClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectedArrow","arrow","selectBox","SelectOptionPropTypes","string","isRequired","oneOfType","number","bool","contextTypes","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationArrowTop as ArrowUp\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst ArrowView = ({shouldRender, isArrowUp, ariaLabel, arrowClass, arrowColor}) => {\n const props = useMemo(\n () => ({\n ...(arrowColor &\n {\n color: arrowColor\n }),\n className: arrowClass\n }),\n [ariaLabel, arrowClass, arrowColor]\n );\n if (shouldRender) {\n return isArrowUp ? (\n <ArrowUp {...props} data-testid=\"select-arrow-up-icon\" />\n ) : (\n <ArrowDown {...props} data-testid=\"select-arrow-down-icon\" />\n );\n } else return null;\n};\n\nconst Select = (props, legacyContext) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n } = props;\n\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\n\n const [isArrowUp, setIsArrowUp] = useState(false);\n\n const handleSelectOnFocus = useCallback(() => setIsArrowUp(true), []);\n const handleSelectOnBlur = useCallback(() => setIsArrowUp(false), []);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n setIsArrowUp(false);\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n setIsArrowUp(false);\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const isThemeOneOfQuestionTemplateOrPlayer = useMemo(\n () => includes(theme, ['question', 'template', 'player']),\n [theme]\n );\n const shouldUseSkinFontColor = useMemo(\n () => !isSelectedInValidOption && selected && isThemeOneOfQuestionTemplateOrPlayer,\n [isSelectedInValidOption, selected, isThemeOneOfQuestionTemplateOrPlayer]\n );\n const arrowColor = selected ? color : undefined;\n\n const behaviorClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviorClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviorClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n <ArrowView\n shouldRender={!multiple}\n isArrowUp={isArrowUp}\n ariaLabel={ariaLabel}\n arrowClass={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n arrowColor={isThemeOneOfQuestionTemplateOrPlayer ? arrowColor : black}\n />\n <select\n {...(ariaLabelledBy && !ariaLabel ? {'aria-labelledby': ariaLabelledBy} : {})}\n {...(ariaLabel && !ariaLabelledBy ? {'aria-label': ariaLabel} : {})}\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n onClick={handleSelectOnFocus}\n onBlur={handleSelectOnBlur}\n // onBlur does not handle completely an out of bounds click\n // ex: select is Opened and a click is done outside, cancelling the select\n // that doesn't count as a Blur, so an onMouseLeave is needed\n onMouseLeave={handleSelectOnBlur}\n data-testid=\"native-select\"\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string\n};\n\nexport default Select;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useMemo","useState","PropTypes","classnames","filter","find","get","getOr","includes","keys","map","size","NovaCompositionNavigationArrowDown","ArrowDown","NovaCompositionNavigationArrowTop","ArrowUp","Provider","GetSkinFromContext","getClassState","style","themeStyle","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","ArrowView","shouldRender","isArrowUp","ariaLabel","arrowClass","arrowColor","props","color","className","Select","legacyContext","name","options","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabelledBy","skin","setIsArrowUp","handleSelectOnFocus","handleSelectOnBlur","optionList","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","isThemeOneOfQuestionTemplateOrPlayer","shouldUseSkinFontColor","undefined","behaviorClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectedArrow","arrow","selectBox","SelectOptionPropTypes","string","isRequired","oneOfType","number","bool","contextTypes","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationArrowTop as ArrowUp\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst ArrowView = ({shouldRender, isArrowUp, ariaLabel, arrowClass, arrowColor}) => {\n const props = useMemo(\n () => ({\n ...(arrowColor &\n {\n color: arrowColor\n }),\n className: arrowClass\n }),\n [ariaLabel, arrowClass, arrowColor]\n );\n if (shouldRender) {\n return isArrowUp ? (\n <ArrowUp {...props} data-testid=\"select-arrow-up-icon\" />\n ) : (\n <ArrowDown {...props} data-testid=\"select-arrow-down-icon\" />\n );\n } else return null;\n};\n\nconst Select = (props, legacyContext) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n } = props;\n\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\n\n const [isArrowUp, setIsArrowUp] = useState(false);\n\n const handleSelectOnFocus = useCallback(() => setIsArrowUp(true), []);\n const handleSelectOnBlur = useCallback(() => setIsArrowUp(false), []);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n setIsArrowUp(false);\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n setIsArrowUp(false);\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const isThemeOneOfQuestionTemplateOrPlayer = useMemo(\n () => includes(theme, ['question', 'template', 'player']),\n [theme]\n );\n const shouldUseSkinFontColor = useMemo(\n () => !isSelectedInValidOption && selected && isThemeOneOfQuestionTemplateOrPlayer,\n [isSelectedInValidOption, selected, isThemeOneOfQuestionTemplateOrPlayer]\n );\n const arrowColor = selected ? color : undefined;\n\n const behaviorClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviorClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviorClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n <ArrowView\n shouldRender={!multiple}\n isArrowUp={isArrowUp}\n ariaLabel={ariaLabel}\n arrowClass={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n arrowColor={isThemeOneOfQuestionTemplateOrPlayer ? arrowColor : black}\n />\n <select\n {...(ariaLabelledBy ? {'aria-labelledby': ariaLabelledBy} : {})}\n {...(ariaLabel && !ariaLabelledBy ? {'aria-label': ariaLabel} : {})}\n {...(ariaLabel ? {title: ariaLabel} : {})}\n data-name=\"native-select\"\n className={style.selectBox}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n onClick={handleSelectOnFocus}\n onBlur={handleSelectOnBlur}\n // onBlur does not handle completely an out of bounds click\n // ex: select is Opened and a click is done outside, cancelling the select\n // that doesn't count as a Blur, so an onMouseLeave is needed\n onMouseLeave={handleSelectOnBlur}\n data-testid=\"native-select\"\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string\n};\n\nexport default Select;\n"],"mappings":"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"}
@@ -24,15 +24,15 @@ declare namespace Progression {
24
24
  }>;
25
25
  }>>;
26
26
  }
27
- namespace propTypes {
28
- const mainTitle: PropTypes.Validator<string>;
29
- const mainSubtitle: PropTypes.Validator<string>;
30
- const adaptiveAriaLabel: PropTypes.Requireable<string>;
31
- const total: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
27
+ const propTypes: {
28
+ mainTitle: PropTypes.Validator<string>;
29
+ mainSubtitle: PropTypes.Validator<string>;
30
+ adaptiveAriaLabel: PropTypes.Requireable<string>;
31
+ total: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
32
32
  label: PropTypes.Validator<string>;
33
33
  stars: PropTypes.Validator<number>;
34
34
  }>>>;
35
- const engines: PropTypes.Requireable<(PropTypes.InferProps<{
35
+ engines: PropTypes.Requireable<(PropTypes.InferProps<{
36
36
  type: PropTypes.Validator<string>;
37
37
  stars: PropTypes.Validator<number>;
38
38
  title: PropTypes.Validator<string>;
@@ -46,8 +46,8 @@ declare namespace Progression {
46
46
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
47
47
  }>>;
48
48
  }> | null | undefined)[]>;
49
- const loading: PropTypes.Validator<boolean>;
50
- const progressions: PropTypes.Requireable<(PropTypes.InferProps<{
49
+ loading: PropTypes.Validator<boolean>;
50
+ progressions: PropTypes.Requireable<(PropTypes.InferProps<{
51
51
  ref: PropTypes.Validator<string>;
52
52
  completion: PropTypes.Validator<number>;
53
53
  stars: PropTypes.Validator<number>;
@@ -62,7 +62,7 @@ declare namespace Progression {
62
62
  adaptive: PropTypes.Validator<boolean>;
63
63
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
64
64
  }> | null | undefined)[]>;
65
- const themeFilter: PropTypes.Requireable<PropTypes.InferProps<{
65
+ themeFilter: PropTypes.Requireable<PropTypes.InferProps<{
66
66
  options: PropTypes.Validator<(PropTypes.InferProps<{
67
67
  name: PropTypes.Validator<string>;
68
68
  value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
@@ -71,14 +71,15 @@ declare namespace Progression {
71
71
  }> | null | undefined)[]>;
72
72
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
73
73
  }>>;
74
- const recommendation: PropTypes.Requireable<PropTypes.InferProps<{
74
+ recommendation: PropTypes.Requireable<PropTypes.InferProps<{
75
75
  cta: PropTypes.Validator<string>;
76
76
  title: PropTypes.Validator<string>;
77
77
  subtitle: PropTypes.Validator<string>;
78
78
  courseTitle: PropTypes.Validator<string>;
79
79
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
80
80
  }>>;
81
- }
81
+ 'aria-label': PropTypes.Requireable<string>;
82
+ };
82
83
  }
83
84
  import PropTypes from "prop-types";
84
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/activity/index.js"],"names":[],"mappings":";AAeA,0EAuGC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/activity/index.js"],"names":[],"mappings":";AAeA,0EAyGC"}
@@ -25,7 +25,8 @@ const Progression = (props, legacyContext) => {
25
25
  total,
26
26
  engines = [],
27
27
  themeFilter = {},
28
- loading
28
+ loading,
29
+ 'aria-label': ariaLabel
29
30
  } = props;
30
31
  const skin = GetSkinFromContext(legacyContext);
31
32
  const {
@@ -59,7 +60,8 @@ const Progression = (props, legacyContext) => {
59
60
  className: style.select,
60
61
  theme: "thematiques",
61
62
  options: themeFilter.options,
62
- onChange: handleSelectTheme
63
+ onChange: handleSelectTheme,
64
+ "aria-label": ariaLabel
63
65
  }) : null;
64
66
  const recommendationSection = !isEmpty(recommendation) ? /*#__PURE__*/React.createElement("div", {
65
67
  className: style.recommendationWrapper
@@ -127,7 +129,8 @@ Progression.propTypes = process.env.NODE_ENV !== "production" ? {
127
129
  subtitle: PropTypes.string.isRequired,
128
130
  courseTitle: PropTypes.string.isRequired,
129
131
  onClick: PropTypes.func
130
- })
132
+ }),
133
+ 'aria-label': PropTypes.string
131
134
  } : {};
132
135
  export default Progression;
133
136
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","get","isEmpty","omit","PropTypes","classnames","Provider","GetSkinFromContext","Button","Select","Loader","ProgressionItem","EngineStars","StarsSummary","style","Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","skin","onChange","themeFilterOnChange","handleClick","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","loader","allProgressions","map","progression","ref","coreProgression","core","themeSelect","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","childContextTypes","propTypes","string","isRequired","shape","label","stars","number","arrayOf","bool","func"],"sources":["../../../src/template/activity/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport get from 'lodash/fp/get';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport omit from 'lodash/fp/omit';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport Button from '../../atom/button';\nimport Select from '../../atom/select';\nimport Loader from '../../atom/loader';\nimport ProgressionItem from './progression-item';\nimport EngineStars from './engine-stars';\nimport StarsSummary from './stars-summary';\nimport style from './style.css';\n\nconst Progression = (props, legacyContext) => {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading\n } = props;\n const skin = GetSkinFromContext(legacyContext);\n const {onChange: themeFilterOnChange} = themeFilter;\n\n const handleClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = recommendation;\n onClick && onClick(e);\n },\n [recommendation]\n );\n\n const handleSelectTheme = useCallback(\n e => {\n themeFilterOnChange && themeFilterOnChange(e);\n },\n [themeFilterOnChange]\n );\n\n const primary = get('common.primary', skin);\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n const allProgressions = progressions.map(progression => (\n <ProgressionItem\n {...omit(['ref'], progression)}\n key={progression.ref}\n adaptiveAriaLabel={adaptiveAriaLabel}\n />\n ));\n\n const coreProgression = (\n <div data-name=\"activityCore\" className={style.core}>\n {allProgressions}\n </div>\n );\n const themeSelect = !isEmpty(themeFilter.options) ? (\n <Select\n borderClassName={style.selectBorder}\n className={style.select}\n theme=\"thematiques\"\n options={themeFilter.options}\n onChange={handleSelectTheme}\n />\n ) : null;\n const recommendationSection = !isEmpty(recommendation) ? (\n <div className={style.recommendationWrapper}>\n <p className={style.recommendationSection}>{recommendation.title} </p>\n <p className={style.recommendationSection}>\n <span>{recommendation.subtitle} </span>\n <span\n className={classnames(style.course, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: recommendation.courseTitle}}\n />\n </p>\n <Button\n type=\"link\"\n onClick={handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.default}>\n <div data-name=\"activity-header\">\n <div className={style.mainTitle}>\n <span>{mainTitle}</span> {mainSubtitle}\n </div>\n <div className={style.headerProgression}>\n <div className={style.wrapperCta}>\n {themeSelect}\n {recommendationSection}\n </div>\n <StarsSummary engines={engines} total={total} />\n </div>\n </div>\n <div className={style.wrapperProgression} data-name=\"activityList\">\n {coreProgression}\n {loader}\n </div>\n </div>\n );\n};\n\nProgression.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nProgression.propTypes = {\n mainTitle: PropTypes.string.isRequired,\n mainSubtitle: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n loading: PropTypes.bool.isRequired,\n progressions: PropTypes.arrayOf(\n PropTypes.shape({...ProgressionItem.propTypes, ref: PropTypes.string.isRequired})\n ),\n themeFilter: PropTypes.shape({\n options: Select.propTypes.options.isRequired,\n onChange: Select.propTypes.onChange\n }),\n recommendation: PropTypes.shape({\n cta: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n courseTitle: PropTypes.string.isRequired,\n onClick: PropTypes.func\n })\n};\n\nexport default Progression;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","get","isEmpty","omit","PropTypes","classnames","Provider","GetSkinFromContext","Button","Select","Loader","ProgressionItem","EngineStars","StarsSummary","style","Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","ariaLabel","skin","onChange","themeFilterOnChange","handleClick","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","loader","allProgressions","map","progression","ref","coreProgression","core","themeSelect","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","childContextTypes","propTypes","string","isRequired","shape","label","stars","number","arrayOf","bool","func"],"sources":["../../../src/template/activity/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport get from 'lodash/fp/get';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport omit from 'lodash/fp/omit';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport Button from '../../atom/button';\nimport Select from '../../atom/select';\nimport Loader from '../../atom/loader';\nimport ProgressionItem from './progression-item';\nimport EngineStars from './engine-stars';\nimport StarsSummary from './stars-summary';\nimport style from './style.css';\n\nconst Progression = (props, legacyContext) => {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading,\n 'aria-label': ariaLabel\n } = props;\n const skin = GetSkinFromContext(legacyContext);\n const {onChange: themeFilterOnChange} = themeFilter;\n\n const handleClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = recommendation;\n onClick && onClick(e);\n },\n [recommendation]\n );\n\n const handleSelectTheme = useCallback(\n e => {\n themeFilterOnChange && themeFilterOnChange(e);\n },\n [themeFilterOnChange]\n );\n\n const primary = get('common.primary', skin);\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n const allProgressions = progressions.map(progression => (\n <ProgressionItem\n {...omit(['ref'], progression)}\n key={progression.ref}\n adaptiveAriaLabel={adaptiveAriaLabel}\n />\n ));\n\n const coreProgression = (\n <div data-name=\"activityCore\" className={style.core}>\n {allProgressions}\n </div>\n );\n const themeSelect = !isEmpty(themeFilter.options) ? (\n <Select\n borderClassName={style.selectBorder}\n className={style.select}\n theme=\"thematiques\"\n options={themeFilter.options}\n onChange={handleSelectTheme}\n aria-label={ariaLabel}\n />\n ) : null;\n const recommendationSection = !isEmpty(recommendation) ? (\n <div className={style.recommendationWrapper}>\n <p className={style.recommendationSection}>{recommendation.title} </p>\n <p className={style.recommendationSection}>\n <span>{recommendation.subtitle} </span>\n <span\n className={classnames(style.course, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: recommendation.courseTitle}}\n />\n </p>\n <Button\n type=\"link\"\n onClick={handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.default}>\n <div data-name=\"activity-header\">\n <div className={style.mainTitle}>\n <span>{mainTitle}</span> {mainSubtitle}\n </div>\n <div className={style.headerProgression}>\n <div className={style.wrapperCta}>\n {themeSelect}\n {recommendationSection}\n </div>\n <StarsSummary engines={engines} total={total} />\n </div>\n </div>\n <div className={style.wrapperProgression} data-name=\"activityList\">\n {coreProgression}\n {loader}\n </div>\n </div>\n );\n};\n\nProgression.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nProgression.propTypes = {\n mainTitle: PropTypes.string.isRequired,\n mainSubtitle: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n loading: PropTypes.bool.isRequired,\n progressions: PropTypes.arrayOf(\n PropTypes.shape({...ProgressionItem.propTypes, ref: PropTypes.string.isRequired})\n ),\n themeFilter: PropTypes.shape({\n options: Select.propTypes.options.isRequired,\n onChange: Select.propTypes.onChange\n }),\n recommendation: PropTypes.shape({\n cta: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n courseTitle: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n 'aria-label': PropTypes.string\n};\n\nexport default Progression;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,QAAP,IAAkBC,kBAAlB,QAA2C,qBAA3C;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,WAAW,GAAG,CAACC,KAAD,EAAQC,aAAR,KAA0B;EAC5C,MAAM;IACJC,SADI;IAEJC,YAFI;IAGJC,cAAc,GAAG,EAHb;IAIJC,YAAY,GAAG,EAJX;IAKJC,iBALI;IAMJC,KANI;IAOJC,OAAO,GAAG,EAPN;IAQJC,WAAW,GAAG,EARV;IASJC,OATI;IAUJ,cAAcC;EAVV,IAWFX,KAXJ;EAYA,MAAMY,IAAI,GAAGrB,kBAAkB,CAACU,aAAD,CAA/B;EACA,MAAM;IAACY,QAAQ,EAAEC;EAAX,IAAkCL,WAAxC;EAEA,MAAMM,WAAW,GAAG/B,WAAW,CAC7BgC,CAAC,IAAI;IACHA,CAAC,CAACC,eAAF;IACAD,CAAC,CAACE,cAAF;IACA,MAAM;MAACC;IAAD,IAAYf,cAAlB;IACAe,OAAO,IAAIA,OAAO,CAACH,CAAD,CAAlB;EACD,CAN4B,EAO7B,CAACZ,cAAD,CAP6B,CAA/B;EAUA,MAAMgB,iBAAiB,GAAGpC,WAAW,CACnCgC,CAAC,IAAI;IACHF,mBAAmB,IAAIA,mBAAmB,CAACE,CAAD,CAA1C;EACD,CAHkC,EAInC,CAACF,mBAAD,CAJmC,CAArC;EAOA,MAAMO,OAAO,GAAGpC,GAAG,CAAC,gBAAD,EAAmB2B,IAAnB,CAAnB;EACA,MAAMU,MAAM,GAAGZ,OAAO,gBACpB;IAAK,SAAS,EAAEZ,KAAK,CAACwB;EAAtB,gBACE,oBAAC,MAAD,OADF,CADoB,GAIlB,IAJJ;EAKA,MAAMC,eAAe,GAAGlB,YAAY,CAACmB,GAAb,CAAiBC,WAAW,iBAClD,oBAAC,eAAD,eACMtC,IAAI,CAAC,CAAC,KAAD,CAAD,EAAUsC,WAAV,CADV;IAEE,GAAG,EAAEA,WAAW,CAACC,GAFnB;IAGE,iBAAiB,EAAEpB;EAHrB,GADsB,CAAxB;EAQA,MAAMqB,eAAe,gBACnB;IAAK,aAAU,cAAf;IAA8B,SAAS,EAAE7B,KAAK,CAAC8B;EAA/C,GACGL,eADH,CADF;EAKA,MAAMM,WAAW,GAAG,CAAC3C,OAAO,CAACuB,WAAW,CAACqB,OAAb,CAAR,gBAClB,oBAAC,MAAD;IACE,eAAe,EAAEhC,KAAK,CAACiC,YADzB;IAEE,SAAS,EAAEjC,KAAK,CAACkC,MAFnB;IAGE,KAAK,EAAC,aAHR;IAIE,OAAO,EAAEvB,WAAW,CAACqB,OAJvB;IAKE,QAAQ,EAAEV,iBALZ;IAME,cAAYT;EANd,EADkB,GAShB,IATJ;EAUA,MAAMsB,qBAAqB,GAAG,CAAC/C,OAAO,CAACkB,cAAD,CAAR,gBAC5B;IAAK,SAAS,EAAEN,KAAK,CAACoC;EAAtB,gBACE;IAAG,SAAS,EAAEpC,KAAK,CAACmC;EAApB,GAA4C7B,cAAc,CAAC+B,KAA3D,MADF,eAEE;IAAG,SAAS,EAAErC,KAAK,CAACmC;EAApB,gBACE,kCAAO7B,cAAc,CAACgC,QAAtB,MADF,eAEE;IACE,SAAS,EAAE/C,UAAU,CAACS,KAAK,CAACuC,MAAP,EAAevC,KAAK,CAACwC,SAArB,CADvB,CAEE;IAFF;IAGE,uBAAuB,EAAE;MAACC,MAAM,EAAEnC,cAAc,CAACoC;IAAxB;EAH3B,EAFF,CAFF,eAUE,oBAAC,MAAD;IACE,IAAI,EAAC,MADP;IAEE,OAAO,EAAEzB,WAFX;IAGE,WAAW,EAAEX,cAAc,CAACqC,GAH9B;IAIE,KAAK,EAAE;MACLC,eAAe,EAAErB;IADZ,CAJT;IAOE,SAAS,EAAEvB,KAAK,CAAC2C;EAPnB,EAVF,CAD4B,GAqB1B,IArBJ;EAuBA,oBACE;IAAK,SAAS,EAAE3C,KAAK,CAAC6C;EAAtB,gBACE;IAAK,aAAU;EAAf,gBACE;IAAK,SAAS,EAAE7C,KAAK,CAACI;EAAtB,gBACE,kCAAOA,SAAP,CADF,OAC4BC,YAD5B,CADF,eAIE;IAAK,SAAS,EAAEL,KAAK,CAAC8C;EAAtB,gBACE;IAAK,SAAS,EAAE9C,KAAK,CAAC+C;EAAtB,GACGhB,WADH,EAEGI,qBAFH,CADF,eAKE,oBAAC,YAAD;IAAc,OAAO,EAAEzB,OAAvB;IAAgC,KAAK,EAAED;EAAvC,EALF,CAJF,CADF,eAaE;IAAK,SAAS,EAAET,KAAK,CAACgD,kBAAtB;IAA0C,aAAU;EAApD,GACGnB,eADH,EAEGL,MAFH,CAbF,CADF;AAoBD,CAzGD;;AA2GAvB,WAAW,CAACgD,YAAZ,GAA2B;EACzBnC,IAAI,EAAEtB,QAAQ,CAAC0D,iBAAT,CAA2BpC;AADR,CAA3B;AAIAb,WAAW,CAACkD,SAAZ,2CAAwB;EACtB/C,SAAS,EAAEd,SAAS,CAAC8D,MAAV,CAAiBC,UADN;EAEtBhD,YAAY,EAAEf,SAAS,CAAC8D,MAAV,CAAiBC,UAFT;EAGtB7C,iBAAiB,EAAElB,SAAS,CAAC8D,MAHP;EAItB3C,KAAK,EAAEnB,SAAS,CAACgE,KAAV,CAAgB;IACrBC,KAAK,EAAEjE,SAAS,CAAC8D,MAAV,CAAiBC,UADH;IAErBG,KAAK,EAAElE,SAAS,CAACmE,MAAV,CAAiBJ;EAFH,CAAhB,EAGJA,UAPmB;EAQtB3C,OAAO,EAAEpB,SAAS,CAACoE,OAAV,CAAkBpE,SAAS,CAACgE,KAAV,CAAgBxD,WAAW,CAACqD,SAA5B,CAAlB,CARa;EAStBvC,OAAO,EAAEtB,SAAS,CAACqE,IAAV,CAAeN,UATF;EAUtB9C,YAAY,EAAEjB,SAAS,CAACoE,OAAV,CACZpE,SAAS,CAACgE,KAAV,cAAoBzD,eAAe,CAACsD,SAApC;IAA+CvB,GAAG,EAAEtC,SAAS,CAAC8D,MAAV,CAAiBC;EAArE,GADY,CAVQ;EAatB1C,WAAW,EAAErB,SAAS,CAACgE,KAAV,CAAgB;IAC3BtB,OAAO,EAAErC,MAAM,CAACwD,SAAP,CAAiBnB,OAAjB,CAAyBqB,UADP;IAE3BtC,QAAQ,EAAEpB,MAAM,CAACwD,SAAP,CAAiBpC;EAFA,CAAhB,CAbS;EAiBtBT,cAAc,EAAEhB,SAAS,CAACgE,KAAV,CAAgB;IAC9BX,GAAG,EAAErD,SAAS,CAAC8D,MAAV,CAAiBC,UADQ;IAE9BhB,KAAK,EAAE/C,SAAS,CAAC8D,MAAV,CAAiBC,UAFM;IAG9Bf,QAAQ,EAAEhD,SAAS,CAAC8D,MAAV,CAAiBC,UAHG;IAI9BX,WAAW,EAAEpD,SAAS,CAAC8D,MAAV,CAAiBC,UAJA;IAK9BhC,OAAO,EAAE/B,SAAS,CAACsE;EALW,CAAhB,CAjBM;EAwBtB,cAActE,SAAS,CAAC8D;AAxBF,CAAxB;AA2BA,eAAenD,WAAf"}
@@ -159,14 +159,15 @@ const Select = (props, legacyContext) => {
159
159
  ariaLabel: ariaLabel,
160
160
  arrowClass: shouldUseSkinFontColor ? _style.default.selectedArrow : _style.default.arrow,
161
161
  arrowColor: isThemeOneOfQuestionTemplateOrPlayer ? arrowColor : black
162
- }), /*#__PURE__*/_react.default.createElement("select", _extends({}, ariaLabelledBy && !ariaLabel ? {
162
+ }), /*#__PURE__*/_react.default.createElement("select", _extends({}, ariaLabelledBy ? {
163
163
  'aria-labelledby': ariaLabelledBy
164
164
  } : {}, ariaLabel && !ariaLabelledBy ? {
165
165
  'aria-label': ariaLabel
166
+ } : {}, ariaLabel ? {
167
+ title: ariaLabel
166
168
  } : {}, {
167
169
  "data-name": "native-select",
168
170
  className: _style.default.selectBox,
169
- title: selectedLabel,
170
171
  name: name,
171
172
  onChange: handleChange,
172
173
  value: selected,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","ArrowView","shouldRender","isArrowUp","ariaLabel","arrowClass","arrowColor","props","useMemo","color","className","Select","legacyContext","name","options","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabelledBy","skin","GetSkinFromContext","setIsArrowUp","useState","handleSelectOnFocus","useCallback","handleSelectOnBlur","optionList","map","option","index","value","selectOption","titleView","selected","get","find","selectedLabel","isSelectedInValidOption","getOr","validOption","handleChange","e","target","selectedOptions","black","isThemeOneOfQuestionTemplateOrPlayer","includes","shouldUseSkinFontColor","undefined","behaviorClassName","getClassState","default","composedClassName","classnames","unselected","labelSize","size","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectedArrow","arrow","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","keys","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationArrowTop as ArrowUp\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst ArrowView = ({shouldRender, isArrowUp, ariaLabel, arrowClass, arrowColor}) => {\n const props = useMemo(\n () => ({\n ...(arrowColor &\n {\n color: arrowColor\n }),\n className: arrowClass\n }),\n [ariaLabel, arrowClass, arrowColor]\n );\n if (shouldRender) {\n return isArrowUp ? (\n <ArrowUp {...props} data-testid=\"select-arrow-up-icon\" />\n ) : (\n <ArrowDown {...props} data-testid=\"select-arrow-down-icon\" />\n );\n } else return null;\n};\n\nconst Select = (props, legacyContext) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n } = props;\n\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\n\n const [isArrowUp, setIsArrowUp] = useState(false);\n\n const handleSelectOnFocus = useCallback(() => setIsArrowUp(true), []);\n const handleSelectOnBlur = useCallback(() => setIsArrowUp(false), []);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n setIsArrowUp(false);\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n setIsArrowUp(false);\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const isThemeOneOfQuestionTemplateOrPlayer = useMemo(\n () => includes(theme, ['question', 'template', 'player']),\n [theme]\n );\n const shouldUseSkinFontColor = useMemo(\n () => !isSelectedInValidOption && selected && isThemeOneOfQuestionTemplateOrPlayer,\n [isSelectedInValidOption, selected, isThemeOneOfQuestionTemplateOrPlayer]\n );\n const arrowColor = selected ? color : undefined;\n\n const behaviorClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviorClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviorClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n <ArrowView\n shouldRender={!multiple}\n isArrowUp={isArrowUp}\n ariaLabel={ariaLabel}\n arrowClass={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n arrowColor={isThemeOneOfQuestionTemplateOrPlayer ? arrowColor : black}\n />\n <select\n {...(ariaLabelledBy && !ariaLabel ? {'aria-labelledby': ariaLabelledBy} : {})}\n {...(ariaLabel && !ariaLabelledBy ? {'aria-label': ariaLabel} : {})}\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n onClick={handleSelectOnFocus}\n onBlur={handleSelectOnBlur}\n // onBlur does not handle completely an out of bounds click\n // ex: select is Opened and a click is done outside, cancelling the select\n // that doesn't count as a Blur, so an onMouseLeave is needed\n onMouseLeave={handleSelectOnBlur}\n data-testid=\"native-select\"\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string\n};\n\nexport default Select;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","ArrowView","shouldRender","isArrowUp","ariaLabel","arrowClass","arrowColor","props","useMemo","color","className","Select","legacyContext","name","options","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabelledBy","skin","GetSkinFromContext","setIsArrowUp","useState","handleSelectOnFocus","useCallback","handleSelectOnBlur","optionList","map","option","index","value","selectOption","titleView","selected","get","find","selectedLabel","isSelectedInValidOption","getOr","validOption","handleChange","e","target","selectedOptions","black","isThemeOneOfQuestionTemplateOrPlayer","includes","shouldUseSkinFontColor","undefined","behaviorClassName","getClassState","default","composedClassName","classnames","unselected","labelSize","size","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectedArrow","arrow","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","keys","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationArrowTop as ArrowUp\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst ArrowView = ({shouldRender, isArrowUp, ariaLabel, arrowClass, arrowColor}) => {\n const props = useMemo(\n () => ({\n ...(arrowColor &\n {\n color: arrowColor\n }),\n className: arrowClass\n }),\n [ariaLabel, arrowClass, arrowColor]\n );\n if (shouldRender) {\n return isArrowUp ? (\n <ArrowUp {...props} data-testid=\"select-arrow-up-icon\" />\n ) : (\n <ArrowDown {...props} data-testid=\"select-arrow-down-icon\" />\n );\n } else return null;\n};\n\nconst Select = (props, legacyContext) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n } = props;\n\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\n\n const [isArrowUp, setIsArrowUp] = useState(false);\n\n const handleSelectOnFocus = useCallback(() => setIsArrowUp(true), []);\n const handleSelectOnBlur = useCallback(() => setIsArrowUp(false), []);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n setIsArrowUp(false);\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n setIsArrowUp(false);\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const isThemeOneOfQuestionTemplateOrPlayer = useMemo(\n () => includes(theme, ['question', 'template', 'player']),\n [theme]\n );\n const shouldUseSkinFontColor = useMemo(\n () => !isSelectedInValidOption && selected && isThemeOneOfQuestionTemplateOrPlayer,\n [isSelectedInValidOption, selected, isThemeOneOfQuestionTemplateOrPlayer]\n );\n const arrowColor = selected ? color : undefined;\n\n const behaviorClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviorClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviorClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n <ArrowView\n shouldRender={!multiple}\n isArrowUp={isArrowUp}\n ariaLabel={ariaLabel}\n arrowClass={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n arrowColor={isThemeOneOfQuestionTemplateOrPlayer ? arrowColor : black}\n />\n <select\n {...(ariaLabelledBy ? {'aria-labelledby': ariaLabelledBy} : {})}\n {...(ariaLabel && !ariaLabelledBy ? {'aria-label': ariaLabel} : {})}\n {...(ariaLabel ? {title: ariaLabel} : {})}\n data-name=\"native-select\"\n className={style.selectBox}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n onClick={handleSelectOnFocus}\n onBlur={handleSelectOnBlur}\n // onBlur does not handle completely an out of bounds click\n // ex: select is Opened and a click is done outside, cancelling the select\n // that doesn't count as a Blur, so an onMouseLeave is needed\n onMouseLeave={handleSelectOnBlur}\n data-testid=\"native-select\"\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string\n};\n\nexport default Select;\n"],"mappings":"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"}
@@ -24,15 +24,15 @@ declare namespace Progression {
24
24
  }>;
25
25
  }>>;
26
26
  }
27
- namespace propTypes {
28
- const mainTitle: PropTypes.Validator<string>;
29
- const mainSubtitle: PropTypes.Validator<string>;
30
- const adaptiveAriaLabel: PropTypes.Requireable<string>;
31
- const total: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
27
+ const propTypes: {
28
+ mainTitle: PropTypes.Validator<string>;
29
+ mainSubtitle: PropTypes.Validator<string>;
30
+ adaptiveAriaLabel: PropTypes.Requireable<string>;
31
+ total: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
32
32
  label: PropTypes.Validator<string>;
33
33
  stars: PropTypes.Validator<number>;
34
34
  }>>>;
35
- const engines: PropTypes.Requireable<(PropTypes.InferProps<{
35
+ engines: PropTypes.Requireable<(PropTypes.InferProps<{
36
36
  type: PropTypes.Validator<string>;
37
37
  stars: PropTypes.Validator<number>;
38
38
  title: PropTypes.Validator<string>;
@@ -46,8 +46,8 @@ declare namespace Progression {
46
46
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
47
47
  }>>;
48
48
  }> | null | undefined)[]>;
49
- const loading: PropTypes.Validator<boolean>;
50
- const progressions: PropTypes.Requireable<(PropTypes.InferProps<{
49
+ loading: PropTypes.Validator<boolean>;
50
+ progressions: PropTypes.Requireable<(PropTypes.InferProps<{
51
51
  ref: PropTypes.Validator<string>;
52
52
  completion: PropTypes.Validator<number>;
53
53
  stars: PropTypes.Validator<number>;
@@ -62,7 +62,7 @@ declare namespace Progression {
62
62
  adaptive: PropTypes.Validator<boolean>;
63
63
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
64
64
  }> | null | undefined)[]>;
65
- const themeFilter: PropTypes.Requireable<PropTypes.InferProps<{
65
+ themeFilter: PropTypes.Requireable<PropTypes.InferProps<{
66
66
  options: PropTypes.Validator<(PropTypes.InferProps<{
67
67
  name: PropTypes.Validator<string>;
68
68
  value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
@@ -71,14 +71,15 @@ declare namespace Progression {
71
71
  }> | null | undefined)[]>;
72
72
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
73
73
  }>>;
74
- const recommendation: PropTypes.Requireable<PropTypes.InferProps<{
74
+ recommendation: PropTypes.Requireable<PropTypes.InferProps<{
75
75
  cta: PropTypes.Validator<string>;
76
76
  title: PropTypes.Validator<string>;
77
77
  subtitle: PropTypes.Validator<string>;
78
78
  courseTitle: PropTypes.Validator<string>;
79
79
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
80
80
  }>>;
81
- }
81
+ 'aria-label': PropTypes.Requireable<string>;
82
+ };
82
83
  }
83
84
  import PropTypes from "prop-types";
84
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/activity/index.js"],"names":[],"mappings":";AAeA,0EAuGC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/activity/index.js"],"names":[],"mappings":";AAeA,0EAyGC"}
@@ -49,7 +49,8 @@ const Progression = (props, legacyContext) => {
49
49
  total,
50
50
  engines = [],
51
51
  themeFilter = {},
52
- loading
52
+ loading,
53
+ 'aria-label': ariaLabel
53
54
  } = props;
54
55
  const skin = (0, _provider.GetSkinFromContext)(legacyContext);
55
56
  const {
@@ -85,7 +86,8 @@ const Progression = (props, legacyContext) => {
85
86
  className: _style.default.select,
86
87
  theme: "thematiques",
87
88
  options: themeFilter.options,
88
- onChange: handleSelectTheme
89
+ onChange: handleSelectTheme,
90
+ "aria-label": ariaLabel
89
91
  }) : null;
90
92
  const recommendationSection = !(0, _isEmpty.default)(recommendation) ? /*#__PURE__*/_react.default.createElement("div", {
91
93
  className: _style.default.recommendationWrapper
@@ -153,7 +155,8 @@ Progression.propTypes = process.env.NODE_ENV !== "production" ? {
153
155
  subtitle: _propTypes.default.string.isRequired,
154
156
  courseTitle: _propTypes.default.string.isRequired,
155
157
  onClick: _propTypes.default.func
156
- })
158
+ }),
159
+ 'aria-label': _propTypes.default.string
157
160
  } : {};
158
161
  var _default = Progression;
159
162
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","skin","GetSkinFromContext","onChange","themeFilterOnChange","handleClick","useCallback","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","get","loader","style","allProgressions","map","progression","omit","ref","coreProgression","core","themeSelect","isEmpty","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","classnames","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","label","stars","number","arrayOf","EngineStars","bool","ProgressionItem","Select","func"],"sources":["../../../src/template/activity/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport get from 'lodash/fp/get';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport omit from 'lodash/fp/omit';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport Button from '../../atom/button';\nimport Select from '../../atom/select';\nimport Loader from '../../atom/loader';\nimport ProgressionItem from './progression-item';\nimport EngineStars from './engine-stars';\nimport StarsSummary from './stars-summary';\nimport style from './style.css';\n\nconst Progression = (props, legacyContext) => {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading\n } = props;\n const skin = GetSkinFromContext(legacyContext);\n const {onChange: themeFilterOnChange} = themeFilter;\n\n const handleClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = recommendation;\n onClick && onClick(e);\n },\n [recommendation]\n );\n\n const handleSelectTheme = useCallback(\n e => {\n themeFilterOnChange && themeFilterOnChange(e);\n },\n [themeFilterOnChange]\n );\n\n const primary = get('common.primary', skin);\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n const allProgressions = progressions.map(progression => (\n <ProgressionItem\n {...omit(['ref'], progression)}\n key={progression.ref}\n adaptiveAriaLabel={adaptiveAriaLabel}\n />\n ));\n\n const coreProgression = (\n <div data-name=\"activityCore\" className={style.core}>\n {allProgressions}\n </div>\n );\n const themeSelect = !isEmpty(themeFilter.options) ? (\n <Select\n borderClassName={style.selectBorder}\n className={style.select}\n theme=\"thematiques\"\n options={themeFilter.options}\n onChange={handleSelectTheme}\n />\n ) : null;\n const recommendationSection = !isEmpty(recommendation) ? (\n <div className={style.recommendationWrapper}>\n <p className={style.recommendationSection}>{recommendation.title} </p>\n <p className={style.recommendationSection}>\n <span>{recommendation.subtitle} </span>\n <span\n className={classnames(style.course, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: recommendation.courseTitle}}\n />\n </p>\n <Button\n type=\"link\"\n onClick={handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.default}>\n <div data-name=\"activity-header\">\n <div className={style.mainTitle}>\n <span>{mainTitle}</span> {mainSubtitle}\n </div>\n <div className={style.headerProgression}>\n <div className={style.wrapperCta}>\n {themeSelect}\n {recommendationSection}\n </div>\n <StarsSummary engines={engines} total={total} />\n </div>\n </div>\n <div className={style.wrapperProgression} data-name=\"activityList\">\n {coreProgression}\n {loader}\n </div>\n </div>\n );\n};\n\nProgression.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nProgression.propTypes = {\n mainTitle: PropTypes.string.isRequired,\n mainSubtitle: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n loading: PropTypes.bool.isRequired,\n progressions: PropTypes.arrayOf(\n PropTypes.shape({...ProgressionItem.propTypes, ref: PropTypes.string.isRequired})\n ),\n themeFilter: PropTypes.shape({\n options: Select.propTypes.options.isRequired,\n onChange: Select.propTypes.onChange\n }),\n recommendation: PropTypes.shape({\n cta: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n courseTitle: PropTypes.string.isRequired,\n onClick: PropTypes.func\n })\n};\n\nexport default Progression;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","ariaLabel","skin","GetSkinFromContext","onChange","themeFilterOnChange","handleClick","useCallback","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","get","loader","style","allProgressions","map","progression","omit","ref","coreProgression","core","themeSelect","isEmpty","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","classnames","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","label","stars","number","arrayOf","EngineStars","bool","ProgressionItem","Select","func"],"sources":["../../../src/template/activity/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport get from 'lodash/fp/get';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport omit from 'lodash/fp/omit';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport Button from '../../atom/button';\nimport Select from '../../atom/select';\nimport Loader from '../../atom/loader';\nimport ProgressionItem from './progression-item';\nimport EngineStars from './engine-stars';\nimport StarsSummary from './stars-summary';\nimport style from './style.css';\n\nconst Progression = (props, legacyContext) => {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading,\n 'aria-label': ariaLabel\n } = props;\n const skin = GetSkinFromContext(legacyContext);\n const {onChange: themeFilterOnChange} = themeFilter;\n\n const handleClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = recommendation;\n onClick && onClick(e);\n },\n [recommendation]\n );\n\n const handleSelectTheme = useCallback(\n e => {\n themeFilterOnChange && themeFilterOnChange(e);\n },\n [themeFilterOnChange]\n );\n\n const primary = get('common.primary', skin);\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n const allProgressions = progressions.map(progression => (\n <ProgressionItem\n {...omit(['ref'], progression)}\n key={progression.ref}\n adaptiveAriaLabel={adaptiveAriaLabel}\n />\n ));\n\n const coreProgression = (\n <div data-name=\"activityCore\" className={style.core}>\n {allProgressions}\n </div>\n );\n const themeSelect = !isEmpty(themeFilter.options) ? (\n <Select\n borderClassName={style.selectBorder}\n className={style.select}\n theme=\"thematiques\"\n options={themeFilter.options}\n onChange={handleSelectTheme}\n aria-label={ariaLabel}\n />\n ) : null;\n const recommendationSection = !isEmpty(recommendation) ? (\n <div className={style.recommendationWrapper}>\n <p className={style.recommendationSection}>{recommendation.title} </p>\n <p className={style.recommendationSection}>\n <span>{recommendation.subtitle} </span>\n <span\n className={classnames(style.course, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: recommendation.courseTitle}}\n />\n </p>\n <Button\n type=\"link\"\n onClick={handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.default}>\n <div data-name=\"activity-header\">\n <div className={style.mainTitle}>\n <span>{mainTitle}</span> {mainSubtitle}\n </div>\n <div className={style.headerProgression}>\n <div className={style.wrapperCta}>\n {themeSelect}\n {recommendationSection}\n </div>\n <StarsSummary engines={engines} total={total} />\n </div>\n </div>\n <div className={style.wrapperProgression} data-name=\"activityList\">\n {coreProgression}\n {loader}\n </div>\n </div>\n );\n};\n\nProgression.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nProgression.propTypes = {\n mainTitle: PropTypes.string.isRequired,\n mainSubtitle: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n loading: PropTypes.bool.isRequired,\n progressions: PropTypes.arrayOf(\n PropTypes.shape({...ProgressionItem.propTypes, ref: PropTypes.string.isRequired})\n ),\n themeFilter: PropTypes.shape({\n options: Select.propTypes.options.isRequired,\n onChange: Select.propTypes.onChange\n }),\n recommendation: PropTypes.shape({\n cta: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n courseTitle: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n 'aria-label': PropTypes.string\n};\n\nexport default Progression;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.7.3-alpha.3+c58e63a2a",
3
+ "version": "11.7.3-alpha.5+bf982b078",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -160,5 +160,5 @@
160
160
  "last 2 versions",
161
161
  "IE 11"
162
162
  ],
163
- "gitHead": "c58e63a2afed8d3cd5185fd56702b6265354d1fb"
163
+ "gitHead": "bf982b07889fa9259f03afc734988096ab79daa3"
164
164
  }