@coorpacademy/components 11.4.5-alpha.39 → 11.4.5-alpha.40
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/select/index.js"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/select/index.js"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,qEAuKC"}
|
package/es/atom/select/index.js
CHANGED
|
@@ -47,8 +47,8 @@ const Select = (props, legacyContext) => {
|
|
|
47
47
|
createBattleLabelParameters
|
|
48
48
|
} = props;
|
|
49
49
|
const {
|
|
50
|
-
battleLabelHtmlFor,
|
|
51
|
-
battleLabelClassName
|
|
50
|
+
htmlFor: battleLabelHtmlFor,
|
|
51
|
+
className: battleLabelClassName
|
|
52
52
|
} = createBattleLabelParameters;
|
|
53
53
|
const skin = GetSkinFromContext(legacyContext);
|
|
54
54
|
const title = useMemo(() => propTitle ? `${propTitle}${required ? '*' : ''}` : null, [propTitle, required]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useMemo","PropTypes","classnames","filter","find","get","getOr","includes","keys","map","size","NovaCompositionNavigationArrowDown","ArrowDown","Provider","GetSkinFromContext","getClassState","style","themeStyle","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","legacyContext","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabel","createBattleLabelParameters","battleLabelHtmlFor","battleLabelClassName","skin","optionList","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviorClassName","default","composedClassName","unselected","labelSize","isLongLabel","htmlFor","selectWrapper","selectSpan","noLabelCommon","longLabel","id","selectBox","SelectOptionPropTypes","string","isRequired","oneOfType","number","bool","CreateBattleLabelParameters","contextTypes","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useMemo} 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 {NovaCompositionNavigationArrowDown as ArrowDown} 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 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 createBattleLabelParameters\n } = props;\n\n const {battleLabelHtmlFor, battleLabelClassName} = createBattleLabelParameters;\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\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 let titleView = null;\n if (battleLabelClassName && title) {\n titleView = <div className={battleLabelClassName}>{title} </div>;\n } else if (title) {\n titleView = <span className={style.title}>{title} </span>;\n }\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 onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\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 shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n aria-label={ariaLabel}\n data-testid=\"select-arrow-down-icon\"\n />\n ) : null;\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 <label {...(battleLabelHtmlFor ? {htmlFor: battleLabelHtmlFor} : {})}>{titleView}</label>\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <div\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\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 <select\n {...(battleLabelHtmlFor ? {id: battleLabelHtmlFor} : {})}\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 >\n {optionList}\n </select>\n </div>\n <div className={style.description}>{description}</div>\n </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\nexport const CreateBattleLabelParameters = {\n htmlFor: PropTypes.string,\n className: PropTypes.string\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 createBattleLabelParameters: PropTypes.shape(CreateBattleLabelParameters)\n};\n\nexport default Select;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useMemo","PropTypes","classnames","filter","find","get","getOr","includes","keys","map","size","NovaCompositionNavigationArrowDown","ArrowDown","Provider","GetSkinFromContext","getClassState","style","themeStyle","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","legacyContext","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabel","createBattleLabelParameters","htmlFor","battleLabelHtmlFor","battleLabelClassName","skin","optionList","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviorClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","id","selectBox","SelectOptionPropTypes","string","isRequired","oneOfType","number","bool","CreateBattleLabelParameters","contextTypes","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useMemo} 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 {NovaCompositionNavigationArrowDown as ArrowDown} 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 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 createBattleLabelParameters\n } = props;\n\n const {htmlFor: battleLabelHtmlFor, className: battleLabelClassName} =\n createBattleLabelParameters;\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\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 let titleView = null;\n if (battleLabelClassName && title) {\n titleView = <div className={battleLabelClassName}>{title} </div>;\n } else if (title) {\n titleView = <span className={style.title}>{title} </span>;\n }\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 onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\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 shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n aria-label={ariaLabel}\n data-testid=\"select-arrow-down-icon\"\n />\n ) : null;\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 <label {...(battleLabelHtmlFor ? {htmlFor: battleLabelHtmlFor} : {})}>{titleView}</label>\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <div\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\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 <select\n {...(battleLabelHtmlFor ? {id: battleLabelHtmlFor} : {})}\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 >\n {optionList}\n </select>\n </div>\n <div className={style.description}>{description}</div>\n </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\nexport const CreateBattleLabelParameters = {\n htmlFor: PropTypes.string,\n className: PropTypes.string\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 createBattleLabelParameters: PropTypes.shape(CreateBattleLabelParameters)\n};\n\nexport default Select;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/select/index.js"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/select/index.js"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,qEAuKC"}
|
package/lib/atom/select/index.js
CHANGED
|
@@ -73,8 +73,8 @@ const Select = (props, legacyContext) => {
|
|
|
73
73
|
createBattleLabelParameters
|
|
74
74
|
} = props;
|
|
75
75
|
const {
|
|
76
|
-
battleLabelHtmlFor,
|
|
77
|
-
battleLabelClassName
|
|
76
|
+
htmlFor: battleLabelHtmlFor,
|
|
77
|
+
className: battleLabelClassName
|
|
78
78
|
} = createBattleLabelParameters;
|
|
79
79
|
const skin = (0, _provider.GetSkinFromContext)(legacyContext);
|
|
80
80
|
const title = (0, _react.useMemo)(() => propTitle ? `${propTitle}${required ? '*' : ''}` : null, [propTitle, required]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["themeStyle","filter","style","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","legacyContext","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabel","createBattleLabelParameters","battleLabelHtmlFor","battleLabelClassName","skin","GetSkinFromContext","useMemo","optionList","map","option","index","value","selectOption","titleView","selected","get","find","selectedLabel","isSelectedInValidOption","getOr","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","includes","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviorClassName","getClassState","default","composedClassName","classnames","unselected","labelSize","size","isLongLabel","htmlFor","selectWrapper","selectSpan","noLabelCommon","longLabel","id","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","CreateBattleLabelParameters","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","keys","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useMemo} 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 {NovaCompositionNavigationArrowDown as ArrowDown} 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 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 createBattleLabelParameters\n } = props;\n\n const {battleLabelHtmlFor, battleLabelClassName} = createBattleLabelParameters;\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\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 let titleView = null;\n if (battleLabelClassName && title) {\n titleView = <div className={battleLabelClassName}>{title} </div>;\n } else if (title) {\n titleView = <span className={style.title}>{title} </span>;\n }\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 onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\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 shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n aria-label={ariaLabel}\n data-testid=\"select-arrow-down-icon\"\n />\n ) : null;\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 <label {...(battleLabelHtmlFor ? {htmlFor: battleLabelHtmlFor} : {})}>{titleView}</label>\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <div\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\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 <select\n {...(battleLabelHtmlFor ? {id: battleLabelHtmlFor} : {})}\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 >\n {optionList}\n </select>\n </div>\n <div className={style.description}>{description}</div>\n </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\nexport const CreateBattleLabelParameters = {\n htmlFor: PropTypes.string,\n className: PropTypes.string\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 createBattleLabelParameters: PropTypes.shape(CreateBattleLabelParameters)\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","Select","props","legacyContext","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","ariaLabel","createBattleLabelParameters","htmlFor","battleLabelHtmlFor","battleLabelClassName","skin","GetSkinFromContext","useMemo","optionList","map","option","index","value","selectOption","titleView","selected","get","find","selectedLabel","isSelectedInValidOption","getOr","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","includes","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviorClassName","getClassState","default","composedClassName","classnames","unselected","labelSize","size","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","id","selectBox","SelectOptionPropTypes","PropTypes","string","isRequired","oneOfType","number","bool","CreateBattleLabelParameters","contextTypes","Provider","childContextTypes","propTypes","func","oneOf","keys","arrayOf","shape"],"sources":["../../../src/atom/select/index.js"],"sourcesContent":["import React, {useMemo} 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 {NovaCompositionNavigationArrowDown as ArrowDown} 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 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 createBattleLabelParameters\n } = props;\n\n const {htmlFor: battleLabelHtmlFor, className: battleLabelClassName} =\n createBattleLabelParameters;\n const skin = GetSkinFromContext(legacyContext);\n const title = useMemo(\n () => (propTitle ? `${propTitle}${required ? '*' : ''}` : null),\n [propTitle, required]\n );\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 let titleView = null;\n if (battleLabelClassName && title) {\n titleView = <div className={battleLabelClassName}>{title} </div>;\n } else if (title) {\n titleView = <span className={style.title}>{title} </span>;\n }\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 onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\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 shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n aria-label={ariaLabel}\n data-testid=\"select-arrow-down-icon\"\n />\n ) : null;\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 <label {...(battleLabelHtmlFor ? {htmlFor: battleLabelHtmlFor} : {})}>{titleView}</label>\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <div\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\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 <select\n {...(battleLabelHtmlFor ? {id: battleLabelHtmlFor} : {})}\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 >\n {optionList}\n </select>\n </div>\n <div className={style.description}>{description}</div>\n </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\nexport const CreateBattleLabelParameters = {\n htmlFor: PropTypes.string,\n className: PropTypes.string\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 createBattleLabelParameters: PropTypes.shape(CreateBattleLabelParameters)\n};\n\nexport default Select;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.4.5-alpha.
|
|
3
|
+
"version": "11.4.5-alpha.40+ba7bdfd28",
|
|
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": "
|
|
163
|
+
"gitHead": "ba7bdfd283b23cfec190558288d86adf437f1d71"
|
|
164
164
|
}
|